Клиентская часть технологической среды для разработки больших экономических моделей: компоненты поддержки работы эксперта-экономиста при формировании и отладке (в расчетном режиме) структурного текста модели
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?то формат записи, который понимает вычислитель системы. Фактически, в системе внешний язык идентичен внутреннему, но, чтобы добиться совместимости с первой версией (макетом), предусмотрена возможность распознавания текста модели макета.
- Внутренний язык - язык вычислителя UniCalc
Язык UniCalc - это правила по которым записывается модель для решателя UniCalc.
На языке решателя UniCalc пользователь можете записать модель в виде совокупности выражений, включающих переменные, константы, стандартные математические функции, пользовательские функции. Язык решателя максимально приближен к общепринятой математической нотации. Каждое выражение должно заканчиваться символом ";".
Алфавит входного языка решателя UniCalc состоит из всех букв латинского алфавита и русского алфавита, всех цифр и набора специальных символов: +, -, *, /, ^, (, ), [, ], =, , (*, *).
Имена служат для обозначения переменных и функций. Имя может состоять только из букв и цифр, причем первым символом обязательно должна быть буква.
Переменные в 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,...
Язык содержит встроенные константы для задания постоянных величин:
= 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.
- Переменные
В UniCalce рассматриваются переменные двух типов: целые и вещественные. Тип переменной определяется первым символом ее имени. Имя может состоять из букв латинского и русского алфавита, а также цифр, причем первым символом обязательно должна быть буква. Имена распознаются по первым восьми символам. Большие и малые буквы в имени различаются. Имена целых переменных начинаются с букв 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].
- Переменные - массивы
В последних версиях решателя возможно использование массивов произвольной размерности:
[index_expr1, index_expr2, ... , index_exprN]
Тип элементов массива определен в имени массива должны быть целыми константами или выражениями, результат которых - целое число. Элемент массива - это та же самая переменная, только записанная в специфической форме.
- Внешний язык
Внешний язык модели полностью идентичен внутреннему, пос?/p>