Подготовка к ЕГЭ по информатике и ИКТ. Задание В8

Подготовка к ЕГЭ по информатике и ИКТ. Задание В8

Сознательно подойти к решению задания В8 может ученик, который знаком с хотя бы одним из предложенных языком программирования на уровне умения использования циклов и знания встроенных функций для целочисленных чисел: DIV и MOD – целая часть и остаток. Главной сложностью при выполнении задания является то, что надо понять смысл алгоритма, оформленном на языке программирования, а далее по известным результатам определить исходное число. Рассмотрим примеры для языка программирования Паскаль.

Для объяснения целесообразно привести представленный ниже алгоритм, выполнив на доске трассировку преобразования переменных в программе для произвольного натурального многоразрядного числа, например, 782. Данный алгоритм позволяет подсчитать количество цифр числа:

VAR X,A,B:INTEGER; BEGIN READLN(X); A:=0; WHILE X>0 DO BEGIN A:=A+1; X:= X DIV 10 END; WRITELN(A); END.

ПРИМЕР: а=782 Ответ: 3

Далее рекомендуется рассмотреть алгоритм вычисления произведение цифр натурального многоразрядного числа, выполнив трассировку для двухразрядного и трехразрядного целых чисел. Формулировка задания: «Получив на вход число Х, эта программа печатает два числа – А и В. Найти исходное Х». Текст программы:

VAR X, A, B : INTEGER; BEGIN READLN(X); A := 0; B := 1; WHILE X > 0 DO BEGIN A := A + 1; B := B * (X MOD 10); X := X DIV 10; END; WRITELN(A); WRITE(B); END.

Для закрепления можно предложить определить Х, опираясь на следующие вопросы:

а) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 72. Ответ: 98.

б) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 72. Ответ: 89.

в) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 72. Ответ: 981.

г) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 72. Ответ: 189.

д) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7. Ответ: 711

е) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7. Ответ: 117.

ж) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 0. Ответ: 990.

з) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 0. Ответ: 100.

Затем можно рассмотреть алгоритм подсчета суммы цифр натурального числа, выполнив трассировку для двухразрядного и трехразрядного целых чисел. Формулировка задания: «Получив на вход число Х, эта программа печатает два числа – А и В. Найти исходное Х». Здесь А – количество цифр в записи числа, В – минимальная цифра. Текст программы

VAR X, A, B : INTEGER; BEGIN READLN(X); A := 0; B := 1; WHILE X > 0 DO BEGIN A := A + 1; B := B + (X MOD 10); X := X DIV 10; END; WRITELN(A); WRITE(B); END.

Для закрепления можно предложить определить Х, опираясь на следующие вопросы:

а) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 6. Ответ: 60

б) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 6. Ответ: 15.

в) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 6. Ответ: 600.

г) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 6. Ответ: 105.

д) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 10. Ответ: 91.

е) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 10. Ответ: 19.

ж) Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 11. Ответ: 920.

з) Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 11. Ответ: 119.

Следующий алгоритм находит максимальную цифру в записи числа. Формулировка задания: «Получив на вход число Х, эта программа печатает два числа А и В. Найти исходное Х». Здесь А – количество цифр в записи числа, В – максимальная цифра.

VAR X, A, M: INTEGER; BEGIN READLN(X); A:=0; B:=0; WHILE X > 0 DO BEGIN A:=A+1; IF B < (X MOD 10) THEN BEGIN B:=X MOD 10; END; X:= X DIV 10; END; WRITELN(A); WRITE(B);END.

а) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, а потом 7. Ответ: 77.

б) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, а потом 7. Ответ: 17

в) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 3, а потом 7. Ответ: 777

г) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 3, а потом 7. Ответ: 107

Приведенный ниже алгоритм находит минимальную цифру в записи числа. Формулировка задания: «Получив на вход число Х, эта программа печатает два числа А и В. Найти исходное Х». Здесь А – количество цифр в записи числа, В – минимальная цифра.

VAR X, A, M: INTEGER; BEGIN READLN(X); A:=0; B:=10; WHILE X > 0 DO BEGIN A:=A+1; IF B > (X MOD 10) THEN B:=X MOD 10; X:= X DIV 10; END; WRITELN(A); WRITE(B); END.

а) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, а потом 7. Ответ: 97

б) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, а потом 7. Ответ: 77.

в) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 3, а потом 7. Ответ: 997.

г) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 3, а потом 7. Ответ: 777.

д) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, а потом 0. Ответ: 90.

е) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 3, а потом 0. Ответ: 100.

И, наконец, можно предложить поработать с алгоритмами, которые подсчитывают количества чисел по условиям. Паскаль воспринимает ноль как четное число. Потому в данной программе подсчитывается количество четных цифр, учитывая 0:

VAR X, A, B : INTEGER; BEGIN READLN(X); A := 0; B := 0; WHILE X > 0 DO BEGIN А:=А+1; IF X MOD 2=0 THEN B:=B+1; X := X DIV 10; END; WRITE(A); WRITELN(B); END.

а) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 2. Ответ: 88

б) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 2. Ответ: 20

в) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 5, потом 2. Ответ: 99988

г) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 5, потом 2. Ответ: 11100

д) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 0. Ответ: 99

е) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 0. Ответ: 11

И в последней программе подсчитывается количество нечетных цифр в записи натурального числа. Ноль не считается нечетным числом в Паскале.

VAR X, A, B : INTEGER; BEGIN READLN(X); A := 0; B := 0; WHILE X > 0 DO BEGIN A:=A+1; IF X MOD 2<>0 THEN B:=B+1; X := X DIV 10; END; WRITE(A); WRITELN(B); END.

а) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 2. Ответ: 99

б) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 2. Ответ: 11

в) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 4, потом 2. Ответ: 9988

г) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 4, потом 2. Ответ: 1100

д) Укажите наибольшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 0. Ответ: 88

е) Укажите наименьшее из таких чисел Х, при вводе которых алгоритм печатает сначала 2, потом 0. Ответ: 20

📎📎📎📎📎📎📎📎📎📎