Добавить в корзинуПозвонить
Найти в Дзене
ЕГЭ информатика

Исполнитель Редактор (информатика ЕГЭ 2024 №12) / Python

Разбор задания
Обычно задание выглядит следующим образом: В первых 3 абзацах объясняется работа программы. Если коротко, то Редактор получает на вход строку цифр и делает замену комбинации одних цифр на другие. Что нужно знать
По факту для решения этой задачи всё что нужно знать это цикл while, операторы if / else и команду .replace() (замена) Решение
Работать надо будет со строкой, а не с целым числом, поскольку команда .replace() - это метод для работы со строками.
1) Сначала создаём переменную str, которой присвоим нашу идущие подряд цифры из задания, в данном случае 68 идущих подряд цифр 8, но чтобы не прописывать все 68 цифр 8 (str = "8888888..."), стоит создавать переменную так:
str = "8" * 68 #создать 68 цифр 8
#Примечание - если в задаче идёт к примеру подряд 30 цифр 6 и после них 25 цифр 39, то создание переменной будет выглядеть так: str = "6" * 30 + "39" * 25
2) Далее создаём цикл while и пишем условие нашей задачи, в данном случае оно звучит так: "ПОКА нашлось (222) ИЛИ

Разбор задания
Обычно задание выглядит следующим образом:

скриншот из задания на решу егэ https://inf-ege.sdamgia.ru/
скриншот из задания на решу егэ https://inf-ege.sdamgia.ru/

В первых 3 абзацах объясняется работа программы. Если коротко, то Редактор получает на вход строку цифр и делает замену комбинации одних цифр на другие.

Что нужно знать
По факту для решения этой задачи всё что нужно знать это цикл while, операторы if / else и команду .replace() (замена)

Решение
Работать надо будет со строкой, а не с целым числом, поскольку команда .replace() - это метод для работы со строками.


1) Сначала создаём переменную str, которой присвоим нашу идущие подряд цифры из задания, в данном случае 68 идущих подряд цифр 8, но чтобы не прописывать все 68 цифр 8 (str = "8888888..."), стоит создавать переменную так:
str = "8" * 68 #создать 68 цифр 8
#Примечание - если в задаче идёт к примеру подряд 30 цифр 6 и после них 25 цифр 39, то создание переменной будет выглядеть так: str = "6" * 30 + "39" * 25


2) Далее создаём цикл while и пишем условие нашей задачи, в данном случае оно звучит так: "ПОКА нашлось (222) ИЛИ нашлось (888)

Соответственно условие цикла будет выглядеть так:
while "222" in str or "888" in str:
Если перевести дословно, то звучит это так: пока в переменной str есть символы "222" или "888", то выполнить следующие действия.

3) Теперь мы должны написать какие команды будут выполняться и при каких условиях, а именно:
Если есть 222 => заменить на 8
Иначе 888 => заменить на 2


Как работает команда .replace(): эта команда имеет следующий синтаксис: str.replace(old, new, count)
old - символы, которые нужно заменить
new - символы, которые нужно вставить
count - необязательный параметр, который говорит о том, сколько раз нужно произвести замену, но в нашем случае он необходим


Код будет выглядеть следующим образом:
if ("222" in str):
ㅤㅤstr=str.replace ("222", "8", 1)
else:
ㅤㅤstr=str.replace ("888", "2", 1)
#Примечание -
лучше не писать else (иначе), а вместо него всегда писать if (если). Так будет меньше вероятность ошибиться, если условий будет несколько.

4) Остаётся только распечатать получившуюся строку вне тела цикла while, а после него:
print(str)

Если собрать весь код воедино, то он будет выглядеть вот так:
str="8" * 68
while ("222" in str) or ("888" in str):
ㅤㅤif ("222" in str):
ㅤㅤㅤㅤstr=str.replace ("222", "8", 1)
ㅤㅤelse:
ㅤㅤㅤㅤstr=str.replace ("888", "2", 1)
print(str)

Ответ: 28

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