Домой | Софт | Мастерская | Лирика | ЧаВО | Юмор |
Здесь собраны написанные мною программы, которые трудно отнести к категории Софт.
Работоспособность программ не гарантируется, особенно это касается программ за первый семестр, т.к. тогда я не очень внимательно следил за синхронизацией изменения кода программ.
Первый семестр:
Протабулировать функцию (pascal)
Сгладить элементы таблицы (pascal)
Нужно заменить каждый элемент таблицы на среднее арифметическое соседних и самого элемент.
Поиск кратчайшего пути к выходу из лабиринта (pascal)
Реализовать алгоритм поиска кратчайшего пути к выходу из лабиринта. Здесь реализован полный перебор. Уже после сдачи программы я узнал про волновой алгоритм поиска. Он заключается в том, что ход из текущего положения делается сразу во все стороны. В результате поиск значительно ускоряется.
Кроме реализации алгоритма программа позволяет создавать лабиринты.
Посчитать количество последовательностей чисел в файле (pascal)
Каждая последовательность должна состоять из трех элементов, таких что, первый элемент - отрицательный, второй - нулевой, третий - положительный.
Второй семестр:
Отсортировать массив строк в лексикографическом порядке (pascal)
Компилятор арифметических выражений (калькулятор)
Используется метод Дейкстры.
Итерационное вычисление определенного интеграла с заданной точностью
Семинарские задачи:
Отсортировать строки таблицы
В указанном столбце порядок элементов после сортировки должен быть следующим: отрицательные, нули, и затем положительные элементы. Порядок следования элементов одного знака и нулей должен сохраняться.
Релизовать дек и очередь
На основе реализации проверить, является ли слово в деке перевертишем.
Из одной очереди вещественных чисел, при помощи вспогательной, удалить все отрицательные элементы.
Реализовать двусвязный список на основе кольцевого с буферным элементом
Вычисление синуса при помощи ряда Тейлора
Третий семестр:
Удалить из предложения повторяющиеся слова (C++)
Реализовать иерархический список строк
Это последовательность состоящая из строк или иерархических списков. Т.е. каждый элемент списка - либо строка, либо подсписок (я думаю Проводник Windows все видели)
Написать следующие функции:
- Дана строка, обозначающая иерархический список. Строка содержит маленькие латинские буквы, скобки и запятые. Пример такой строки: "((a,b),c,(),b)". Преобразовать такую строку в иерархический список.
- проверка вхождения строки в иерархический список в. печать всех строк, входящих в иерархический список на любой глубине
- проверка на равенство двух списков
Приведение формулы логики высказываний к КНФ
Программа на некоторых формулах работает не правильно.
По заданной квадратной матрице НхН построить вектор 2*Н-1, элементы которого - максимальные элементы диагоналей паралельных побочной
Четвертый семестр:
Реализовать класс "Текст"
Текст хранить в виде списка строк. Размеры текста могут динамически изменяться.
Методы:
- добавить строку после n-й строки;
- получить n-ю строку;
- изменить n-ю строку;
- удалить n-ю строку;
- получить количество строк в тексте;
- получить количество символов в тексте;
- удалить весь текст.
- сравнение двух текстов посимвольно
- прочитать текст из потока (текст читается до конца потока);
- вывести текст в поток.
Описать абстрактный класс "Функция на отрезке [a,b]" (шаблон с параметрами double, double)
Единственный метод которого - метод с непустым телом, выдающий значение функции в заданной точке. Само вычисления значения можно поручить виртуальному методу.
Реализовать производные классы:
- полиномы 2-й степени одной переменной
- линейная комбинация тригонометрических функций sin и cos
- экспонента от полинома 1-й степени одной переменной
- константную функцию
Реализовать алгоритм решения системы линейных уравнений методом ортогонализации строк
Реализовать алгоритм решения системы линейных уравнений попеременно-треугольным методом
Реализовать шаблон упорядоченного дерева
Шестой семестр
WinAPI - рисование произвольных фигур в окне
Реализовать рисование фигур в окне по нажатию клавиш клавиатуры.
Тип и цвет фигуры должен выбираться случайным образом. Нарисованные фигуры не должны стираться при перекрытии окна другими окнами.
Winapi - Написать аналог стандартному EDIT
Написать программу, содержащее два дочерних окна каждое из которых может содержать по одной строке текста.
Их ширина примерно равна половине размера рабочей области окна, а высота - чуть больше высоты одного символа.
Верхний прямоугольник (поле ввода) будет использоваться для ввода текста, нижний (поле вывода) - только для вывода.
Вводимые с клавиатуры отображаемые символы должны печататься в поле ввода. В поле ввода должна отображаться каретка и работать клавиши Backspace, Del, Home, End и стрелки. При нажатии клавиши Enter текст из поля ввода копируется в поле вывода.
Дополнительно:
Сделать так, чтобы при изменении размеров окна текст не исчезал.
Добавить скроллинг в поле ввода.
Сделать несколько полей ввода так, чтобы между ними можно было перемещаться клавишей TAB.
Winapi - написать элемент управления "Матрица"
Седьмой семестр
Интерполяционный сплайн (Delphi)
Построить интерполяционный спрайн по формуле Ньютона.
Вычислить несобственный интеграл
Вычисление производится аддитивным выделением особенности (метод Кантаровича) с последующим применением формулы Симпсона. Тут же вы найдете функию для вычисления определенных интегралов методом Симпсона.
Разностная схема и метод прогонки.
См. здесь.
В результате данных экспериментов ни одно животное не пострадало :)
Вот уж точно - безделушка. Все что делает эта программа - это плодит мух (используйте кнопки мыши). Но она плодит их разных. Одни мухи так и липнут к курсору мыши. Другие наоборот, боятся его как огня. А третьи просто летают.
Вы можете задавать цвет мух и их характеристики: максимальная скорость полета, хаотичность полета и критическое расстояние от курсора мыши. Но естественно полный контроль вы получаете покопавшись в исходных текстах. Так например для мух липучек можно ослабить торможение при превышении максимальной скорости с 6 до 10.
В результате можно добится классного эффекта: наплодите мух-липучек, поддвигайте курсор по кругу и затем установите его в центр описанного круга. Мухи станут летать по описанной окружности.
Алгоритмы огня
Вот захотелось попробовать написать собственные алгоритмы огня. В данной программе их целых семь. Кроме того вы сможете порисовать огнем. Левая кнопка - угасающий огонь, правая - вечный огонь :)
Зажигательная картинка
Базируется на Алгоритмах огня. Эту программку я подарил своей одногруппнице в университете на день рождения.
Как следует из названия - программа поджигает картинку. По умолчанию это - сердечко. Но вы можете подсунуть любую другую картинку. Главное чтобы она была размером 400х300 и черно-белая (grayscale).
EMH Birth - плагин для Fidolook SL, который добавляет новую маску "birth".
EMH Counter - плагин для Fidolook SL возвращает значение счетчика по его имени и, по-умолчанию, увеличивает его значение на единицу.
EMH RegExpr - плагин для Fidolook SL добавляет поддержку регулярных выражений.
Слава Антонов © 2002 — August 13, 2008 |
|