Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ELIK / ELIK / ALL.DOC
Скачиваний:
17
Добавлен:
16.04.2013
Размер:
4.19 Mб
Скачать

Технический проект

В данном разделе рассматриваются наиболее сложные алгоритмы, используемые в программе, а именно - алгоритмы трансляции данных в формат решателя UnioCalc.

Конфигурация технических средств

Требования к составу и параметрам технических средств соответствуют требованиям к программному продукту - системе моделирования макроэкономики.

Минимально необходимое оборудование:

PC 80486 SX2-66;

RAM 12 MB;

HDD 50 MB свободных;

Screen Color VGA.

Рекомендуемое оборудование:

PC Pentium 133 МГц;

RAM 32 MB;

HDD 30 MB свободных;

Screen Color SVGA;

Необходимое программное обеспечение:

ОС Windows’95;

Машина баз данных Borland DataBase Engine 3.0;

Приложение Система моделирования макроэкономики.

Алгоритмы предварительной подготовки данных для расчета экономической модели Общий алгоритм работы программы

Алгоритм работы транслятора данных из базы данных в формат вычислительного ядра UniCalc

Алгоритм работы транслятора формул из формата макета в формат вычислительного ядра

Данный транслятор построен на основе грамматики вида:

S ® t { K | e

K ® A } S

A ® B,A | B

B ® C | D | E

C ® t

D ® t + p | t - p

E ® t > p | t >= p | t < p | t<= p | t = p

t ® A | ... | Z | a | ... | z | 1 | ... | 9 | 0 | + | - | * | /

p ® 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

где t - терминальные символы - латинский алфавит и цифры, p - цифры, e - пустой символ. Символ ‘|’ означает ‘или’.

Данная грамматика реализована методом рекурсивного спуска, т.е. здесь каждый нетерминальный символ грамматики реализован в виде отдельного алгоритма разбора формулы, оформленного в виде подпрограммы. Таким образом каждая подпрограмма S, K, A, B, C, D, E отвечает за свою конструкцию языка.

Алгоритм работы блокаS

Алгоритм работы блока K

Алгоритм работы блока A

Алгоритм блока B

Алгоритм работы блока C

Алгоритм блока D

Алгоритм блока E

Рабочий проект

В рабочем проекте рассмотрена структура программы, показана реализация реализация алгоритмов, описанных в техническом проекте

Структура программы

Структура программы представлена на риc.5.

Рис.5. Структура программы.

Данная схема описывает лишь укрупненную структуру программы, здесь не показаны разбивка на модули и уточненные форматы данных. Для детализации необходимо рассмотреть работу каждой части программы. Реализация каждой из частей будет описана в дальнейшем. Основной структурой, хранящей все текущие значения, является класс основного окна fmMain (модуль psMain.pas):

TfmMain = class(TForm)

mmMain: TMainMenu;

N1: TMenuItem; // Элемент меню «Файл»

N2: TMenuItem; // Элемент меню «Новая модель»

N3: TMenuItem; // Элемент меню «Открыть»

N4: TMenuItem; // Элемент меню «Сохранить»

N5: TMenuItem; // Элемент меню «Просмотр»

N7: TMenuItem; // Элемент меню «Формулы

N8: TMenuItem; // Элемент меню - разделитель

N9: TMenuItem; // Элемент меню «Выход

N10: TMenuItem; // Элемент меню «Структура»

N11: TMenuItem; // Элемент меню «Индексы»

qMain: TQuery; // для реализации SQL-запросов к БД

qSec: TQuery; // для реализации вспомогательных SQL-запросов к БД

N12: TMenuItem; // Элемент меню «Счет»

N13: TMenuItem; // Элемент меню «Закрыть»

procedure N9Click(Sender: TObject); // Завершение работы программы

procedure FormClose(Sender: TObject; var Action: TCloseAction); // действия при // завершении работы программы

procedure N10Click(Sender: TObject); // действие на выбор пункта меню «Структура»

procedure FormCreate(Sender: TObject);// Действия при инициализации основного окна программы

procedure N2Click(Sender: TObject); // Создание новой модели

procedure N3Click(Sender: TObject); // Открытие существующей модели

procedure N12Click(Sender: TObject); // Запуск модели на счет

procedure N11Click(Sender: TObject); // вызов формы редактирования индексов

procedure N13Click(Sender: TObject); // предварительные действия до закрытия программы

procedure N7Click(Sender: TObject); // Вызов редактора формул

private

procedure Variables2Formulas(var L : TStringList);// Преобразование данных из БД в формат вычислителя

public

FModel : String; // Название файла модели

TypeCount : integer; // Количество таблиц значений параметров

Model : String; // Алиас модели, используется для регистрации в BDE

DbPath : String; // Путь к базе данных 'верхней' (основной) модели

NewModel : Boolean; // True, если модель создается с нуля

Result : Boolean; // успешно ли прошли расчеты

Version : integer // номер текущей версии

end;

Соседние файлы в папке ELIK