• Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех девяток. Ведущие нули выводить не надо. Если в числе N нет цифр кроме девяток и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 481, а при вводе 2009 нужно вывести 2. Для решения этой задачи ученик написал такую программу:
    var n, m: longint;
    d: integer;
    begin
    read(n);
    m := 0;
    while n>1 do begin
    d := n mod 10;
    if d < 9 then begin
    m := m + d;
    end;
    n := n div 10;
    end;
    write(m);
    end.
    Последовательно выполните следующее.
    1. Напишите, что выведет эта программа при вводе числа 1984.
    2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
    3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Ответы 1

  • 1 122 2,3,4,93var    n, m: longint;    d: integer;begin    read(n);    m := 0;    while n > 0 do {1 на 0}    begin        d := n mod 10;        if d < 9 then begin            m := 10 * m + d; {домножили на 10}        end;        n := n div 10;    end;    write(m);end.
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

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

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

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