Мои программки

Введение

Здесь собраны написанные мною программы, которые трудно отнести к категории Софт.

Содержание

Лабораторные

Работоспособность программ не гарантируется, особенно это касается программ за первый семестр, т.к. тогда я не очень внимательно следил за синхронизацией изменения кода программ.

Первый семестр:

Протабулировать функцию (pascal)

Download (скачать)

Сгладить элементы таблицы (pascal)

Нужно заменить каждый элемент таблицы на среднее арифметическое соседних и самого элемент.

Download (скачать)

Поиск кратчайшего пути к выходу из лабиринта (pascal)

Реализовать алгоритм поиска кратчайшего пути к выходу из лабиринта. Здесь реализован полный перебор. Уже после сдачи программы я узнал про волновой алгоритм поиска. Он заключается в том, что ход из текущего положения делается сразу во все стороны. В результате поиск значительно ускоряется.

Кроме реализации алгоритма программа позволяет создавать лабиринты.

Download (скачать)

Посчитать количество последовательностей чисел в файле (pascal)

Каждая последовательность должна состоять из трех элементов, таких что, первый элемент - отрицательный, второй - нулевой, третий - положительный.

Download (скачать)

Второй семестр:

Отсортировать массив строк в лексикографическом порядке (pascal)

Download (скачать)

Компилятор арифметических выражений (калькулятор)

Используется метод Дейкстры.

Download (скачать)

Итерационное вычисление определенного интеграла с заданной точностью

Download (скачать)

Семинарские задачи:

Отсортировать строки таблицы

В указанном столбце порядок элементов после сортировки должен быть следующим: отрицательные, нули, и затем положительные элементы. Порядок следования элементов одного знака и нулей должен сохраняться.

Download (скачать)

Релизовать дек и очередь

На основе реализации проверить, является ли слово в деке перевертишем.

Из одной очереди вещественных чисел, при помощи вспогательной, удалить все отрицательные элементы.

Download (скачать)

Реализовать двусвязный список на основе кольцевого с буферным элементом

Download (скачать)

Вычисление синуса при помощи ряда Тейлора

Download (скачать)

Третий семестр:

Удалить из предложения повторяющиеся слова (C++)

Download (скачать)

Реализовать иерархический список строк

Это последовательность состоящая из строк или иерархических списков. Т.е. каждый элемент списка - либо строка, либо подсписок (я думаю Проводник Windows все видели)

Написать следующие функции:

  1. Дана строка, обозначающая иерархический список. Строка содержит маленькие латинские буквы, скобки и запятые. Пример такой строки: "((a,b),c,(),b)". Преобразовать такую строку в иерархический список.
  2. проверка вхождения строки в иерархический список в. печать всех строк, входящих в иерархический список на любой глубине
  3. проверка на равенство двух списков

Download (скачать)

Приведение формулы логики высказываний к КНФ

Программа на некоторых формулах работает не правильно.

Download (скачать)

По заданной квадратной матрице НхН построить вектор 2*Н-1, элементы которого - максимальные элементы диагоналей паралельных побочной

Download (скачать)

Четвертый семестр:

Реализовать класс "Текст"

Текст хранить в виде списка строк. Размеры текста могут динамически изменяться.

Методы:

Download (скачать)

Описать абстрактный класс "Функция на отрезке [a,b]" (шаблон с параметрами double, double)

Единственный метод которого - метод с непустым телом, выдающий значение функции в заданной точке. Само вычисления значения можно поручить виртуальному методу.

Реализовать производные классы:

  1. полиномы 2-й степени одной переменной
  2. линейная комбинация тригонометрических функций sin и cos
  3. экспонента от полинома 1-й степени одной переменной
  4. константную функцию

Download (скачать)

Реализовать алгоритм решения системы линейных уравнений методом ортогонализации строк

Download (скачать)

Реализовать алгоритм решения системы линейных уравнений попеременно-треугольным методом

Download (скачать)

Реализовать шаблон упорядоченного дерева

Download (скачать)

Шестой семестр

WinAPI - рисование произвольных фигур в окне

Реализовать рисование фигур в окне по нажатию клавиш клавиатуры.

Тип и цвет фигуры должен выбираться случайным образом. Нарисованные фигуры не должны стираться при перекрытии окна другими окнами.

Download (скачать)

Winapi - Написать аналог стандартному EDIT

Написать программу, содержащее два дочерних окна каждое из которых может содержать по одной строке текста.

Их ширина примерно равна половине размера рабочей области окна, а высота - чуть больше высоты одного символа.

Верхний прямоугольник (поле ввода) будет использоваться для ввода текста, нижний (поле вывода) - только для вывода.

Вводимые с клавиатуры отображаемые символы должны печататься в поле ввода. В поле ввода должна отображаться каретка и работать клавиши Backspace, Del, Home, End и стрелки. При нажатии клавиши Enter текст из поля ввода копируется в поле вывода.

Дополнительно:

Сделать так, чтобы при изменении размеров окна текст не исчезал.

Добавить скроллинг в поле ввода.

Сделать несколько полей ввода так, чтобы между ними можно было перемещаться клавишей TAB.

Download (скачать)

Winapi - написать элемент управления "Матрица"

Седьмой семестр

Интерполяционный сплайн (Delphi)

Построить интерполяционный спрайн по формуле Ньютона.

Download (скачать)

Вычислить несобственный интеграл

Вычисление производится аддитивным выделением особенности (метод Кантаровича) с последующим применением формулы Симпсона. Тут же вы найдете функию для вычисления определенных интегралов методом Симпсона.

Download (cкачать)

Разностная схема и метод прогонки.

См. здесь.

Эксперименты

В результате данных экспериментов ни одно животное не пострадало :)

Алгоритмы огня

Зажигательная картинка

Прочее

EMH Birth - плагин для Fidolook SL, который добавляет новую маску "birth".

EMH Counter - плагин для Fidolook SL возвращает значение счетчика по его имени и, по-умолчанию, увеличивает его значение на единицу.

EMH RegExpr - плагин для Fidolook SL добавляет поддержку регулярных выражений.

Слава Антонов © 2002 — August 13, 2008
Индекс цитирования 197-577-902 ICQ-статус
Hosted by uCoz