desktop/inf.jpg mobile/inf.jpg

Задание 24. Анализ программ. Исправление ошибок в коде. ЕГЭ 2021 по информатике

За это задание ты можешь получить 3 балла. На решение дается около 30 минут. Уровень сложности: повышенный.
Средний процент выполнения: 52.2%
Ответом к заданию 24 по информатике может быть развернутый ответ (полная запись решения с обоснованием выполненных действий).

Задачи для практики

Задача 1

Требовалось написать программу, при выполнении которой с клавиатуры считываются два натуральных числа N и M одинаковой размерности, не превосходящие $10^9$.

Программа должна вычислить произведения первой и последней цифр в каждом из чисел и вывести наименьшее из найденных произведений. Если произведения одинаковы, то одно из них. (Например, для чисел N = 3125,M = 2416 программа должна вывести 12.)

Программист торопился и написал программу неправильно.

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

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

2.Приведите пример двух таких чисел, для которых, несмотря на ошибки, программа напечатает правильный ответ.

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

Для каждой ошибки:

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

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

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

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

Решение

1. При вводе чисел 102 и 105 программа выведет число 100.

2. Пример входных чисел, для которых программа работает правильно: 28 и 33.

3. Программа содержит две строки с ошибками (Паскаль):

1) Строку

S:= N div 10; T:= M div 10;

следует заменить на

S:= N mod 10; T:= M mod 10;

2) Строку

if S * N > T * M then

следует заменить на

if S * N < T * M then

3) Строку

while N > 10 do

следует заменить на

while N >= 10 do

Ответ:
Показать решение
Полный курс

Задача 2

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа, не превосходящих 5. Программист написал программу неправильно.

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

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

2. Приведите пример такого числа, что, несмотря на ошибки, программа печатает правильный ответ.

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

Для каждой ошибки

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

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

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

Решение

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

2. Пример входного числа, для которого программа работает правильно: 7468.

3. Программа содержит две строки с ошибками (Паскаль):

1) Строку

if VAL < 5 then

следует заменить на

if VAL <= 5 then

2) Строку

S:=VAL

следует заменить на

S:=S+VAL

Ответ:
Показать решение
Полный курс

Задача 3

Дано целое положительное число N (0 < N < 1000). Необходимо определить, является ли это число некоторой степенью числа 6 (N = $6^k$). Программа должна найти и вывести или число k — показатель степени, или сообщение, что такого числа не существует. Программист написал программу неправильно.

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

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

2.Приведите пример такого числа, которое является степенью числа 6, и, несмотря на ошибки, программа напечатает правильный ответ.

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

Для каждой ошибки:

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

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

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

Решение

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

2. Пример входного числа, для которого программа работает правильно: 36.

3. Программа содержит две строки с ошибками (Паскаль):

1) Строку

k := 1;

следует заменить на

k := 0;

2) Строку

k := k + (n mod 6);

следует заменить на

k := k + 1;

Ответ:
Показать решение
Полный курс

Задача 4

Дано целое положительное число N (0 < N < 1000). Необходимо определить, является ли это число некоторой степенью числа 2 (N = $2^k$). Программа должна найти и вывести или число k — показатель степени, или сообщение, что такого числа не существует. Программист написал программу неправильно.

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

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

2. Приведите пример такого числа, для которого, несмотря на ошибки, программа печатает правильный ответ.

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

Для каждой ошибки:

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

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

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

Решение

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

2. Пример входного числа, для которого программа работает правильно: 4.

3. Программа содержит две строки с ошибками (Паскаль):

1) Строку

while n div 2 <> 0 do

следует заменить на

while n mod 2 = 0 do

2) Строку

if k <> 0 then

следует заменить на

if n=1 then

Ответ:
Показать решение
Полный курс
Показать еще

Готовим к ЕГЭ на 85+ баллов и побеждаем лень

Каждый месяц 12 онлайн-занятий в дружелюбной атмосфере + 16 домашних работ с жесткими сроками.
Не готовишься — вылетаешь.

Подробнее о курсе