profile
Опубликовано 6 лет назад по предмету Информатика от chumichev12

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

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.

  1. Ответ
    Ответ дан FunSociety

    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.  

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

  2. Ответ
    Ответ дан ingr

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

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

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

Самые новые вопросы