![]() |
|
|
|
|
#1
|
|||
|
|||
|
Задание 4: Создать процедуру, вычисляющую количество заданных элементов(чисел) в одномерном массиве.
Задание 5: Создать функцию, вычисляющую количество заданных элементов (чисел)в одномерном массиве. задание 4 и 5 я решил сделать сразу вместе, через процедуру получилось сделать а вот через функцию никак, выдает ошибку Код:
procedure chisla (var n:integer; a:array of integer);
begin
n:=length(a);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,n,x:Integer;
a:array of integer;
begin
setlength(a,0);
for i:=0 to StringGrid1.ColCount-1 do
try
n:=strtoint(StringGrid1.Cells[i,0]);
setlength(a,length(a)+1);
a[high(a)]:=n;
except
end;
chisla(x,a);
label1.Caption:=inttostr(x);
end;
function chisla2(n:integer):integer;
var
i,l,x:Integer;
a:array of integer;
begin
setlength(a,0);
for i:=0 to 100 do
try
l:=a[i];
setlength(a,length(a)+1);
a[high(a)]:=l;
except
end;
n:=a[high(a)];
result:=n
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:=inttostr(chisla2(n));
end;
end.вот сама лаба: Новая папка (2).rar |
|
#2
|
|||
|
|||
|
во первых n надо объявить
Код:
procedure TForm1.Button2Click(Sender: TObject); var n:integer; begin Label1.Caption:=inttostr(chisla2(n)); end; потом, begin setlength(a,0); for i:=0 to 100 do try l:=a[i]; setlength(a,length(a)+1); вы пытаетесь переменной l присвоить значение несуществующего номера массива (длинну массива сделали 0) Последний раз редактировалось Admin, 30.05.2011 в 22:42. |