[Pascal] Tablica wielowymiarowa


(Vion91) #1

Jeżeli mam zdeklarowana taka tablice:

w:array[1..5000, 1..5000] of real

i mam takie zmienne xnew, ynew i jak to napisac aby umieścić w tablicy te zmienne aby zmienna xnew była w pierwszej kolumnie, a ynew w drugiej kolumnie.


(Marcinch7) #2

Nie rozumiem, nie do tego służą tablice wielowymiarowe. Przykład (do C++):

int liczby[5,5];

liczby[1,1]=5;

liczby[1,2]=6;

Do tego co ty potrzebujesz to raczej dwie tablice:

int liczby1[5];

int liczby2[5];

liczby1[0]=xnew;

liczby2[0]=xnew;

(system) #3

A jakby tak tablice rekordów?

type Tzmienna = record

    xnew:real;

    ynew:real;


w:array of Tosoba

(Fiołek) #4

Wiesz jak działa operator , w C++? W tym kodzie tworzysz 5-elementową tablicę intów i elementowi 1. przypisujesz wartość 5, a 2. wartość 6. Choć nie jestem pewien czy to przejdzie(VS mi takiej deklaracji nie przepuszcza).

@EDIT:

@down: pasi :wink:


(Marcinch7) #5

Jezus, całkowicie mi się pomyliło!

int liczby[5][5];

liczby[1][1]=5;

liczby[1][2]=6;

teraz pasi?


(Simplex111) #6

Tablica, którą zadeklarowałeś ma 5000 wierszy po 5000 kolumn w każdym wierszu, czyli razem 25 000 000 elementów (to trochę dużo :-)) Zakładam (zgaduję) że miałeś na myśli taką tablicę

var w: array[1..5000, 1..2] of Real;

Jest to tablica złożona z 5000 wierszy po dwie kolumny w każdym wierszu. Taka tablica mogłaby np. zawierać 5000 jakichś współrzędnych (x, y). Wtedy można napisać np. tak:

for i:= 1 to 5000 do begin

  w[i, 1]:= xnew;

  w[i, 2]:= ynew;

end;

W tym przykładzie co prawda wszystkie wartości będą takie same, ale ... to jest tylko przykład :wink: Jeżeli już mamy zapisaną całą tablicę, to można ją np. wydrukować na ekranie w dwóch kolumnach (o które Ci chodziło)

for i:= 1 to 5000 do begin

  write(i, ' xnew = ', w[i, 1]);

  writeln(' ynew = ', w[i, 2]);

end;

Tylko czy Tobie o to chodziło? Odezwij się.


(Vion91) #7

Dzięki, właśnie o to mi chodziło, bo miało być 5000 wierszy i 2 kolumny :slight_smile: