Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на массивю где-то ошибка.
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.