- Saved searches
- Use saved searches to filter your results more quickly
- fagirton/Inf_EGE_templates
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- ЗаPython’ил ЕГЭ на сотку или почему Python поможет на ЕГЭ
- Быстрый перевод из системы в систему
- Задача 2
- Задача 5
- Задача 6
- Задача 12
- Задача 14
- Задача 16
- Задача 17
- Задача 19, 20 и 21
- ЕГЭ Информатика 2024 - Весь Python Для ЕГЭ
- Чему вы научитесь
- О курсе
- Для кого этот курс
- Начальные требования
- Наши преподаватели
- Как проходит обучение
- Программа курса
- Что вы получаете
- Что нужно знать по программированию для ЕГЭ и как выучить Python
- ЕГЭ-шные нюансы в Python
- Ресурсы для освоения Python
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Шаблоны программ для задач в ЕГЭ по информатике
fagirton/Inf_EGE_templates
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Шаблоны программ для задач в ЕГЭ по Информатике на Python
В текущей версии ЕГЭ довольно много заданий, которые можно (а иногда и обязательно) сделать на компьютере, однако их можно существенно упростить, если знать шаблон, в который достаточно дописать условие данной задачи. В этом репозитории я постараюсь собрать все шаблоны, которые были придуманы учителями и учениками в ходе подготовки (а через раздел «Issues» можно предложить и свои шаблоны). Скачать шаблоны и примеры в формате .py можно, нажав кнопку Code и в ней Download ZIP. Все примеры будут лежать в папке examples, а шаблоны в templates.
Сайту РешуЕГЭ за предоставленные задания
About
Шаблоны программ для задач в ЕГЭ по информатике
ЗаPython’ил ЕГЭ на сотку или почему Python поможет на ЕГЭ
Доброго времени суток каждому жителю Хабрвилля! Давненько я не писал статей! Пора это исправить!
В сегодняшней статье поговорим о насущной для многих выпускников школ теме — ЕГЭ. Да-да-да! Я знаю, что Хабр — это сообщество разработчиков, а не начинающих айтишников, но сейчас ребятам как никогда нужна поддержка именно сообщества. Ребят опять посадили на дистант. Пока не ясно на какой период, но уже сейчас можно сказать, что ЕГЭ по информатике будет на компьютерах и его можно зарешать при помощи языка 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
Перепечатали и получили ответ:
Задача 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 - позиция. Позиция рассчитывается по таблице:
ЕГЭ Информатика 2024 - Весь Python Для ЕГЭ
Детальный разбор ВСЕЙ базы знаний языка программирования Python 3, которая действительно НУЖНА для сдачи экзамена! В курсе есть ВСЯ основная теория, которая обязательна к изучению при подготовке к ЕГЭ по информатике.
Чему вы научитесь
- Научитесь мыслить логически и нестандартно
- Изучите все необходимые основы Python 3 для ЕГЭ
- Познакомитесь со многими функциями Python 3
- Узнаете о некоторых особенностях этого ЯП
- Примените полученные знания на практике
- Облегчите себе дальнейшую подготовку к экзамену, изучив важные азы ЯП
О курсе
Видеокурс по ВСЕЙ теории Python 3 - это полноценный курс, в котором разобрана вся база знаний языка программирования Python 3, необходимая для решения задач из ЕГЭ по информатике, с ПОЛНОГО НУЛЯ! Каждая тема будет понятна даже НОВИЧКУ, ведь обучение включает в себя :
- ТЕОРИЮ по Python 3, необходимую для сдачи экзамена
- КОНТРОЛЬНЫЕ ВОПРОСЫ, чтобы вы смогли оценить уровень своих знаний
- ПРАКТИКУ, чтобы вы закрепили полученные знания и навыки
- ДОМАШНЕЕ ЗАДАНИЕ с разбором всех особенностей
- ПОДДЕРЖКУ от преподавателя и единомышленников
- КОНСПЕКТ, который позволит легко повторить материал
- СОВЕТЫ о том, как и где «углубить» свои знания о Python 3
💖 Не стесняйтесь задавать любые вопросы в комментариях к курсу или же в нашей Беседе в VK :
✅ Пройдя курс, вы изучите ВСЮ базовую теорию знаний, необходимую для решения КИМа ЕГЭ по информатике, в том числе следующие темы 👇
- Переменные, типы данных, основные арифметические и логические операции, ввод / вывод значений
- Конструкции If, elif, else
- Циклы for и while
- Списки, генераторы списков, индексация списков, функции для списков
- Функции def и lambda, max и min и т.д.
- Рекурсия
- Срезы, обработка строк
- Множества и словари
- Работа с файлами
- Блок 1 - Вся База Для ЕГЭ По Информатике ( Теория + ДЗ ) ~ 5 часов
- Блок 2 - Задание №12 из ЕГЭ по Информатике ( Теория + ДЗ ) ~ 2 часа 30 мин.
- У курса нет старта. Вы можете начать его проходить в любой момент
- У курса нет подписок по месяцам. После покупки курса, вы получаете доступ к нему навсегда
- На курсе мы сначала рассказываем теорию, потом даём решить задачи по теме для отработки пройденного материала, а после показываем подробный видеоразбор каждой из них
- На курсе задания проверяются автоматически. Ждать проверки преподавателем не нужно
📚 Источники Задач :
- Сайт kompege.ru
- Сайт kpolyakov.spb.ru
- Реальные ЕГЭ \ Демо-версии \ Досрочные волны \ Резервные дни \ Апробации
- СтатГрады \ Авторские Задачи
Для кого этот курс
Курс создан для Школьников 10-11 классов, учителей и всех остальных, желающих сдавать ЕГЭ по Информатике
Начальные требования
Никаких. Научим всему с полного нуля
Наши преподаватели
Как проходит обучение
- При переходе к новой теме вы сначала получаете всю необходимую теорию, потом мы задаём несколько контрольных вопросов по теме, чтобы вы смогли оценить уровень своих знаний, а после даём закрепить полученные знания на практике
- По мере прохождения курса у вас под рукой есть конспект по всем темам, чтобы вы могли быстро что-то вспомнить
- В комментариях вы можете посмотреть чужие решения, чтобы лучше разобраться в теме, а также предложить своё решение
- Во время обучения у вас есть возможность задать преподавателю любой вопрос
Программа курса
Что вы получаете
- Теоретические разборы в формате видео
- Базовые знания, обязательные для подготовки к ЕГЭ по информатике
- Поддержку преподавателя, который ответит на любой вопрос в кратчайшие сроки
- Уникальный конспект, в который включена вся теория по Python 3 для ЕГЭ
Что нужно знать по программированию для ЕГЭ и как выучить Python
Как данные в этом языке обрабатываются и какие есть основные конструкции — то, с чего начинается разговор о программировании.
Основные конструкции = способы создания алгоритма.
Цель на ЕГЭ для выпускников — научиться решать задачи с помощью Python.
Базовые знания этого языка программирования состоят из
- циклов;
- типов данных (хранение информации в вашей программе);
- условий;
- функций
Функция в Python — метод, позволяющий какие-то значения передать, преобразовать и что-то, в итоге, получить или не получить.
ЕГЭ-шные нюансы в Python
Если вы в Python разберётесь с особенностями программы, о которых мы рассказываем дальше, то станет гораздо проще решать задания на экзамене.
- списки, срезы, словари (необходимо посмотреть, как именно обрабатываются данные);
- обработка строк
- файлы (чтобы научиться с ними работать, необходимо выучить две команды — считать одну строку и считать все строки.
Самое важное в программирование — ЖЕЛАНИЕ разобраться во всех тонкостях и УМЕНИЕ их применять.
Ресурсы для освоения Python
- metanit.com ;
- sobolearn.com ;
- Платформа stepik ;
- Платформа coursera ;
- Бесплатный спецкурс , где Коля Касперский объясняет программу с нуля и рассказывает, как решать задания 6,12,16,17,24 и 27 для ЕГЭ.