Сообщения

Задача 17 ЕГЭ по информатике: как решить на питоне в пять строчек

Задача 17 ЕГЭ по информатике: как решить на питоне в пять строчек Хотите готовиться со мной к ЕГЭ? Пишите: ydkras@mail.ru Немного обо мне   В задаче 17 дается файл, в котором записана последовательность целых чисел. Требуется некоторым образом обработать эту последовательность. Чаще всего нужно найти количество пар или троек соседних чисел, причем эти пары или тройки должны удовлетворять некоторому условию.  Вообще говоря, задача 17 не слишком сложная. Я, однако, хочу рассмотреть способ написания более короткого программного кода. Рассмотрим одну из таких задач. В ней дается последовательность чисел, которые находятся в диапазоне от -1000000 до 1000000. Требуется найти в этой последовательности количество троек (т.е. трех идущих подряд чисел), в которых 1) пятизначными числами являются только два из трех и 2) сумма чисел тройки не больше максимального элемента последовательности, оканчивающегося на 29. Нужно напечатать количество таких троек и максимальную из сумм элементов эт...

Черепаха, или задача 6 ЕГЭ по информатике

 Черепаха, или задача 6 ЕГЭ по информатике Хотите готовиться со мной к ЕГЭ? Пишите: ydkras@mail.ru Немного обо мне    В задаче 6 ЕГЭ по информатике используется "исполнитель Черепаха", заимствованный из Кумира - системы для обучению детей программированию. Черепаха передвигается по координатной плоскости и чертит за собой линию. В задачах задается алгоритм её движения и требуется подсчитать, сколько точек с целочисленными координатами находится внутри замкнутого контура, который она нарисует. Ниже мы рассмотрим способы решения этих задач с помощью простых программ на Питоне. Однако для написания этих программ часто требуются некоторые сведения из алгебры, геометрии и тригонометрии (впрочем, не слишком-то обширные).  На сайтах, посвященных ЕГЭ по информатике и в роликах на youtube часто предлагается решать эти задачи в Кумире или рисованием на листе в клеточку. Лично я не рекомендую такие способы: если линия проходит слишком близко к точке, то трудно точно установить...

Эники-беники, или проблему решает морж

 Эники-беники, или проблему решает морж   Хотите готовиться со мной к ЕГЭ? Пишите: ydkras@mail.ru Немного обо мне .     "Если вы можете решить задачу - это упражнение. Если нет - то это проблема." Ричард Беллман    ...Ученики бывают разные. Не знаю, как другим, но лично мне больше нравятся такие, которые думают сами и заставляют думать меня.  Недавно одна ученица (из тех, что мне нравятся) сказала, что у нее трудности с задачей. Задача следующая: программа на Питоне сначала вводит строчку с именами детей (Аня, Боря, Вова, Галя, Дима и т.д.) Предполагается, что дети стали в круг и с помощью считалки выбирают, кому водить. Вторая строчка - как раз считалка. Программа должна напечатать имя того, кому водить. Я удивился: в чем проблема-то? Сделаем из первой строчки список имен, подсчитаем количество слов во второй строчке и напечатаем элемент списка имен с индексом (n-1)%k, где n - количество слов в считалке, а k - количество детей. Ученица сказала: пробле...

Задача 25 ЕГЭ по информатике в 2024 г.

Задача 25 ЕГЭ по информатике в 2024 г. Хотите готовиться со мной к ЕГЭ? Пишите: ydkras@mail.ru Немного обо мне .    В 2022 году задача 25 ЕГЭ по информатике сильно изменилась. В ней требуется проверять соответствие числа маске - символьной строке, в которой, кроме цифр, могут присутствовать символы '?' и '*'. Символ '?' означает любую произвольную цифру, а '*' - любую последовательность цифр, возможно, пустую (нулевой длины). Такая же задача приводится и в демо-варианте 2024 г.  Данная задача решается очень просто. В питоне есть модуль fnmatch, содержащий функцию fnmatch. Данная функция как раз проверяет соответствие символьной строки маске, составленной по приведенным выше правилам. С помощью этой функции задачи такого типа решаются буквально в 3-4 строки. Возьмем, к примеру, задачу 25 из демо-варианта 2024 г.: Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: — символ «?» означает ровно одну произвольну...

Миллион цифр числа "пи"

 Миллион цифр числа "пи"   Хотите готовиться со мной к ЕГЭ? Пишите: ydkras@mail.ru Немного обо мне . (Данная тема имеет довольно слабое отношение к ЕГЭ по информатике, но оказалась красивой.) Полвека назад (страшно сказать!) я участвовал в институтской олимпиаде по программированию. Одной из задач было вычислить, какая цифра стоит в числе "пи" то ли на 50-м, то ли на 100-м месте после запятой.  Я использовал ряд для арктангенса. Понятно, 4*arctg(1)=Pi. Разумеется, точности представления вещественных чисел в ЭВМ БЭСМ-4М было совершенно недостаточно, чтобы понять, что там творится в 50-м знаке после запятой. Поэтому пришлось, само собой, представлять числа в виде массивов цифр и реализовать процедуры для арифметических действий с такими числами - на языке Алгол-60 (многие ли читатели слышали про такой, интересно?).  Наконец, программа (на перфокартах, понятное дело - впрочем, мне приходилось иметь дело и с перфолентами) была отлажена и стала выдавать цифру за циф...

Задача 22 ЕГЭ по информатике - многопроцессорные системы

 Задача 22 ЕГЭ по информатике - многопроцессорные системы Хотите готовиться со мной к ЕГЭ? Пишите: ydkras@mail.ru Немного обо мне .  В прошлом году в ЕГЭ по информатике появился новый тип задач - многопроцессорные системы (задача 22).  Смысл задачи достаточно простой. Имеется набор процессов, которые могут выполняться параллельно. Однако одни процессы не зависят от других и могут быть запущены в любой момент времени, другие же процессы должны дожидаться завершения некоторых других процессов, от которых они зависят. (Подразумевается, что одни процессы могут вырабатывать какие-то выходные данные, которые другие процессы используют как входные и соответственно не могут начать выполнение, пока "процессы-поставщики" не завершатся.)   Простое решение Для примера возьмем задачу из демонстрационного варианта ЕГЭ на 2023 г. К задаче прилагается файл Excel со следующей таблицей: A B C 1 ID процесса B Время выполнения процесса B (мс) ID процесса(ов) A 2 1 4 0 3 2 3 0 4 3...