Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла. Где ошибка?

Егор Соколов Ученик (177), закрыт 3 года назад
program f;
//var
procedure fm;
var i,n:integer;
a:array[1..100] of integer;
begin
read(n);
for i:=1 to n do read(a[i]);
end;
procedure sm;
var j,n,i,x,imax:integer;
a:array[1..100] of integer;
begin
for i:=1 to n-1 do
imax:=1;
for j:=i+1 to n do if a[j]>a[imax]
then imax:=j;
x:=a[i];
a[i]:=a[imax];
a[imax]:=x
end;
procedure bm;
var i,n:integer;
a:array[1..100] of integer;
begin
for i:=1 to n do read(a[i]);
end;
begin
var i,n,x,j,imax:integer;
fm;
sm;
bm;
end.
Лучший ответ
Станислав Степанюк Знаток (308) 5 лет назад
Это предупреждение, избавиться от него можно, если i:integer прописывать не в разделе описания переменных var, а непосредственно в цикле for i:integer:= 1 to n do
Остальные ответы
Krab Bark Искусственный Интеллект (294333) 7 лет назад
Ты используешь a[i] за пределами цикла по i. Видимо, нехватает begin ...end
Егор СоколовУченик (177) 7 лет назад
Так?
program f;
//var
procedure fm;
var i,n:integer;
a:array[1..100] of integer;
begin
read(n);
for i:=1 to n do read(a[i]);
end;
procedure sm;
var j,n,i,x,imax:integer;
a:array[1..100] of integer;
begin
for i:=1 to n-1 do
begin
imax:=1;
for j:=i+1 to n do if a[j]>a[imax]
then imax:=j;
x:=a[i];
a[i]:=a[imax];
a[imax]:=x
end;
end;
procedure bm;
var i,n:integer;
a:array[1..100] of integer;
begin
for i:=1 to n do read(a[i]);
end;
begin
var i,n,x,j,imax:integer;
fm;
sm;
bm;
end.
Krab Bark Искусственный Интеллект (294333) Синтаксически верно, компилятор пропустит. А что программа должна делать, знаешь только ты.
Jurii Высший разум (176310) 7 лет назад
Это не ошибка, а предупреждение.
Руслан Рыбаков Ученик (111) 2 года назад
Выберите из предложенных вариантов правильную запись цикла с параметром


For var i := 1 to 5 do


For var i=1 to 5 do


For var i:=1 to i do


For var i:=1 do 5 to
Bigbss Искусственный Интеллект (222464) 5 месяцев назад
 var  

m:array [1..50] of integer;
begin
for i:integer:= 1 to 50 do
begin
m[i]:= random(101)-100;
begin
if m[i]>0 then
write('Результат',m[i]);
end;
end;
end.
Похожие вопросы