Проверьте программу на правильность написания, пожалуйся
program p1;
var a: array [1..5] of real;
i:integer; s:real;
begin
s:=0;
for i:=1 to 5 do
begin
write('a[',i,']=');
readln(a[i]);
if a[i] > 0 then s:=s+1;
end;
writeln;
writeln('количество положительных элементов = ', s);
write('элементы, имеющие нечетные индексы:');
for i:=1 to 5 do
if i mod 2 <> 0 then write(' ',a[i]);
end.
Ответы
program p1;
var a: array [1..5] of real;
i:integer; s:real = 0;
begin
for i:=1 to 5 do
begin
write('a[',i,']=');
readln(a[i]);
if a[i] > 0 then s:=s+1;
end;
writeln(#13#10,'количество положительных элементов = ', s:0:1);
write('элементы, имеющие нечетные индексы:');
for i:=1 to 5 do
if i mod 2 <> 0 then write(' ',a[i]:0:1);
end.
Вот, а так все идеально))
в целом программа работает. Хотя могу дать пару замечаний
индексную переменную лучше объявлять в самом цикле.
в паскале переменной не обязательно задавать стартовое нулевое значение, она и так будет равна 0.
вместо s:=s+1 можно написать s += 1
ну и отступы...
после правок будет выглядеть примерно так:
program p1;
var
a : array [1..5] of real;
s : real;
begin
for var i:= 1 to 5 do
begin
write('a[', i, ']=');
readln(a[i]);
if a[i] > 0 then s += 1;
end;
writeln;
writeln('количество положительных элементов = ', s);
write('элементы, имеющие нечетные индексы:');
for var i := 1 to 5 do if i mod 2 <> 0 then write(' ', a[i]);
end.