Форум: "Основная";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];
ВнизКак в подпрограмму передать динамический двумерный массив и вичис Найти похожие ветки
← →
turonix (2002-05-02 15:33) [0]Привет народ! Помогите пожалуста. Я вынужден был оставит свой вопрос здесь, т.к. основная категория форума почему-то не рботает. Как в подпрограмму передать динамический двумерный массив и вичислить его максимальное значение?
Прилагаю приблизительный код программы:
var
real_xS:array of array of extended;
begin
SetLength(real_xS,5,1024);
//здесь идет заполнение массива
...................
//
mmOutput.Lines.Add("Максимальное значение в массиве real_xS: "+floattostr(high_arr(real_xS))); //Вызов функции
high_arr - эта функция нахождения max значения в массиве. Я пробовал использовать open array,
но при этом возникает ошибка: [Error] proga22.pas(590): Incompatible types: "Array" and "dynamic array"
Вот пример подпрограммы:
function High_arr(arr1: array of extended):extended;
var
i:integer;
max:extended;
begin
arr1[0]:=max;
for i:=1 to 1023 high(arr1) do
begin
if arr1[i]>max then max:=arr1[i];
end;
Result:=max;
end;
← →
NDeu (2002-05-02 20:14) [1]
type TArr2dOfReal=array of array of Real;
var real_xS:TArr2dOfReal;
procedure FillArr(var B:TArr2dOfReal);
var i,j,R,K:integer;
begin
Randomize; R:=Round(Random(20));K:=Round(Random(20));
SetLength(B,R);
For i:=0 to R-1
do begin
SetLength(B[i],K);
For j:=0 to K-1
do B[i,j]:=Random;
end;
end;
function High_arr(var C:TArr2dOfReal):Real;
var i,j:integer;
begin
If (Length(C)<=0)or(Length(C[0])<=0)
then raise ERangeError.Create("Not valid range")
else begin
result:=C[0,0];
For i:=0 to Length(C)-1 do
For j:=0 to Length(C[i])-1 do
If Result<C[i,j] then Result:=C[i,j];
end;
end;
---------------
FillArr(real_xS);
---------
mmOutput.Lines.Add("Максимальное значение в массиве : "+floattostr(high_arr(real_xS))); //Вызов функции
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c