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

Решение задания №12 ЕГЭ Информатика (Python) [2 часть]

🔥Если вы готовитесь к ЕГЭ по информатике и ищете эффективные способы решения заданий, эта статья для вас! Вы овладеете навыком решения сложных задач, используя базовые алгоритмы. Вы узнаете, как создать строку переменной длины и как вычислить сумму цифр в этой строке. Научитесь избегать наиболее распространенных ошибок и научитесь эффективно применять полученные знания на реальном экзамене. Важно понимать базовые принципы перед тем, как переходить к более сложным задачам. Это поможет вам развить логическое мышление и улучшить навыки программирования. Поэтому настоятельно рекомендую ознакомится с предыдущей статьей по решению Задания №12 ЕГЭ [1 часть]🔽 После прочтения, вы освоите решение простых задач и поймёте основные алгоритмы. В конечном итоге это поможет вам стать более опытным и уверенным разработчиком. 📌Задача взята с сайта: https://kpolyakov.spb.ru Дана программа для исполнителя Редактор: НАЧАЛО
ПОКА нашлось (71) ИЛИ нашлось (72) ИЛИ нашлось (73)
ЕСЛИ нашлось (71)
ТО зам
Оглавление

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

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

Важно понимать базовые принципы перед тем, как переходить к более сложным задачам. Это поможет вам развить логическое мышление и улучшить навыки программирования. Поэтому настоятельно рекомендую ознакомится с предыдущей статьей по решению Задания №12 ЕГЭ [1 часть]🔽

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

📌Задача взята с сайта: https://kpolyakov.spb.ru

Условие:

Дана программа для исполнителя Редактор:

НАЧАЛО
ПОКА нашлось (71) ИЛИ нашлось (72) ИЛИ нашлось (73)
ЕСЛИ нашлось (71)
ТО заменить (71, 227)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (72)
ТО заменить (72, 37)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (73)
ТО заменить (73,17)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

На вход приведённой выше программе поступает строка, начинающаяся с символа «7», а затем содержащая n+1 цифру «1», n+2 цифр «2» и n+3 цифр «3», расположенных в произвольном порядке. Определите значение n, при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы равна 9n.

🏁План действий:

План действий для решения задания №12 Исполнитель редактор.
План действий для решения задания №12 Исполнитель редактор.
  • В первую очередь нужно создать строку, с которой мы и будем работать. Возникнут определённые трудности, так как точное количество символов не известно. Далее необходимо перевести условие с алгоритмического языка на язык Python.
  • В задаче идёт речь про сумму цифр в строке, поэтому её тоже нужно будет вычислить. Воспользуемся методом count()

📍А теперь, приступим!📍

-2

❶ Как создать и записать исходную строку?

По условию известно, что поступает строка, начинающаяся с символа «7», а затем содержащая n+1 цифру «1», n+2 цифр «2» и n+3 цифр «3», расположенных в произвольном порядке.

Примерный вид строки : 71 ... 1 ... 2 ... 2 ... 3 ... 3 ...

Строка, начинается с символа «7», потом идёт какое - то количество символов «1», дальше идёт какое - то количество символов «2» и в конце строки будет какое - то количество символов «3»

💠Как записать строку 71 ... 1 ... 2 ... 2 ... 3 ... 3 ... в Python?

✅Использовать операцию конкатенации (сложения) строк

С помощью сложения (склеивания) строк можно создать одну общую строку. В данном примере необходимо соединить символ 7 + несколько символов 1 + несколько символов 2 + несколько символов 3

Пример создания строки с использованием конкатенации (без учета n):

Алгоритм создания строки с помощью операции конкатенации.
Алгоритм создания строки с помощью операции конкатенации.

В данном примере не используется переменная (n), которая дана в условии. И это переменная как раз отвечает за количество символов «1», «2» и «3»

💠Что же такое n?

-4
-5
-6

Что в итоге удалось понять про переменную n:

  • n - целое число
  • положительное число (n > 0)
  • может принимать значения от 0 до +∞ (0, 1, 2, 3 ... )

И всё же, мы так и не выяснили...

Какое именно число взять вместо n?

❌ На этот вопрос нет точного ответа.

Почему?

В данной задаче под (n) подразумевается диапазон чисел, а не одно конкретное число. То есть переменная n может быть любым, целым и положительным числом: n = 1, 2, 15, 27, 155 ... и так далее.

Как поступать в таком случае?

Если нет возможности определить точное значение для переменной, необходимо использовать цикл for

Данная процедура позволяет избежать ручного перебирания (гадания) точного значения для переменной. Python как бы выполняет за программиста «грязную» работу. Не нужно гадать, что именно взять вместо n, не нужно каждый раз проверять n и запускать программу.

❗Вместо (n) необходимо указать диапазон чисел, а не одно конкретное число.

Выбираем диапазон для переменной в цикле for, запускаем программу и ... просто ждём результат. Пусть Python работает за нас 😊

❗Благодаря циклу for можно задать любой диапазон значений для переменной.

Ниже приведены примеры различных диапазонов для переменной (n), с помощью цикла for 🔽

Цикл for и функция range, позволяющая задавать определённый диапазон для переменных.
Цикл for и функция range, позволяющая задавать определённый диапазон для переменных.

В каждом примере, переменная n будет принимать значения из диапазона цикла for.

💠Как выбрать диапазон для цикла for?

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

Начало программы для решения задания №12. Создание строки с помощью цикла for.
Начало программы для решения задания №12. Создание строки с помощью цикла for.

Исходная строка записана, диапазон для переменной (n) задан. Переходим к следующему шагу 🔜

❷ Переводим алгоритм на язык Python

На этом этапе необходимо перевести команды из условия задачи на язык Python. Стоит отметить, что большинство команд можно просто перевести на английский. То есть, команда ПОКА из условия переводится на английский как while. Именно так и запишем в Python. Команда ЕСЛИ переводится как if, так и запишем!

Напоминаю, что более подробно с основными этапами решения Задания №12 вы можете ознакомится в этой статье 🔽

Давайте начнём записывать команды на Python!

Пока = while, нашлось = in, или = or
Пока = while, нашлось = in, или = or
  • ПОКА == while
    цикл будет работать до тех пор, пока выполняется условие
  • нашлось (71) == '71' in s
    '71' in s – условие цикла while. Пока в строке есть '71' цикл будет выполнятся
  • ИЛИ == or
    логическое условие, в Python записывается как (or)
-10
  • ЕСЛИ нашлось (71) == if '71' in s
    if '71' in s – проверка вхождения строки '71' в строку s (наличие в строке)
  • ЕСЛИ == if
    логическое условие (если ... то ...)
replace() в переводе с английского - заменять, замещать.
replace() в переводе с английского - заменять, замещать.
  • ТО заменить (71, 227) ==> s = s.replace('71', '227', 1)
    метод replace() - заменяет указанный символ или подстроку на новую

Записываем все команды в общий алгоритм. Внимательно следим за отступами, условием (if) и методом replace() в каждом случае. На выходе будет фрагмент кода без начального ввода данных и расчёта суммы. Очень неплохо!

Фрагмент кода без ввода данных. Переписанное условие задачи на язык Python.
Фрагмент кода без ввода данных. Переписанное условие задачи на язык Python.

Исходная строка записана, диапазон для переменной (n) задан. Алгоритм переписан на язык Python. Переходим к следующему шагу 🔜

❸ Вычисляем сумму цифр получившейся строки

сумма всех цифр, находящихся в конечной строке

❗Не забываем создать и обнулить переменную для вычисления суммы. Лучше, в самом начале программы. Назовём нашу переменную: sum1

-13
В программировании переменные используются для хранения значений, которые могут изменяться во время выполнения программы.

Если бы вы не использовали переменную для суммы, вам пришлось бы каждый раз пересчитывать её вручную, что было бы неудобно и неэффективно.

💠Как определить сумму цифр в строке?

Настоятельно рекомендую ознакомится с предыдущей статьей (раздел - метод count):

Как найти сумму цифр числа в Python?
МОЙ РЕПЕТИТОР9 июня 2024

💠Как использовать метод count() для нахождения суммы цифр в строке?

В первую очередь придерживаемся основного правила:

Чтобы подсчитать сумму цифр строки с помощью метода count(), нужно количество символов умножить на сам символ

Теперь необходимо определить какие символы используются в программе. Для этого внимательно смотрим на метод replace():

  • В первом методе replace('71', '227', 1) происходит замена символов 71 на 227. Это значит, что в конечной строке могут быть символы 2 или 7 🔽
-14
  • Следующий метод replace('72', '37', 1) заменяет подстроку 72 на 37. И это опять значит, что в конечной строке могут находится символы 3 и 7 🔽
-15
  • И последний метод replace('73', '17', 1) заменит символы 73 на 17. В конечной строке также могут быть символы 1 и 7 🔽
-16

В конечной строке (после завершения работы цикла while) могут получится следующие символы:

  • 2 | 7 | 3 | 7 | 1 | 7

Следовательно, при вычислении суммы цифр строки с помощью метода count() нужно использовать ИМЕННО ЭТИ СИМВОЛЫ: 1, 2, 3, 7

Как выбрать символы для нахождения суммы цифр строки, с помощью метода count().
Как выбрать символы для нахождения суммы цифр строки, с помощью метода count().

Теперь запишем точную формулу, по которой и будем вычислять сумму цифр в строке:

sum1 = s.count('1') + s.count('2') * 2 + s.count('3') * 3 + s.count('7') * 7

Исходная строка записана, диапазон для переменной (n) задан. Алгоритм переписан на язык Python и готова формула для вычисления суммы цифр. Переходим к следующему шагу 🔜

❹ Сравнить сумму цифр строки со значением (9n)

Сумма цифр строки найдена при помощи метода count(). Теперь необходимо сравнить получившуюся сумму с значением 9n.

Ещё раз внимательно читаем главный вопрос из условия задачи:

Определите значение n, при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы равна 9n

💠Что значит 9n?

Это значит, что число 9 умножается на переменную n. И это значение нужно сравнить с полученной суммой строки.

Чтобы сравнить два или более значений в Pyhon, необходимо использовать условие if (если):

Пример работы оператора if в Python.
Пример работы оператора if в Python.

Оператор if нужен в Python для того, чтобы программа могла «принимать решения». Он позволяет выполнять определённые команды в зависимости от того, верно ли заданное условие.

ЕСЛИ сумма строки == 9 * n: (то выводим ответ на экран)

Как записать условие в Python, если нужно сравнить сумму с определённым значением.
Как записать условие в Python, если нужно сравнить сумму с определённым значением.

❗Важный момент:

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

  • Оператор (равно равно) == используется для проверки равенства двух значений. Он возвращает True, если значения равны, и False, если они не равны.
-20
  • Оператор (равно) = используется для присвоения значения переменной. Это означает, что вы присваиваете определённое значение (например, число или строку) некоторой переменной.
Пример кода для работы с оператором равно (=), равно равно (==) и условием if.
Пример кода для работы с оператором равно (=), равно равно (==) и условием if.

Пора переходить к заключительному шагу 🔜

❺ Вывести подходящее значение (n) на экран

🔥Мы практически у цели. Осталось совсем чуть - чуть!

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

Ещё раз пробежимся по основным этапам решения:

  1. Создали и записали исходную строку ✅
  2. Перевели алгоритм на язык Python ✅
  3. Вычислили сумму цифр строки ✅
  4. Сравнили значение суммы со значением (9n) ✅

И наконец последний шаг:

🔽 5. Получить ответ с помощью команды print()

Чтобы получить ответ нужно попросить Python этот ответ вывести, то есть показать на экране. Для этого и используется функция print()

Функция print() в Python нужна для вывода текста или значений переменных на экран.

Вы просто пишете внутри скобок то, что хотите вывести, и программа это показывает. Это как сказать «напечатай» компьютеру (Python).

-22
Готовый алгоритм для решения задания №12 Исполнитель редактор (сложный уровень)
Готовый алгоритм для решения задания №12 Исполнитель редактор (сложный уровень)

Обратите внимание на отступы в программе. Это очень важно!

Если вам удалось написать правильный код, то в качестве ответа вы увидите заветное число:

Ответ: 20

👏Поздравляю! Вам удалось решить достаточно сложный вид задания №12 Исполнитель Редактор. Если научиться решать задания такой сложности, то на ЕГЭ никаких проблем с этим номером не возникнет!

Удачи!

🔜Материалы для успешной подготовки к ЕГЭ по информатике:

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