Как решить 2 задание егэ по информатике через python
Перейти к содержимому

Как решить 2 задание егэ по информатике через python

  • автор:

РЕШЕНИЕ ЗАДАЧ ЕГЭ ПО ИНФОРМАТИКЕ СРЕДСТВАМИ ЯЗЫКА PYTHON Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ильченко Олег Юрьевич, Сырицына Валентина Николаевна, Кадеева Оксана Евгеньевна

Рассматриваются предметные и методические аспекты единого государственного экзамена по информатике. Анализируются особенности решения сложной части заданий единого государственного экзамена по программированию на языке Python , приводятся примеры решения таких заданий.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ильченко Олег Юрьевич, Сырицына Валентина Николаевна, Кадеева Оксана Евгеньевна

ПОДГОТОВКА К ЕГЭ ПО ИНФОРМАТИКЕ И ИКТ: ОБЗОР ЗАДАНИЙ И РЕШЕНИЕ ЗАДАЧ НА ОСНОВЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON

ВОЗДЕЙСТВИЕ НА РЕЗУЛЬТАТЫ СДАЧИ ЕГЭ ПО ИНФОРМАТИКЕ В УСЛОВИЯХ ИЗМЕНЕНИЯ ФОРМАТА ЭКЗАМЕНА: НА ПРИМЕРЕ РЕСПУБЛИКИ БУРЯТИЯ

Выбор программного средства для обучения программированию будущих бакалавров педагогического образования

ОСОБЕННОСТИ РЕШЕНИЯ ЗАДАЧ НА ИГРОВЫЕ СТРАТЕГИИ СРЕДСТВАМИ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ШКОЛЬНОМ КУРСЕ ИНФОРМАТИКИ

ОСОБЕННОСТИ РЕШЕНИЯ НЕКОТОРЫХ ЗАДАЧ КОМПЬЮТЕРНОГО ЕГЭ ПО ИНФОРМАТИКЕ
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOLVING THE PROBLEMS OF THE UNIFIED STATE EXAM IN COMPUTER SCIENCE BY MEANS OF THE PYTHON LANGUAGE

Subject and methodological aspects of the unified state examination in informatics are considered. The peculiarities of solving a complex part of the exam tasks in Python programming are analyzed, examples of solving such tasks are given.

Текст научной работы на тему «РЕШЕНИЕ ЗАДАЧ ЕГЭ ПО ИНФОРМАТИКЕ СРЕДСТВАМИ ЯЗЫКА PYTHON»

Ильченко О.Ю., Сырицына В.Н., Кадеева О.Е.,

Дальневосточный федеральный университет, Школа педагогики

Решение задач ЕГЭ по информатике средствами языка Python

В настоящее время актуальна проблема изучения языков программирования, поскольку на них написано все программное обеспечение компьютера. Их изучение начинается со школьной скамьи на уроках информатики для каждого школьника [3]. В 2021 году экзамен по информатике включал в себя 27 заданий, из них восемь задач направлены на проверку знания обучающимися одного из языков программирования: Pascal, C++, Python. Каждый из языков программирования по-своему интересен и сложен в изучении. Поэтому ученику необходимо сделать выбор и остановиться на изучении одного из них. Для начинающих очень удобен язык Pascal. Но стоит отметить, что этот язык создали в конце прошлого столетия.

Соответственно, в наше время он считается уже устаревшим. Чтобы сдать единый государственный экзамен (далее — ЕГЭ), знания этого языка будет достаточно, но, чтобы в будущем стать востребованным специалистом, одного Pascal будет мало.

Язык Python в рейтинге TIOBE на май 2021 года занимает 2-ое место, обходя Pascal и C++, оставляя выше себя только язык C. Главными плюсами Python специалисты считают простоту, большое количество встроенных библиотек, читабельность и удобство кода, легкий синтаксис, а также большое сообщество программистов-единомышленников, использующих его. Это позволит решить любую проблему на форуме за считанные часы. Для новичков этот язык про-

сто находка. Чтобы начать его изучение, от человека потребуется средний уровень знания английского языка. Поэтому для школьника путь в IT-сферу лучше всего начинать именно с языка программирования Python [7; 8].

Python — язык программирования, который упрощен за счет ориентира не на синтаксис и структуру, как это происходит в C++ или Pascal, а на конкретное решение самой задачи. Не тратится лишнее время на размышления о том, в каком месте поставить операторные скобки и так далее. Существует множество различных программ, редакторов, с помощью которых можно начинать учиться писать код на Python. При установке языка программирования автоматически устанавливается редактор IDLE, но более продуктивными и функциональными при решении задач ЕГЭ по информатике являются такие среды разработки как Py-Charm, SublimeText, Jupiter Notebook. Поэтому при рассмотрении сложных заданий ЕГЭ по программированию мы будем ориентироваться на использование среды разработки Jupiter Notebook. Ее главное преимущество заключается в том, что она объединяет код и выводит текст, математические уравнения, визуализацию в виде единого документа [1].

Программирование — самая сложная часть ЕГЭ по информатике, но при этом самая интересная. Когда теория применяется на практике,

© Ильченко О.Ю., Сырицына В.Н., Кадеева О.Е., 2021

РЕШЕНИЕ ЗАДАЧ ЕГЭ ПО ИНФОРМАТИКЕ СРЕДСТВАМИ ЯЗЫКА PYTHON

КАДЕЕВА ОКСАНА ЕВГЕНЬЕВНА Российская Федерация, город Владивосток

кандидат философских наук, доцент Департамента теории и практики преподавания математики, информатики, естественных наук, Школа педагогики, Дальневосточный федеральный университет. Сфера научных интересов: инновационное творчество преподавателя, интерактивные методы проведения учебных занятий, математическое моделирование и программирование. Автор более 70 опубликованных научных и методических работ. Электронная почта: kadeeva.oe@dvfu.ru

OKSANA E. KADEEVA Vladivostok, Russian Federation

Ph.D. of Philosophical Sciences, Associate Professor at the Department of the Theory and Practice of Teaching Mathematics, Computer Science, Natural Sciences, School of Pedagogics, Far Eastern Federal University. Research interests: innovative creativity of the teacher, interactive methods of conducting training sessions, mathematical modeling and programming. Author of more than 70 published scientific and methodological papers. E-mail address: kadeeva.oe@dvfu.ru

СЫРИЦЫНА ВАЛЕНТИНА НИКОЛАЕВНА Российская Федерация, город Владивосток

старший преподаватель Департамента теории и практики преподавания математики, информатики, естественных наук, Школа педагогики, Дальневосточный федеральный университет. Сфера научных интересов: электронное обучение в высшей школе, инновационная деятельность преподавателя, математическое моделирование и программирование. Автор более 50 опубликованных научных и методических работ. Электронная почта: versia_2000@mail.ru

VALENTINA N. SYRITSYNA Vladivostok, Russian Federation

Senior Lecturer at the Department of the Theory and Practice of Teaching Mathematics, Informatics, Natural Sciences, School of Pedagogy, Far Eastern Federal University. Research interests: e-learning in higher education, teacher innovation, mathematical modeling and programming. Author of more than 50 published scientific and methodological papers. E-mail address: versia_2000@mail.ru

ИЛЬЧЕНКО ОЛЕГ ЮРЬЕВИЧ

Российская Федерация, город Владивосток

студент Школы педагогики, Дальневосточный федеральный университет. Сфера научных интересов: единый государственный экзамен по физике и информатике, математическое моделирование и программирование. Электронная почта: ilchenkoleg01@gmail.com

I OLEG Yu. ILCHENKO

Vladivostok, Russian Federation

Student of the School of Pedagogy, Far Eastern Federal University. Research interests: unified state exam in physics and informatics, mathematical modeling and programming. E-mail address: ilchenkoleg01@gmail.com

Аннотация. Рассматриваются предметные и методические аспекты единого государственного экзамена по информатике. Анализируются особенности решения сложной части заданий единого государственного экзамена по программированию на языке Python, приводятся примеры решения таких заданий.

Ключевые слова: единый государственный экзамен, программирование на языке Python, среда Jupiter Notebook, методический подход к заданиям единого государственного экзамена, программирование.

Abstract. Subject and methodological aspects of the unified state examination in informatics are considered. The peculiarities of solving a complex part of the exam tasks in Python programming are analyzed, examples of solving such tasks are given.

Keywords: unified state exam, Python programming, Jupiter Notebook environment, methodical approach to tasks USE, programming.

это всегда способствует развитию творчества и самостоятельности. Главное для обучающегося — научиться читать программный код, «прогонять» первые итерации цикла у себя в голове, чтобы понимать, как работает программа, как меняются переменные в ней. Понимание работы программы — это залог успешной сдачи экзамена. Задачи 6, 16, 17, 22 ЕГЭ не требуют углубленного знания языка програм-

мирования, в этих программах не содержится много ступеней ветвлений, не нужно работать с файлами. Умение работать со строками, массивами, понимание условного оператора и циклов — это тот багаж знаний, которым должен владеть обучающийся, чтобы успешно справиться с такими задачами. Задания, которые мы рассмотрим в данной статье, требуют от обучающегося знания алгоритмов

сортировки, нескольких языков программирования, высокого уровня владения навыками программирования, развитого логического мышления [2; 4].

Рассмотрим подходы к решению задач ЕГЭ по информатике при помощи языка программирования Python. В качестве примеров взяты задания из официальной демовер-сии ЕГЭ по информатике за 2021 год на сайте Федерального инсти-

тута педагогических измерений (ФИПИ) и пособия К.Ю. Полякова [5; 6].

Тема: Анализ работы программы с циклом.

Требования к обучающимся:

• знать основные конструкции языка Python: объявление переменных; оператор присваивания; оператор вывода; циклы;

• уметь читать программу, выполнять программу; определять переменную, от преобразования которой зависит количество шагов цикла; уметь определять по программе количество требуемых шагов цикла; различать входные и выходные данные.

Определите, при каком наибольшем введенном значении переменной $ программа выведет число 64. Для Вашего удобства программа представлена на четырех языках программирования (см. Рисунок 1).

Решение (теоретическое рассуждение):

1. Переменная $ получает свое значение путем ввода пользователем.

2. Далее переменная $ переопределяется. Как было рассмотрено ранее, операция «//» является целочисленным делением, в нашем случае $ нацело делится на число 10.

3. Переменная n получает значение 1.

5. На вывод подается переменная n.

По условию задачи, переменная n в конце работы программы имеет значение 64, из этого следует: 64 = 26, для того чтобы получить n = 64, необходимо выполнить тело цикла 6 раз. Максимальное число, при котором цикл выполнится

последний раз — 50. А следующий шаг — 55 — уже не пройдет. Тогда ответ — 55 — 5 • 6 = 25. Так как на первом шаге берется целое от деления на 10, то третью цифру нужно взять максимально возможную — 9. Путем теоретического исследования получили ответ: наибольшее значение переменной s=259.

Решение с помощью программы на Python:

Запустим среду программирования на Python Jupyter Notebook и наберем код программы. Величину переменной s получить можно подбором, но лучше всего найти закономерность, для этого:

1. Вводим сначала 1 — на выводе получаем 2048, затем вводим 100 -на выводе получим 512, исходя из этого, можно увидеть, что при увеличении s значение n уменьшается (см. Рисунок 2).

2. Пробуем увеличить s еще в 2,5 раза, на выходе получаем 64, то есть искомое значение. Но задача состоит в том, чтобы найти наибольшее значение s, поэтому увеличивая вводимое значение на 1, выясним, что при 259 программа выводит значение 64, а при 260 -32 (см. Рисунок 3).

3. Ответ найден. Наибольшее значение переменной $, при котором n = 64, равно 259.

Тема: Рекурсия. Рекурсивные процедуры и функции

Требования к обучающимся:

• знать: условие окончания рекурсии, то есть значения параметров функции, для которых значение функции известно или вычисляется без рекурсивных вызовов; рекуррентную формулу (или формулы), с помощью которых значение функции для заданных значений параметров вычисляется через значение (или значения) функции для других значений параметров (то есть, с помощью рекурсивных вызовов);

• уметь реализовать рекуррентную функцию на Python^, например,

F(n) = n + 1 + F(n-1), при n> 1

На языке программирования это будет выглядеть так (см. Рисунок 4): Пример задачи: Алгоритм вычисления функции F(n) задан следующими соотношениями: F( n) = 1 при n = 1 F(n) = n + F(n-1), если n четно, F(n) = 2-F(n~2), если n> 1 и n нечетно.

Чему равно значение функции F (26)? Решение задачи:

Пусть известно значение n. Построим массив а, так чтобы значение элемента a[n] совпадало со значением F(n). Учитывая, что в Python нумерация элементов массива начинается с нуля, будем использовать фиктивный нулевой элемент. Согласно условию, в первый элемент нужно записать число 1 («F(n) = 1 при n = 1»): а = [0,1], затем перебираем в цикле все значения индексов элементов, начиная с 2 и до n включительно, вычисляя для каждого значение функции. Фактически сначала вычисляется F(2) и записывается в элемент массива а[2], затем находим F(3) и записываем в элемент массива а[3] и так далее (см. Рисунок 5).

Стоит заметить, что вместо рекурсивных вызовов здесь используются уже готовые значения F(n) для меньших значений n, ранее записанные в массив а. Теперь можно построить функцию, которая возвращает значение a[n], и вызвать print(F(26)) (см. Рисунок 6): Получили ответ. Задача решена.

Задача 17 Тема: Перебор целых чисел на заданном отрезке. Проверка делимости

Требования к обучающимся:

• знать основные принципы построения программы на языке программирования;

• уметь использовать простой перебор без оптимизации; уметь пользоваться электронными таблицами.

РЕШЕНИЕ ЗАДАЧ ЕГЭ ПО ИНФОРМАТИКЕ СРЕДСТВАМИ ЯЗЫКА PYTHON

Паскаль Python Алгоритмический язык

Рисунок 1. Пример программы с циклом [6]

s = int(inputQ) s = int

S = S // 10 S = 5 // 10

5 = 5 + 5 s = s + 5

n = n * 2 n = n * 2

Рисунок 2. Подбор значений

s = int(input()) S = S // 10 n = 1

s = s + 5 n = n * 2 print(n)

s — int(input()) s = s // 10 n = 1

s = s + 5 л = n * 2 print(n)

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рисунок 3. Решение задачи 6

if n == 1: return 1

Рисунок 4. Рекуррентная функция

a.append( i + a[i-l] ) else:

for i in rarige(2, n+1):

Рисунок 5. Начало программы Рисунок 6. Решение задачи

Рассмотрим задачу в общем виде. Пусть необходимо перебрать все целые числа на отрезке [а; Ъ] и определить, для скольких из них выполняется некоторое условие. Общая структура цикла перебора на языке Python записывается так, как показано на Рисунке 7.

Проверка делимости числа n на число x осуществляется при помощи операции взятия остатка от деления n на x: если остаток равен 0, число n делится на x нацело. Данная проверка в Python осуществляется так, как показано на Рисунке 8. Пример задачи: Рассматривается множество целых чисел, принадлежащих числовому отрезку(1016; 7937), которые делятся на 3 и не делятся на 7, 17, 19, 27. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число. Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц. Решение задачи: Проанализируем условие: интересующие нас числа делятся на 3 и не делятся на такие числа, как 7, 17, 19 и 27 (это будет являться условием проверки). Перебор чисел выгоднее осуществлять в порядке возрастания, так как последнее найденное число будет являть максимальным из перебранного количества. (Это также требуется найти в задаче. В случае, когда требуется найти наименьшее число, перебор начинается в порядке убывания).

Составим программу на Python (см. Рисунок 9):

Решение найдено. 1568 — такое количество чисел удовлетворяет критерию поиска (в условном операторе if), 7935 — максимальное число из количества удовлетворяющих условию чисел. Ответ указан в Рисунке 8.

Задача 22 Тема: Анализ программы, содержащей подпрограммы, циклы и ветвления.

Требования к обучающимся:

• знать операции деления с остатком (%) и целочисленного деления (//);

• уметь выполнять работу операторов присваивания, циклов в языке программирования Python.

Ниже на четырех языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5 (см. Рисунок 10).

Проанализируем программу. Переменная x получает значение путем ввода пользователем. Переменным Q и L присваиваются значения 9 и 0 соответственно. Далее идет цикл While, рассмотрим его (см. Рисунок 11).

Так как переменная L изначально равна нулю, а затем с каждой итерацией в цикле увеличивается на 1, она несет функцию счетчика повторения цикла. На каждой итерации цикла из переменной Q вычитается x до тех пор, пока x не станет меньше Q. Фактически определяется, сколько раз «поместится» Q в x. Из данных рассуждений можно понять, что данный цикл — это операция деления, при этом, как только цикл завершится, переменная L будет нести значение частного, а переменная x -остаток от деления введенного значения Q.

как делили на 9, то искомое число будет равно 5 x 9 + 4 = 49. Получили ответ: при вводе числа 49 этот алгоритм печатает два числа: 4 и 5. Пробуем запустить программу (см. Рисунок 12).

Логика приведенных выше рассуждений оказалась верной, при вводе пользователем числа 49, выводятся числа 4 и 5.

Если не удалось провести анализ программы, можно найти альтернативное решение. В данном случае найдем подходящее значение перебором (или как говорят программисты «bruteforce» — методом «грубой силы»). Для этого осуществим следующее:

1. Строку, где вводится x, удаляем [x = int (input ())].

2. Введем переменную x0 и основную часть программы заключим в цикл (можно использовать цикл с параметром, если есть уверенность, что максимальное значение точно не больше, например, 500). Результат представлен на Рисунке 13.

Далее строки, в которых выводятся результаты заменяем на проверку нужного нам случая. По условию задачи должны получиться числа 4 и 5, поэтому, если должны быть выведены числа 4 и 5, выводим на экран переменную x0 (см. Рисунок 14).

В итоге получим полностью переделанную программу (см. Рисунок 15).

Если запустить данную программу, она даст результат 41 и 49, что соответствует минимальному и максимальному подходящему числу. В условиях данной задачи ответ будет 49. Задача решена.

Тема: Обработка символьных строк

Требования к обучающимся:

• знать конструкции языка Python; знать несколько способов решения подобных задач;

• уметь читать строку из файла (программно); уметь работать с конструкцией with — as. (см. Рисунок 16).

РЕШЕНИЕ ЗАДАЧ ЕГЭ ПО ИНФОРМАТИКЕ СРЕДСТВАМИ ЯЗЫКА PYTHON

for л in range (a, b+1): if условие выполнено: value+= 1 print (value)

# переменная, которая запоминает количество чисел

# цикл с параметром, для перебора заданного диапазона

# условный оператор, для отбора значений

# или же уа1ие^а1ие+1

# вывод количества чисел

Рисунок 7. Общая структура перебора

print («Не делится»)

#операция «%» — взятие остатка от деления п на х #если п нацело делится на х>получаем ответ

# если п нацело не делится на х, получаем ответ

Рисунок 8. Проверка делимости числа n на число x

value_sum = 0 ^переменная, служащая для записи кол-ва чисел удовлетворяющих условию

value^max = 0 ^переменная, служащая для записи максимального значения числа в диапазоне

for n in range(1016, 7937+1): #цикл с параметром, где способ range задает нужный диапазон

valuersurn += 1 # аналогично, что и vaLue_sum=vaLue_$um+l

print(value_sum, value_max) # вывод переменных, являющихся решением задачи

Рисунок 9. Решение задачи 17

#include usingnamespacestd; x=int(input())

Как решить 2 задание егэ по информатике через python

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Помогите сдать ЕГЭ (Проблемы с номером 2)

Таблица 1

Однако, столбцов из кода больше, чем требуется в этой таблице: Или вот ещё один примерчик

((z → w) ∨ (y ≡ w)) ∧ ((x ∨ z) ≡ y) 
print("x y z w") for x in range(0, 2): for y in range(0, 2): for z in range(0, 2): for w in range(0, 2): if ((z  
 X Y Z W (0, 0, 0, 0) (0, 0, 0, 1) (0, 1, 1, 1) (1, 1, 0, 0) (1, 1, 0, 1) (1, 1, 1, 1) 

Таблица 2

Здесь столбцов из кода ЗНАЧИТЕЛЬНО больше, чем требуется в этой таблице: А вот мой любимый пример:

((y → w) ≡ (x → ¬z)) ∧ (x ∨ w) 
print("x y z w") for x in range(0, 2): for y in range(0, 2): for z in range(0, 2): for w in range(0, 2): if not(((y  
print("x y z w") for x in range(0, 2): for y in range(0, 2): for z in range(0, 2): for w in range(0, 2): if ((y  

Результаты:

 X Y Z W (0, 0, 0, 0), (0, 0, 1, 0), (0, 1, 0, 0), (0, 1, 1, 0), (1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 1, 1). 
 X Y Z W (0, 0, 0, 1), (0, 0, 1, 1), (0, 1, 0, 1), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1), (1, 1, 0, 1), (1, 1, 1, 0). 

Таблица 3

На эту табличку: Решить я это могу, а теперь внимание! Вопрос - как это сопоставить с таблицей. Ничего толкового в интернете на этот счёт не нашёл

Отслеживать

48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков

задан 10 июн 2023 в 8:42

Aleksey Artemov Aleksey Artemov

11 3 3 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Первый пример: заметим, что есть строки с одним нулем, тремя единицами, а также три нуля, одна единица. Сопоставляем, получаем что второй столбец X( т. к три единицы и один ноль, который выдал нам X), получаем третий столбец W, поскольку одна единица соответствует W. Заметим ,что остался столбец, в котором 2 нуля 100 % существуют, при этом, столбец Z имеет 1 ноль. Делаем вывод. Второй пример: заметим, что строк со всеми нулями и единицами не может быть, вычеркиваем. Наблюдаем 2 единицы в одной из строк. Сопоставим с данными из таблицы и заметим, что 1 и 4 столбцы могут быть z/w, а 2 и 3 x/y из соображений строки 0 1 1 0. берем 2 строку, которая * 1 0 *. и нетрудно заметить, что в таблице у Z 3 нуля, у W 1 ноль => последний столбец W => первый столбец Z.Смотрим на полученную программой таблицу, а именно в 3 строку, там и ответ на Y X. Удачи!

Отслеживать

ответ дан 10 июн 2023 в 9:07

1. Как решать задание ЕГЭ

7. Задание проверяет умение исполнить алгоритм для конкретного исполнителя с фиксированным набором команд.

Пример задания

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

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

Эта команда заменяет в строке первое слева вхождение цепочки \(v\) на цепочку \(w\). Например, выполнение команды

заменить (\(111\), \(27\))
преобразует строку \(05111150\) в строку \(0527150\).

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

Б) нашлось (\(v\)).

Эта команда проверяет, встречается ли цепочка \(v\) в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

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

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

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

Данное задание можно решать несколькими способами: с помощью логических рассуждений или при помощи языка программирования.

Мы рассмотрим вариант решения с помощью языка программирования Python.
Вспомнить, что такое процедуры и функции, можно тут.
Вспомнить, что такое алгоритмы ветвления, можно тут.
Вспомним алгоритмы ветвления в Python
ЕСЛИ (условие \(1\))
ТО (действие \(1\))
ИНАЧЕ (действие \(2\))
На Python выглядит следующим образом.
if (условие):
(действие \(1\))
else:
(действие \(2\))
Также вспомним метод replace в Python.

Данный метод возвращает копию строки, в которой все вхождения подстроки заменяются другой подстрокой.

Реализуем данный метод в ходе решения задания № \(12\). Проанализируем условие и определимся, какие операторы нам понадобятся.

ЕСЛИ (if) подстрока \('2222'\) встречается в строке \(s\), то (ставим двоеточие) заменяем четыре двойки на две восьмёрки — методом replace следующим образом:

\(s = s.replace ('2222', '88', 1)\).
Единица указывает на то, что такая замена будет произведена один раз
Иначе (else) заменим '\(8888\)' на '\(22\)' также методом replace.
\(s=s.replace('8888', '22',1)\)

Нам необходимо узнать, какая строка останется в результате работы данной программы, поэтому в выводе запишем: print(\(s\)).

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *