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




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

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

 

 

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

DIM N AS LONG

INPUT N

max_digit = 9

WHILE N >= 10

    digit = N MOD 10

    IF digit > max_digit THEN

        max_digit = digit

    END IF

    N = N \ 10

WEND

PRINT max_digit

END

var N: longint;

    digit, max_digit: integer;

begin

    readln(N);

    max_digit := 9;

    while N >= 10 do

    begin

        digit := N mod 10;

        if digit > max_digit then

            max_digit := digit;

        N := N div 10;

    end;

    writeln(max_digit);

end.

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

#include <iostream>

using namespace std;

int main()

{

    long int N;

    int digit, max_digit;

    cin >> N;

    max_digit = 9;

    while (N >= 10)

    {

        digit = N % 10;

        if (digit > max_digit)

            max_digit = digit;

        N = N /10;

    }

    cout « max_digit « endl;

}

алг

нач

    цел N, digit, max_digit

    ввод N

    max_digit := 9

    нц пока N >= 10

        digit := mod(N, 10)

        если digit > max_digit то

            max_digit := digit

        все

        N := div(N, 10)

    кц

    вывод max_digit

кон

Python

n = int(input())

max_digit = 9

while n >= 10:

    digit = n % 10

    if digit > max_digit:

        max_digit = digit

    n //= 10

print(max_digit)

 

 

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

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

2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, — приведите правильный вариант строки.

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

Решение.

Содержание верного ответа (допускаются иные формулировки ответа, не искажающие его смысла)

Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках.

1. Программа выведет число 9.

2. Первая ошибка. Неверная инициализация ответа (переменная max_digit).

Строка с ошибкой:

max_digit := 9;

Возможные варианты исправления:

max_digit := 0;

Возможны и другие исправления инициализации, например на отрицательное число, в том числе -maxint.

3. Вторая ошибка. Неверное условие продолжения цикла.

Программа не будет рассматривать старшую цифру числа.

Строка с ошибкой:

while N >= 10 do

Возможные варианты исправления:

while (N >= 1) do

или

while (N > 0) do

При этом замены на

while (N > 1) do или while (N >= 0) do

корректными не являются

 

Обратите внимание! В задаче требовалось выполнить три действия: указать, что выведет программа при конкретном входном значении, и исправить две ошибки.

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

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

2. Указана и верно исправлена ошибка инициализации (не обязательно с упоминанием этого термина).

3. Указано на неверное условие продолжения цикла, и оно исправлено на верное.

Каждый из п. 2 и 3 считается выполненным, если:

а) правильно указана строка с ошибкой;

б) указан такой новый вариант строки, что при исправлении второй ошибки получается правильная программа


Аналоги к заданию № 5500: 6014 5852 5884 5948 5980 Все

Источник: Демонстрационная версия ЕГЭ—2014 по информатике.