
- •Государственный комитет рф по высшему образованию
- •1998 Г.
- •Введение
- •Эскизный проект Постановка задачи Определение понятия модели
- •Требования, предъявляемые к системе экономического планирования.
- •Выбор платформы проектирования и еe обоснование
- •Экономическая модель в системе экономического планирования Структура экономической модели
- •Язык модели
- •Внутренний язык - язык вычислителя UniCalc
- •Константы
- •Переменные
- •Стандартные математические функции
- •Пример формулы на внешнем языке и внутреннем языке.
- •Общая отруктура системы
- •Структуры данных
- •Инфологическая модель базы данных
- •Предметная область
- •Описание объектов
- •Связи между объектами
- •Лингвистическое описание
- •Алгоритмические связи
- •Информационные потребности пользователя
- •Ограничение целостности
- •Даталогическая модель данных
- •Технический проект
- •Конфигурация технических средств
- •Алгоритмы предварительной подготовки данных для расчета экономической модели Общий алгоритм работы программы
- •Алгоритм работы транслятора данных из базы данных в формат вычислительного ядра UniCalc
- •Алгоритм работы транслятора формул из формата макета в формат вычислительного ядра
- •Алгоритм работы блокаS
- •Первоначальные данные о модели
- •Создание структуры модели
- •Файловая структура модели
- •Логическая структура модели
- •Трансляция данных и формул в формат вычислителя
- •Трансляция данных в формат вычислителя
- •Транслятор формул из формата макета в формат вычислителя
- •Структуры и глобальные переменные библиотеки Ftrans32.Dll
- •Экспортируемые функции:
- •Технология программирования с использованием средств быстрой разработки приложений. Введение.
- •Особенности rad–средств.
- •Визуальная компонентность.
- •Многократное использование кода.
- •Создание программ в среде Delphi.
- •Отладка программ.
- •Организационно - экономическая часть Введение
- •Составляющие затрат на разработку программ Kр
- •Затраты на непосредственную разработку кп
- •Факторы кп как объекта проектирования, влияющие на непосредственные затраты при разработке сложных программ.
- •Применение современных методов разработки кп.
- •Факторы оснащенности процесса разработки кп аппаратурными средствами, влияющими на непосредственные затраты при разработке сложных программ.
- •Факторы организации процесса разработки кп, влияющие на непосредственные затраты при создании сложных программ.
- •Затраты на изготовление опытного образца как продукции производственно-технического назначения.
- •Затраты на технологию и программные средства автоматизации разработки кп.
- •Затраты на эвм, используемые для автоматизации разработки данной программы.
- •Расчет затрат на разработку системы моделирования макроэкономики Исходные данные
- •Коэффициенты изменения трудоемкости
- •Расчет непосредственных затрат на разработку
- •Затраты на эвм
- •Производственная и экологическая безопасность Введение.
- •Рабочее место программиста.
- •Вредные производственные факторы и их нейтрализация для создания комфортных условий труда
- •Микроклимат
- •Электрическая опасность.
- •Пожароопасность
- •Электромагнитное излучение.
- •Нерациональное освещение.
- •Психофизиологические факторы.
- •Расчет освещенности на рабочем месте программиста.
- •Выводы.
- •Используемая литература
Какую работу нужно написать?
Первоначальные данные о модели
Первоначальные данные о модели подразумевают под собой ввод всей служебной информации о модели - путь, где находится база данных модели, название файла с текстом ограничений и, наконец, имени модели. Также можно ввести и комментарий, но этот параметр необязателен.
Приведем пример процедуры (форма fmNew, модуль psNew.pas), которая инициализирует соответствующие поля основной структуры fmMain при вводе предварительных данных о модели.
procedure TfmNew.BitBtn1Click(Sender: TObject);
var
s : String;
i : longint;
begin
if eNew.Text='' then begin
MessageDlg('Введите имя модели', mtError, [mbOk], 0);
eNew.SetFocus;
exit;
end;
if ePath.Text='' then begin
MessageDlg('Введите путь к базе данных модели', mtError, [mbOk], 0);
ePath.SetFocus;
exit;
end;
if eModel.Text='' then begin
MessageDlg('Введите название файла модели', mtError, [mbOk], 0);
eModel.SetFocus;
exit;
end;
fmMain.DbPath:=ePath.Text;
s:=UpperCase(eModel.Text);
if (pos('.MDL',s)=0) then begin
s:='';
if pos('.',eModel.Text)=length(eModel.Text)-3
then for i:=1 to length(eModel.Text)-4 do s:=s+eModel.Text[i];
s:=eModel.Text+'.MDL';
end;
fmMain.FModel:=s;
fmMain.Model:=fmMain.DbPath;
fmMain.qMain.DatabaseName:=fmMain.DbPath;
fmMain.qMain.SQL.Clear;
fmMain.qMain.SQL.Add('CREATE TABLE Model (');
fmMain.qMain.SQL.Add(' ID char(10),');
fmMain.qMain.SQL.Add(' Remark char(50),');
fmMain.qMain.SQL.Add(' Path char(100),');
fmMain.qMain.SQL.Add(' MFile char(20));');
fmMain.qMain.ExecSQL;
fmMain.qMain.SQL.Clear;
s:='INSERT INTO Model VALUES ('+#39+eNew.Text+#39+','+#39+eRemark.Text+#39+','+#39+UPPERCASE(fmMain.DbPath)+#39+','+#39+s+#39+');';
fmMain.qMain.SQL.Add(s);
fmMain.qMain.ExecSQL;
Close;
end;
Создание структуры модели
Структуру модели можно разделить на файловую структуру и логическую. Под логической структурой понимается дерево модели. Файловая структура создается автоматически, как только пользователь ввел все первоначальные данные о модели; для того, чтобы создать дерево модели, в главной форме следует выбрать пункт меню «Просмотр\Структура».
Файловая структура модели
Фактически, под файловой структурой понимается база данных модели. Она создается при помощи процедуры в главном модуле программы с помощью SQL - выражений. На данном этапе все таблицы базы данных, кроме model.db будут пустыми. Файл с ограничениями не создается, по умолчанию считается, что он существует.
Процедура, которая создает файловую структуру, находится в классе главного окна (модуль psMain.pas) и выглядит следующим образом:
procedure TfmMain.N2Click(Sender: TObject);
begin
NewModel:=True;
fmNew.ShowModal; // Вызов запроса на ввод первоначальных данных по модели
if not NewModel then exit;
qMain.DatabaseName:=Model;
qSec.DatabaseName:=Model;
qMain.SQL.Clear;
qMain.SQL.Add('CREATE TABLE Inter (');
qMain.SQL.Add(' ID char(10),');
qMain.SQL.Add(' IID char(10),');
qMain.SQL.Add(' Kind char);');
qMain.ExecSQL;
qMain.SQL.Clear;
qMain.SQL.Add('CREATE TABLE Params (');
qMain.SQL.Add(' ID char(10),');
qMain.SQL.Add(' Remark char(50));');
qMain.ExecSQL;
qMain.SQL.Clear;
qMain.SQL.Add('CREATE TABLE Param (');
qMain.SQL.Add(' ID char(10),');
qMain.SQL.Add(' IID char(10),');
qMain.SQL.Add(' iid_value integer,');
qMain.SQL.Add(' num integer);');
qMain.ExecSQL;
qMain.SQL.Clear;
qMain.SQL.Add('CREATE TABLE Indexes (');
qMain.SQL.Add(' ID char(5),');
qMain.SQL.Add(' Mn integer,');
qMain.SQL.Add(' Mx integer,');
qMain.SQL.Add(' Step integer);');
qMain.ExecSQL;
qMain.SQL.Clear;
qMain.SQL.Add('CREATE TABLE Var_value (');
qMain.SQL.Add(' ID char(10),');
qMain.SQL.Add(' num integer,');
qMain.SQL.Add(' id_value char(20),');
qMain.SQL.Add(' ver integer);');
qMain.ExecSQL;
qMain.SQL.Clear;
qMain.SQL.Add('CREATE TABLE InForm (');
qMain.SQL.Add(' id char(10),');
qMain.SQL.Add(' id_Name char(10),');
qMain.SQL.Add(' Present char(30));');
qMain.ExecSQL;
qMain.SQL.Clear;
TypeCount:=0;
N5.Enabled:=True;
end;