412.50K

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

1.

Разбор решения задач
на анализ результата
исполнения алгоритма
Подходы к решению заданий № 12 ЕГЭ-2021
Гребенникова Ирина Андреевна,
учитель информатики ГБОУ Школа № 224

2.

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

3.

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

4.

Информатика. ЕГЭ-2021. Задание 12
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие
ложно).
4

5.

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

6.

Информатика. ЕГЭ-2021. Задание 12
Ключевые моменты
Создание строки:
Имя строки = «символы» * множитель
st = «8» * 7
# получим st = «8888888»
st = «87» * 4
# получим st = «87878787»
st = «8» * 4 + «7» * 3
# получим st = «8888777»
6

7.

Информатика. ЕГЭ-2021. Задание 12
Ключевые моменты
Поиск в строке:
in – проверяет вхождение подстроки в строку. Возвращает True или False.
st = "8" * 4
print(st) )
print("22" in st)
print("88" in st)
# получим st = «8888»
# вывод 8888
# вывод False
# вывод True
st = "8" * 4
if "88" in st:
print("YES")
else:
print("NO")
7

8.

Информатика. ЕГЭ-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
8

9.

Информатика. ЕГЭ-2021. Задание 12
Ключевые моменты
Метод replace возвращает копию строки, сама строка не меняется.
st = «8» * 4
print(st)
print(st.replace(“88”, “2”, 1))
print(st)
# получим st = «8888»
# вывод 8888
# вывод 288
# вывод 8888
Необходимо менять исходную сроку:
st = «8» * 4
print(st)
st = st.replace(“88”, “2”, 1)
print(st)
# получим st = «8888»
# вывод 8888
# получим st = «288»
# вывод 288
9

10.

Информатика. ЕГЭ-2021. Задание 12
Решение
Какая строка получится в результате применения приведённой ниже программы
к строке, состоящей из 70 идущих подряд цифр 8?
В ответе запишите полученную строку.
НАЧАЛО
st = "8" * 70
ПОКА нашлось (2222) ИЛИ нашлось (8888)
while "2222" in st or "8888" in st:
ЕСЛИ нашлось (2222)
ТО заменить (2222, 88)
ИНАЧЕ заменить (8888, 22)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
if "2222" in st:
st = st.replace("2222", "88", 1)
else:
st = st.replace("8888", "22", 1)
print(st)
# 22
10

11.

Информатика. ЕГЭ-2021. Задание 12
Пример
Какая строка получится в результате применения приведённой ниже программы
к строке, состоящей из 21 цифры, причём первые 9 цифр – восьмёрки,
а остальные – пятёрки? В ответе запишите полученную строку.
НАЧАЛО
st = "8" * 9 + "5" * 12
ПОКА нашлось (555) ИЛИ нашлось (888)
ПОКА нашлось (555)
заменить (555, 8)
КОНЕЦ ПОКА
ПОКА нашлось (888)
заменить (888, 5)
КОНЕЦ ПОКА
КОНЕЦ ПОКА
while "555" in st or "888" in st:
КОНЕЦ
print(st)
while "555" in st:
st = st.replace("555", "8", 1)
while "888" in st:
st = st.replace("888", "5", 1)
# 858
11

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
12

13.

Информатика. ЕГЭ-2021. Задание 12
Итоги
Создание строки
Строка = «символ» * множитель
Проверка «Есть ли в строке»
Команда in
Есть ли подстрока в строке
Замена подстроки в строке
Метод replace
Сделать нужное количество замен, заменить исходную строку
13

14.

Подходы к решению заданий № 12 ЕГЭ-2021
Спасибо за внимание!
Гребенникова Ирина Андреевна,
учитель информатики ГБОУ Школа № 224,
grebennikova_i_a@mail.ru
English     Русский Правила