Цитата:
Сообщение от Discipulus
Есть задание (вложенный файл)
По нему есть программа с процедурой, которая переносит неправильные(начальные) значения p[i] из процедуры вместо конечных. При этом в программе без отдельной процедуры все работает. Хотелось бы узнать в чем ошибка и как ее исправить.
Код с отдельной процедурой
Код:
.....
procedure one( p : array of integer; var a : TA);
var
i,j:integer;
begin
p[1]:=1;
p[2]:=1;
p[3]:=1;
p[4]:=1;
p[5]:=1;
for i :=1 to 5 do
for j :=1 to 4 do
if a[i-1,j-1]<0 then
if i=1 then p[1]:=p[1]*a[i,j];
if i=2 then p[2]:=p[2]*a[i,j];
if i=3 then p[3]:=p[3]*a[i,j];
if i=4 then p[4]:=p[4]*a[i,j];
if i=5 then p[5]:=p[5]*a[i,j];
end;
.....
|
Потому что здесь "p : array of integer" это не обычный массив, а открытый массив - он действителен только внутри процедуры "one" - тебе нужно также как и для параметра "a" - объявить тип и указать слово "var".