Крылов СС, Чуркина ТЕ. ЕГЭ 2022. Информатика и ИКТ. Типовые экзаменационные варианты. 20 вариантов. - Издательство: Национальное образование, 2022 г.

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

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

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

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

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

 

ВАРИАНТ 1

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 2022 идущих подряд цифр 1? В ответе запишите полученную строку.
НАЧАЛО
    ПОКА нашлось (11111) ИЛИ нашлось (555)
         ЕСЛИ нашлось (11111)
            ТО заменить (11111, 555)
            ИНАЧЕ заменить (555, 5)
        КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
КОНЕЦ

Решение и ответ

s="1"*2022
while "11111" in s or "555" in s:
    if "11111" in s:
        s=s.replace("11111","555",1)
    else:
        s=s.replace("555","5",1)
print(s)

Ответ: 5511

ВАРИАНТ 2

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 2022 идущих подряд цифр 1? В ответе запишите полученную строку.
НАЧАЛО
    ПОКА нашлось (11) ИЛИ нашлось (555)
         ЕСЛИ нашлось (11)
            ТО заменить (11, 555)
            ИНАЧЕ заменить (555, 5)
        КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
КОНЕЦ

Решение и ответ

s="1"*2022
while "11" in s or "555" in s:
    if "11" in s:
        s=s.replace("11","555",1)    
    else:
        s=s.replace("555","5",1)
print(s)

Ответ: 5

ВАРИАНТ 3

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 50 идущих подряд цифр 1? В ответе запишите полученную строку.
НАЧАЛО
    ПОКА нашлось (11111) ИЛИ нашлось (15)
         ЕСЛИ нашлось (11111)
            ТО заменить (11111, 15)
            ИНАЧЕ заменить (15, 1)
        КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
КОНЕЦ

Решение и ответ

s="1"*50
while "11111" in s or "15" in s:
    if "11111" in s:
        s=s.replace("11111","15",1)
    else:
        s=s.replace("15","1",1)
print(s)

Ответ: 11

ВАРИАНТ 4

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 65 идущих подряд цифр 1? В ответе запишите полученную строку.
НАЧАЛО
    ПОКА нашлось (11111) ИЛИ нашлось (15)
         ЕСЛИ нашлось (11111)
            ТО заменить (11111, 15)
            ИНАЧЕ заменить (15, 1)
        КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
КОНЕЦ

Решение и ответ

s="1"*65
while "11111" in s or "15" in s:
    if "11111" in s:
        s=s.replace("11111","15",1)
    else:
        s=s.replace("15","1",1)
print(s)

Ответ: 1

ВАРИАНТ 5

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

Решение и ответ

s="1"*70
while "1111" in s or "2222" in s:
    if "1111" in s:
        s=s.replace("1111","22",1)
    else:
        s=s.replace("2222","11",1)
print(s)

Ответ: 22

ВАРИАНТ 6

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 71 идущей подряд цифры 2? В ответе запишите полученную строку.
НАЧАЛО
    ПОКА нашлось (1111) ИЛИ нашлось (2222)
         ЕСЛИ нашлось (1111)
            ТО заменить (1111, 22)
            ИНАЧЕ заменить (2222, 11)
        КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
КОНЕЦ

Решение и ответ

s="2"*71
while "1111" in s or "2222" in s:
    if "1111" in s:
        s=s.replace("1111","22",1)
    else:
        s=s.replace("2222","11",1)
print(s)

Ответ: 112

ВАРИАНТ 7

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

Решение и ответ

s="1"*91
while "2222" in s or "1111" in s:
    if "2222" in s:
        s=s.replace("2222","11",1)
    else:
        s=s.replace("1111","22",1)
print(s)

Ответ: 22111

 

 

 

Добавить комментарий


РСЯ футер

© 2017 Компьютерный клуб "КОД". Все права защищены.