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


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

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

 

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

DIM N AS LONG

INPUT N

min_digit = 0

WHILE N > 0

    digit = N MOD 10

    IF digit > min_digit THEN

        min_digit = digit

    END IF

    N = N \ 10

WEND

PRINT min_digit

END

var N: longint;

    digit, min_digit: integer;

begin

    readln(N);

    min_digit := 0;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit > min_digit then

            min_digit := digit;

        N := N div 10;

    end;

    writeln(min_digit);

end.

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

#include <iostream>

using namespace std;

int main ()

{

    long int N;

    int digit, min_digit;

    cin >> N;

    min_digit = 0;

    while (N > 0)

    {

        digit = N % 10;

        if (digit > min_digit)

            min_digit = digit;

        N = N / 10;

    }

    cout « min_digit « endl;

}

 

алг

нач

    цел N, digit, min_digit

    ввод N

    min_digit := 0

    нц пока N > 0

        digit := mod(N, 10)

        если digit > min_digit то

            min_digit := digit

        все

        N := div(N, 10)

    кц

    вывод min_digit

кон

Python

N = int(input())

min_digit = 0

while N > 0:

    digit = N % 10

    if digit > min_digit:

        min_digit = digit

    N //= 10;

print(min_digit)

 

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

 

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

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

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

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

 

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

Решение.

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

 

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

 

2. Первая ошибка. Неверная инициализация ответа (переменная min digit). Строка с ошибкой: «min digit := 0;» Возможные варианты исправления: «min digit := 9;» Возможны и другие исправления инициализации на любое число, большее 9.

 

3. Вторая ошибка. При сравнении значений digit и min digit ошибочно использована операция «>» вместо «<». В результате программа всегда выводит наибольшую цифру числа. Строка с ошибкой: «if (digit > min digit) then». Необходимо заменить сравнение «digit > min digit» на «digit < min digit».


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

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 1.