Найти в Дзене
МОЙ РЕПЕТИТОР

Тайны посимвольного десятичного преобразования: просто и понятно

Оглавление
  • Зачем постигать тайны посимвольного десятичного преобразования?

Чтобы научиться решать задание №5 ЕГЭ Информатика

Задание №5 — это упражнение базового уровня сложности. Оно нацелено на проверку навыков экзаменуемого в выполнении и анализе простых алгоритмов.

🕒Время на выполнение задания = 4 минуты. Правильный ответ приносит 1 балл

Настоятельно рекомендую ознакомится с предыдущей статьей по решению Задания №5 ЕГЭ ↓

Данный материал посвящен подробному разбору первого типа Заданий №5 "Посимвольно двоичное преобразование"

🔥Если вы готовитесь к ЕГЭ по информатике и ищете эффективные способы решения заданий, эта статья для вас!

Условие задачи →

Условие задачи ЕГЭ по Информатике задание №5 "Посимвольное десятичное преобразование"
Условие задачи ЕГЭ по Информатике задание №5 "Посимвольное десятичное преобразование"

Рассмотрим подробно все пункты, указанные в условии ⤵

Автомат получает на вход трёхзначное число

Трёхзначное число — это число, запись которого состоит из трёх знаков (цифр).

  • Про какой "автомат" идёт речь?

— В этой задаче под "автоматом" понимается конкретный алгоритм, который выполняет определенные операции и выдает результат. Таким образом, "автомат" представляет собой программу, написанную на Python.

-3

  • Что значит "получает на вход трёхзначное число"?

— Программа в Python должна обрабатывать (принимать на вход) только трёхзначные числа

  • Как получить трёхзначные числа в Python?

Использовать цикл for + функцию range()

-4

Range — это встроенная функция в Python, которая генерирует последовательность чисел

Функция range() хранит в себе список чисел, который начинается с первого указанного в скобках числа и заканчивается числом, на единицу меньшим второго. Поэтому range(1,4) — это 1, 2, 3

Цикл for + range позволяют получить все необходимые варианты трёхзначных чисел и выбрать подходящий

  • Как создать цикл for в Python?

Для написания алгоритма вы можете использовать любую удобную среду (IDLE, PyCharm или Visual Studio). Для начинающих программистов рекомендую использовать именно IDLE.

В качестве примера можно взять небольшой диапазон значений в range →

Пример работы циклом for() в Python. Диапазон от 1 до 6 (не включительно).
Пример работы циклом for() в Python. Диапазон от 1 до 6 (не включительно).

Более детально с принципами работы цикла for() вы можете ознакомиться в данном материале

Полный гайд по циклу FOR в Python
МОЙ РЕПЕТИТОР20 сентября 2024

→ Запишем первую строчку кода в итоговое решение ⤵

📍Основная программа:

Начало программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".
Начало программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".

❗ПРОВЕРКА КОДА

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

Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.

❓Ответы на вопросы по первому пункту условия:

Почему диапазон значений для range выбран именно такой?

— По условию задачи, автомат получает на вход трёхзначное число. Трёхзначные числа начинаются со 100 и заканчиваются на 999.

-8

Почему второе число из диапазона равно 1000?

— При использовании range, следует помнить, что вторая граница не учитывается. Это означает, что если вы установите верхнюю границу в 1000, программа завершит последовательность на 999.

Переходим к следующему этапу →

➁ По этому числу строится новое число по следующим правилам:

Данный пункт разделён на две части ↓

2.1. Складываются первая и вторая, а также вторая и третья цифры исходного числа.

Чтобы сложить отдельные цифры числа, нужно как-то получить эти цифры. Точнее, попробовать «вытащить» эти цифры из числа.

-9
  • Например, дано число х = 127

→ Сумма первой и второй цифр: 1 + 2 = 3

→ Сумма второй и третьей цифр: 2 + 7 = 9

  • Как «вытащить» цифру из числа?

☑ Для этого можно использовать индексы в Python. Индексы используются для доступа к элементам. Они позволяют получать или изменять отдельные элементы коллекции.

🔐Индексы — это ключ к тому, чтобы быстро найти и получить нужный элемент без поиска по всему числу.

-10

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

Для числа (х = 237) нужно вывести на экран сумму первой и второй, второй и третьей цифры (2 + 3 = 5, 3 + 7 = 10, ответ: 5 10):

📥 Дано:

  • a — переменная для суммы первой и второй цифр числа
  • x[0] нулевой индекс числа (х) или первая цифра числа (х)
  • x[1] первый индекс числа (х) или вторая цифра числа (х)
  • b — переменная для суммы второй и третьей цифры числа
  • x[2] второй индекс числа (х) или третья цифра числа (х)

Реализация на Python:

Код программы для сложения первой и второй, второй и третьей цифр числа (237) на Python (содержит ошибку).
Код программы для сложения первой и второй, второй и третьей цифр числа (237) на Python (содержит ошибку).

❗После запуска программы появляется ошибка.

Что означает данная ошибка?

Для понимания этой ошибки необходимо детально изучить текст, который выдаёт Python ⤵

  • Type Error — Ошибка типа (в переводе с английского) или ошибка в типах переменных
  • 'int' object is not subscriptable — 'int' не поддерживает индексацию

Это значит, что вы пытаетесь выполнить действие не применимое для данного типа переменной.

-12

Как ошибка "TypeError" влияет на программу?

Ошибка "TypeError" может негативно сказаться на работе программы. В Python индексы могут использоваться только с упорядоченными коллекциями данных, такими как списки (list), строки (str) и кортежи (tuple).

❗Программа не работает, потому что некорректно выбран тип переменной

  • Как исправить ошибку "TypeError"?

— Изменить тип переменной с (int) на (str)

Нельзя использовать индексы для работы с целыми числами (типа int, float)

-13

Для изменения типа переменной с (int) на (str) нужно перед переменной записать служебное слово str()

  • str(имя_переменной)
-14
Код программы для изменения типа переменной:
Код программы для изменения типа переменной (х = 237) с (int) на (str) Python.
Код программы для изменения типа переменной (х = 237) с (int) на (str) Python.

📍Теперь необходимо добавить метод str() в основную программу:

Начало программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".
Начало программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".

❗ПРОВЕРКА КОДА

Требуется проверить, изменяется ли тип переменной (x) при использовании функции str ⤵

Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.

☑ Программа работает верно

Возвращаемся к промежуточной задаче по вычислению суммы цифр для числа х = 237 →

Для числа (х = 237) нужно вывести на экран сумму первой и второй, второй и третьей цифры

  • Доработанный код программы с помощью метода str:
Код программы для сложения первой и второй, второй и третьей цифр числа (237) на Python (содержит ошибку).
Код программы для сложения первой и второй, второй и третьей цифр числа (237) на Python (содержит ошибку).

Отлично! Программа работает... но ответ получился неправильный (23 и 37). Почему не получились числа 5 и 10?

Для ответа на данной вопрос необходимо рассмотреть несколько важных моментов ⤵

❗3 ВАЖНЫХ МОМЕНТА

Важный момент🔻

Переменные (а) и (b) будут строчного типа (str)

Переменная (х) имеет строчный тип. В переменные (a) и (b) были записаны суммы цифр (символов) переменной (х). Следовательно, переменные (a) и (b) тоже будут иметь строчный тип (str).

Важный момент🔻

При сложении двух строк в Python будет выполнена операция конкатенации (склеивания) ⤵
Пример использования конкатенации в языке Python.
Пример использования конкатенации в языке Python.

📥 Конкатенация — это процесс соединения или объединения двух или более строк (или других элементов) в одну единую строку

-20

→ Представьте себе, что у вас есть две бумажки. На первой написано "Привет", а на второй – "мир". Если взять обе бумажки и склеить их вместе, то получится "Приветмир". Это и есть конкатенация: соединение двух строк в одну.

❸ Важный момент🔻

Сложение строк в Python приводит к их склеиванию, что в данном случае неприемлемо. В программе нужно получить число 5 путем сложения чисел 3 и 2. Таким образом, числа должны быть только целого типа (int), а не строкового (str).

Вывод:

Необходимо перевести переменные (a) и (b) из строчного типа (str) в числовой тип (int)

-21
  • Как изменить тип переменной с (str) на (int)?

— Использовать встроенный метод int()

int() преобразует строку или число другого типа в целое число

Доработанный код программы

Код программы для сложения первой и второй, второй и третьей цифр числа (237) на Python.
Код программы для сложения первой и второй, второй и третьей цифр числа (237) на Python.

Отлично! Все работает →

→ Необходимо внести изменения в основную программу ⤵

📍Основная программа:

Начало программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".
Начало программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".

❗CHECK UP

На экран необходимо вывести результаты всех предыдущих действий:

  1. Запуск цикла for для переменной (x)
  2. Создание переменной (d) и изменение типа переменной (x)
  3. Сложение первой и второй, второй и третьей цифры текущего значения (d)
  • Проверка в диапазоне чисел от 100 до 104 ⤵
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.
  • Проверка в диапазоне чисел от 231 до 235 ⤵
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.

❓Ответы на вопросы по второму пункту условия:

  • Что такое индексы в Python?

Индексы в Python — это как номера в книге или списке, которые помогают находить нужный элемент.

Пусть дана строка, состоящая из символов: "Python". У каждого элемента есть свой номер, начиная с 0: "P" — индекс 0, "y" — индекс 1, "t" — индекс 2 и так далее.

  • Зачем изменять типы переменных в Python?

Разные типы данных подходят для разных задач.

Например, дана строка ("123"). Задача: сложить эту строку с другим числом. Решение: изменить тип строки на int или float.

Переходим к следующему этапу →

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

  • О каких числах идёт речь?

— Полученные два числа это суммы первой и второй, второй и третьей цифры исходного числа (переменные a и b в программе)

  • Что значит в порядке убывания?

— Переменные (a) и (b) необходимо записать в порядке убывания, сначала большее число, потом меньшее.

Например:

если (a = 5) и (b = 7) → 75

если (a = 13) и (b = 8) → 138

-26

— Нужно определить какое из двух чисел больше, а какое меньше

Как определить большее (меньшее) число в Python?

— Использовать встроенную функцию max() или min()

  • max
Пример работы встроенной функции max в Python.
Пример работы встроенной функции max в Python.

→ max() — это встроенная функция в Python, которая позволяет найти максимальное значение среди переданных ей чисел (аргументов)

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

  • Как определить, какое число записывать вторым?

— Использовать встроенную функцию min()

Нет, не сможет.
Нет, не сможет.

Даже если Python будет знать, какое из чисел большее. Сможет ли программа автоматически определить, что второе число меньше?

Нет, не сможет.

  • min
Пример работы встроенной функции min в Python.
Пример работы встроенной функции min в Python.

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

→ Порядок действий:

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

Как записать числа в порядке убывания на Python?

  1. Определяем большее из двух чисел и записываем в новую переменную (one)
  2. Определяем меньшее из двух чисел и записываем в новую переменную (two)
  3. Переводим обе переменные (one, two) в строчный тип
  4. Используем операцию конкатенации (склеивания) и записываем переменные (one, two) в порядке убывания.
Код программы для записи двух чисел в порядке убывания в Python.
Код программы для записи двух чисел в порядке убывания в Python.
  • Необходимо внести изменения в основную программу →
Часть программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".
Часть программы для решения задания ЕГЭ №5 "Посимвольное десятичное преобразование".

ПРОВЕРКА КОДА

На экран необходимо вывести результаты всех предыдущих действий:

+ Запуск цикла for для переменной (x)

+ Создание переменной (d) и изменение типа переменной (x)

+ Сложение первой и второй, второй и третьей цифры текущего значения (d)

+ Нахождение наибольшего и наименьшего из двух чисел

+ Запись полученных двух чисел в порядке убывания

Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.
Проверка кода с помощью функции print(). Вывод на экран промежуточных результатов.

Переходим к следующему этапу →

➂ Пример. Исходное число: 348.

Суммы: 3  +  4  =  7; 4 + 8  =  12. Результат: 127

Третий пункт из условия.
Третий пункт из условия.
  • Для чего в условии задачи записан данный пример?

— Данный пример служит для проверки работы алгоритма

-34

Прежде чем записать итоговое решение, стоит запустить промежуточный алгоритм на предложенном примере. Если результаты совпали — хороший признак того, что алгоритм корректен.

❗Иногда ответ может совпасть с указанным в условии, но сам алгоритм будет содержать ошибки.

Проверка кода для числа (х = 348). Пример из условия.
Проверка кода для числа (х = 348). Пример из условия.
  • range(348, 349) — данный промежуток отображает только одно число это 348
  • print(total) — вывод текущего значения переменной (total) на экран

Переходим к следующему этапу →

Укажите наименьшее число, в результате обработки которого автомат выдаст число 1412

  • Что значит "в результате обработки которого"?

— Это число, которое будет получено после завершения алгоритма

  • Как в Python выбрать число, подходящее под определенные условия?

— Использовать встроенную конструкцию (if)

С помощью условия (if) можно написать код, который сам бы отсеивал не нужные варианты.

-36
  • Что значит if в Python?

— Это оператор, позволяющий выполнить определённый участок кода только при соблюдении условий.

✔ Если условие истинно (True), то программа выполнит код, находящийся внутри блока if.

✖ Если условие не выполняется (False), код внутри блока if будет пропущен

Пример кода в Python на понимание работы оператора (if)
Пример кода в Python на понимание работы оператора (if)

В данном примере оба условия будут выполнены ⤵

❶ В первом примере значение переменной (а) равно 30. В условии указано: если переменная (а) превышает 15, тогда выполняется код внутри блока (if).

Внутри блока (if) находится функция (print), которая и будет вызвана. В результате на экране будет напечатано сообщение: "Переменная (а) больше 15".

❷ Во втором примере значение переменной (а) остаётся прежним (а = 30), значение переменной b = 28. В условии указано: если переменная (а) больше переменной (b), тогда выполняется код внутри блока (if).

Внутри блока (if) находится функция (print), которая и будет вызвана. В результате на экране будет напечатан сообщение: "Переменная (а) больше (b)".

❗Если текущее число равно 1412, то оно подходит. Если нет алгоритм продолжит дальше искать необходимое число

Пример кода в Python на понимание работы оператора (if) и (if - else).
Пример кода в Python на понимание работы оператора (if) и (if - else).
  • Как работает конструкция else?

— Эта часть кода выполняется, если условие ложно. Когда не сработал оператор (if)

📍Остается добавить проверку на условие в основной алгоритм и решение готово

🔥Итоговая программа

Решение Задание №5 ЕГЭ "Посимвольное десятичное преобразование" ⤵

Код программы для решения задания №5 ЕГЭ "Посимвольное десятичное преобразование".
Код программы для решения задания №5 ЕГЭ "Посимвольное десятичное преобразование".

Ответ: 395

❓Ответы на вопросы по итоговому решению:

  • Является ли число 395 действительно наименьшим ответом?

— Да, так как цикл for запущен по возрастанию (от меньшего значения к большему)

Поэтому результаты работы алгоритма тоже будут выводиться по возрастанию

  • Как выполнить проверку?

— Убрать оператор break и вывести на экран все возможные варианты ответов

(Проверка) Код программы для решения задания №5 ЕГЭ "Посимвольное десятичное преобразование".
(Проверка) Код программы для решения задания №5 ЕГЭ "Посимвольное десятичное преобразование".

395 наименьший результат работы алгоритма. После числа 395 результат только увеличивается: 486, 577, 593 и так далее.

👏 Поздравляю! Получен верный ответ и программа работает без ошибок.

  • В Python, код (end = ' ') используется в функции print() и задает, что будет выведено в конце строки, после того как она будет распечатана.
  • При использовании (end = ' ') после вывода текста вместо перевода строки добавляется пробел. Это позволяет печатать несколько значений в одной строке, разделенных пробелами.

Про break

Оператор break используется для немедленного выхода из цикла. Это может быть полезно, когда вы хотите остановить выполнение цикла при выполнении определенного условия.

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

  • Пример кода с циклом for, в котором отсутствует оператор break
Пример работы программы для цикла for без оператора break.
Пример работы программы для цикла for без оператора break.
  • Пример кода с циклом for + break
Пример работы программы для цикла for с оператором break.
Пример работы программы для цикла for с оператором break.

Вывод значений переменной (x) прекратиться после (x = 3). Условие выполнено, оператор break сработал и завершил цикл for.

Оператор break может использоваться как в циклах for, так и в циклах while.

😉 Good job! Keep it up! Good luck!

-43

Ещё материалы по теме Python:

Полный гайд по циклу FOR в Python
МОЙ РЕПЕТИТОР20 сентября 2024

Наука
7 млн интересуются