- •Государственный комитет рф по высшему образованию
- •1998 Г.
- •Введение
- •Эскизный проект Постановка задачи Определение понятия модели
- •Требования, предъявляемые к системе экономического планирования.
- •Выбор платформы проектирования и еe обоснование
- •Экономическая модель в системе экономического планирования Структура экономической модели
- •Язык модели
- •Внутренний язык - язык вычислителя UniCalc
- •Константы
- •Переменные
- •Стандартные математические функции
- •Пример формулы на внешнем языке и внутреннем языке.
- •Общая отруктура системы
- •Структуры данных
- •Инфологическая модель базы данных
- •Предметная область
- •Описание объектов
- •Связи между объектами
- •Лингвистическое описание
- •Алгоритмические связи
- •Информационные потребности пользователя
- •Ограничение целостности
- •Даталогическая модель данных
- •Технический проект
- •Конфигурация технических средств
- •Алгоритмы предварительной подготовки данных для расчета экономической модели Общий алгоритм работы программы
- •Алгоритм работы транслятора данных из базы данных в формат вычислительного ядра UniCalc
- •Алгоритм работы транслятора формул из формата макета в формат вычислительного ядра
- •Алгоритм работы блокаS
- •Первоначальные данные о модели
- •Создание структуры модели
- •Файловая структура модели
- •Логическая структура модели
- •Трансляция данных и формул в формат вычислителя
- •Трансляция данных в формат вычислителя
- •Транслятор формул из формата макета в формат вычислителя
- •Структуры и глобальные переменные библиотеки Ftrans32.Dll
- •Экспортируемые функции:
- •Технология программирования с использованием средств быстрой разработки приложений. Введение.
- •Особенности rad–средств.
- •Визуальная компонентность.
- •Многократное использование кода.
- •Создание программ в среде Delphi.
- •Отладка программ.
- •Организационно - экономическая часть Введение
- •Составляющие затрат на разработку программ Kр
- •Затраты на непосредственную разработку кп
- •Факторы кп как объекта проектирования, влияющие на непосредственные затраты при разработке сложных программ.
- •Применение современных методов разработки кп.
- •Факторы оснащенности процесса разработки кп аппаратурными средствами, влияющими на непосредственные затраты при разработке сложных программ.
- •Факторы организации процесса разработки кп, влияющие на непосредственные затраты при создании сложных программ.
- •Затраты на изготовление опытного образца как продукции производственно-технического назначения.
- •Затраты на технологию и программные средства автоматизации разработки кп.
- •Затраты на эвм, используемые для автоматизации разработки данной программы.
- •Расчет затрат на разработку системы моделирования макроэкономики Исходные данные
- •Коэффициенты изменения трудоемкости
- •Расчет непосредственных затрат на разработку
- •Затраты на эвм
- •Производственная и экологическая безопасность Введение.
- •Рабочее место программиста.
- •Вредные производственные факторы и их нейтрализация для создания комфортных условий труда
- •Микроклимат
- •Электрическая опасность.
- •Пожароопасность
- •Электромагнитное излучение.
- •Нерациональное освещение.
- •Психофизиологические факторы.
- •Расчет освещенности на рабочем месте программиста.
- •Выводы.
- •Используемая литература
Технический проект
В данном разделе рассматриваются наиболее сложные алгоритмы, используемые в программе, а именно - алгоритмы трансляции данных в формат решателя 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;