Показать сообщение отдельно
  #2  
Старый 18.11.2013, 18:38
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от 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".
Ответить с цитированием