На обработку поступает последовательность из четырёх целых чисел. нужно написать программу, которая выводит на экран количество неотрицательных чисел последовательности и их произведение. если неотрицательных чисел нет, требуется вывести на экран «no». известно, что вводимые числа по абсолютной величине не превышают 10. программист написал программу неправильно, надо найти ошибку var p,i,x,count: integer; begin count : = 0; p : = 0; 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(х); writeln(p); end else writeln('no') end

Ronni05 Ronni05    3   30.05.2019 13:04    8

Ответы
Спирт95 Спирт95  01.10.2020 15:15
Ошибки

var p,i,x,count: integer;

begin

count := 0;

p := 0 ;

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(х );

writeln(p);

end

else

writeln('NO')

end

Переменная p в начале равняется нулю. В эту переменную будет записываться общее произведение неотрицательных чисел, умножая p на каждое неотрицательное число, но при умножении любого числа на 0 произведение будет 0, поэтому нужно в начале присвоить ей единицуВ конце выводится последнее введённое число, а нужно вывести количествоПосле end не стоит точкаПравильный вариант программы

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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика