Клиентская часть технологической среды для разработки больших экономических моделей: компоненты поддержки работы эксперта-экономиста при формировании и отладке (в расчетном режиме) структурного текста модели

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?то формат записи, который понимает вычислитель системы. Фактически, в системе внешний язык идентичен внутреннему, но, чтобы добиться совместимости с первой версией (макетом), предусмотрена возможность распознавания текста модели макета.

 

  1. Внутренний язык - язык вычислителя UniCalc

Язык UniCalc - это правила по которым записывается модель для решателя UniCalc.

На языке решателя UniCalc пользователь можете записать модель в виде совокупности выражений, включающих переменные, константы, стандартные математические функции, пользовательские функции. Язык решателя максимально приближен к общепринятой математической нотации. Каждое выражение должно заканчиваться символом ";".

Алфавит входного языка решателя UniCalc состоит из всех букв латинского алфавита и русского алфавита, всех цифр и набора специальных символов: +, -, *, /, ^, (, ), [, ], =, , (*, *).

Имена служат для обозначения переменных и функций. Имя может состоять только из букв и цифр, причем первым символом обязательно должна быть буква.

Переменные в UniCalcе рассматриваются двух типов: целые и вещественные. Тип переменной принимается по умолчанию. Имена целых переменных начинаются с букв i, j, k, l, m, n для латинского алфавита, и соответственно - с букв и, й, к, л, м, н для русского алфавита. Остальные переменные считаются вещественными. Большие и малые буквы в имени различаются.

  1. Константы

В системе определены константы двух типов: целые и вещественные. Целые константы - целые числа в диапазоне от -2147483646 до 2147483646. Пример записи целого числа:

-10, -5, 0, 15, 100,...

Вещественные константы - вещественные числа в диапазоне от -1e+19 до 1e+19. Пример записи вещественных констант: -0.03, 3.14, 0.9999999, 10.44e-5,...

Язык содержит встроенные константы для задания постоянных величин:

= 3.14159,

e = 2.71828,

g = 9.80665.

Эти константы изображаются следующим образом:

- @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.

 

  1. Переменные

В UniCalce рассматриваются переменные двух типов: целые и вещественные. Тип переменной определяется первым символом ее имени. Имя может состоять из букв латинского и русского алфавита, а также цифр, причем первым символом обязательно должна быть буква. Имена распознаются по первым восьми символам. Большие и малые буквы в имени различаются. Имена целых переменных начинаются с букв i, j, k, l, m, n, для латинского алфавита, и соответственно с букв и, й, к, л, м, н, для русского алфавита. Для больших букв умолчание сохраняется. Остальные переменные считаются вещественными.

 

  1. Стандартные математические функции

sin()синус;

cos()косинус;

asin()арксинус;

acos()арккосинус;

tg()тангенс;

ctg()котангенс;

atan()арктангенс;

ln()натуральный логарифм;

exp()экспонента;

abs()абсолютное значение;

sign()знак числа;

sqrt()квадратный корень;

dif()функция символьного дифференцирования

max(a,b,..,c)максимальное значение;

min(a,b,...,c)минимальное значение;

lower(0нижнее значение;

upper()верхнее значение;

 

  1. Пользовательские функции

Пользовательские функции записываются в виде:

имя_функции (список формальных параметров) := выражение;

Допускается использование только арифметических выражений.

Вызов функции:

имя_функции (список фактических параметров);

Пример описания пользовательской функции:

f(x,y) := x^2 + y^2 - 1;

Пример вызова функции:

f(23.1, z+5) = 0;

 

  1. Комментарии

Любая последовательность символов, заключенная между комбинациями символов "(*" и "*)", является комментарием и может вставляться в любое место программы.

 

  1. Арифметические операции

+операция сложения;

-операция вычитания и унарный минус;

*операция умножения;

/операция деления;

^операция возведения в степень.

Арифметические операции по приоритету в порядке убывания располагаются следующим образом: ^, /, *, -, +. Фактически операции "+" и "-" имеют одинаковый приоритет, так же как и /" и "*". Для изменения приоритета операций используются круглые скобки. Результатом операции деления в случае обоих целых операндов является целая часть частного.

 

  1. Логические операции

ORлогическое "ИЛИ";

ANDлогическое "И";

NOTлогическое "НЕ";

->импликация.

Логические операции по приоритету в порядке убывания располагаются следующим образом: NOT, AND, OR, ->.

 

  1. Операции отношения

=равно;

<>не равно;

<меньше;

>больше;

<=меньше или равно;

>=больше или равно.

 

  1. Оператор присваивания

Оператор присваивания используется для инициализации переменных и для задания начального интервала переменных. Вид оператора присваивания - := .

Пример операции присваивания:

х := 999;

Y := [5+6*10, 999].

 

  1. Переменные - массивы

В последних версиях решателя возможно использование массивов произвольной размерности:

[index_expr1, index_expr2, ... , index_exprN]

Тип элементов массива определен в имени массива должны быть целыми константами или выражениями, результат которых - целое число. Элемент массива - это та же самая переменная, только записанная в специфической форме.

 

  1. Внешний язык

Внешний язык модели полностью идентичен внутреннему, пос?/p>