• ) На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу,
    которая выводит на экран количество неотрицательных чисел последовательности и их
    произведение. Если неотрицательных чисел нет, требуется вывести на экран «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

Ответы 1

  • Ошибки

    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

    1. Переменная p в начале равняется нулю. В эту переменную будет записываться общее произведение неотрицательных чисел, умножая p на каждое неотрицательное число, но при умножении любого числа на 0 произведение будет 0, поэтому нужно в начале присвоить ей единицу
    2. В конце выводится последнее введённое число, а нужно вывести количество
    3. После 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.

    • Автор:

      moss
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years