[an error occurred while processing this directive]
232
39 Краткое изложение ключевых слов и операторов.
------------------------------------------------
Эта глава содержит следующие секции:
- Подопределенные элементы для синтаксических схем
- Операторы присваивания := :+ :-
- Арифметические операторы + - * / Ч
- Операторы отношений = < > IN
- Опредилители подстрок (:)
- Шестнадцатиричные операторы & -
- Косвенные операторы ? !
- Делимитеры комментариев //
за ними приведен полный алфавитный перечень ключевых слов.
****************************************************************
233
Подопределенные элементы синтаксических схем
Эта секция содержит определения всех подопределенных элементов, используемых в синтаксических схемах в качестве основных элементов, которые могут быть введены с клавиатуры.
Эти элементы приводятся в алфавитном поряке.
В синтаксических схемах используются следующие обозначения:
указывает, что элемент является ключевым словом, за которым должен седовать не алфавитно-цифровой символ. указывает, что это подопределенный элемент. или указывает, что это основной элемент. элемент указывает, что если элемент опущен при вводе, то он будет вставлен автоматически. элемент указывает, что необходимо ввести n элементов, разделенных запятыми.
двоичный оператор
постоянная
число число число
конец строки (eol)
символ
****************************************************************
234
определитель файлов файл логическое выражение логическое выражение имя файла строчное выражение любой символ за исключением "," или " " головное дополнение определитель S OF логическое выражение определитель # закрыто REF определитель определитель буква буква определитель цифра логическое выражение логический оператор числовое выражение строчное выражение срочное выражение
****************************************************************
235
логический оператор AND OR EOR номер цифра список номеров номер номер номер числовой элемент определитель список параметров числовые переменные постоянные VAL LEN строчный элемент ORD системная функция стандартная функция числовой элемент логическое выражение
****************************************************************
236
числовое выражение двоичный оператор числовой оператор числовой список логическое выражение логическое выражение числовая переменная определитель логическое выражение системная переменная
****************************************************************
237
простой оператор
Синтаксически правильная версия любого из седующих ключевых слов или элементов будет полноценным простым оператором.
CLEAR CLG CLOSE CLS COLOUR DELETE DRAW ENVELOPE EXEC GCOL GOTO INPUT MOVE NEW NULL OPEN OSCLI PLOT PRINT READ RESTORE RETURN RUN SELECT OUTPUT SOUND VDU WRITE символ eol определитель логическое выражение логическое выражение логическое выражение пробел логическое выражение
****************************************************************
238
стандартная функция строчная переменная символ строчный элемент GET¤ строчная переменная идентификатор список параметров строчная постоянная INKEY¤ STR¤ числовой элемент CHR¤ строчное выражение строчное выражение строчный элемент определитель
****************************************************************
239
строчная переменная индентификатор логическое выражение системная функция POINT( логическое выражение логическое выражение RND логическое выражение логическое выражение системная переменная список пременных числовая переменная строчная переменная
****************************************************************
240
:= :+ :- Операторы присваивания
Описание
Эти операторы используются для присваивания величин числовым и системным переменным, содержанию определенных местоположений памяти, и (только := :+) для присваивания строк к строчным переменным.
:= используется для присваивания выражения, слудующего за ним, переменной, предшествующей ему. Символ : является оптимальным при вводе и, будучи опущенным, автоматически вставляется.
:+ используется с числовыми переменными для сложения величины выражения, седующего за ним, и существующей величины переменной, и для присваивания результата переменной. Со строчными переменными он используется для добавления строчного выражения, седующего за ним, к концу текущего сдержания переменной. Он не может быть использован с подстрокой слева от символа присваивания.
:- используется только с числовыми переменными. Он берет величину выражения, следующего за ним, и вачитает ее из текущей величины переменной. Результат присваивается переменной.
Обратите внимание что, например:
a :+ b AND c эквивалентно a:= + (b AND s), а не
a := (a + b) AND c
Ссылки
Секции 3.2, 6.7, 6.8 и таблица предшествования (40.6).
Синтаксис
числовая переменная числовая переменная логическое выражение числовой элемент eol числовой элемент срочная переменная строчное выражение
****************************************************************
241
Примеры (смотрите также секции 6.7 6.8)
a:= number1 * number2 b# := a / d c¤ := message¤ mode := 6 d(i#) :+ i# e¤(2) :+ "end of string" f :+ g ^ 2 g :- 17.5 * const1 h(6) :- d(4) * 6 ?x :- 1
****************************************************************
242
+ - * / Ч Арифметические операторы
Описание
Ниже приведены стандартные арифметические операторы.
+ является или бинарным оператором, который возвращает результат от сложения двух операндов, или еденичным оператором, указывающим, что следующий аргумент не должен менять свой знак.
- является или бинарным оператором, который возвращает результат вычитания второго операнда из первого, или единичным оператором, указывающим, что следующий аргумент должен изменить свй знак (т.е. быть умноженным на -1).
* является бинарным оператором, который возвращает результат умножения двух операндов.
/ является бинарным оператором, который возвращает результат деления первого операнда на второй.
^ является бинарным оператором, который возвращает результат возвидения во вторую степень. Обратите внимание что, например, 2^3^4 это (2^3)^4.
Известная проблема
В первом выпуске Комала символ (/), за которым следует точка (.)воспринимается, как краткая форма отделителя комментария. При делении на постоянную от 0 до 1 необходимо перед десятичной точкой поместить или пробел, или нуль.
Ссылки
Секции 2.4, 2.7 и таблица предшествования (40.6)
Синтаксис
Смотрите числовой элемент, постоянную, двоичный оператор.
Примеры
twenty_three := 3 + 4 + 5 minus_seventeen := 30.4 - 11.85 * 2 ^ 2 twentu?five := 5 * 20 / 4 plus?one := -1 ^ 4
****************************************************************
243
= <> IN Операторы отношения
Описание
Это бинарные операторы, используемые при определении логического отношения, которое возвращает или истинный, или FALSE результат. Они могут быть использованы или по одному, или парами.
Обратите внимание, что true (истинный) означает не FALSE (т.е. не нуль), тогда как TRUE имеет величину -1.
= возвращает TRUE, если два операнда оцениваются, как равные числам или идентичным строкам, в противном случае - FALSE (остерегайтесь ошибок округления).
< сравнивает величины числовых выражений или коды ASCII строчных символов. С числовыми выражениями < возвращает TRUE, если первое выражение оценено меньшей величиной, чем вторая, и в иных случаях FALSE. Со строками эти два операнда оцениваются и сравниваются буква за буквой, пока коды ASCII двух символов не будут разными. Если код символа в первй строке ниже, чем во второй строке, тогда < возвращает TRUE, иначе он взвращает FALSE. Если конец одной строки достигается прежде, чем обнаруживается какое-либо различие, то принимается, что более короткая строка имеет более низкий код ASCII.
<= сравнивает два операнда и возвращает TRUE, если первый меньше или равен второму, в противном случае - FALSE. Полученный результат будет противоположным результату, возвращаемому >.
> сравнивает два операнда таким же образом, как и в случае с <, но возвращает TRUE, если первое выражение больше, чем второе, а в противном случае - FALSE. Он возврашает результат противоположный результату <=.
>= савнивает два операнда и возвращает TRUE, если первый больше, чем второй. Полученный результат будет противоположным, возвращаемому <.
<> возвращае TRUE, если два операнда не являются равными числами (или идентичными строками), и FALSE в противном случае. Результат будет противоположным результату, возвращаемому =.
IN используется как оператор отношений для сравнения двух строковых операндов. Если первая строка появляется во второй строке, то IN возвращает ее позицию (что считается результатом TRUE), а если нет, то - FALSE. Подробное описание можно найти в секции IN в кратком изложении ключевых слов.
Ссылки
Секции 15.2, 15.3, 25.4 и таблица предшествования (40.6).
****************************************************************
Синтаксис
Смотрите логический оператор, логическое выражение, WHEN.
Примеры (смотрите также главу 15, IN и все примеры условных структур)
100 IF x < 0 THEN PRINT "Negative" 150 WHEN >= 5, <= 10 95 UNTIL repeat¤ <> "Yes"
****************************************************************
245
(:) Спецификаторы подсрок
Описание
С помощью операторов подстрок можно производить действия с частями строки или строчного выражения.
Подстрока определяется пдачей срочного идентификатора (который может быть элементом строки или строчного массива, или строчным выражением), за которым следует выражение в форме (start:finish), где start и finish являются положениями первого и последнего символов подстроки в строке. Любой из определителей можно опустить и они будут приниматься по умолчанию в начале и конце строки соответственно.
С положительными аргументами позиция считается от начала строки (первый символ на позиции 1).
С отрицательными аргументами позиция считается от конца строки к началу (последний символ на пзиции -1).
Если первая позиция находится за второй, подстрока возвращается , как нулевая строка.
Присваивания подстрокам могут или уменьшить длину пдстроки, или оставить ее без изменений. Увеличить подстроку невозможно. Если предпринимается попытка сделать это, то так как строка присваивается подстроке, она усекается справа до тех пор, пока она не становится такой же длины.
Обратите внимание, что подстроки с одним символом (напр. a¤(x:x) могут быть определены только одиночной величиной в скобках (напр. a¤ (x), но перед скобками необходимо оставить пробел, чтобы не спутать со строчными массивами.
Ссылки
Глава 29
Синтаксис
логическое выражение логическое выражение логическое выражение пробел логическое выражение **************************************************************** Примеры (смотри также главу 29) PRINT a¤(3:6) 200 b¤ :+ a¤(-6:-3) 315 c¤ := (" " + d¤)(-6) 400 UNTIL a¤ (1) = "Y" 500 a¤(1:3) := "HI" // reduce length of substring 600 d¤ := a¤(x:y)(2:3) ****************************************************************
247 & Шестнадцатиричные операторы
Описание
Эти операторы применяются, когда числа используются в их шестнадцатиричной форме.
& непосредственно предшествует числовой постоянной, чтобы указывать, что она выражена в шестнодцатиричном счислении. Число в этом сучае используется точно так же, как и любое другое.
используется перед числовым элементом, чтобы указывать, что число должно быть выражено как строка в шестнадцатиричной форме.
Обратите внимание, что оба оператора имеют наивысшее предшествование.
Ссылки
Таблица предшествования
Синтаксис
Смотри числовой элемент, строчное выражение.
Примеры (смотри также главу 34)
PAGE := &1A00
PRINT FREE
ffffff¤ := (-1)
zero¤ := 0,1
****************************************************************
248
? ! Косвенные операторы
Описание
Эти операторы используются для прямого чтения и письма в определенных размещениях памяти.
? работает на одиночном байте. ?х означает "содержание размещения памяти х". Он может быть использован для чтения сдержания этого размещения (PRINT ?х) или установки сдержания (?х := y).
! работает на четырех последовательных байтах: на одном, указанном аргументом и трех последующих. Четыре байта - это объем памяти для хранения целой переменной, поэтому оператор может использоваться для действий с ними. Самый незначительный байт целой переменной хранится в байте, указанном аргументом, а другие байты хранятся в порядке возрастания их значимости, т.е. самый значительный байт хранится в размещении с наивысшим числом.
Кроме того, эти операторы могут быть использованы, как бинарные операторы (с переменными или постоянными, как операнды). Например, х?8 воспринимается, как содержание (размещения памяти х +8).
Ссылки
Таблица предшествования (40.6)
Синтаксис
Смотри числовой элемент, двоичный оператор, аргумент.
Примеры
PRINT ?&3000
35 !y := i# 100 FOR i#:= 0 TO 16 DO PRINT (x+i#), (x?i#)
****************************************************************
249
// Комментарий //
Описание
// используется перед комментарием в программе. Все симвволы между // и концом строки интерпретатором игнорируются.
Комментарий можно поместить на отдельной програмной строке или в конце значимой програмной строки, но не после: DELETE LOAD SAVE SELECT OUTPUT или команд операционной системы.
Ссылки
Секция 5.12.
Синтаксис
// любой символ
Пример
100 x_coord:=640; y_coord:=512 // centre of screen
****************************************************************
250
ABS Абсолютная величина AB.
Описание
Эта функция возвращает абсолютную величину своего аргумента. Например, абсолютная величина -3.67 это 3.67, а абсолютная величина 1.72 это 1.72
Ссылка
Секция 18.6
Синтаксис
ABS числовой элемент
Примеры
print abs (SPEED# - 30) 10 size _of_offset := ABS (reading - referense_value) 120 four := ABS (-2) + 2
Ассоциируемые ключевые слова
SGN
****************************************************************
251
ACS Арккосинус AC.
Описание
ACS возвращает принципиальную величину угла, косинус которого является аргументом. Возвращенная велична в радиантах в пределах от 0 до PI. Для перевода величины в градусы можно использовать DEG.
Ссылка
секция 33.1.
Синтаксис
ACS числовой элемент
Примеры
PRINT ACS (0.5) 35 angle_in_degrees := deg (acs (0.3))
Ассоциируемые ключевые слова
ASN ATN SIN COS TAN RAD DEG
****************************************************************
52
ADVAL Аналог величины цифрового конвертера AD.
Описание
ADVAL выполняет три различные функции в зависимости от того, является ли следующий за ней аргумент положительным, равным нулю, или отрицательным.
С аргументами в пределах от 1 до 4 ADVAL возвращает самую последню обращенную величину аналога в цифровой канал с этим числом. Возвращенное число имеет 8 битное разрешение, но шкалировано на 16 бит (т.е. имеет пределы от 0 до 65520 с шагом 256).
ADVAL (0) можно использовать, чтобы указывать на то, какие кнопки нажимаются в игре, а также указывать, какой канал A-D завершил обращение последним. Информация может быть определена следующм образом:
(ADVAL (0)) AND 3 возвращает 0, если не нажимается ни одна из клавиш, 1, если нажимается первая кнопка на, 2, если нажимается вторая кнопка или 3, если нажимаются обе кнопки.
ADVAL (0) DIV 256 возвращает число последнего канала A-D, завершившего обращение, 0 указывает, что ни один канал этого еще не сделал.
С отрицательными аргументами ADVAL используется для определения, до какой степени заполнены внутренние буферы.
ADVAL (-1) возвращает число символов в буфере клавиатуры.
ADVAL (-2) возвращает число символов в входном буффере RS232.
ADVAL (-3) возвращает число свободных позиций в выходном буфере RS232.
ADVAL (-4) возвращает число свободных позиций в выходном буфере принтера.
ADVAL (-5) возвращает число свободных позиций в буфере звукового канала 0.
ADVAL (-6) возвращает число свободных позиций в буфере звукового канала 1
ADVAL (-7) возвращает число свободных позиций в буфере звукового канала 2.
ADVAL (-8) возвращает число свободных позиций в буфере звукового канала 3.
ADVAL (-9) возвращает число свободных позиций в речевом буфере.
Ссылки
Секция 33.3 и руководство "Программирование на Бейсике в среде ОС ОНИКС"
****************************************************************
253
Синтаксис
ADVAL Числовой элемент
Примеры (также смотрите руководство "Программирование на Бейсике в среде ОС ОНИКС")
PRINT ADVAL 2 100 *FX 2 1 105 // line 100 takes input from RS232 110 REPEAT 120 message¤ :+ get¤ 130 UNTIL ADVAL (-2) = 0 140 *FX 2 145 // line 140 returns to keyboard input
Ассоциируемое ключевое слово
SOUND (звук)
****************************************************************
254
AND AN.
Описание
AND - это логический оператор, который выполняет AND в двоичном представлении на двух операндах, т.е. он рассматривает каждый бит двоичного представления двух операндов по очереди и для каждого из нх устанавливает соответсствующий результирующий бит на 1, если устанавливаются оба, или на 0 в противном случае (давая 32 битное число).
Ссылка
Секция 21.2.
Синтаксис
логическкое выражение AND логическое выражение
Примеры
210 IF a<>FALSE AND b<>FALSE THEN 220 PRINT "Both a and b" 230 ELSE 240 PRINT "At least one iz false" 250 END IF
Ассоциируемые ключевые слова
OR NOT EOR
****************************************************************
255
APPEND AP.
Описание
APPEND - это определяющее ключевое слово, используемое при открытии файла, который уже существует, для последовательной записи начиная с текущего конца этого файла.
Ссылки
Секции 32.10 и OPEN
Синтаксис
Смотри OPEN
Примеры (также смотри OPEN)
OPEN FILE 1,name¤,APPEND
Ассоциируемое ключевое слово
OPEN
****************************************************************
256
ASN Арксинус AS.
Описание
ASN возвращает главную величину угла, чей синус является аргументом. Величина возвращается в радиантах в пределах OT -PI/2 до + PI/2. Для перевода этой величины в градусы можно использовать DEG.
Ссылки
Секция 33.1.
Синтаксис
ASN числовой элемент
Примеры
PRINT ASN (-0.7)
45 phase_shift := ASN (value_when_reference_zero)
Ассоциируемы ключевые слова
ACS ATN SIN COS TAN RAD DEG
****************************************************************
257
ATN Арктангенс AT.
Описание
ATN возвоащает главную величину угла, чей тангенс является аргументом. Величина в радиантах в пределах от
-PI/2 до +PI/2. Для перевода величины в градусы можно использовать DEG.
Ссылки
Секция 33.1.
Синтаксис
ANT числовой элемент
Примеры
PRINT ANT (-1)
25 angle := ANT slope
Ассоциируемые ключевые слова
ACS ASN SIN COS TAN RAD DEG
****************************************************************
258
AUTO Автоматическая нумерация строк А.
Описание
Эта команда выполняет ввод программы с клавиатуры, автоматически генерируя номер следующей строкпосле каждого нажатия клавиши RETURN. AUTO нельзя использовать как часть програмной строки.
Можно использовать два аргумента, первый определяет номер начальной строки, а второй - исплользуемый инкремент. Если оба аргумента опускаются, то принимаются по умолчанию равными 10.
Если на вводимой строке обнаружена синтаксическая ошибка, то AUTO повторяет номер.
Из режима AUTO можно выйти, нажав клавишу РЕД, или присвоив номер строки больше, чем 32767.
Ссылки
Секция 5.11
Синтаксис
AUTO 100,20 AUTO 100 AUTO ,20
Ассоциируемые ключевые слова
RENUMBER
****************************************************************
259
CASE CA.
Описание
Это декларативный оператор для структуры многократного выбора CASE.
Аргумент, стоящий после оператора CASE, оценивается и используется для выбора одного из блоков операторов на последовательных строках, о которых заявлено с помощью WHEN или OTHERWISE. Чтобы найти, какой блок должен быть выполнен, аргумент проверяется с каждым из выражений в условных блоках WHEN по очереди, пока не будет найдено истинное отношение. Выполняется блок операторов между этим условным блоком WHEN и следующим элементом структуры (WHEN, OTHERWIZE или END CASE), после чего программа продолжается со строки, следующей за оператором END CASE.
Если в условных блоках WHEN для аргумента соответсвие не найдено, то выполняетс условный блок, следующий за OTHERWISE, если он присутствует. Если оператор OTHERWISE отсутствует, то CASE не удовлетворяется и выполнение продолжается после оператора END CASE.
Обратите внимание, что всегда выполняется только один блок операторов. Это ближайший к верхней части структуры блок, который удовлетворяет селектор CASE.
В конце строки CASE вставляется оператор OF, так как это требует языковое определение. При вводе он необязателен.
Ссылки
Глава 25
Синтаксис логическое выражение CASE OF eol строчное выражение
****************************************************************
260
Примеры (также смотри главу 25)
10 CASE MODE OF 20 WHEN 0,3 30 max_col := 79 40 WHEN 2,5 50 max_col := 19 60 OTHERWISE 70 max_col := 39 80 END CASE
Ассоциируемые ключевые слова
WHEN OTHERWISE END CASE
****************************************************************
61
CHR¤ Строка символов СН.
Описание
CNR¤ это строчная функция, требующая одиночный числовой аргумент. Она возвращает строку одиночного символа, который является символом ASCII, соответствующим наименее значительному байту числового аргумента.
CHR¤ необходима при построении строки, содержащей символы, которых нет на клавиатуре (напр. CHR¤ (10), перевод строки). Следует отметить, что часто для контрольных кодов вывода на экран, или для других выводов проще использовать VDU.
Ссылки
Секция 7.6 и таблица кодов ASCII (40.1)
Синтаксис
CHR¤ числовой элемент
Примеры
message¤ := CHR¤ (7) + text¤ // CHR¤ (7) = "sound bell" 10 his := CHR¤ (34) + hi¤ + CHR¤ (34) // add quotes
Ассоциируемые ключевые слова
ORD VDU VAL STR¤[an error occurred while processing this directive]