Последнее обновление:
Экзаменационные задачи выпуска 2004 года
Полный список предложенных задач.
- Тимур Исходжанов. Разработка компилятора и виртуальной машины
объектно-ориентированного языка программирования Emotions.
- Владимир Шашкин. Разработка командного интерпретатора (shell)
для Un*x.
- Глеб Дубовик. Разработка микроядерной операционной системы EOS.
- Юлия Ходакова.
Моделирование биологической системы хищник-жертва в модели Лотка-Вольтерра.
Уравнения модели:
x'=a1x - c1xz - b1x2, |
z'=-a2z + c2xz - b2z2, |
где x(t) численность жертв, y(t) численность хищников,
a1(a2) относительная скорость размножения
жертв (гибели хищников), b1 и b2 естественные
скорости вымирания популяций жертв и хищников,
c1(c2) коэффициент гибели (прироста) популяции
жертв (хищников) при взаимодействии хищников и жертв.
Требуется написать программу для решения уравнений модели и визуализации
поведения системы во времени и, варьируя коэффициенты при различных членах и
начальные условия, установить возможные сценарии развития системы хищников и
жертв.
- Павел Логинов.
Задача от А. В. Кондратьева.
Разработка программы для демонстрации
сложения цилиндрических волн от двух источников и влияние когерентности
источников на результат.
- Виктор Борзов. Игра в точки.
- Наталья Орлова.
Визуализировать движение в системе трёх тел Солнце - Земля -
Луна. Все тела взаимодействуют по закону тяготения, исходными данными являются
начальные положения и скорости планет. Все тела имеют конечные массы.
- Екатерина Калашникова.
Написать программу, визуализирующую движение грузика, к которому
прикреплены три пружинки различных жесткостей, закреплённые в вершинах
произвольного треугольника. Исходными данными для программы являются
начальное отклонение и скорость грузика. Вся система трёхмерна, т.е. начальное
отклонение грузика может не лежать в плоскости треугольника, поэтому можно
предусмотреть изменение точки и угла взгляда на систему.
- Надежда Дементьева.
Написать программу под Windows, которая рисует графики функций. Функция
задаётся в обычном виде, например 2*x + sin((1+x)/(1-x)) + 2^x.
Программа должна уметь масштабировать график произвольным образом, задавать
цвета фона, осей и графика, иметь функцию автомасштабирования по оси Y, уметь
прогкручивать график по вертикали и горизонтали. Будет хорошо, если для
неограниченных функций (например ctg(x) при x=0) программа
рисовала в точке обращения в бесконечность вертикальную пунктирную линию.
- Антон Рубашкин.
Смоделировать движение заряженной частицы в скрещенных постоянных
электрическом и магнитном полях.
- Максим Ксендзов.
Реализовать программу для форматирования текстовых файлов. В простейшем
варианте она должна из входного файла, состоящего из строк-параграфов (т.е.
одна длинная строка один параграф, как получается при экспорте из
M$ Word в текстовой файл), делать файл, в котором длина каждой строки не
превышает заданого числа (если это возможно), а каждый абзац начинается с
символа табуляции. Возможные усложнения: реализовать отсечение неправильных
символов (список таких символов задаётся), сделать проверку орфографии по
словарю, реализовать расстановку переносов, реализовать переформатирование
конечного текста под другую длину строки.
- Ярослав Никитенко.
Написать программу для упрощения символьных арифметических выражений и
вычисления их значений. Например выражение 2 + b - 5 / 2 - 3 * d
можно упростить до b - 3 * d - 0.5, выражение
a + 0 + 2 * a до 3 * a, а
1 / (1 + x) + 1 / (1 - x) до 2 / (1 - x^2).
- Александр Гареев.
Реализовать программу поиска сочетания символов в строке. В сочетании
символов могут входить метасимволы (wildcards) "?" и "*",
означающее соответственно, один любой символ и любую последовательность
символов.
- Матвей Полонский.
Написать программу, расставляющую заданную комбинацию пятнашек в
нормальном порядке. Обратите внимание, что некоторые входные последовательности
не являются разрешимыми.
- Антон Барабанов.
Реализовать программу, рассчитывающую сопротивление между двумя точками
электрической схемы сопротивлений. Программа должны уметь визуализировать
схему, и было бы хорошо, если бы она умела её строить и редактировать.
- Алексей Маликов.
Программа-календарь, рисующая календарь на любой месяц любого года.
Месяц задаётся либо в виде месяц/год, либо день года/год, либо количеством
дней, прошедших с определённой даты.
- Александр Костин.
Программа, визуализирующая движение в системе двух маятников, грузы
которых связаны пружиной. Задаются: ускорение свободного падения, массы грузов,
длина подвеса маятников, жесткость пружины, начальные положения и скорости
грузов. Требуется визуализировать саму систему и нарисовать графики зависимости
координат грузов от времени и зависимости энергий грузиков и полной энергии
системы от времени.
- Михаил Щелкунов.
Реализовать игру в крестики-нолики на бесконечном поле. Для выигрыша
необходимо зачеркнуть заданное количество символов по диагонали, вертикали или
горизонтали. Программа должна играть против человека и желательно, чтобы она
как минимум не проигрывала.
- Дмитрий Смирнов.
Написать программу визуализации фрактального множества Ньютона (множества
притяжения корней схемы Ньютона) для любого заданного полинома. Сам полином
задается с клавиатуры.
- Константин Максимов.
Написать программу для составления японского кроссворда по задаваемой
пользователем картинке.
- Петр Леляев.
Не привлекая никаких стандартных средств написать простой (или не очень
простой) текстовой редактор.
- Алексей Чаплыгин.
Реализация архиватора «Лёша».
- Илья Баркалов.
Реализовать программу, составляющую расписание занятий в школе. Заданы:
список кабинетов и предметов, занятия по которым могут
быть проведены в каждом из них, список учителей, у каждого из которых есть
список дней и часов на неделе, в которые они могут проводить занятия
и список классов, у
каждого из которых есть фиксированный набор уроков. Требуется найти все
варианты расписания на неделю.
- Михаил Филиппов.
Реализовать программу для перекодировки между различными кириллическими
кодовыми таблицами (CP866, CP1251, KOI8-R). Программа должна иметь опцию
автоматического распознавания исходной кодировки файла (например, на основании
частотной таблицы символов) и уметь отличать двоичные файлы от текстовых, не
перекодируя первые (но иметь опцию форсированной перекодировки).
- Михаил Нагель.
Написать программу, визуализирующую колебания математического маятника с
колеблущейся точкой подвеса. Необходимо убедиться, что в случае отсутствия
колебаний точки подвеса маятник не является изохронным, т.е. его период зависит
от амплитуды колебаний. Для случая колеблющейся точки подвеса необходимо
подобрать параметры колебаний так, чтобы верхнее положение равновесия маятника
стало устойчивым.
- Станислав Яснопольский.
Написать программу подгонки заданного набора точек на плоскости под
распределение Гаусса используя метод наименьших квадратов. Необходимо изобразить
исходный набор точек и полученное распределение. Также необходимо сравнить
параметры распределения Гаусса, полученные подгонкой и параметры, получаемые
по обычным формулам.
- Фёдор Лунин.
Реализовать программу-чат для интерактивного обмена сообщениями по сети.
- Михаил Ананьев.
Реализовать препроцессор для языка «Small C», способный
обрабатывать директивы #include, #define, #undef и
конструкцию #if #else #endif.