Проверьте программу на правильность написания, пожалуйся

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.

Ответы

Ответ дал: FunSociety
0

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.  

Вот, а так все идеально))

Ответ дал: ingr
0

в целом программа работает. Хотя могу дать пару замечаний

индексную переменную лучше объявлять в самом цикле.

в паскале переменной не обязательно задавать стартовое нулевое значение, она и так будет равна 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.

Вас заинтересует