Денежное обращение и кредит
Sum2:=func(op(1)+op(2))
Sum2^(1,3) будет равен 4.
Можно делать локальные переменные в стеке с помощью операции ",": Пример: X,A,B,C; - перед выполнением X поместить 3 числа в стек (a,b,c). Получить доступ к этим числам можно через Op(0), Op(-1), Op(-2)...
IF D A B : Условный оператор. D - условие. Если D<>0, результат равен A, иначе равен B.
Можно писать следующие конструкции: IF D (A;B;C...) (E;F...) - круглые скобки играют ту же роль, как begin, end в Паскале или , в C.
WHILE D A: Оператор цикла. D - условие продолжения цикла, A - тело цикла. Пока результат D<>0, будет выполняться A. Результат While равен 0. Цикл можно разорвать нажатием Esc, при этом результат While будет равен последнему значению A.
Аналога конструкции Repeat нет, ее можно записать через While: While ((A;B;C...);D) 0.
V MACRO A : Выражение A записывается как макрос с именем V. Это аналогично указанию в файле GV.CTL строки "Macro V = A". Результат операции равен 0. Макрос аналогичен функции, но в него нельзя передать параметры. Выражение A лучше всегда заключать в скобки, т.к. приоритет операции Macro очень высок.
OPENFILE(A): Открыть файл вывода на диске с именем A (строка). Если файл вывода не открыт, то весь вывод будет в Clipboard. Результат
равен 0, если файл открыт успешно.
WRITE(A),
WRITELN(A): Оператор вывода - строка или число A печатается в файл или добавляется в Clipboard. Если используется Writeln, то при этом добавляется символ "конец строки". Если запись прошла успешно, то результат равен 0.
CLOSEFILE : (без параметров) Закрыть текущий файл вывода. Если файл закрыт успешно, то результат равен 0. При завершении выполнения программы файл закрывается автоматически, если был открыт.
SHOW(A) : Отображает A (обязательно строка) в нижней части экрана. Результат равен A. Удобно для отображения состояния программы или
промежуточных результатов, когда программа работает некоторое продолжительное время.
COMMAND(A) : Выполняет GALAXY команду A (обязательно строка). Результат равен A.
Операции с таблицами.
Эти операции открывают (строят) таблицу в памяти с элементами, удовлетворяющими заданному условию. Эта таблица активна либо до выполне-
ния следующего оператора из этой группы, либо до возврата из функции,
открывшей таблицу. При вызове вложенной функции текущая таблица запоминается и вновь потом делается активной. После построения таблицы текущая запись устанавливается на первый элемент или неопределена, если таблица
пустая (Cnt = 0). Значение возвращаемое этими функциями всегда равно 0.
SELECTSHIPS(условие) : Построить таблицу типа Ships с группами кораблей, удовлетворяющими заданному условию. Результат отсортирован по планетам и по именам.
Пример: selectships(warship & race=me).
SELECTPLANETS(условие): Построить таблицу типа Planets с планетами, удовлетворяющими заданному условию. Результат сортирован по размеру.
SELECTRACES(условие) : Построить таблицу типа Races с игроками, удовлетворяющими заданному условию. Результат сортирован по производству
GETPLANET(имя) : Аргумент - строка (имя планеты). Строит
таблицу типа Planets с одной записью - планетой с заданным именем. Если
заданной планеты не существует, то таблица будет пустая и результат
функции будет не равен 0.
Пример: написать функцию, возвращающую размер планеты с именем, заданным параметром, если планеты нет, результат должен равен -1.
SizePlanet:=func( if GetPlanet(op(1)) (-1) (Size) ). Тогда можно, например в списке кораблей отфильтровать все корабли, готовые к запуску и находящиеся на планетах с размером >=1000:
AltL(Filter) : waitl & SizePlanet^(dest)>=1000
GETRACE(имя) : Аргумент - строка (имя расы). Строит таб-
лицу типа Races с одной записью - расой с заданным именем. Если такой расы нет, то результат операции не равен 0.
SORT(ключ) : Пересортировка текущей таблицы по ключу.
Если в качестве параметра задана функция func(...), то ключом будет ее результат. Каждая таблица имеет ключевые поля, которые идентифицируются целым числом, заданным в параметре SORT. Список ключей приведен ниже:
В таблице Races:
0 - Индустрия; 1 - Имя расы; 2 - Технологии;
3 - Hаселение; 4 - Число планет; 5 - Рейтинг;
6 - Level; 7 - Без сортировки; 8 - Голоса.
В таблице Planets:
0 - Размер; 1 - Индустрия; 2 - Hаселение;
3 - Ресурсы; 4 - Без сортировки.
В таблице Ships:
0 - Hомер группы; 1 - Атака; 2 - Защита;
3 - Скорость с грузом; 4 - Планета назначения; 5 - Имя типа;
6 - Вес; 7 - Раса
Операции обработки таблиц (итераторы).
Фактически это циклы по всем элементам таблицы. Есть одно ограничение на использование этих операции - их нельзя использовать в фильтрах над видимыми таблицами рас, планет, кораблей, потому что фильтр перестраивает таблицу, оставляя элементы, удовлетворяющие условию и при этом до окончания фильтрации итерационная обработка таблицы запрещена.
SUM(A), SUMM(A) : Аргумент должен быть численного типа. Выра-
жение А вычисляется для всех элементов таблицы, результатом SUM будет
сумма этих выражений. Пример: sum(#*weight) - в списке кораблей это будет общий вес кораблей в таблице. Если внутри итератора необходимо расчитать строчное значение, то можно сделать так:
Пример строит список имен: s:=''; sum(s:=s+' '+name; 0); s
AVG(A), AVERAGE(A) : Аргумент - число. Аналогично SUM, только результат делится на число элементов в таблице, т.е. получается среднее значение аргумента.
MIN(A) : Аргумент - число. Результат равен минималь-
ному значению аргумента в таблице.
MAX(A) : Аргумент - число. Результат равен максималь-
ному значению аргумента в таблице.
CNT, COUNT : Просто возвращает число элементов таблицы.
ORD : Возвращает номер текущей записи в таблице.
Hомер первого элемента = 1.
Другие операции.
Двух аргументов : Arg1 OPERATION Arg2,
Одного аргумента: OPERATION Arg1.
Операция Число, Тип аргументов Результат
+ 2, Числа Arg1+Arg2
- 2, Числа Arg1-Arg2
* 2, Числа Arg1*Arg2
/ 2, Числа Arg1/Arg2
%, MOD 2, Числа Остаток от деления Arg1 на Arg2
|, OR 2, Логич. (Числа) Логическая операция ИЛИ
&, AND 2, Логич. (Числа) Логическая операция И
!, NOT 1, Логич. (Число) Логическая операция Отрицания
<= 2, Числа Arg1 меньше или равен Arg2
>= 2, Числа Arg1 больше или равен Arg2
< 2, Числа Arg1 меньше Arg2
> 2, Числа Arg1 больше Arg2
= 2, Числа Arg1 равен Arg2
<> 2, Числа Arg1 не равен Arg2
^ 2, Числа Arg1 в степени Arg2
SQRT 1, Число Квадратный корень.
ABS 1, Число Модуль
TRUNC 1, Число Целая часть числа
ROUND 1, Число Целая часть числа (округление)
LN 1, Число Hатуральный логарифм Arg1
EXP 1, Число Экспонента. (e^Arg1)
+ 2, Строки Конкатенация строк
= 2, Строки Строки Arg1 и Arg2 равны. Эта и
другие операции над строками не
зависят от регистра.
<> 2, Строки Строки Arg1 и Arg2 не равны
LIKE 2, Строки Строка Arg1 подходит под шаблон
Arg2. В шаблоне допустимы специальные символы:
"*" любая, даже пустая строка; "?" любой символ.
STR 2, Число, Число Преобразование Arg1 в строку.
Arg2 - параметр форматирования в виде A.B, где A - длина строки, B - количество позиций на дробную часть. Если A=0, то формат свободный.
Пример: 4 str 5.2 = ' 4.00'
STR
скачать реферат
первая ... 21 22 23 24 25 26 27 ... последняя