- •1. Введение.
- •2. Постановка задачи.
- •3. Математическая формулировка задачи и выбор метода обработки информации
- •4. Разработка алгоритма, схема алгоритма и его описание.
- •Messagedlg
- •Cleansg
- •Memo1.Lines.Insert
- •Messagedlg
- •Cleansg
- •Cleanedit messagedlg
- •Autorachet
- •Пояснения к алгоритму 6:
- •Пояснения к алгоритму 7:
- •Пояснения к алгоритму 8:
- •Cleansg
- •Autorachet
- •Пояснения к алгоритму 9:
- •Autorachet
- •Пояснения к алгоритму 10:
- •Пояснения к алгоритму 11:
- •Пояснения к алгоритму 12:
- •5. Форма представления исходных данных
- •6. Разработка интерфейса
- •7. Листинг программы
- •8. Результаты проведенных расчетов и их анализ.
- •Список использованной литературы
- •Приложения
3. Математическая формулировка задачи и выбор метода обработки информации
В поставленной задаче необходимо выполнить простейшие операции и вычисления. Математический аппарат представлен в виде вычисления двух неизвестных по заранее заданным формулам.
1) из базы данных выделить сведения на каждую запись об остатке на начало года, об остатке на конец года, о плане выпуска, а также стоимость в оптовых ценах единицы продукции.
2) выполнить вычисление объема реализации по формуле, указанной в задании.
3) выполнить вычисление стоимости в оптовых ценах всего объема реализации по формуле, указанной в задании.
Поиск наименования продукции, обладающей наибольшую стоимость всего объема реализации, происходит методом прямого перебора базы данных, сравнивая каждый последующий элемент с предыдущим. При обнаружении последующего элемента большим, чем предыдущий, значение стоимости записывается в одну буферную переменную, а индекс строки записывается во вторую. При окончании перебора в поле MEMO выводится наименование продукции из базы данных, соответствующей записанному ранее индексу, а значение переписывается из буферной переменной.
Элемент автоматической сортировки встроен в систему вывода информации через компонент StringGrid. Для этого используется типизированный массив набора данных. При добавлении новой записи происходит перенос данных из StringGrid-а в типизированный массив и затем происходит прямой перебор базы данных с поиском наиболее большего в текстовом смысле значения наименования продукции с использованием функции CompareText. При определении первого большего элемента добавляемая запись записывается между строк типизированного массива, а затем все «не пустые» записи типизированного массива переносятся в уже очищенный StringGrid. Затем типизированный массив очищается.
Таким образом исключается необходимость участия пользователя в процессе сортировки данных. Ход процесса перестроения базы данных как бы вмонтирован в операции по изменению данных. То есть конечной целью разработчика являлась создание унифицированной процедуры по преобразованию массива данных.Однако, данный метод (ровно как и метод «пузырька») применим только для малых объемов баз данных, так как преобразование большого массива информации потребует значительные ресурсы. Поэтому набор данных намеренно был ограничен 100 записями, что в полной мере удовлетворяет поставленному условию (оперирование с более чем десятью записями).
Дальнейшим возможным развитием программы может быть использование стандартизированных типов баз данных со встроенной системой индексации и поиска, со встроенными функциями сортировки. Также возможно интегрирование типизированных файлов с программами Microsoft Office Excel или Access. Также, при необходимости, возможно доработать программу до клиент/серверного положения, которое будет иметь общую систему защищенных баз данных, удобное управление, а также распределение полномочий по добавлению/изменению/удалению записей.
4. Разработка алгоритма, схема алгоритма и его описание.
На основе вышеизложенной математической формулировки задачи, составляем соответствующие подпрограммы:
Sg1.cells
2
Начало
1
1. процедура выполнения действий при загрузке формы: FormShow.
Пояснения к алгоритму 1:
Блок 2 – задание имен фиксированным столбцам в StringGrid.
3
memo1.Lines
Блок 3 – вывод в поле memo сообщения о запуске.
4
Конец
Начало
1
2. процедура очистки StringGrid: CleanSG.
n2=1, Sg1.Rowcount,1
2
Пояснения к алгоритму 2:
Sg1.rows[n2].clear
Блок 2 – цикл перемещения по строкам StringGrid.
3
Блок 3 – очистка строки StringGrid.
Конец
4
3. процедура очистки edit-ов: clearedit.
1
Начало
2
Пояснения к алгоритму 3:
edit1.clear
Блоки 2-6 – очистка edit-ов.
А
B
3
edit2.clear
4
edit3.clear
5
edit4.clear
6
edit5.clear
Конец
7
4. процедура создания новой базы: button4click.
1
Начало
Пояснения к алгоритму 4:
Нет
Да
2