<h2>Ошибки</h2>
var p,i,x,count: integer;
begin
count := 0;
<u>p := </u><em><u>0 </u></em><u>;
</u>
for i := 1 to 4 do begin
read (x);
if x >= 0 then begin
p := p*x;
count := count+1
end
end;
if count > 0 then begin
<u>writeln(</u><em><u>х </u></em><u>);
</u>
writeln(p);
end
else
writeln('NO')
<u>end </u>
<u />
- Переменная p в начале равняется нулю. В эту переменную будет записываться общее произведение неотрицательных чисел, умножая p на каждое неотрицательное число, но при умножении любого числа на 0 произведение будет 0, поэтому нужно в начале присвоить ей единицу
- В конце выводится последнее введённое число, а нужно вывести количество
- После end не стоит точка
<h3>Правильный вариант программы</h3>
var p,i,x,count: integer;
begin
count := 0;
p := 1;
for i := 1 to 4 do begin
read (x);
if x >= 0 then begin
p := p*x;
count := count+1
end
end;
if count > 0 then begin
writeln(count);
writeln(p);
end
else
writeln('NO')
end.
Один цикл прохода это
0 1 2 3 4 5 6 7 6 5 4 3 2 1 - 14 шагов
остаток от деления 2024 на 14 = 8 - шагов сделано в последнем цикле
отсчитываем
0 1 2 3 4 5 6 7
Значит ответ номер 7