Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на массивю где-то ошибка.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
torok
в задаче требуется ввести массив и в процедуре обнулить те элементы, которые попадают в заданный интервал. как решать мне ясно, но на шаге выполнения процедуры всплывает ошибка 54 - "требуется ввести of" хотя он вроде на месте... вот код.

program massiv2;
 var x,i,y: integer; 
 const n=3;
 var a,b,c : array [1..n] of integer;
procedure p (var z: array[i] of integer);   <== вот здесь высвеч-ся ошибка 54
begin
  z[i]:=0;
 end;
 begin
  writeln('vvedite granici diapazona');
   for i:=1 to n do
    begin
   read(x,y);
  writeln('vvedite elementi massiva a');
   read(a[i],b[i],c[i]);
  if (a[i]>=x) and (a[i]<=y) then p(a[i]);
  end;
for i:=1 to n do
 begin
  writeln('znachnija elementov preobrazovannogo massiva a   ',i,'  ',a[i]);
 end;
end.
volvo
torok, нельзя типы конструировать в заголовке процедуры... Опиши тип отдельно...

Кроме этого, что именно ты собрался делать в процедуре? Обнулить 1 элемент массива? Тогда так:
procedure p (var z: integer);
begin
  z := 0;
end;
APAL
К тому же:
Это не Бейсик - в Паскале нельзя создать массив с заданной переменной длинной. (в процедуре - Var ...)
Используй констатнту.
klem4
Вот так твоя процедура выглядеть наверное должна ...


type
   TArray = array[1..10] of integer;
...
procedure Zero(var x : TArray; a,b,n : integer);
var
   i : byte;
begin
   for i := 1 to n do
    if (x[i]>a) and (x[i]<b) then
     x[i] := 0;
end;

torok
всем спасибо!
ошибка утранилась исправлением по рекомендации volvo
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.