Егэ информатика программирование на каком языке

Какой язык программирования выбрать для решения задач ЕГЭ?

В экзаменационной работе ЕГЭ несколько заданий требуют знания языка программирования. В задачах 8, 11, 19, 20, 21, 24 требуется понять и проанализировать текст программы, в задаче 25 требуется написать фрагмент программы. В формулировке задачи на выбор предоставлены следующие языки: Бейсик, Паскаль, Си, Алгоритмический язык, Python, Естественный язык.

Единственная задача, в которой требуется самостоятельно написать законченную программу – это задача 27. В формулировке задачи требуется написать программу «на любом языке программирования». Так какой же язык программирования выбрать?

Выражу на этот счет свое личное мнение, основанное на опыте сдачи экзамена моими учениками за несколько последних лет. В 27-й задаче ЕГЭ необходимо правильно составить алгоритм, реализовать который можно практически на любом языке программирования. Т.е. на одном языке программа будет короче, на другом длиннее, но пока ни разу не встретилась задача, которую невозможно было бы решить, к примеру, на Бейсике. Кроме того, выбор языка не влияет на оценку. Поэтому, если Вы хорошо владеете каким-то экзотическим языком программирования, Вы имеете полное право писать программу на нем. Однако, следует учитывать тот факт, что программу будут проверять и оценивать.

В рекомендациях ФИПИ проверяющим сказано: «Если этот язык программирования недостаточно знаком эксперту, то ему следует воспользоваться доступной справочной литературой или обратиться за помощью к консультанту или председателю (заместителю председателя) предметной комиссии, соблюдая при этом регламент проверки». Т.е. в случае, когда проверяющий столкнулся с неизвестным ему языком, он должен «соблюдая при этом регламент проверки», т.е. в отведенные сроки (а при проверке ЕГЭ они очень сжатые), найти того, кто данный язык программирования знает, и разобраться в тексте Вашей программы. Очевидно, что вероятность недооценки очень велика. Кроме того, следует понимать, что школы используют только лицензионное (официально приобретенное) программное обеспечение. Если компилятор используемого Вами языка школой не приобретен, проверить работоспособность Вашей программы на компьютере будет невозможно.

Практика последних двух лет показала, что многие проверяющие не знают язык Python (он фигурирует в списке разрешенных языков в задачах ЕГЭ всего второй год). Сложности у проверяющих вызывает проверка текста программы, написанной на С#, Java. Не говоря уж о редких специфических языках. Не рекомендую писать программу на естественном или алгоритмическом языке, ввиду отсутствия официальных правил, описывающих язык. Да и разбираться в тексте, написанном на языке, не используемом на практике, не очень приятно. Я всегда настоятельно советую ученикам описывать на естественном языке алгоритм программы, чтобы облегчить задачу проверяющему, но сама программа должна быть написана на понятном удобном языке программирования.

На данный момент я рекомендую выбрать Паскаль, Си или Бейсик. Это известные, распространенные языки. Среда разработки для них есть практически в любой школе. Значит, у проверяющего не возникнет вопросов при анализе Вашей программы. У языка Паскаль есть еще один плюс: изначально сложная 27-я задача решалась именно на нем, а значит примеры, образцы решений и разборы всех типов задач Вы легко найдете в литературе и в интернете, чего нельзя сказать о других языках.

Благодарим за то, что пользуйтесь нашими материалами.
Информация на странице «Какой язык программирования выбрать для решения задач ЕГЭ?» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к экзаменам.
Чтобы успешно сдать нужные и поступить в ВУЗ или колледж нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
Также вы можете воспользоваться другими статьями из разделов нашего сайта.

Публикация обновлена:
08.03.2023

Теперь ЕГЭ по информатике выпускники сдают в компьютерной форме, а это значит, что и в процессе подготовки их ждет немало изменений.

Как связаны программирование и подготовка к ЕГЭ по информатике

Некоторые задания из ЕГЭ по информатике 2022 (номера 8, 11, 19, 20, 21, 24, 25 и 27) требуют знаний одного из языков программирования и минимальных навыков работы с ним. В первых из перечисленных заданий проверяется умение выпускников понимать и анализировать текст программы, в 25 задаче нужно самостоятельно написать фрагмент программы, в 27 — законченную программу. 

В формулировках заданий перечислены следующие языки программирования: Basic, Pascal, C/C++, Алгоритмический язык, Python, Естественный язык. Выбор языка программирования не влияет на оценку, несмотря на то, что на каком-то из них программа может получиться длиннее, а на другом короче. Эксперты в области подготовки к ЕГЭ по информатике говорят, что за все время их деятельности на экзамене еще ни разу не попалось задание, которое нельзя было бы выполнить, например, с использованием Basic.

Как решать задачи на программирование при подготовке

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

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

Приступая к практической части подготовки, в первую очередь решите демонстрационную версию экзамена (можно даже на специальной онлайн-платформе, где КИМ будет выглядеть ровно так, как компьютерная версия самого ЕГЭ) и посмотрите, какие задания вам даются легко, какие вызывают небольшие трудности, а с какими вы совсем не можете справиться. Такое распределение задач по категориям поможет вам лучше организовать подготовку, расставить приоритеты и повысить эффективность практики.

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

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

Какой язык программирования выбрать для сдачи ЕГЭ по информатике в 2022 году

В большинстве школ языкам программирования уделяется не так много времени, а где-то о них и не упоминают, поэтому ученикам приходится брать на себя целых две сложных и важных задачи:

  • выбрать язык(и) программирования для ЕГЭ по информатике,
  • научиться с ними работать.

Сейчас посмотрим, какие языки программирования выпускники выбирают чаще всего и какие из них лучше для подготовки к ЕГЭ по информатике 2022.

  1. Pascal

Даже если в вашей школе информатика преподавалась “для галочки”, об этом языке вы уж точно слышали. Несмотря на то, что Паскаль является устаревшим языком программирования и не используется разработчиками в крупных компаниях, для ЕГЭ он вполне подойдет. 

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

  1. C++

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

  1. Python

Питон совсем недавно вошел в список разрешенных языков программирования для ЕГЭ по информатике, поэтому для многих (в том числе проверяющих) он покажется непривычным. Однако этот язык почти идеально подходит под формат экзамена: он быстрый, на нем можно решить 18 заданий из 27, он имеет простой синтаксис.

  1. Другие варианты

Вы можете выбрать другой язык программирования, например, C или Basic, которые также рекомендуют многие преподаватели. Однако здесь могут возникнуть две сложности: это усложнит подготовку, так как в большинстве методических материалов по подготовке используются первые три языка из нашего списка, а также может случиться такое, что эксперт, проверяющий работу, не будет знать выбранный вами язык (это, конечно, не ваша проблема, но неприятные ситуации могут возникнуть).

Итог

При выборе языка программирования для ЕГЭ по информатике 2022 мы советуем руководствоваться именно легкостью, распространенностью языка и быстротой использования. Самое важное — чтобы он помог вам решить задания из КИМа, а все остальное уже второстепенно.

На ЕГЭ по информатике на выбор даётся пять языков программирования:

  • Pascal;
  • Python;
  • Java;
  • C++;
  • C#.

Pascal 

Язык, который традиционно преподаётся в российских школах с 7 класса. Сейчас умение программировать на Pascal полезно, но не востребовано. Новые проекты в IT сфере не пишутся на этом языке, даже несмотря на то, что появились современные расширения — Borland Pascal и Linq Pascal.

Оценка от Коли Касперского: 4/10 

C++

Очень востребованный язык, на котором пишутся игры. Однако его освоение — сложное и энергозатратное занятие. Синтексис языка очень громоздкий и тяжёлый, поэтому его придётся подучить, прежде чем приступать к решению задач на ЕГЭ.

Оценка от Коли Касперского: 7/10

C#

Пользующийся спросом язык от Microsoft, практически копия Java. Довольно удобный, но объектно-ориентированный.

Справка: объектно-ориентированный язык (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования. Например, объект человек может иметь поля имя, фамилия, и методы есть и спать.

То есть изучение этого языка займёт немало времени, поскольку он направлен на профессиональную деятельность.

Оценка от Коли Касперского: 8/10

Java

Если вы научитесь этому языку программирования сейчас и продолжите специализацию в университете, то станет легко в будущем найти востребованную должность, так как на Java существует огромное количество проектов.

Как и в C++, необходимо потратить несколько часов, чтобы освоить этот язык, прежде чем решать задания на ЕГЭ.

Оценка от Коли Касперского: 7/10

Python

Этот язык — мой фаворит, и именно на нём я обучаю студентов решать задачи, связанные с программированием на ЕГЭ по информатике, на бесплатном курсе в Вебиуме.

Python — удобный и востребованный язык, на котором легко начать программировать. На ЕГЭ требуется три основных пункта, которые помогут получить максимальный балл:

  • циклы и условия;
  • обработка строк;
  • работа с файлом.

Если вы немного знаете английский язык, то уже с лёгкостью сможете читать коды на Python.

Также этот язык позволяет сэкономить время: вы сразу можете приступить к практике. Подробнее — в нашей шпаргалке.

Оценка от Коли Касперского: 10/10

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter. Мы обязательно поправим!

поступить на программиста

Для родителей, последний год обучения их ребенка в школе один из самых сложных. Но и выпускнику не просто, ведь приходится долго и упорно трудиться, чтобы успешно сдать единый государственный экзамен и поступить в престижный университет. Чтобы стать программистом, одними хорошими отметками не отделаешься, так как некоторые ВУЗы требуют при поступлении портфолио абитуриента. Подготовка к ЕГЭ необходима, и стоит обратить внимание на некоторые нюансы.

К сдаче каких ЕГЭ готовиться

При поступлении на специальность, связанную с программированием, придется подготовиться к сдаче ЕГЭ по следующим предметам:

  • русский язык;
  • математика.

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

Языки программирования на ЕГЭ

языки программирования на егэПри сдаче ЕГЭ по информатике не требуется серьезных знаний определенного языка программирования. Задания, требующие написание и разбор кода, всегда пишутся на нескольких языках, так что школьник может выбрать подходящий для него. Среди языков программирования, включенных в программу сдачи ЕГЭ, выделяют Python, Pascal, C++, алгоритмический и естественный языки. Иными словами, последние два языка подтверждают информацию о том, что школьник может не знать ни одного языка программирования.

Согласно данным, которые получены по результатам практики последних лет в сдаче ЕГЭ по информатике, большее количество проверяющих не знакомы с языком Python, хоть тот значится в списках разрешенных языков во время написания части С. Кроме того, сложности вызывает язык Java, а естественный и алгоритмический языки не следует выбирать, так как отсутствуют официальные правила, описывающие язык. Поэтому, лучше подготовиться по написанию информационных текстов на Pascal, C++.

Как влияют призовые места на олимпиадах при поступлении

Еще в школе каждый, кто хочет поступить на бюджетное место по престижной специализации, участвуют в олимпиадах. Будущие программисты – не исключение.

Учитывая требования законодательства, при подаче документов на бюджетное место в ВУЗ, будут учитываться следующие регалии школьника:

  • призовые места на последнем Всероссийской или вузовской олимпиаде;
  • сертификат участника международной олимпиады.

При этом воспользоваться подобной «льготой» можно только при подаче заявления в один вуз и на одну программу.

Многие выпускники желают стать программистом, профессия сейчас является наиболее перспективной, востребованной и от того популярной. Чаще всего интерес к современным технологиям, IT-индустрии проявляется в средних классах, даже если информатика в школе преподается не на самом высоком уровне. Но те, кто увлечен этой сферой, как никто другой должен знать, где получить нужную информацию. Препятствием к поступлению в вуз может служить недостаточные баллы ЕГЭ по русскому языку и ЕГЭ по математике, уделите достаточное время и усилия для подготовки к этим предметам.

В отличие от бланковой модели экзамена, в 2021 году выполнение заданий по программированию допускается на языках программирования (семействах языков): С++, Java, C#, Pascal, Python, Школьный алгоритмический язык. Продолжительность экзамена останется прежней и составит 3 часа 55 минут.

Какие языки программирования будут на ЕГЭ 2021?

В отличие от письменной модели экзамена, в этом году выполнение заданий по программированию допускается на языках программирования: С++, Java, C#, Pascal, Python, школьный алгоритмический язык.

Какие среды программирования будут на ЕГЭ?

Список языков программирования указан в спецификации КИМ ЕГЭ по информатике и ИКТ 2021 года, размещенной на сайте Федерального института педагогических измерений. Выполнение заданий по программированию допускается на языках С++, Java, C#, Pascal, Python, Школьный алгоритмический язык.

Какой язык программирования учить для Огэ?

Если предстоит изучать язык программирования «с нуля», для сдачи ОГЭ подойдёт «КуМир», с прицелом на будущее лучше освоить Python. В первой части экзамена лучше решать всё по порядку и записывать ответы прямо в КИМ. Перед тем как сдавать работу, нужно всё перепроверить и перенести правильные ответы в бланк.

Какие среды программирования будут на ЕГЭ 2021?

В отличие от бланковой модели экзамена, в 2021 года выполнение заданий по программированию допускается на языках программирования (семействах языков) С++, Java, C#, Pascal, Python, Школьный алгоритмический язык.

Для чего используется псевдокод?

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

Какой самый простой язык программирования?

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

  • Слово «Легко»
  • JavaScript.
  • Рубин на рельсах
  • питон
  • Джава
  • C / C ++
  • C #
  • Заключительные мысли о программировании интро

Когда будут результаты ЕГЭ 2021?

Рассказываем, когда будут известны результаты ЕГЭ-2021

Экзамен Дата экзамена Официальный день объявления результатов (не позднее указанной даты)
Обществознание 15.06 (вт) 30.06 (ср)
Биология 18.06 (пт) 05.07 (пн)
Иностранные языки (письменно) 18.06 (пт) 7.07 (ср)
Иностранные языки (устно) 21.06 (пн) 7.07 (ср)

Можно ли пользоваться компьютером на ЕГЭ по информатике?

Компьютером можно пользоваться на протяжении всего экзамена, а задания выполнять в любом порядке и возвращаться к ним.

Какие самые легкие предметы для сдачи ОГЭ?

Иностранный язык, география и информатика длятся 135 минут. Именно по продолжительности экзамена самые легкие предметы для сдачи ОГЭ — география, информатика и иностранный язык.

Для чего нужен алгоритмический язык?

Алгоритми́ческий язык — формальный язык, используемый для записи, реализации или изучения алгоритмов. Всякий императивный язык программирования является алгоритмическим языком, но не всякий алгоритмический язык пригоден для использования в качестве языка программирования.

Как проходит экзамен по информатике ОГЭ?

Структура ОГЭ

Экзамен состоит из двух частей, включающих в себя 20 заданий. Часть 1: 18 заданий (1–18) с кратким ответом. Записывается в виде цифры, последовательности цифр или букв. Часть 2: два задания (19, 20) для выполнения на компьютере.

Какие программы разрешены на ЕГЭ по информатике?

Теперь программировать разрешается на языках: C++, C#, Pascal, Python, Java, Школьный алгоритмический язык. Что касается содержания заданий, то 9 из них новые и выполняются на компьютере, а 18 полностью повторяют задания прошлых лет. Изменилась и система оценивания заданий.

Как посмотреть баллы ЕГЭ?

Узнать результаты ЕГЭ по каждому предмету ученики могут в учебном учреждении или на портале Госуслуг. Для проверки результатов через портал укажите данные паспорта (имя, фамилию, отчество, номер) или код регистрации ЕГЭ.

Доброго времени суток каждому жителю Хабрвилля! Давненько я не писал статей! Пора это исправить!

В сегодняшней статье поговорим о насущной для многих выпускников школ теме — ЕГЭ. Да-да-да! Я знаю, что Хабр — это сообщество разработчиков, а не начинающих айтишников, но сейчас ребятам как никогда нужна поддержка именно сообщества. Ребят опять посадили на дистант. Пока не ясно на какой период, но уже сейчас можно сказать, что ЕГЭ по информатике будет на компьютерах и его можно зарешать при помощи языка Python.

Вот я и подумал, чтобы не получилось как в песне, стоит этим заняться. Я расскажу про все задачи первой части и их решения на примере демо варианта ЕГЭ за октябрь.

Всех желающих — приглашаю ниже!

Быстрый перевод из системы в систему

В Python есть интересные функции bin(), oct() и hex(). Работают данные функции очень просто:

bin(156) #Выводит '0b10011100'
oct(156) #Выводит '0o234'
hex(156) #Выводит '0x9c'

Вывод в интерпретационном режиме

Вывод в интерпретационном режиме

Как вы видите, выводится строка, где 0b — означает, что число далее в двоичной системе счисления, 0o — в восьмеричной, а 0x — в шестнадцатеричной. Но это стандартные системы, а есть и необычные…

Давайте посмотрим и на них:

n = int(input()) #Вводим целое число
 
b = '' #Формируем пустую строку
 
while n > 0: #Пока число не ноль
    b = str(n % 2) + b #Остатот от деления нужной системы (в нашем сл записываем слева
    n = n // 2 #Целочисленное деление
 
print(b) #Вывод

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

n = int(input()) #Вводим целое число

b = '' #Формируем пустую строку

while n > 0: #Пока число не ноль
	if (n % 21) > 9: #Если остаток от деления больше 9...
		if n % 21 == 10: #... и равен 10...
			b = 'A' + b #... запишем слева A
		elif n % 21 == 11:#... и равен 11...
			b = 'B' + b#... запишем слева B

'''

И так далее, пока не дойдём до системы счисления -1 (я переводил в 21-ную систему и шёл до 20)

'''

		elif n % 21 == 11:
			b = 'B' + b
		elif n % 21 == 12:
			b = 'C' + b
		elif n % 21 == 13:
			b = 'D' + b
		elif n % 21 == 14:
			b = 'E' + b
		elif n % 21 == 15:
			b = 'F' + b
		elif n % 21 == 16:
			b = 'G' + b
		elif n % 21 == 17:
			b = 'H' + b
		elif n % 21 == 18:
			b = 'I' + b
		elif n % 21 == 19:
			b = 'J' + b
		elif n % 21 == 20:
			b = 'K' + b
	else: #Иначе (остаток меньше 10)
		b = str(n % 21) + b #Остатот от деления записываем слева
	n = n // 21 #Целочисленное деление

print(b) #Вывод

Способ объёмен, но понятен. Теперь давайте используем тот же функцию перевода из любой системы счисления в любую:

def convert_base(num, to_base=10, from_base=10):
    # Перевод в десятичную систему
    if isinstance(num, str): # Если число - строка, то ...
        n = int(num, from_base) # ... переводим его в нужную систему счисления
    else: # Если же ввели число, то ...
        n = int(num) # ... просто воспринять его как число
    # Перевод десятичной в 'to_base' систему
    alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" # Берём алфавит
    if n < to_base: # Если число меньше системы счисления в которую переводить...
        return alphabet[n] # ... вернуть значения номера в алфавите (остаток от деления)
    else: # Иначе...
        return convert_base(n // to_base, to_base) + alphabet[n % to_base] # ... рекурсивно обратиться к функии нахождения остатка

Вызвав функцию вывода print(convert_base(156, 16, 10)) мы переведём 156 из 10 в 16 систему счисления, а введя print(convert_base('23', 21, 4)) переведёт 23 из 4-ичной в 21-ичную систему (ответ: B).

Задача 2

Все задания беру из первого октябрьского варианта (он же вариант № 9325894) с сайта Решу.ЕГЭ.

Решение данной задачи совсем простое: банальный перебор.

print('y', 'x', 'z', 'F') #Напечатаем заголовки таблицы
for y in range(2): #Берём все переменные и меняем их в циклах '0' и '1'
	for x in range(2):
		for z in range(2):
			for w in range(2):
				F = ((not x or y) == (not z or w)) or (x and w) #Записываем функцию
				print(x, y, z, F) #Выводим результат

Результат:

Нам вывелась вся таблица истинности (1 = True, 0 = False). Но это не очень удобно. Обратите внимание, что в задании, функция равно 0, так и давайте подправим код:

print('y', 'x', 'z', 'F') #Напечатаем заголовки таблицы
for y in range(2): #Берём все переменные и меняем их в циклах '0' и '1'
	for x in range(2):
		for z in range(2):
			for w in range(2):
				F = ((not x or y) == (not z or w)) or (x and w) #Записываем функцию
				if not F:
					print(x, y, z, F) #Выводим результат

Результат:

Далее — простой анализ.

Задача 5

Данная задача легко решается простой последовательностью действий в интерпретационном режиме:

Задача 6

Перепечатали и получили ответ:

s = 0
k = 1
while s < 66:
    k += 3
    s += k
print(k)

Задача 12

В очередной раз, просто заменим слова на код:

a = '9' * 1000

while '999' in a or '888' in a:
	if '888' in a:
		a = a.replace('888', '9', 1)
	else:
		a = a.replace('999', '8', 1)
print(a)

Задача 14

Компьютер железный, он всё посчитает:

a = 4 ** 2020 + 2 ** 2017 - 15
k = 0

while a > 0:
    if a % 2 == 1:
    	k += 1
    a = a // 2

print(k)

Задача 16

Опять же, просто дублируем программу в python:

def F(n):
    if n > 0:
        F(n // 4)
        print(n)
        F (n - 1)
print(F(5))

Результат:

Задача 17

Задача с файлом. Самое сложное — достать данные из файла. Но где наша не пропадала?!

with open("17.txt", "r") as f: #Открыли файл 17.txt для чтения
    text = f.read() #В переменную text запихнули строку целиком
a = text.split("n") #Разбили строку энтерами (n - знак перехода на новую строку)

k = 0 #Стандартно обнуляем количество
m = -20001 #Так как у нас сумма 2-ух чисел и минимальное равно -10000, то минимум по условию равен -20000, поэтому...

for i in range(len(a)): #Обходим все элементы массива
	if (int(a[i - 1]) % 3 == 0) or (int(a[i]) % 3 == 0): #Условное условие
		k += 1 #Счётчик
		if int(a[i - 1]) + int(a[i]) > m: #Нахождение минимума
			m = int(a[i - 1]) + int(a[i])

print(k, m) #Вывод

Немного пояснений. Функция with() открывает файл считывает данные при помощи функции read() и закрывает файл. В остальном — задача стандартна.

Задача 19, 20 и 21

Все три задачи — задачи на рекурсию. Задачи идентичны, а вопросы разные. Итак, первая задача:

Пишем рекурсивную функцию и цикл перебора S:

def f(x, y, p): #Рекурсивная функция
	if x + y >= 69 or p > 3: #Условия завершения игры
		return p == 3
	return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
		   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий

for s in range (1, 58 + 1): #Перебор S
	if f(10, s, 1): #Начали с 10 камней
		print(s)
		break

Немного пояснений. В рекурсивной функции существует 3 переменные x — число камней в первой куче, y — число камней во второй куче, p — позиция. Позиция рассчитывается по таблице:

Игра

Петя

Ваня

Петя

Ваня

Петя

p

1

2

3

4

5

6

Далее — всё по условию задачи.

Вторая задача на теорию игр:

Все отличия в рамке. Ну и код, соответственно, не сильно отличается:

def f(x, y, p): #Рекурсивная функция
	if x + y >= 69 or p > 4: #Условия завершения игры
		return p == 4
	if p % 2 != 0:
		return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
			   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
	else:
		return f(x + 1, y, p + 1) and f(x, y + 1, p + 1) and
			   f(x * 2, y, p + 1) and f(x, y * 3, p + 1) #Варианты действий


for s in range (1, 58 + 1): #Перебор S
	if f(10, s, 1): #Начали с 10 камней
		print(s)

Отличия:

  1. Выиграл Петя, соответственно, позиция 4

  2. Так как Петя не может выиграть за один ход — он выигрывает за 2 хода (and, а не or на нечётных позициях (играх Пети))

  3. Убрали break, так как нам нужны все S, а не единственный

Последняя вариация задачи:

Сразу код:

def f(x, y, p): #Рекурсивная функция
	if x + y >= 69 or p > 5: #Условия завершения игры
		return p == 3 or p == 5
	if p % 2 == 0:
		return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
			   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
	else:
		return f(x + 1, y, p + 1) and f(x, y + 1, p + 1) and
			   f(x * 2, y, p + 1) and f(x, y * 3, p + 1) #Варианты действий


for s in range (1, 58 + 1): #Перебор S
	if f(10, s, 1): #Начали с 10 камней
		print(s)

Ну и всего лишь 2 отличия:

  1. Позиции 3 или 5, а не 4, так как выиграл Ваня

  2. На второй ход выигрывает Ваня и нам нужно or и and поменять. Я заменил только кратность 2.

Задача 22

Ctrl+C, Ctrl+V — наше всё! :)

for i in range(1, 100000):
	x = i
	L = 0
	M = 0
	while x > 0 :
		L = L+1
		if (x % 2) != 0:
			M = M + x % 8
		x = x // 8
	if L == 3 and M == 6:
		print(i)

Задача 23

Итак, код:

def f(x, y):
	if x > y: #Перегнали цель
		return 0
	if x == y:  #Догнали цель
		return 1
	if x < y: #Догоняем цель тремя методами
		return f(x + 1, y) + f(x + 2, y) + f(x * 2, y)

print(f(3, 10) * f(10, 12)) #Прошло через 10, значит догнали 10 и от де догоняем 12

Так как в условии задачи мы увеличиваем число, но будем числа «догонять». Три метода описаны, ну а пройти через 10 — значит дойти до него и идти от него.

Собственно, это и есть вся первая часть ЕГЭ по информатике решённая на Python.

Ссылка на репозиторий со всеми программами:

Надеюсь, что смог помочь в своей статье выпускникам и готовящимся ;)

Остался один вопрос — нужен ли разбор второй части ЕГЭ по информатике на Python? Оставлю этот вопрос на ваше голосование.

Всем удачи!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Делаю разбор второй части?

Проголосовали 105 пользователей.

Воздержались 15 пользователей.

Понравилась статья? Поделить с друзьями:
  • Егэ информатика пробник с решением
  • Егэ информатика презентация разбор
  • Егэ информатика предбанник
  • Егэ информатика практическая часть
  • Егэ информатика поляков теория игр