macierze, funkcje i procedury

0

Jak przekazać do funkcji/procedury macierz otwartą(o nie określonych rozmiarach).
Jak zwrócić wynik w postaci macierzy(rozmiar jest ustalany w funkcji).

0

nie wiem czy o to ci chodzi.. ale spróbuje pomóc.

TPunktMacierzy = record
dana : TJakisTyp;
end;

TMacierz = record
// jeżeli chodzi o macierz dwuwymiarową
punktMacierzy : array of array of TPunktMacierzy;
end;

function funkcja(macierz :TMacierz) : TMacierz;
begin
// na przykład..
result.punktMacierzy.dana := macierz.punktMacierzy.dana +1;
// operacje...
end;

0

<font color="blue">Jak zwrócić wynik w postaci macierzy(rozmiar jest ustalany w funkcji).</span>

Skorzystaj z tablic wielowymiarowych.

0

Jak zwrócić wynik w postaci macierzy(rozmiar jest ustalany w funkcji).

Użyj dwuwymiarowych tablic dynamicznych ale deklarowanych typem. W przeciwnym wypadku Delphi potraktuje je jako tablice otwarte (otwarte parametry tablicowe) i nie pozwoli zmienić wielkości wewnatrz procedury.

Przykład dobry:

type TMacierz=array of array of double;

procedure UstalRozmiar(a : integer; macierz : TMacierz);
begin
SetLength(macierz, a, a);
end;

Przykład zły

procedure UstalRozmiar(a : integer; macierz : array of array of double);
begin
SetLength(macierz, a, a); //nie skompiluje się
end;

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