Przekazywanie tablicy dwuwymiarowej do funkcji

0

Witam prosze o przedstawienie jak przekazac stala tablice dwuwymiarowa do funkcji

Mam zadeklarowana tablice

const tablica2d:array[0..2,0..3] of string =( ('1','kwiat','czerwony','a'),
('2','samochod','niebieski','z'),
('5','stol','brazowy','q') );

jak taka tablice przekazac do funkcji i w funkcji wyswietlic np. jej element [1,2]

0

Musisz zadeklarować typ danych:

type
  tablicaDanych =  array [0..2,0..3] of string;

Zmieniasz deklarację swojej tablicy na:

const
   tablica2d : tablicaDanych =( ('1','kwiat','czerwony','a'), ('2','samochod','niebieski','z'), ('5','stol','brazowy','q') );

Deklarujesz funkcję już z nowym typem danych:

procedure wyswietl(tablica: tablicaDanych);
begin
   //przykładowe wyświetlenie elementu
   Caption := tablica[0, 2];
end;

Wywołanie funkcji:

wyswietl(tablica2d);
0

wielkie dzieki, a czy moglbys powiedziec jak to zrobic bez podawania wymiaru w type ?

Zalozmy ze mam kilkaset tablic const i kazda z nich ma inne rozmiary (sa tablice dwuwymiarowe ale jedne maja
array [0..2,0..3] of string;
inne
array [0..22,0..11] of string;
itd)

i wtedy jak takie tablice przekazac?

0

Szukałbym innego rozwiązania niż tablice tablice const?

0

No dobrze czy wywalajac const dalorade by to jako zrobic bo generalnie nie musi to byc const

0

To nie jest problem const, funkcja po prostu musi wiedzieć jakiego typu danych się spodziewać (w tym przypadku tablic z deklarowanym rozmiarem musi wiedzieć, że jest to tablica i to o takich a takich wymiarach takiego typu danych). Rozwiązaniem mogą być np. tablice dynamiczne, rozwiazaniem może być też baza danych, jeśli program ma przechowywać/obrabiać dużą ilość danych.

Podsumowując, gdybym miał umieszczać w programie kilkaset zadeklarowanych w ten sposób tablic, to poszedłbym się porządnie upić, a potem wymyśliłbym inne rozwiązanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1