Задание № 12 (ДЕМО ФИПИ КЕГЭ 2021)



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

Разбор заданий № 12 КЕГЭ 2021

Исполнители Редактор, Чертежник, Робот

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

(повышенный уровень, время – 6 мин)

Немного теории:

Алгоритм— конечная последовательность шагов в решении задачи, приводящая от исходных данных к требуемому результату.

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

Разрабатывать алгоритмы может только человек.

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

Исполнитель устройство, способное выполнять определённый набор команд.

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

Система команд исполнителя — совокупность команд, которые он способен выполнять.

 

Среди автоматических устройств наиболее совершенными исполнителями являются роботы. Во многих случаях и сам человек является исполнителем алгоритмов.

 

Исполнитель “РЕДАКТОР

Исполнитель Редактор — обрабатывает текстовые строки. Он получает на вход некоторую текстовую строку и преобразует её по заданным правилам.

Исполнитель Редактор может выполнять две команды (в них обозначения v и w обозначают некоторые последовательности — цепочки символов);

заменить (v, w) — заменяет в строке первое встреченное при просмотре слева направо вхождение цепочки символов v на цепочку w; если же цепочка символов v в строке не найдена, выполнение данной команды не меняет строку;

нашлось (v) — проверяет, встречается ли цепочка символов v в обрабатываемой текстовой строке, и возвращает логическое значение “истина” или “ложь”; сама текстовая строка при этом не изменяется.

Алгоритм обработки текстовой строки реализуется при помощи конструкций цикла ПОКА и ветвления (ЕСЛИ ... ТО ... ИНАЧЕ).


 

· команда ветвления:

выполняется команда1 (если условие истинно) или команда2 (если условие ложно), где условие — это команда проверки наличия препятствия;

· команда цикла:

 

выполняется, пока условие истинно (условие — это команда проверки наличия препятствия).

 

Если в цикле ПОКА размещено несколько операторов ЕСЛИ, то:

• проверяется условие выполнения цикла; если оно ложно, то цикл не выполняется вообще;

• выполняется первый оператор ЕСЛИ (согласно заданному в нём условию);

• выполняется второй оператор ЕСЛИ (согласно заданному в нём условию);

• выполняется последний оператор ЕСЛИ (согласно заданному в нём условию);

• только после завершения выполнения всех операторов ЕСЛИ, записанных в теле цикла, выполняется новая проверка условия в цикле ПОКА для выяснения, должен ли цикл быть повторен.

 

РЕКОМЕНДАЦИИ для решения задач исполнителя РЕДАКТОР:

Задачи данного типа можно решать следующими способами:

 

1. аналитически (без применения информационных технологий);

2. в ручном режиме в текстовом редакторе, например, Блокнот, TextEdit и др.:

 

a. создать строку символов;

b. имитируя действия исполнителя, применить к строке заданную программу.

3. перевести программу на язык программирования.

на языке исполнителя РЕДАКТОР

на языка программирования Python  

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

while <условие> : последовательность команд  

ЕСЛИ условие

ТО команда1

ИНАЧЕ команда2 КОНЕЦ ЕСЛИ

if <условие>: команда1 else: команда2  

заменить (v, w)

S.replace( v, w, 1 )  
           

Метод replace [1]

Метод replace заменяет все вхождения одной строки на другую.
Формат: S.replace(old, new) — заменить в строке S все вхождения подстроки old на
подстроку new .
S.replace(old, new, count) – заменены будут не все вхождения, а только не больше,
чем первые count из них.

Задание № 12 (ДЕМО ФИПИ КЕГЭ 2021)

(соответствует заданию № 14 ДЕМО ЕГЭ-2020 ФИПИ)

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

решение на Python:

НАЧАЛО

ПОКА нашлось (2222) ИЛИ нашлось (8888)

ЕСЛИ нашлось (2222)

ТО заменить (2222, 88)

ИНАЧЕ заменить (8888, 22)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА КОНЕЦ

Ответ: 22
Решение:

  Действие Результат
1. нашлось (8888): заменить (8888, 22), заменить (8888, 22) 22228...888 (70 - 8 = 62 цифр 8)
2. нашлось (2222): заменить (2222, 88) 888...888 (62 + 2 = 64 цифр 8)
 

В результате выполнения блока команд (за один период) строка, состоящая из идущих подряд цифр 8, сокращается на (70 - 64) 6 символов.

...

Выполним целочисленное деление 70 на 6: Целая часть – [70 / 6] = 11, остаток – {70 / 6} = 4. За 11 периодов строка сократится до 4 символов: 8888

n нашлось (8888): заменить (8888, 22) 22

Задание 12 № 36025 (ЕГЭ−2021. Досрочная волна)

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

НАЧАЛО                                                                                                      решение на Python:

ПОКА нашлось (1111) ИЛИ нашлось (88888)

ЕСЛИ нашлось (1111)

ТО заменить (1111, 888)

ИНАЧЕ заменить (88888, 888)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

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

Решение:

  Действие Результат
1. нашлось (1111): заменить (1111, 888), заменить (1111, 888), ... 8888...881 60
 

[81/4] = 20 раз “1111” заменяются “888” ⇒ 60 цифр “8”; {81/4} = 1 – в конце остается “1”

2. нашлось (88888): заменить (88888, 888), … 88888888...88881 36
 

[60/5] = 12 раз “88888” заменяются на “888” и {60/5} = 0 – ⇒ 36 цифр “8”

3. нашлось (88888): заменить (88888, 888), … 88888...881 22
 

[36/5] = 7 раз “88888” заменяются на “888”, {36/5} = 1 – ⇒ 22 цифры “8”

4. нашлось (88888): заменить (88888, 888), … 888888888888881 14
 

[22/5] = 4 раза “88888” заменяются на “888”, {22/5} = 2 – ⇒ 14 цифр “8”

5. нашлось (88888): заменить (88888, 888), … 88888888881 10
 

[14/5] = 2 раза “88888” заменяются на “888”, {14/5} = 4 – ⇒ 10 цифр “8”

6. нашлось (88888): заменить (88888, 888), … 8888881 6
 

[10/5] = 2 раза “88888” заменяются на “888”, {10/5} = 0 – ⇒ 6 цифр “8”

7. нашлось (88888): заменить (88888, 888), … 88881 4
 

[6/5] = 1 раз “88888” заменяются на “888”, {6/5} = 1 – ⇒ 4 цифры “8”

Ответ: 88881


Дата добавления: 2022-07-02; просмотров: 32; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!