Управление Образования
Юго-Западного округа г. Москвы
ПЯТАЯ ОТКРЫТАЯ
КОНФЕРЕНЦИЯ
ИССЛЕДОВАТЕЛЬСКИХ
И ПРОЕКТНЫХ РАБОТ ШКОЛЬНИКОВ
СБОРНИК МАТЕРИАЛОВ
СЕКЦИИ COMPUTER SCIENCE
Москва – 2006
|
ПЯТАЯ
ОТКРЫТАЯ |
Вниманию
участников и научных руководителей
Из Положения
об открытой научной конференции лицея
1.... Банников
Эдуард (10В). Разработка компьютерной игры жанра RPG.
2.... Борисова
Татьяна (8B). Разработка программы «Foomitox».
3.... Варенцов
Михаил (9В). Программа тестирования по географии «ГлобуС++».
4.... Варенцов
Михаил (9В). Программа «Молекулярное моделирование».
5.... Волынский
Андрей (10А). Использование ресурсов и ресурс-менеджеров в Windows.
7.... Голубенко
Дмитрий (7А). Разработка игры «Перевозчик – симулятор
дальнобойщика».
12.. Климентьев
Антон (8Б). Реализация компьютерной игры с использованием ООП.
13.. Кузнецов
Сергей (8Б). Компьютерная игра «Змейка».
14.. Кузьмин
Алексей, Чикунов Егор (10Г). Многоцелевой мультимедийный движок
«Fiery Engine».
19.. Переславцев
Алексей (11В). Разработка алгоритма параллельного LR(k) грамматического разбора.
21.. Свешников
Михаил (8Б). Реализация двумерной анимации персонажей.
22.. Устинов
Владислав (11Г). Система динамического подключения и классификации
программных модулей.
23.. Чеснокова
Эльвира (8Б). Визуализация принципа сортировки объектов.
25.. Шимко
Олег (10 класс, школа №179 МИОО). Разработка компьютерной игры «Halloween»
26.. Янонис
Павел (10В). Разработка векторного графического редактора.
12 декабря 2006 года
12 ДЕКАБРЯ, ВТОРНИК
900
–915 — Открытие конференции
(Актовый зал, 1 этаж)
930–1200 — Работа секций.
Регистрация участников.
1200–1220 — Перерыв.
1220–1400 — Работа секций.
1400–1420 — Перерыв.
1420–1620 — Работа секций.
1620–1640 — Перерыв.
1640–1800 — Работа секций.
13 ДЕКАБРЯ, СРЕДА
1500 — Подведение итогов. Закрытие конференции.
Все
материалы докладов необходимо представить в Оргкомитет заблаговременно, до начала конференции для публикации в сборнике
трудов конференции и на сайте школы в Интернете.
Материалы
принимаются в электронной форме ответственными за секции.
По поводу
использования проекционной техники и/или особых условий доклада просьба консультироваться
с ответственными за секции.
Расписание
докладов будет вывешено дополнительно.
Одной из важнейших задач
специализированных школ является задача развития самостоятельных навыков
исследовательской работы у школьников. Для поддержки ребят, заинтересованных
в такой форме обучения, в лицее в 2002 году была проведена пробная
научная конференция школьников. На ней было заслушано десять докладов по
физике, математике и программированию. Хотя конференция была проведена в неудобное
для школьников время (конец мая) и докладчики из других школ не
приглашались, конференция, по нашим оценкам, прошла успешно: пришедшие
школьники проявили большой интерес и активно участвовали в обсуждении содержания
докладов. В связи с этим у организаторов конференции возникла мысль о необходимости
более систематической работы со школьниками, проявившими интерес к научной
работе, в течение всего года.
В связи с этим ежегодно в конце ноября —
начале декабря устраивать традиционную научную конференцию школьников, на
которой заслушивать доклады, отобранные оргкомитетом конференции. Так как эта
конференция будет проводиться в сроки, предшествующие срокам проведения
традиционных научных конференций школьников (зима-весна), то на неё будут допускаться
также докладчики с незавершенными исследованиями с целью активизации дальнейшей
работы над темой и подготовки докладчиков к выступлениям на «традиционных» конференциях.
Обязательным условием допуска докладов на Конференцию будет являться наличие
в исследовании новых результатов и оценок (реферативные доклады организаторами
поддерживаться не будут).
Важной особенностью нашей конференции является
принципиальный отказ от идеи состязательности докладчиков. Этому есть две
причины. Во-первых, формальная оценка качества докладов жюри создаёт неудобные
условия для школьников, не успевших завершить свои исследования к моменту
проведения конференции и ставит под вопрос их участие в подобном мероприятии.
Вторая причина — каждое разделение докладов по качеству создаёт ненужные
барьеры в общении школьников между собой и с членами жюри (к тому же оценки
научных работ членами жюри всегда субъективны).
Другой важной
особенностью конференции является ее открытость. К участию приглашаются (в
качестве докладчиков и слушателей) все заинтересованные школьники г.
Москвы, а также преподаватели и сотрудники школ и институтов.
Члены
оргкомитета конференции лицея
И. Р. Дединский, В.В. Татаринов
(Предс. И. Р. Дединский)
1. Банников Эдуард (10В). Разработка компьютерной игры жанра RPG.
Целью работы было создание увлекательной компьютерной игры. Ее жанр– RPG (role playing game) – ролевая пошаговая стратегия. Вы выступаете в роли героя странника. В вашем распоряжении 6 рас, 3 класса по 2 профессии в каждом. В игре большое количество предметов и мобов (как NPC, так и монстров). Также был разработан интересный сюжет с неожиданным концом. Проект был реализован с помощью объектно-ориентированного подхода на языке программирования C++.
2. Борисова Татьяна (8B). Разработка программы «Foomitox».
Цель работы – написание графического приложения (компьютерной игры) в среде Visual C++. В ходе выполнения работы были рассмотрены такие аспекты, как объектно-ориентированная архитектура программы, событийная модель, взаимодействие объектов, поворот и преобразование сложной геометрической фигуры с использованием матриц, реализация алгоритма «погони» за объектом, сохранение настроек программы в файле конфигурации. Для рисования объектов использовались функции собственных и сторонних библиотек.
Одной из самых интересных частей работы была реализация алгоритма поворота и преобразования объекта с использованием матриц. Способ с использованием матриц является более профессиональным и значительно более удобным, так как позволяет рассчитать все преобразование сразу и заранее, а потом уже применять их ко всем точкам объекта. В докладе рассматриваются детали применения этого метода.
Другой интересной частью работы была реализация алгоритма расчёта траектории объекта в зависимости от траектории другого объекта, то есть «погони» за объектом.
3. Варенцов Михаил (9В). Программа тестирования по географии «ГлобуС++».
Целью проекта являлась разработка программы географического тестирования с возможностью выполнять задания по карте и отвечать на вопросы тестов. Эта программа предоставляет реальные шансы повысить уровень знаний по географии и, соответственно, успеваемость на уроках. В ходе доклада рассмотрены следующие вопросы: разработка формата для хранения данных в файлах, представление географических объектов и работа с ними, разработка удобных структур данных и построение архитектуры, анализ действий ученика, общие алгоритмы тестирования, создания дружественного пользовательского интерфейса.
4. Варенцов Михаил (9В). Программа «Молекулярное моделирование».
Целью проекта является компьютерное моделирование движения молекул в безвоздушном пространстве с целью демонстрации некоторых законов статистики, в частности, распределения Максвелла, разработка базового физического и интерфейсного движков для дальнейшего развития и создание на их основе модели броуновского движения. Разработка проекта ведется на языке Java. Интерфейс пользователя реализован с помощью встроенной интерфейсной библиотеки java.awt. В докладе будут рассмотрены следующие вопросы: физика взаимодействия молекул как упругих сфер, некоторые законы статистической физики и их исследование с помощью модели, создание физического движка и его оптимизация, а также особенности разработки интерфейса программы средствами Java и его оптимизации.
5. Волынский Андрей (10А). Использование ресурсов и ресурс-менеджеров в Windows.
В приложениях под Windows большое количество данных (изображений, иконок, меню, диалогов, звуков и т.д.) хранятся в виде ресурсов файла. Файловыми менеджерами Windows (например, проводником) их прочитать невозможно, но на помощь приходят ресурс-менеджеры. Так называются программы, позволяющие читать и редактировать ресурсы файла. Таким образом мы можем проводить практически полный спектр изменений любой программы – от ее русификации до изменения изображений и редактирования диалоговых окон.
В Windows ее темы оформления (т.е. изображения всех кнопок, флажков, переключателей и других элементов управления, видимых на экране) хранятся в ресурсах системных файлов. В ходе доклада будет продемонстрировано редактирование ресурсов файлов Windows.
Целью работы является создание двумерной игры, с активным использованием ООП, т.е. разработки логичной и удобной системы классов, наследования и менеджеров классов в игровом программировании.
В ходе работы был создан удобный и интересный графический интерфейс игры, делающий ее привлекательной. В проекте используется эффект псевдо-3D графики, для реализации которого необходима определенная последовательность выведения изображений героев на экран.
Планируется создание в игре оригинальной сюжетной линии, которая будет выделять игру из ряда ее аналогов. Будет разработан редактор карт, значительно упрощающий создание новых уровней игры. В настоящее время ведется разработка алгоритмов взаимодействия объектов различных типов.
7. Голубенко Дмитрий (7А). Разработка игры «Перевозчик – симулятор дальнобойщика».
Целью является создание игры на языке С++. При написании используется компилятор среды Dev-С++. Действие происходит в Огненной Земле, в долине реки. Вам вверен небольшой грузовичок с продуктами, и необходимо развезти груз по всем домам, которые есть на карте. Будьте осторожны: везде есть некоторые неприятности, подробности в системе помощи.
Во время разработки я лучше познакомился с основами программирования под Windows, научился пользоваться компилятором С++ и средой Dev-Cpp, научился пользоваться графической библиотекой, понял её достоинства и недостатки и научился лучше думать.
Программа АТП-ЭКСПЕРТ-2006 предназначена для приема, математической обработки и графического представления в одной из заданных форм (по выбору оператора) экспериментальных данных, получаемых потенциометрическим анализатором жидкости Эусперт-001. работающим в режиме непрерывного контроля состава жидкости или в режиме потенциометрического титрования жидкости.
Анализатор жидкости Эксперт-001 представляет собой
специализированный вольтметр, позволяющий измерять значения потенциала со специальных
химических датчиков – ионоселективных электродов и преобразовывать эти значения
в величины рХ (одна из принятых шкал концентраций) или в значения концентрации
данного компонента (например, нитратов или солей аммония). Прибор может
непрерывно измерять значения концентраций и передавать в компьютер через
СОМ-порт или, через переходник, через USB- порт. Прибор может также выполнять
ряд других функций, в частности, осуществлять потенциометрическое титрование,
то есть управлять подачей жидкости из специального устройства – бюретки в исследуемый
образец и при этом фиксировать одновременно значения рХ и объем поданной
жидкости. Полученные зависимости, так называемые кривые титрования,
применяются для количественного определения состава жидкости по ряду важных
компонентов – показателю кислотности рН, концентрации сульфатов, жесткости
воды и т.д. , в зависимости от используемых датчиков анализатора и состава
добавляемого раствора (титрующего раствора или титранта). Определяемые показатели
имеют практическое значения, включая вопросы промышленной безопасности. в том числе процесс титрования
широко применяется в учебных курсах общей и аналитической химии, что
позволяет применить данный анализатор и программу АТП-ЭКСПЕРТ-2006 в учебных
курсах аналитической и общей химии и промышленной экологии.
Программа осуществляет управление СОМ-портом и обеспечивает считывание, распознавание и сортировку данных, поступающих с анализатора Эксперт-001 в различных режимах работы: непосредственно при измерении, в процессе титрования, а также при считывании результатов ранее сделанных измерений из памяти анализатора.. подключенного через СОМ-порт. Данные, представляющие собой значения потенциала или рХ, и соответствующие им значения объема в процессе титрования вносятся в таблицу и могут быть прочитаны оператором и использованы для математической обработки и графического представления данных.
Математическая обработка данных включает интерполяцию экспериментальных точечных функций различными методами: с помощью кривых Безье с использованием разработанной нами процедуры сопряжения отдельных кривых, с помощью кубических сплайнов, с помощью приближения параболами. В соответствии с требованиями к обработке кривых титрования программа включает устойчивые к экспериментальным шумам процедуры построения гладкой первой и второй производной из точечных функций, а также так называемых координат Грана, представляющих собою обратную величину первой производной значения рХ по объему. Доступный в программе АТП-ЭКСПЕРТ-2006 набор способов представления данных позволяет с достаточной точностью определять особые точки кривых титрования, точки эквивалентности.
Графическое представление данных организовано с дружественным пользователем меню, позволяющим выбирать метод обработки экспериментальных данных, параметры графика, включая количество окон, толщину и цвет линий, масштабы по осям и т.д.
Программа АТП-ЭКСПЕРТ-2006 является необходимой составляющей приборно-программного комплекса для титрования на базе анализатора жидкости Эксперт-001 и полностью внедрена в производство. Программа была успешно использована при подготовке студенческой дипломной работы в Российском государственном университете нефти и газа им. И.М.Губкина. Ранняя версия программы была использована при проведении студенческого практикума по физико-химическим методам анализа (ФХМА) в том же университете, где ей воспользовались 7 групп (более 200 студентов).
Цель проекта – разработать игру «Attention, tanks!». В задачи входило:
1. Разработка архитектуры программы;
2. Разработка физического движка;
3. Разработка и реализация поддержки единого стиля графических элементов («скинов»).
Упор в проекте делался на надежность программы, поддержку удобной отладки и быстрый поиск ошибок. В процессе работы была изучена и применена концепция функторов. Также было сделано архитектурное разделение проекта на несвязанные слои – управление, расчёт, отображение.
Значительная часть задач робототехники сводится к разработке систем управления обеспечивающих высокую скорость и точность отработки сигналов управления. Основой таких является следящая система (система с обратной связью). Она включает в себя датчики сбора информации о положении и скорости звеньев системы, микроконтроллер для обработки датчиков и отработки управляющих сигналов, усилитель мощности и электродвигатель. Алгоритмическая часть следящей системы реализуется в виде программы для микроконтроллера, которая отрабатывает датчики и выдаёт управляющие сигналы двигателю.
Основой работы следящей системы является сопоставление сигналов управления (требуемого положения звена) и реально измеренного положения звена. Система позволяет минимизировать ошибку, т.е. разность между этими величинами. Алгоритмы, по которым строится следящая система, исполняются на управляющем микроконтроллере. Интеллектуальное управления подразумевает, что система управления «знает» информацию об управляемом объекте. Основное применение таких систем – робототехника и мехатроника.
В докладе будут рассмотрены
основные алгоритмы, на которых построена следящая система, на примере системы
позиционирования звена манипулятора робота: 1) Определение необходимого
положения вала двигателя, на котором установлено звено манипулятора; 2)
Опрос датчика положения вала; 3) Определение разности между текущим и
требуемым положением; 4) Выработка сигнала управления двигателем; 5) Передача
сигнала в усилитель мощности в виде широтно-импульсной модуляции.
Изучение принципов функционирования и пространственной организации
генома живых организмов является одним из важнейших направлений развития
современной науки. Компьютерное
моделирование является одним из мощнейших средств исследования механизмов
биохимических процессов, происходящих
в водной среде живых тканей. Модели
многих биомолекулярных агрегатов (например, супервитки ДНК, комплексы типа ДНК-фермент или ДНК-лекарство) содержат в своем составе огромное
количество молекул растворителя –
воды. Вычислительные
эксперименты в таких моделях требуют
контролировать взаимодействие сотен тысяч атомов, совершающих тепловое движение. Расчеты структурных и
термодинамических характеристик таких объектов требуют значительных
вычислительных ресурсов. Использование параллельных алгоритмов позволяет
производить расчеты в системах содержащих более 1 млн. атомов и в перспективе
позволит ставить эксперименты для целой клетки организма. Одной из важнейших целей исследований
в данной области является упрощение процесса разработки новых лекарственных
препаратов.
В институте математических проблем биологии РАН была разработана модель, описывающая тепловое движение молекул возле фрагмента ДНК. Движение молекул моделируется с использованием метода Монте-Карло по алгоритму Метрополиса. Этот алгоритм подразумевает поочередное испытание всех молекул воды в системе. Одиночное испытание состоит в случайном изменении положения отдельной молекулы, но не более чем на d. В результате такого перемещения изменяется потенциальная энергия системы, которая в данной модели представляет собой сумму энергий парных взаимодействий молекул внутри ячейки. Если потенциальная энергия конфигурации, получившейся в результате испытания, меньше чем потенциальная энергия в прежней конфигурации, то новое положение молекулы принимается. В противном случае проводится дополнительное испытание, поскольку существует отличная от 0 вероятность перехода системы из состояния с меньшей потенциальной энергией в состояние с большей потенциальной энергией.
Для получения интересных с биологической точки зрения результатов требуется производить расчеты в системах, содержащих десятки и сотни тысяч молекул и производить над каждой из них 10-20 тысяч испытаний. Объем вычислений в данном алгоритме имеет порядок N(N-1)/2, где N число молекул, поэтому потребовалась разработка специального параллельного алгоритма.
Идея распараллеливания вычислений заключается в разделении исходного объема на ячейки меньшего размера и проведении нескольких испытаний одновременно. Это возможно, потому что в модели, при вычислении энергии, не учитывается взаимодействие молекул удаленных друг от друга более чем на определенное расстояние. Это расстояние называется радиусом обрезания и составляет 8-10 А.
Система распределяется на разные процессоры, но для корректного решения задачи между ними должно существовать взаимодействие, поскольку для расчета требуются данные, которые при распределении попали на другие процессоры. Для организации этого взаимодействия используется библиотека MPI, позволяющая передавать данные между процессорами. В этой реализации алгоритма взаимодействие между процессорами происходит после того, как каждый из них произвел по одному испытанию над каждой молекулой в своей подсистеме.
В результате разработки параллельного алгоритма появилась возможность за приемлемое время (1-2 суток) производить эксперименты на системах, расчет которых на персональном компьютере занял бы не один месяц.
12. Климентьев Антон (8Б). Реализация компьютерной игры с использованием ООП.
Цель проекта – создание
компьютерной игры с использованием графики Windows, совмещенной с массивами, структурами,
классами и наследованиями.
Будут рассмотрены вопросы
создания «умного» врага, гоняющегося за игроком; потенциального врага, просто
летающего по полю и алгоритмы их работы.
В начальных версиях фон был черным, но для большей популярности и для оживления игры фон станет рисунком.
Сценарий игры таков, что игрок управляет меняющим цвет эллипсом и уменьшает количество желтых монет, прибавляя себе этим очки. «Умный» враг уничтожает монеты, мешая игроку самому это сделать, и увеличивает сложность прохождения игры. А про потенциального врага и говорить нечего: он просто летает по своей траектории и мешает.
13. Кузнецов Сергей (8Б). Компьютерная игра «Змейка».
Весьма популярной и известной игрой является «Змейка», игра, где по экрану двигается «Змея», состоящая из элементов, которая «ест» «яблоки», увеличивая свою длину.
Целью работы было найти
несложный и логичный способ представления «змеи». Было решено использовать
для этого массив структур, содержащих координаты по X и Y. У змеи есть также
длина, направление головы и цвет.
Один из самых сложных алгоритмов в игре – алгоритм появления «яблока» так, чтобы оно не появилось на самой «змее».
В дальнейшем эту несложную по написанию, но интересную игру можно будет усовершенствовать.
Реализовать проект было решено на языке C++, так как этот мощный и гибкий язык, поддерживающий объектно-ориентированное программирование – удобный способ работы с объектами игры. В ходе работы были изучены и некоторые стандартные функции Win32.
В докладе будут представлены устройство змейки и схема работы с ней.
14. Кузьмин Алексей, Чикунов Егор (10Г). Многоцелевой мультимедийный движок «Fiery Engine».
Движок – это то, без чего не может существовать ни одна крупная графическая программа и любая компьютерная игра. Движок объединяет в себе набор классов, функций и утилит для использования графики, звука, устройств ввода и всего остального, что может вам потребоваться в программах. Соответственно перед нами стояла задача создать простой в использовании, но в тоже время многоцелевой движок, при помощи которого Вы можете использовать графику в своих программах, даже не будучи знакомыми с ней. Fiery Engine, на данный момент, является далеко не первой, и не финальной версией движка. За 2 года работы он много раз переписывался, обрастал новыми возможностями. Теперь Fiery Engine – это в первую очередь не зависящий от графической, библиотеки ввода, музыкальной библиотеки движок (вы можете использовать DirectX или OpenGL или любую другую библиотеку с минимальными затратами времени на её подключение). Именно на такую независимость был сделан упор в последней версии. На текущий момент он поддерживает музыку, обрабатывает устройства ввода, а также содержит функции для работы со сложной графикой (создание ландшафтов, загрузка моделей). Уже готова документация, в которой описаны все классы и функции движка, а в ближайшее время будет написан ряд примеров, которые помогут Вам лучше понять основы использования Fiery Engine.
Энкодеры (encoders) – специальные датчики для определения углового положения вращающегося вала. Энкодер представляет из себя устройство, устанавливающееся на вращающийся вал, положение и скорость которого и нужно измерять.
Как правило, на выходе у энкодера имеется 2 сигнала: канал A и канал B, имеющие П-образный вид и смещённые друг относительно друга на четверть периода. При подключении этих выводов на выводы микроконтроллера, можно отслеживать частоту сигнала на этих выводах и запаздывание оного сигнала относительно другого. Таким образом можно определять положение, скорость и направление вращения датчика.
Так как скорость вращения может варьироваться в большом диапазоне, то возникают сложности при её определении: на малых и больших скоростях необходимо использовать разные алгоритмы расчёта, что также создаёт проблему о переключении алгоритмов при изменении скорости.
В докладе будут рассмотрены алгоритмы расчёта положения и скорости вращения датчика и особенности написания программы для реализации данных алгоритмов на примере одного из распространённых типов энкодеров.
Целью работы было создание графической компьютерной игры TIR_UNLIMITED на языке программирования C++ с помощью компилятора Dev-C++. Цель игры – за минимальное количество выстрелов попасть в различные мишени. Игра развивает меткость. В игре использована графика в виде файлов BMP, что придает игре красочность. Разработка этой игры помогла лучше понять основы программирования под Windows и научиться пользоваться компилятором Dev-C++.
В дальнейшем планируется
командная разработка игры в среде Visual Studio 2005, которая будет являться
аналогом знаменитой игры «Life Forсe» на Dendy.
В настоящий момент проблема кибертерроризма и информационной безопасности становится одной из важнейших составляющих общей проблемы безопасности страны. Одним из направлений обеспечения безопасности информационных систем является проверка используемых и разрабатываемых программных продуктов на отсутствие в них специально или случайно внесенных ошибок, которые могут поставить под угрозу безопасность всей информационной системы. До 90% всех кибервзломов в мире осуществляется через подобные ошибки в программном обеспечении. Многие компьютерные вирусы используют подобные уязвимости для своего распространения.
Отделом компиляторных технологий ИСП РАН разрабатывается интегрированная среда поиска уязвимостей и критических ошибок SVaCE Detector (Security Vulnerabilities and Critical Errors Detector) для статического обнаружения уязвимостей и критических ошибок в исходном коде программ.
Среда поиска уязвимостей осуществляет статический анализ исходного кода на этапе компиляции, как следствие отсутствует необходимость в тестовых запусках анализируемого программного кода. Межпроцедурный уровень анализа программ, использующийся средой, позволяет находить самые сложные типы уязвимостей, которые возникают в случае несогласованности типов данных, передаваемых между вызывающей и вызываемой функциями. Дополнительные виды семантического анализа программ: анализ указателей, анализ целочисленных значений и зависимостей между объектами программы, выполняющиеся в ходе основного цикла работы среды, повышают точность выдаваемых результатов до уровня 40-80% истинных предупреждений, что является очень высоким показателем, который не может быть достигнут при использовании средств синтаксического анализа. В среде имеются специально разработанные уникальные методы обратного анализа, которые позволяют дополнительно снизить количество выдаваемых ложных предупреждений и определить источники возникновения уязвимостей и ошибок.
Данная среда может эффективно использоваться при разработке программного обеспечения для повышения надежности последнего, а так же для проверки уже работающего программного кода критически важных с точки зрения безопасности систем.
В большинстве современных растровых графических редакторах используется метод «жидкой заливки». Этот метод позволяет закрасить любой произвольный замкнутый контур, однако отличается медлительностью и «жадностью» в использовании памяти. На сегодняшний день существует много алгоритмов, позволяющих сделать это лучше, например, алгоритм с использованием скан-строк. По сути дела это – оптимизированный метод алгоритма волны.
В докладе рассматривается одна
из модификации этого алгоритма, с использованием стека отложенных задании для
устранения рекурсии. В докладе также рассматривается проектирование
дружественного пользовательского интерфейса с использованием динамического
подключения инструментов рисования графического редактора.
19. Переславцев Алексей (11В). Разработка алгоритма параллельного LR(k) грамматического разбора.
Целью работы является создание программы генерации синтаксического LR(k) анализатора по заданной контекстно-свободной грамматике. Для разработки алгоритма заполнения таблицы состояний LR(k) разбора и алгоритма анализа с помощью этой таблицы, была разработана формальная теория, отличающаяся от классической. Эта теория удачно описывает работу с неоднозначными грамматиками, в неё логично встраивается алгоритм для параллельного разбора.
Основной особенностью разработанного алгоритма является поддержка разбора по неоднозначным грамматикам. Такая возможность была получена за счёт параллельного разбора в неоднозначных конструкциях языка. Этот разбор полезен в языках с неоднозначной синтаксической структурой (C++, ограниченные естественные языки).
Параллельный разбор начинается, когда по символам предпросмотра невозможно определить какое именно действие нужно выполнить в данный момент. В этом случае создаётся столько параллельных вариантов разбора, сколько действий можно выполнить для данных состоянии и символах предпросмотра. Параллелизм продолжается до тех пор, пока стеки их состояний различаются. Как только они совпадут, он становится не нужен, т.к. дальнейший разбор у вариантов будет идентичен.
В качестве C++ API пользователя для сложных грамматик генератор может порождать структуры данных синтаксического скелета языка, а так же автоматически строить это скелет. Построение синтаксического скелета очень полезно, если определение сущностей может идти после их использования. Если же структуры данных не нужны (например, для программы калькулятора), то от пользователя требуется реализация функций, соответствующих правилам грамматики. Большинство генерируемых классов является шаблонными, что обеспечивает гибкую настройку их поведения без перегенерации API.
API пользователя генерируется в виде заголовочного файла, а и LR(k) таблица – в виде бинарного файла. Существует также возможность включения LR(k) таблицы в заголовочный файл в виде двумерного массива. Синтаксический разбор происходит при помощи шаблонного LR-движка, сгенерированного по грамматике API пользователя и LR таблицы.
20. Пономарёв Олег (7А). Создание игры в среде MS Windows с помощью компиляторов MS Visual Studio и Dev-C++ на базе проекта в MS-DOS.
Цель работы – создание графического приложения (компьютерной игры «Kill Wolf»). В проекте использовано современные технологии компиляторов MS Visual Studio 2005 и g++ (среды Dev-CPP), а также функции графической библиотеки Windows.
Цель игры – поразить врага, используя при этом левую кнопку мыши в режиме одного игрока, а в режиме двух игроков первый игрок должен «убежать» из под прицела второго игрока, используя при этом клавиши W – вверх, S – вниз, A – влево и D – вправо.
В дальнейшем планируется
командная разработка игры в среде Visual Studio 2005, которая будет являться
аналогом знаменитой игры «Life Forсe» на Dendy.
21. Свешников Михаил (8Б). Реализация двумерной анимации персонажей.
Цель работы – разработка
библиотеки для работы с анимацией. Каждый программист, создающий игру, сталкивается
с проблемой: как её оживить, сделать привлекательной и разнообразной. Одно из
решений этой проблемы – создание анимации персонажей и фона. Куда лучше выглядит
игра, где главный герой ходит, прыгает, лазит по стенам и стучит в монитор,
пытаясь разбудить игрока, а солнце изредка плавным движением улыбается всей
планете! Именно для этого предназначена библиотека для создания анимации. Для
удобства работы поможет знание классов и наследования.
Анимация – алгоритм отображения некоторого количества изображений, которые последовательно рисуются в одном и том же месте. Картинки загружаются в программу во время создания новой анимации, что обеспечивает ее высокую скорость. Можно рисовать только одну картинку, что позволит «затормозить игру и выполнять требуемые операции». В проекте разработана система классов с наследованием, позволяющая создание нескольких анимаций одновременно и имеющих разные способы рисования и заполнения переменных значениями. Для реализации пользовательского поведения классов используются виртуальные функции.
Данная работа представляет из себя программное ядро, дающее возможность подключать и классифицировать модули, содержащиеся в динамически разделяемых библиотеках (DLL), если у неё есть функция регистрации. Подключение осуществляется динамически, так что во время работы использующей программы есть возможность заменять версии модулей, добавлять новые или вовсе убирать старые. Например, система даёт возможность описания динамического изменения интерфейса, добавления новых функций, развития программы и подключения нововведений, не прерывая её работы. Также система содержит в себе модуль записи событий (лог). С помощью него регистрируются все события, причём для каждого источника генерации событий, регистрацию можно включать и отключать динамически. Также система поддерживает возможность логгинга исключений с возможностью динамического управления. То есть если определённая ошибка отлажена, то её можно считать маловероятной и отключить проверку, отнимающую время. Если же программа работает нестабильно, лучше включить все имеющиеся возможности проверок, и получить максимум информации о неисправностях.
23. Чеснокова Эльвира (8Б). Визуализация принципа сортировки объектов.
Целью работы являлось создание демонстрационной программы, показывающей принцип и процесс сортировки объектов методом «пузырька».
Сортировка объектов по какому-либо признаку может происходить различными способами. Я хочу рассказать о методе сортировки за счёт перемены двух ячеек в массиве с соседними индексами.
Этот тип сортировки состоит в следующем. Два объекта сравниваются по какому-либо признаку, и если значение этого параметра у второго объекта меньше, чем у второго, то эти объекты меняются местами в массиве.
Для темы моего доклада я выбрала именно этот тип сортировки, для того, чтобы пополнить коллекцию демонстраций сортировок, созданную другими людьми.
В будущем планируется создать программу, демонстрирующую процесс сортировки объектов различных типов различными способами.
Целью работы являлось написание трёхмерной ролевой игры и редактора карт для неё. Для взаимодействия с пользователем был реализован интерпретатор скриптов.
Скрипт представляет собой набор команд, которые исполняются в зависимости от состояния игрового мира или по команде пользователя. Пользователь может писать свои скрипты и создавать собственную игру или просто изменять какой-либо элемент.
В ходе разработки была изучена графическая библиотека OpenGL и была реализована загрузка моделей формата 3DS, что позволяет пользователю добавлять свои модели, созданные в профессиональных 3D редакторах.
Для удобства пользователя, нежелающего разбираться в собственном скриптовом языке программы, был реализован графический редактор уровней, который позволяет всего несколькими кликами мышки создать свой уровень или изменить уже существующий.
Ролевая система игры основана на упрощённых правилах D&D 3 редакции.
В будущем планируется включить поддержку звука и игру через Интернет.
25. Шимко Олег (10 класс, школа №179 МИОО). Разработка компьютерной игры «Halloween»
Цель работы – разработка компьютерной игры на тему Halloween и её игрового процесса, с поддержкой скинов и различных графических библиотек.
В игре реализовано большое количество разнообразных объектов, каждый из которых является анимацией (набор картинок в формате BMP), бонусы, помогающие пользователю в прохождении игры, большое количество уровней, звук (в формате WAV) при использовании бонуса или прохождении уровня, удобный пользовательский интерфейс.
26. Янонис Павел (10В). Разработка векторного графического редактора.
Целью работы является создание векторного графического редактора. Векторные редакторы позволяют создавать и редактировать векторные изображения непосредственно на экране компьютера, а также сохранять их в различных векторных форматах. В программе используется принцип геометрического моделирования — использования геометрических примитивов, таких как точки, линии, сплайны и полигоны , для представления изображений. «Векторная графика» является некоторой противоположностью растровой графике, в которой изображение представляется как матрица пикселей. Очень часто изображения в векторном формате занимают намного меньше места, чем растровые. Сохранение файла идет в формате PostScript, который легко импортируется в Photoshop и другие графические программы. Среди других задач проекта разработка различных инструментов рисования, пользовательского интерфейса в модели Win32. Программа позволяет задавать различные параметры изображения как объекта PostScript.
n