СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 24 № 5532

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

 

БэйсикПаскаль

DIM N AS LONG

INPUT N

sum = 0

WHILE N >= 9

    digit = N MOD 10

    sum = sum + digit

    N = N \ 10

WEND

PRINT sum

END

var N: longint;

    digit, sum: integer;

begin

    readln(N);

    sum := 0;

    while N >= 9 do

    begin

        digit := N mod 10;

        sum := sum + digit;

        N := N div 10;

    end;

    writeln(sum);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, sum;

    cin >> N;

    sum = 0;

    while (N >= 9)

    {

        digit = N % 10;

        sum = sum + digit;

        N = N / 10;

    }

    cout « sum « endl;

}

 

алг

нач

    цел N, digit, sum

    ввод N

    sum := 0

    нц пока N >= 9

        digit := mod(N, 10)

        sum := sum + digit

        N := div(N, 10)

    кц

    вывод sum

кон

Python

n = int(input())

sum = 0

while n >= 9:

    digit = n % 10

    sum += digit

    n //=10;

print(sum)

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 352.

2. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

3. Укажите одно число для которого эта программа будет работать верно.

Решение.

1. Программа выведет число 7 (как сумму чисел 2 и 5).

 

2. В качестве ответа для остальных чисел программа выдаёт сумму всех цифр, кроме старшей. Возможный (не единственный) вариант исправления для языка Паскаль: исправление условия продолжения цикла на while (N >= 1) do или while (N > 0) do. При этом замена на while (N >= 0) do корректной не является.

 

3. Программа работает верно для всех чисел, начинающихся на 9, в том числе для 9. [Достаточно указать любое такое число.]

 

Указания по оцениванию.

Обратите внимание! В задаче требовалось выполнить три действия.

Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия.

1. Верно указано, что именно выведет программа при указанных в условии входных данных.

2. Указано число, при котором программа работает верно.

3. Указаны все строки (одна или более), в которые нужно внести исправления, и эти исправления внесены, при этом получена верно работающая программа.

При выполнении действия 3 верное указание на ошибку при неверном её исправлении не засчитывается.

Обратите внимание! Выбор ошибочных строк может быть выполнен не единственным способом. В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения.


Аналоги к заданию № 5532: 7681 7708 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 30.05.2013. Ос­нов­ная волна. Даль­ний Восток. Ва­ри­ант 3.