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

Содержание

Слайд 2

Информатика. ЕГЭ-2021. Задание 12 Задание 12 Проверяемые элементы содержания: умение исполнить

Информатика. ЕГЭ-2021. Задание 12

Задание 12

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

исполнителя с фиксированным набором команд
Уровень сложности: повышенный
Примерное время выполнения: 6 минут
Слайд 3

Информатика. ЕГЭ-2021. Задание 12 Демонстрационный вариант ЕГЭ-2021 Исполнитель Редактор получает на

Информатика. ЕГЭ-2021. Задание 12

Демонстрационный вариант ЕГЭ-2021

Исполнитель Редактор получает на вход строку

цифр и преобразовывает её.
Редактор может выполнять две команды, в обеих командах v и w обозначают
цепочки цифр.
А) заменить (v, w)
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v)
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Слайд 4

Информатика. ЕГЭ-2021. Задание 12 Цикл ПОКА условие последовательность команд КОНЕЦ ПОКА

Информатика. ЕГЭ-2021. Задание 12

Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА выполняется, пока

условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие
ложно).
Слайд 5

Информатика. ЕГЭ-2021. Задание 12 Какая строка получится в результате применения приведённой

Информатика. ЕГЭ-2021. Задание 12

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

программы к строке, состоящей из 70 идущих подряд цифр 8?
В ответе запишите полученную строку.
НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (8888)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 88)
ИНАЧЕ заменить (8888, 22)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Слайд 6

Информатика. ЕГЭ-2021. Задание 12 Создание строки: Имя строки = «символы» *

Информатика. ЕГЭ-2021. Задание 12

Создание строки:
Имя строки = «символы» * множитель
st =

«8» * 7 # получим st = «8888888» st = «87» * 4 # получим st = «87878787»
st = «8» * 4 + «7» * 3 # получим st = «8888777»

Ключевые моменты

Слайд 7

Информатика. ЕГЭ-2021. Задание 12 Поиск в строке: in – проверяет вхождение

Информатика. ЕГЭ-2021. Задание 12

Поиск в строке: in – проверяет вхождение подстроки

в строку. Возвращает True или False. st = "8" * 4 # получим st = «8888»
print(st) ) # вывод 8888
print("22" in st) # вывод False
print("88" in st) # вывод True
st = "8" * 4
if "88" in st:
print("YES")
else:
print("NO")

Ключевые моменты

Слайд 8

Информатика. ЕГЭ-2021. Задание 12 Команда заменить: Метод replace возвращает копию строки,

Информатика. ЕГЭ-2021. Задание 12

Команда заменить:
Метод replace возвращает копию строки, где выполнена

указанная замена.
Синтаксис: replace(«что заменить», «на что заменить»[, n]), где n – необязательный параметр, показывающий, сколько первых вхождений заменить.
st = «8» * 4 # получим st = «8888»
print(st) # вывод 8888 print(st.replace(“88”, “2”)) # вывод 22 print(st.replace(“88”, “2”, 1)) # вывод 288

Ключевые моменты

Слайд 9

Информатика. ЕГЭ-2021. Задание 12 Метод replace возвращает копию строки, сама строка

Информатика. ЕГЭ-2021. Задание 12

Метод replace возвращает копию строки, сама строка не

меняется.
st = «8» * 4 # получим st = «8888»
print(st) # вывод 8888 print(st.replace(“88”, “2”, 1)) # вывод 288 print(st) # вывод 8888
Необходимо менять исходную сроку:
st = «8» * 4 # получим st = «8888»
print(st) # вывод 8888 st = st.replace(“88”, “2”, 1) # получим st = «288» print(st) # вывод 288

Ключевые моменты

Слайд 10

Информатика. ЕГЭ-2021. Задание 12 Какая строка получится в результате применения приведённой

Информатика. ЕГЭ-2021. Задание 12

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

программы к строке, состоящей из 70 идущих подряд цифр 8?
В ответе запишите полученную строку.

НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (8888)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 88)
ИНАЧЕ заменить (8888, 22)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

st = "8" * 70
while "2222" in st or "8888" in st:
if "2222" in st:
st = st.replace("2222", "88", 1)
else:
st = st.replace("8888", "22", 1)
print(st) # 22

Решение

Слайд 11

Информатика. ЕГЭ-2021. Задание 12 Какая строка получится в результате применения приведённой

Информатика. ЕГЭ-2021. Задание 12

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

программы к строке, состоящей из 21 цифры, причём первые 9 цифр – восьмёрки,
а остальные – пятёрки? В ответе запишите полученную строку.

НАЧАЛО
ПОКА нашлось (555) ИЛИ нашлось (888) ПОКА нашлось (555) заменить (555, 8) КОНЕЦ ПОКА ПОКА нашлось (888) заменить (888, 5) КОНЕЦ ПОКА КОНЕЦ ПОКА
КОНЕЦ

st = "8" * 9 + "5" * 12
while "555" in st or "888" in st:
while "555" in st:
st = st.replace("555", "8", 1)
while "888" in st:
st = st.replace("888", "5", 1)
print(st) # 858

Пример

Слайд 12

Информатика. ЕГЭ-2021. Задание 12 Какая строка получится в результате применения приведённой

Информатика. ЕГЭ-2021. Задание 12

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


к строке вида 1…12…2 (2019 единиц и 2019 двоек)? В ответе запишите полученную строку.

НАЧАЛО
ПОКА нашлось (222) заменить (222, 1) заменить (111, 2) КОНЕЦ ПОКА
КОНЕЦ

st = "1" * 2019 + "2" * 2019
while "222" in st:
st = st.replace("222", "1", 1)
st = st.replace("111", "2", 1)
print(st) # 21

Пример

Слайд 13

Информатика. ЕГЭ-2021. Задание 12 Создание строки Строка = «символ» * множитель

Информатика. ЕГЭ-2021. Задание 12

Создание строки
Строка = «символ» * множитель
Проверка «Есть ли

в строке»
Команда in
Есть ли подстрока в строке
Замена подстроки в строке
Метод replace Сделать нужное количество замен, заменить исходную строку

Итоги