
Анализ циклического алгоритма с условиями
Штана Альберт Игоревич
В этой статье будет разобрано задание 12.
Рассмотрим типовые задачи из двенадцатого задания ЕГЭ по информатике.
Данное задание относится к повышенному уровню сложности.
Время выполнения задания ≈ 6 минут.
В данных задачах необходимо воспроизводить алгоритм исполнителя в среде программирования Python или КУМИР или в любой другой, для того чтобы получить ответ.
Исполнитель Редактор получает на вход строку символов и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Дана программа для Редактора:
НАЧАЛО
ПОКА нашлось (52) ИЛИ нашлось (2222) ИЛИ нашлось (1122)
ЕСЛИ нашлось (52)
ТО заменить (52, 11)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (2222)
ТО заменить (2222, 5)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (1122)
ТО заменить (1122, 25)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с цифры «5», а затем содержащая n цифр «2» (3 < n < 10 000).
Определите наибольшее значение n, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 64.
В задании у нас есть уже сама программа остается только переписать её с алгоритмического языка на язык программирования, например на Python, чтобы получить ответ.
for n in range(4, 10000): # 3<n<10000
s = '5' + '2' * n # Начинается с 5, а затем 2 * n
while '52' in s or '2222' in s or '1122' in s: # пока в строке s нашлось... ИЛИ... ИЛИ...
if '52' in s: # Если нашлось 52
s = s.replace('52', '11', 1) # заменить 52 на 11
if '2222' in s: # Аналогично тому что выше
s = s.replace('2222', '5', 1) # Аналогично тому что выше
if '1122' in s:
s = s.replace('1122', '25', 1)
# Всего в "числе" строке может быть только 3 знака(цифры) 1 2 5
sm = s.count('1')*1 + s.count('2')*2 + s.count('5')*5 # сумма цифр в строке
if sm == 64: # Если суммы цифр равна 64 по условию задачи
print(n) # Выводим ответ в консоль, видим наибольшее число 156, наименьшее 152
Если в задании есть какая-то переменная, то скорее всего, её нужно "прокрутить" в цикле. Здесь у нас переменная n, мы её "перебираем" в цикле. После запуска данного алгоритма получим ответ на задание.
Ответ: 156
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (666)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 6)
ИНАЧЕ заменить (666, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 239 идущих подряд цифр 6? В ответе запишите полученную строку.
Решение с помощью языка программирования Python.
s = '6' * 239
while ('2222' in s) or ('666' in s):
if '2222' in s:
s = s.replace('2222', '6', 1)
else:
s = s.replace('666', '2', 1)
print(s)
Здесь в начале формируется строка, состоящая из 239 шестёрок. Потом эта строка проходит в цикле с условием. Третий параметр в функции replace указывает сколько раз производить замену.
Ответ: 2266
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (25) ИЛИ нашлось (355) ИЛИ нашлось (555)
ЕСЛИ нашлось (25)
ТО заменить (25, 5)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (355)
ТО заменить (355, 52)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (555)
ТО заменить (555, 3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с цифры «2», а затем содержащая n цифр «5» (3 < n < 10000).
Определите наименьшее значение n, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 17.
Решение с помощью языка программирования Python.
for n in range(4, 10000):
s = '2' + '5' * n
while '25' in s or '355' in s or '555' in s:
if '25' in s:
s = s.replace('25', '5', 1)
if '355' in s:
s = s.replace('355', '52', 1)
if '555' in s:
s = s.replace('555', '3', 1)
sm = s.count('2') * 2 + s.count('3') * 3 + s.count('5') * 5
if sm == 17:
print(n)
break
Для исходного значения n в диапазоне от 4 до 10000 запускаем цикл for с функцией range. Далее переписываем программу на язык Python.
После основной программы нужно найти сумму цифр. Ищем сколько раз встречается каждая цифра в строке с помощью функции count и умножаем на вес каждой цифры. Это тот вклад, который каждая цифра вносит в общую сумму.
С помощью условия проверяем сумму цифр строки, чтобы она равнялась 17. Если это так, печатаем переменную n. С помощью команды break выходим из основного цикла for, как только будет найдено первое подходящее значение n.
Ответ: 29
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (666)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 6)
ИНАЧЕ заменить (666, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с цифры «2», а затем содержащая n цифр «5» (3 < n < 10000).
Определите наименьшее значение n, при котором в строке, получившейся в результате выполнения программы, количество цифр «3» равно 2.
Решение с помощью языка программирования Python.
for n in range(4, 10000):
s = '2' + '5' * n
while '25' in s or '355' in s or '555' in s:
if '25' in s:
s = s.replace('25', '5', 1)
if '355' in s:
s = s.replace('355', '52', 1)
if '555' in s:
s = s.replace('555', '3', 1)
if s.count('3') == 2:
print(n)
break
Эта задача похоже на прошлую. Отличается только вопрос задачи, поэтому в конце проверяем количество троек.
Ответ: 18
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (666)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 6)
ИНАЧЕ заменить (666, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с цифры «2», а затем содержащая n цифр «5» (3 < n < 10000).
Определите наименьшее значение n, при котором в строке, получившейся в результате выполнения программы, останутся только цифры «5».
Решение с помощью языка программирования Python.
for n in range(4, 10000):
s = '2' + '5' * n
while '25' in s or '355' in s or '555' in s:
if '25' in s:
s = s.replace('25', '5', 1)
if '355' in s:
s = s.replace('355', '52', 1)
if '555' in s:
s = s.replace('555', '3', 1)
if s.count('5') > 0 and s.count('2') == 0 and s.count('3') == 0:
print(n)
break
Проверяем, чтобы количество двоек было равно нулю, количество троек так же было равно нулю, а количество пятерок было больше нуля и находим наименьшее n.
Ответ: 6
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (19) ИЛИ нашлось (49) ИЛИ нашлось (999)
ЕСЛИ нашлось (19)
ТО заменить (19, 9)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (49)
ТО заменить (49, 91)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (999)
ТО заменить (999, 4)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с цифры «1», а затем содержащая n цифр «9» (3 < n < 10 000).
Определите наибольшее возможное значение суммы числовых значений цифр в строке, которая может быть результатом выполнения программы.
Решение с помощью языка программирования Python.
mx = 0
for n in range(4, 10000):
s = '1' + '9' * n
while '19' in s or '49' in s or '999' in s:
if '19' in s:
s = s.replace('19', '9', 1)
if '49' in s:
s = s.replace('49', '91', 1)
if '999' in s:
s = s.replace('999', '4', 1)
sm = s.count('1') * 1 + s.count('4') * 4 + s.count('9') * 9
mx = max(mx, sm)
print(mx)
Особенность данной задачи то что в начале, до цикла while, создаётся переменная для вычисления максимума. Если мы ищем максимальное значение, то в начале мы должны записать в эту переменную самое минимальное значение(иногда отрицательное). Если бы искали минимум, то назвали бы переменную например mn, и присвоили бы ей наоборот очень большое значение, например 999999999999999. Это делается для того, чтобы в начале легко можно было "переписать" данное значение. Затем уже находится нужное значение в цикле в этой переменной по принципу: что оказалось больше то и сохранили. Сравнивать значения на максимум помогает функция max(). Аналогично можно найти и минимум c помощью функции min().
Ответ: 23
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (>1) ИЛИ нашлось (>2) ИЛИ нашлось (>0)
ЕСЛИ нашлось (>1)
ТО заменить (>1, 22>)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (>2)
ТО заменить (>2, 2>)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (>0)
ТО заменить (>0, 1>)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с символа «>», а затем содержащая 39 цифр «0», n цифр «1» и 39 цифр «2», расположенных в произвольном порядке.
Определите наименьшее значение n, при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы, является полным квадратом.
Решение с помощью языка программирования Python.
for n in range(1, 10000):
s = '>' + '0' * 39 + "1" * n + "2" * 39
while '>1' in s or '>2' in s or '>0' in s:
if '>1' in s:
s = s.replace('>1', '22>', 1)
if '>2' in s:
s = s.replace('>2', '2>', 1)
if '>0' in s:
s = s.replace('>0', '1>', 1)
sm = 0 # Вычисляем сумму числовых значений цифр получившейся после алгоритма строки
for c in s:
if c.isdigit():
sm += int(c)
# Проверяем сумму на условие задачи(является ли она полным квадратом)
if sm in [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256]:
print(n)
break
Примеры чисел, которые являются полными квадратами: 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256 и т.д.
Здесь можно было вместо списка для проверки на полный квадрат написать функцию. Этим займём в аналогичной следующей задаче.
Ответ: 1
Дана программа для Редактора:
НАЧАЛО
ПОКА нашлось (>1) ИЛИ нашлось (>2) ИЛИ нашлось (>0)
ЕСЛИ нашлось (>1)
ТО заменить (>1, 22>)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (>2)
ТО заменить (>2, 2>)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (>0)
ТО заменить (>0, 1>)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с символа «>», а затем содержащая 39 цифр «0», n цифр «1» и 39 цифр «2», расположенных в произвольном порядке.
Определите наименьшее значение n, при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы, является простым числом.
Решение с помощью языка программирования Python.
def is_simple(num):
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
for n in range(1, 10000):
s = '>' + '0' * 39 + "1" * n + "2" * 39
while '>1' in s or '>2' in s or '>0' in s:
if '>1' in s:
s = s.replace('>1', '22>', 1)
if '>2' in s:
s = s.replace('>2', '2>', 1)
if '>0' in s:
s = s.replace('>0', '1>', 1)
sm = 0
for c in s:
if c.isdigit():
sm += int(c)
if is_simple(sm):
print(n)
break
Здесь написали в начале функцию которая будет проверять является ли число простым. Примеры чисел, которые являются простыми: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79 и т.д.
Ответ: 5
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (21) ИЛИ нашлось (31) ИЛИ нашлось (23)
ЕСЛИ нашлось (21)
ТО заменить (21, 12)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (31)
ТО заменить (31, 13)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (23)
ТО заменить (23, 32)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой ниже программе поступает строка, содержащая 50 цифр 1, 50 цифр 2 и 50 цифр 3, расположенных в произвольном порядке.
Запишите без разделителей символы, которые имеют порядковые номера 10, 90 и 130 в получившейся строке.
Решение с помощью языка программирования Python.
s = '1' * 50 + '2' * 50 + '3' * 50
while ('21' in s) or ('31' in s) or ('23' in s):
if '21' in s:
s = s.replace('21', '12', 1)
if '31' in s:
s = s.replace('31', '13', 1)
if '23' in s:
s = s.replace('23', '32', 1)
print(s[9] + s[89] + s[129])
Любой порядок в начале приводит к одному и тому же результату. Чтобы обратится к конкретному символу в строке, используем индексатор s[позиция символа]. Но помним что нумерация индексов начинается с нуля.
Ответ: 132
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (111)
заменить (111, 22)
заменить (222, 11)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что исходная строка содержала более 70 единиц и не содержала других цифр.
Укажите минимально возможную длину исходной строки, при которой в результате работы этой программы получится строка, содержащая максимально возможное количество единиц.
Решение с помощью языка программирования Python.
counter = 0
num = 71
for i in range(71, 1000):
s = '1' * i
while '111' in s:
s = s.replace('111', '22', 1)
s = s.replace('222', '11', 1)
if s.count('1') > counter: # Проверка по условию задачи
counter = s.count('1') # Сохраняем максимальное количество единиц в полученной строке
num = i # Сохраняем длину строки
print(num)
Ответ: 73
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (11)
ЕСЛИ нашлось(112)
ТО заменить (112, 5)
ИНАЧЕ заменить (11, 3)
КОНЕЦ ПОКА
КОНЕЦ
Исходная строка содержит 23 единицы и 5 двоек, других цифр нет, точный порядок расположения цифр неизвестен.
Какую наибольшую сумму цифр может иметь строка, которая получится после выполнения программы?
Решение с помощью языка программирования Python.
s = '1' * 23 + '2' * 5
while '11' in s:
if '112' in s:
s = s.replace('112', '5', 1)
else:
s = s.replace('11', '3', 1)
sm = 0
for c in s:
sm += int(c)
print(sm)
Ответ: 44
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (01) или нашлось (02)
заменить (01, 2202)
заменить (02, 10)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что начальная строка начиналась с нуля, а далее содержала только единицы и двойки. После выполнения данной программы получилась строка, содержащая 40 единиц и 64 двойки. Сколько двоек было в исходной строке?
Решение с помощью языка программирования Python.
for ones in range(1, 100):
for twos in range(1, 100):
s = '0' + '1' * ones + '2' * twos
while '01' in s or '02' in s:
s = s.replace('01', '2202', 1)
s = s.replace('02', '10', 1)
if s.count('1') == 40 and s.count('2') == 64:
print(twos)
Вначале создаём два цикла for, для того чтобы перебрать возможные количества единиц и двоек в исходной строке. Затем сам алгоритм запрограммированный на Python и в конце проверяем условие задачи на количество 1 и 2 в получившейся строке.
Ответ: 8
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (11111) ИЛИ нашлось (888)
ЕСЛИ нашлось (11111)
ТО заменить (11111, 88)
ИНАЧЕ заменить (888,8)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 81 идущей подряд цифры 1? В ответе запишите полученную строку.
В задании у нас есть уже сама программа остается только переписать её с алгоритмического языка на язык программирования, например на Python, чтобы получить ответ.
n = '1' * 81 # 81 идущей подряд цифры 1
# ПОКА нашлось (11111) ИЛИ нашлось (888)
while '11111' in n or '888' in n:
# ЕСЛИ нашлось (11111)
if '11111' in n:
# ТО заменить (11111, 88)
n = n.replace('11111', '88', 1)
# ИНАЧЕ заменить (888,8)
else:
n = n.replace('888', '8', 1)
# После окончания цикла ПОКА выводим ответ в консоль
print(n)
Ответ: 881
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты,
разделённой на равные ячейки. В каждой ячейке находится ровно один символ из алфавита исполнителя (множество символов A = {a0, a1, …, an–1}), включая специальный пустой символ a0.
Время работы исполнителя делится на дискретные такты (шаги). На каждом такте головка МТ находится в одном из множества допустимых состояний Q = {q0, q1, …, qn–1}.
В начальный момент времени головка находится в начальном состоянии q0.
На каждом такте головка обозревает одну ячейку ленты, называемую текущей ячейкой.
За один такт головка исполнителя может переместиться в ячейку справа или слева от текущей, не меняя находящийся в ней символ, или заменить символ в текущей ячейке без сдвига в соседнюю ячейку.
После каждого такта головка переходит в новое состояние или остаётся в прежнем состоянии.
Программа работы исполнителя МТ задаётся в табличном виде.
| a0 | a1 | ... | an-1 | |
|---|---|---|---|---|
| q0 | команда | команда | ... | команда |
| q1 | команда | команда | ... | команда |
| ... | ... | ... | ... | ... |
| qn-1 | команда | команда | ... | команда |
В первой строке перечислены все возможные символы в текущей ячейке ленты, в первом столбце – возможные состояния головки.
На пересечении i-й строки и j-го столбца находится команда, которую выполняет МТ, когда головка обозревает j-й символ, находясь в i-м состоянии.
Если пара «символ – состояние» невозможна, то клетка для команды остаётся пустой.
Каждая команда состоит из трёх элементов, разделённых запятыми: первый элемент – записываемый в текущую ячейку символ алфавита (может совпадать с тем, который там уже записан).
Второй элемент – один из четырёх символов «L», «R», «N», «S». Символы «L» и «R» означают сдвиг в левую или правую ячейки соответственно, «N» – отсутствие сдвига, «S» – завершение работы исполнителя МТ после выполнения текущей команды.
Сдвиг происходит после записи символа в текущую ячейку. Третий элемент – новое состояние головки после выполнения команды.
Например, команда 0, L, q3 выполняется следующим образом: в текущую ячейку записывается символ «0», затем головка сдвигается в соседнюю слева ячейку и переходит в состояние q3.
Приведём пример выполнения программы, заданной таблично.
На ленте записано неизвестное не нулевое количество расположенных подряд в соседних ячейках символов «Z», все остальные ячейки ленты заполнены пустым символом «λ». В начальный момент времени головка находится на неизвестном ненулевом расстоянии справа от самого правого символа «Z».
Программа
| λ | Z | |
|---|---|---|
| q0 | λ, L, q0 | X, L, q1 |
| q1 | λ, S, q1 | X, L, q1 |
заменяет на ленте все символы «Z» на «X» и останавливает исполнителя в первой ячейке слева от последовательности символов «X».

Выполните задание
На ленте в соседних ячейках записана последовательность из 1000 символов, включающая только нули и единицы.
Ячейки справа и слева от последовательности заполнены пустыми символами «λ».
В начальный момент времени головка расположена в ближайшей ячейке справа от последовательности.
Программа работы исполнителя:
| λ | 1 | 0 | |
|---|---|---|---|
| q0 | λ, L, q1 | ||
| q1 | λ, S, q1 | 0, S, q1 | 1, L, q1 |
После выполнения программы на ленте осталось ровно 343 нуля. Определите максимально возможное число нулей в исходной последовательности.
Исполнитель находится в ближайшей ячейке справа от последовательности. Следовательно, исполнитель всё время команду влево либо останавливается. Как только исполнитель встретит символ «1» или «λ», то программа исполнителя закончится. Если встретит символ «0», то заменит его на символ «1» и перейдет в левую ячейку. Если последовательность из 1000 символов будет состоять только из символов «0», то исполнитель заменит все на символ «1». Так как после выполнения программы осталось 343 символа «0», следовательно, эти 342 символа шли слева, а затем шел символ «1» который последним заменился на "0". Так как нам нужно определить максимальное возможное число «0» в ленте, то нужно посчитать максимально возможное число «0» справа от символа «1». Если всего 1000 символов, слева от «1» идет 342 символа «0», то тогда справа от символа «1» максимально может быть 1000 - 342 символа «0» - 1 символ «1» = 657 символов «0». Тогда максимальное количество символов «0» в последовательности равно 342+657 = 999.
Ниже пример на Python работы программы исполнителя MT для исходной строки:
l = '0' * 342 + '1' + '0' * 657 # начальное состояние ленты
l = list(l) # переводим в список для удобства замены символов по индексам
print(l.count('0'), len(l)) # Здесь начальное максимальное количество нулей
for i in range(999, 0, -1): # Алгоритм работы исполнителя
if l[i] == '0':
l[i] = '1'
continue
if l[i] == '1':
l[i] = '0'
break
print(l.count('0'), len(l)) # конечное состояние ленты с 343 нулями
Ответ: 999
Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает. Для этого в ячейке с кодом нажмите клавиши на клавиатуре Shift+Enter или запустите код через кнопку Run по значку ▶.