- •Государственный комитет рф по высшему образованию
- •1998 Г.
- •Введение
- •Эскизный проект Постановка задачи Определение понятия модели
- •Требования, предъявляемые к системе экономического планирования.
- •Выбор платформы проектирования и еe обоснование
- •Экономическая модель в системе экономического планирования Структура экономической модели
- •Язык модели
- •Внутренний язык - язык вычислителя UniCalc
- •Константы
- •Переменные
- •Стандартные математические функции
- •Пример формулы на внешнем языке и внутреннем языке.
- •Общая отруктура системы
- •Структуры данных
- •Инфологическая модель базы данных
- •Предметная область
- •Описание объектов
- •Связи между объектами
- •Лингвистическое описание
- •Алгоритмические связи
- •Информационные потребности пользователя
- •Ограничение целостности
- •Даталогическая модель данных
- •Технический проект
- •Конфигурация технических средств
- •Алгоритмы предварительной подготовки данных для расчета экономической модели Общий алгоритм работы программы
- •Алгоритм работы транслятора данных из базы данных в формат вычислительного ядра UniCalc
- •Алгоритм работы транслятора формул из формата макета в формат вычислительного ядра
- •Алгоритм работы блокаS
- •Первоначальные данные о модели
- •Создание структуры модели
- •Файловая структура модели
- •Логическая структура модели
- •Трансляция данных и формул в формат вычислителя
- •Трансляция данных в формат вычислителя
- •Транслятор формул из формата макета в формат вычислителя
- •Структуры и глобальные переменные библиотеки Ftrans32.Dll
- •Экспортируемые функции:
- •Технология программирования с использованием средств быстрой разработки приложений. Введение.
- •Особенности rad–средств.
- •Визуальная компонентность.
- •Многократное использование кода.
- •Создание программ в среде Delphi.
- •Отладка программ.
- •Организационно - экономическая часть Введение
- •Составляющие затрат на разработку программ Kр
- •Затраты на непосредственную разработку кп
- •Факторы кп как объекта проектирования, влияющие на непосредственные затраты при разработке сложных программ.
- •Применение современных методов разработки кп.
- •Факторы оснащенности процесса разработки кп аппаратурными средствами, влияющими на непосредственные затраты при разработке сложных программ.
- •Факторы организации процесса разработки кп, влияющие на непосредственные затраты при создании сложных программ.
- •Затраты на изготовление опытного образца как продукции производственно-технического назначения.
- •Затраты на технологию и программные средства автоматизации разработки кп.
- •Затраты на эвм, используемые для автоматизации разработки данной программы.
- •Расчет затрат на разработку системы моделирования макроэкономики Исходные данные
- •Коэффициенты изменения трудоемкости
- •Расчет непосредственных затрат на разработку
- •Затраты на эвм
- •Производственная и экологическая безопасность Введение.
- •Рабочее место программиста.
- •Вредные производственные факторы и их нейтрализация для создания комфортных условий труда
- •Микроклимат
- •Электрическая опасность.
- •Пожароопасность
- •Электромагнитное излучение.
- •Нерациональное освещение.
- •Психофизиологические факторы.
- •Расчет освещенности на рабочем месте программиста.
- •Выводы.
- •Используемая литература
Язык модели
Под языком экономической модели понимается совокупность правил описания ограничений, т.е. формат записи уравнений и неравенств
Этот язык можно разделить на внешний и внутренний. Под внешним языком подразумевается форма записи, которой придерживается экономист - разработчик. Внутренний язык - это формат записи, который «понимает» вычислитель системы. Фактически, в системе внешний язык идентичен внутреннему, но, чтобы добиться совместимости с первой версией (макетом), предусмотрена возможность распознавания текста модели макета.
Внутренний язык - язык вычислителя UniCalc
Язык UniCalc - это правила по которым записывается модель для решателя UniCalc.
На языке решателя UniCalc пользователь можете записать модель в виде совокупности выражений, включающих переменные, константы, стандартные математические функции, пользовательские функции. Язык решателя максимально приближен к общепринятой математической нотации. Каждое выражение должно заканчиваться символом ";".
Алфавит входного языка решателя UniCalc состоит из всех букв латинского алфавита и русского алфавита, всех цифр и набора специальных символов: +, -, *, /, ^, (, ), [, ], =, <, <=, >, >=, <>, :=, ,, ;, and, or, not, ->, (*, *).
Имена служат для обозначения переменных и функций. Имя может состоять только из букв и цифр, причем первым символом обязательно должна быть буква.
Переменные в UniCalc’е рассматриваются двух типов: целые и вещественные. Тип переменной принимается по умолчанию. Имена целых переменных начинаются с букв i, j, k, l, m, n для латинского алфавита, и соответственно - с букв и, й, к, л, м, н для русского алфавита. Остальные переменные считаются вещественными. Большие и малые буквы в имени различаются.
Константы
В системе определены константы двух типов: целые и вещественные. Целые константы - целые числа в диапазоне от -2147483646 до 2147483646. Пример записи целого числа:
-10, -5, 0, 15, 100,...
Вещественные константы - вещественные числа в диапазоне от -1e+19 до 1e+19. Пример записи вещественных констант: -0.03, 3.14, 0.9999999, 10.44e-5,...
Язык содержит встроенные константы для задания постоянных величин:
p= 3.14159,
e = 2.71828,
g = 9.80665.
Эти константы изображаются следующим образом:
p - @pi; e - @e; g - @g.
Пример:
l:=[-@pi/2, @pi/2];
S = @pi*r^2;
f = (@e^x - @e^(-x))/2;
F = M*@g^2/2.
Переменные
В UniCalc'e рассматриваются переменные двух типов: целые и вещественные. Тип переменной определяется первым символом ее имени. Имя может состоять из букв латинского и русского алфавита, а также цифр, причем первым символом обязательно должна быть буква. Имена распознаются по первым восьми символам. Большие и малые буквы в имени различаются. Имена целых переменных начинаются с букв i, j, k, l, m, n, для латинского алфавита, и соответственно с букв и, й, к, л, м, н, для русского алфавита. Для больших букв умолчание сохраняется. Остальные переменные считаются вещественными.
Стандартные математические функции
sin() синус;
cos() косинус;
asin() арксинус;
acos() арккосинус;
tg() тангенс;
ctg() котангенс;
atan() арктангенс;
ln() натуральный логарифм;
exp() экспонента;
abs() абсолютное значение;
sign() знак числа;
sqrt() квадратный корень;
dif() функция символьного дифференцирования
max(a,b,..,c) максимальное значение;
min(a,b,...,c) минимальное значение;
lower(0 нижнее значение;
upper() верхнее значение;
Пользовательские функции
Пользовательские функции записываются в виде:
имя_функции (список формальных параметров) := выражение;
Допускается использование только арифметических выражений.
Вызов функции:
имя_функции (список фактических параметров);
Пример описания пользовательской функции:
f(x,y) := x^2 + y^2 - 1;
Пример вызова функции:
f(23.1, z+5) = 0;
Комментарии
Любая последовательность символов, заключенная между комбинациями символов "(*" и "*)", является комментарием и может вставляться в любое место программы.
Арифметические операции
+ операция сложения;
- операция вычитания и унарный минус;
* операция умножения;
/ операция деления;
^ операция возведения в степень.
Арифметические операции по приоритету в порядке убывания располагаются следующим образом: ^, /, *, -, +. Фактически операции "+" и "-" имеют одинаковый приоритет, так же как и /" и "*". Для изменения приоритета операций используются круглые скобки. Результатом операции деления в случае обоих целых операндов является целая часть частного.
Логические операции
OR логическое "ИЛИ";
AND логическое "И";
NOT логическое "НЕ";
-> импликация.
Логические операции по приоритету в порядке убывания располагаются следующим образом: NOT, AND, OR, ->.
Операции отношения
= равно;
<> не равно;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно.
Оператор присваивания
Оператор присваивания используется для инициализации переменных и для задания начального интервала переменных. Вид оператора присваивания - := .
Пример операции присваивания:
х := 999;
Y := [5+6*10, 999].
Переменные - массивы
В последних версиях решателя возможно использование массивов произвольной размерности:
<array_name>[index_expr1, index_expr2, ... , index_exprN]
Тип элементов массива определен в имени массива <array_name> согласно правилам, действующим для имен переменных. Индексные выражения <index_expri> должны быть целыми константами или выражениями, результат которых - целое число. Элемент массива - это та же самая переменная, только записанная в специфической форме.
Внешний язык
Внешний язык модели полностью идентичен внутреннему, поскольку разработкой модели будет заниматься эксперт - экономист, что, в свою очередь, подразумевает некие навыки программирования. Но, для совместимости с первой версией системы возможно распознавание текста модели макета. Отличие внешнего языка от внутреннего в данном случае состоит в том, что в языке макета не существовало понятия циклов, поскольку вычислитель системы их не поддерживал, т.е. для него не было определено понятие массивов. Таким образом, чтобы описать в формуле зависимость параметра от индексов, нужно было вводить некоторые скобки - разделители, в которых записывались обозначения индексов. Таким образом, на внешнем языке формула, описывающая ограничение, была одна, а во внутреннем языке, после обработки препроцессором, получалось N формул, где N - число сочетаний индексов, используемых в формуле и не выходящих за границы диапазона изменения индекса. Вместо обозначения индекса во внутреннем языке подставлялось его значение.