Приложение 2. Основные операторы, функции и команды Spectrum-Бейсика
ABS m Стр. 247. Абсолютное значение числа m.
PRINT ABS -12 12
ACS р Функция арккосинус; р задается в пределах от -1 до 1, результат
печатается в радианах.
PRINT ACS 0.5 1. 04719761
AND Стр. 54, 57. Логический оператор.
LET x=7:IF x>5 AND x<10 THEN PRINT "O'kay" Ckay
ASN p Функция арксинус, р задается в пределах от -1 до 1, результат
печатается в радианах.
PRINT ASN 0.7
0. 7753975
AT y,x Стр. 15. Оператор задает знакоместо для вывода данных в PRINT и
INPUT. Параметр у определяет номер строки (0...21), а параметр х -номер столбца (0...31).
ATN р Функция арктангенс, результат печатается в радианах.
PRINT ATN 20.742
1. 5226223
ATTR (у,х) Функция возвращает число от 0 до 255, соответствующее атрибутам знакоместа. Позиция знакоместа задается целочисленными величинами: (0...23) и (0...31).
10 FLASH 1:PAPER 3:1NK 7:BRIGHT 0 20 PRINT AT 10,12;" " 30 PRINT ATTR (10,12) 159
ВЕЕР t,h Стр. 30. Оператор генерирует звук длительностью t (в секундах) и высотой h (в полутонах). Число h = 0 соответствует ноте ДО первой октавы.
ВЕЕР 0.05,0.3
BIN S Стр. 46. Команда переводит двоичное число s в десятичное (нули в
левой части числа можно опускать).
PRINT BIN 10011010 154
border с Стр. 14. Оператор задает цвет поля вокруг рабочей области экрана и цвет фона служебного окна. Параметр с принимает целочисленные значения в пределах 0...7.
BORDER 1:REM синий цвет бордюра
BRIGHT a Стр. 55. Оператор устанавливает яркость выводимого символа.Число s принимает одно из целочисленных значений: 0 - для нормальной яркости, 1 - для повышенной яркости, 8 -сохраняет существующую яркость.
PRINT "RRR "; BRIGHT 1;"RRR"; BRIGHT 0;"RRR"
CAT Ключевое слово в Spectrum- Basic не задействовано.
CHR$ k Стр. 54. Функция возвращает символ по указанному, в аргументе
коду k. Код принимает значения 0...255.
PRINT CHR$ 35
#
CIRCLE x,y,r Стр. 163. Оператор строит на экране окружность радиуса r, центр которой имеет горизонтальную координату х (0...255), а вертикальную - y (0...175).
CIRCLE INK 1;100, 50,42
CLEAR n Стр. 60. Оператор уничтожает все переменные и очищает
занимаемую ими память. Выполняет RESTORE и CLS, устанавливает PLOT-позицию в нижнюю левую точку экрана. Изменяет системную переменную RAMTOP на n и задает новый GO SUB стек.
CLEAR 40000
CLOSE #a Оператор используется при работе с потоками и каналами
CLS Стр. 15. Оператор очищает основной экран и окрашивает его в
текущий постоянный цвет фона.
CODE A$ Стр. 43. Функция возвращает код первого символа символьного
значения А$ в соответствии с таблицей символов ZX Spectrum [ ].
PRINT CODE "Symbol"
83
CONTINUE Команда продолжает выполнение программы с оператора, на котором она была прервана.
COPY Оператор распечатывает копию 22 строк экрана на принтере.
COS p Функция вычисляет косинус угла р, заданного в радианах.
PRINT COS 1.4
0. 169967140
DATA Стр. 21. Оператор задания списка данных - произвольного набора
a/b/c/g$/k$ числовых (а, b, с) и символьных (g$,k$) значений. Оператор DATA можно помещать в любом месте программы.
DATA 56, 0,128,37, 11, 0,"Sokoban", 68
DEF FN Оператор определяет пользовательскую функцию (дополнительно
R(x/y)=E к «встроенным» в Бейсик). Здесь R - имя функции, х, у - параметры функции, Е - числовое выражение, задающее саму функцию. Вызов пользовательской функции осуществляется ключевым словом FN.
100 DEF FN L(x,y)=xt2+4.5*x-0.8*y+9. 6
300 PRINT FN 1(3.69,0.23)
41. 03214
DIM R (m) Стр. 21. Оператор задаст одномерный числовой массив на m элементов,
10 DIM V(128)
DIM R(m,n) Стр. 22. Оператор задает двухмерный числовой массив, рассчитанный на m строк по n чисел в каждой.
DIM Z(20,5)
DIM R$ (m,n) Стр. 22. Оператор задает двухмерный символьный массив, рассчитанный на m слов по n символов в каждом.
DIM K$(15,8)
DRAW x,y Стр. 23. Оператор строит на экране отрезок прямой линии или
['r] дугу окружности. Относительное расстояние (в пикселях) от
начала отрезка до его конца измеряется величиной х по горизонтали и у по вертикали.
DRAW INK 5; 100, 20, 8
ERASE Ключевое слово в Spectrum- Basic не задействовано.
ЕХР х Экспоненциальная функция, возводит число е = 2.7182818 в
степень х.
PRINT ЕХР 1
2. 7182818
FLASH р Стр. S9. Оператор устанавливает режим мерцания при
отображении символьной и графической информации. Число р принимает одно из целочисленных значений: 0 - постоянное свечение, 1 - включает режим мерцания, 8 - сохраняет предыдущее состояние.
PRINT FLASH 1;"ZX Spectrum"
FN Возвращает значение пользовательской функции, заданной
оператором DEF FN.
FOR n=a ТО b Стр. 19. Оператор цикла, позволяющий выполнять [STEP s] часть программы, заключенную между операторами FOR и NEXT, заданное число раз. Управляющая переменная n принимает значения от n = a до n = b с шагом s. Если шаг не задан, то по умолчанию он принимается равным 1.
200 FOR n=1 TO 10
210 PRINT "*";
220 NEXT n
format Ключевое слово в Spectrum- Basic не задействовано.
GO SUB n Стр. 33. Оператор передачи управления подпрограмме. Номер строки, с которой начинается подпрограмма, задается целочисленным значением n. Текст подпрограммы должен заканчиваться оператором RETURN, который возвращает управление оператору, следующему за GO SUB.
120 GO SUB 3000
130 GO SUB 500
GO TO n Стр. 25. Оператор безусловного перехода на строку с номером n,
который должен иметь целочисленное значение.
GO ТО 330
IF...THEN.. Стр. 26. Оператор условного перехода, причем условие ставится за IF. Если это условие выполняется, то управление передается на оператор (операторы), стоящий за ключевым словом THEN. Если же оно не выполняется (ложно), то управление переходит к следующей строке программы.
40 LET x=7
50 IF x<5 THEN PRINT "good": GO TO 300
60 PRINT "bad"
bad
IN m Стр. 109. Функция считывает число (байт) из порта. Адрес порта
задается целочисленным значением m (0... 65535), записываемым за ключевым словом.
480 LET jo=IN 31
INK с Стр. 15. Оператор устанавливает цвет тона, то есть цвет, в который
окрашиваются выводимые на экран символы, точки, линии. Код цвета с должен иметь одно из целочисленных значений (0...9).
50 PRINT AT 10,12;INK 4;"Sinclair"
INKEY$ Стр. 26. Функция возвращает символ, соответствующий нажатой
клавише. Используется для обнаружения факта нажатия клавиши на клавиатуре.
100 IF INKEY$="P" THEN GO TO 1000
120 IF INKEY$="O" THEN GO TO 2000
INPUT a,b,t$ Стр. S3. Оператор ввода данных в программу: присваивает числовым или символьным переменным а, b, t$, расположенным за ключевым словом, соответственно, числовые или символьные значения, набираемые на клавиатуре.
20 INPUT INK 1;"name:";k$
INT х Стр. 24. Функция преобразует числовое значение х до
ближайшего (меньшего) целого числа.
PRINT INT 23.59;" ";INT-3.84
23 -4
INVERSE p Стр. 213. Оператор устанавливает режим инвертированного отображения графической и символьной информации. Число р
может принимать одно из следующих целочисленных значений: 0 - устанавливает нормальный режим цветопередачи; 1 - при печати символов цвет тона и цвет фона меняются местами; графическая информация отображается цветом фона и становится невидимой.
10 PAPER 7: INK 0:CLS 20 INVERSE 1: PRINT "Moon"
LEN а$ Стр. 27, 28. Функция возвращает длину (число символов)
символьного значения а$.
PRINT LEN "Compiler" 8
LET x=a Стр. 20. Оператор присваивает переменной х значение а.
30 LET y=3.1415926 40 LET b$="Таре" 50 LET s(12.7)=128
LINE m Стр. 19. Ключевое слово ставится после оператора SAVE и
указывает, что программа после ее загрузки оператором LOAD будет сразу запущена со строки с номером m.
SAVE "Star" LINE 10
LIST m Оператор выводит на экран листинг бейсик-программы,
находящейся в памяти компьютера, начиная со строки m. Если номер не указан, выводится вся программа.
LLIST m Оператор распечатывает на принтере листинг бейсик-программы,
находящейся в памяти компьютера, начиная со строки m.
LN z Функция натурального логарифма положительного числа z.
PRINT LN 5.5 1. 704748
LOAD a$ Стр. 19. Оператор загрузки бейсик-программы в память
компьютера. Имя программы задается значением, а$. LOAD с «пустым» именем загружает первую встретившуюся на ленте программу.
LOAD "Express" LOAD ""
LOAD a$ CODE Стр. 43. Оператор загрузки в память компьютера кодового блока
[п],[1] (последовательности байтов). Имя файла, в котором был сохранен
блок на магнитной ленте, задается символьным значением а$ За ключевым словом CODE указывается адрес n размещения блока кодов в памяти компьютера и количество загружаемых байт - l. LOAD "Raiders" CODE LOAD "Maxit" CODE 16384,6912 LOAD "" CODE
LOAD a$ DATA Оператор загружает с магнитной ленты в память компьютера
r[$] ( ) массив. Имя файла, содержащего массив, задается символьным
значением а$ Следом за DATA указывается имя массива г (буква
или буква со знаком $) с пустыми скобками.
LOAD "Fighter" DATA r()
LOAD "Monitor" DATA s$()
LOAD a$ Оператор загружает с магнитной ленты блок кодов
SCREEN$ непосредственно в экранную область памяти, и на экране
воспроизводится ранее записанная картинка. Имя файла, в котором она была сохранена на ленте, - а$.
LOAD "Zastawka" SCREEN$
MERGE a$ Стр. 146. Оператор подгружает бейсик-программу с магнитной ленты в память компьютера, не стирая уже находящейся там программы. Имя загружаемой программы задается значением а$. Оператор MERGE соединяет две программы,располагая их строки по порядку возрастания номеров.
MERGE"Command"
move Ключевое слово в Spectrum-Basic не задействовано.
NEW Стр. 144. Оператор очищает область памяти, отведенную для
размещения и работы бейсик-программы.
NEXT n Стр. 19. Оператор цикла, позволяющий выполнять часть
программы, заключенной между FOR и NEXT, заданное число раз. Управляющая переменная n принимает значения от n = a до n = b с шагом h. Если он не задан, то по умолчанию принимается 1.
200 FOR n=1 ТО 10
210 PRINT "*";
220 NEXT n
NOT Стр. 55. Логический оператор отрицания условия, стоящего за
ключевым словом: истинное условие делает ложным, ложное -истинным.
60 LET x=5:IF NOT (x>10) THEN PRINT "No" Функция возвращает 0, если числовое значение, следующее за ключевым словом, не равно нулю; 1 - если значение равно нулю
PRINT NOT(7*8-56)
1
OR Стр. 34. Оператор логического сложения условий. Комбинация
условий, объединенных операторами OR, истинна, если истинно хотя бы одно из них.
50 LET у=64:
60 IF y=32 OR y=64 OR y=128 THEN PRINT "Left" Функция возвращает значение, стоящее перед ключевым словом, если се аргумент равен 0 или возвращает 1, если аргумент не равен 0.
PRINT 33 OR 6
1
OUT s,b Стр. 113. Оператор записывает в порт целочисленное значение b
(0...255), адрес которого задается целочисленным значением s (0... 65535).
OUT 254,3
OVER s Стр. 33. Оператор устанавливает режим наложения изображений
на экране. Число s может принимать значения: 0 - устанавливает нормальный режим отображения информации; 1 - новое изображение накладывается на уже существующее на экране, не стирая его. Точки пересечения принимают окраску фона; 8 - задает режим прозрачности, при котором режим наложения соответствует ранее установленному для данного знакоместа.
10 OVER 1
20 PRINT AT 10,10;"1 2 3 " 30 PRINT AT 10,11;"a b c" 1Э2Ь3С
PAPER с Стр. 15. Оператор устанавливает цвет фона - цвет, в который
окрашивается экран. Число с принимает целочисленное значение в пределах от 0 до 9 и является кодом цвета.
10 BORDER 0: PAPER 0:INK 7
PAUSE t Стр. 17. Оператор приостанавливает работу программы на время,
задаваемое целочисленным значением t (0... 65535). Пауза равна t/50 сек. Оператор PAUSE 0 продолжит работу программы только после нажатия какой-либо клавиши.
PAUSE 200 (пауза на 4 сек.)
PEEK n Стр. 138. Функция считывает число в интервале от 0 до 255 (байт)
из ячейки памяти. Адрес ячейки задается целочисленным значением n (0... 65535).
60 РОКЕ 40000,209 70 PRINT PEEK 40000 209
PI Стр. 84. Функция возвращает значение числа «пи» (3.1415926).
PRINT PI 3. 1415926
PLOT x , у Стр. 23. Оператор ставит на экране точку (включает пиксель).
Позиция точки задается двумя целочисленными значениями координат: горизонтальной - х (0...255) и вертикальной - у (0...175).
300 PLOT INK 1;INVERSE 1;x,y
POINT x , у Функция проверяет состояние пикселя. Если он включен (окрашен в цвет тона), функция возвращает 1,а если выключен (окрашен в цвет фона) - 0. Числа х и у соответствуют горизонтальной (0...255) и вертикальной (0...175) координатам.
570 IF POINT (x,y)=1 THEN GO TO 240
POKE n, b Стр. 46. Оператор записывает в память целочисленное значение b (0...255). Адрес ячейки памяти задается целочисленным значением n (0... 65535).
100 РОКЕ 23609,155 110 PRINT PEEK 23609 155
PRINT a [b$] Стр. 15. Оператор выводит на экран данные - числовые а и символьные b$ значения, следующие за ключевым словом. Перед блоками данных могут ставиться слова, задающие атрибуты (AT, TAB, INK, PAPER, FLASH, INVERSE и OVER). 25 PRINT AT 15,10;INK 1;PAPER 4;"Piraimda"
Числовые выражения, стоящие за PRINT, вычисляются, и на экране отображается результат в десятичной форме. Числа больше 108 и меньше 10-5 отображаются в экспоненциальной форме.
PRINT 500000000 5Е8
Для управления печатью используются следующие символы: ; -блоки отображаются один за другим без пробелов; , - текущая позиция печати переводится на середину текущей строки или в начало следующей, в зависимости от позиции последнего напечатанного символа; ' - данные, отделенные апострофом, печатаются с новой строки.
RANDOMIZE k Стр. 64. Оператор задает начало последовательности случайных чисел, генерируемой оператором RND. Целочисленное значение k (1... 65535) устанавливает фиксированное начало последовательности.
RANDOMIZE 51000
READ w Стр. 21. Оператор присваивает переменной w значения,
считываемые из списка данных, следующих за оператором DATA.
50 READ x
REM Стр. 18. Оператор отделяет текст комментариев от текста
программы. Следом за REM могут стоять любые символы.
100 GO SUB 5000: REM Подпрограмма заставки.
RESTORE n Стр. 121. Оператор указывает строку n DATA, с которой нужно считывать данные следующим по программе оператором READ. Если n не указано, либо n = 0, то оператор READ обращается к первому в программе оператору DATA.
RETURN Стр. 29. Оператор заканчивает подпрограмму (GO SUB) и передает
управление на оператор, следующий сразу за GO SUB.
RND Стр. 24. Функция возвращает псевдослучайное число в интервале
от 0 до 1, исключая саму 1. Изменить последовательность можно выполнением оператора RANDOMIZE.
FOR j=1 TO 5:PRINT RND:NEXT j
0.26338196
0. 75448608
0. 58673096
0. 00527954
0. 39709473
RUN [n] Стр. 18. Оператор запуска бейсик-программы. Для запуска с
определенной строки, должно быть задано целочисленное значение n.
SAVE a$ Стр. 19. Оператор записывает бейсик-программу на магнитную
[LINE n] ленту. Программе присваивается имя, задаваемое символьным
значением а$, которое должно содержать не более десяти символов и не может быть «пустым». Ключевое слово LINE указывает, что программа после ее загрузки оператором LOAD будет сразу запущена со строки с номером n.
SAVE "Fox" LINE 5
SAVE a$ CODE Стр. 18. Оператор сохранения на магнитной ленте блока кодов n,1 (последовательности) байтов. Имя файла, в который записывается
блок, задается символьным значением а$. Имя должно состоять не более чем из десяти символов и не может быть «пустым». За ключевым словом CODE указывается адрес n размещения блока кодов в памяти компьютера и количество загружаемых байт l.
SAVE "Spruts" CODE 16384,6912
SAVE a$ DATA Оператор сохраняет на магнитной ленте массив. Имя файла, в r[$] ( ) котором сохраняется массив, задается символьным значением а$.
Имя должно состоять не более чем из десяти символов и не может быть «пустым». Следом за DATA указывается имя массива г (буква или буква со знаком $) с пустыми скобками.
SAVE "Monitor" DATA r()
SAVE "Fighter" DATA s$()
SAVE a$ Оператор записывает на магнитную ленту экранное изображение.
SCREEN$ Имя файла, в котором сохраняется экранное изображение,
задается символьным значением а$. Имя должно состоять не более чем из десяти символов и не может быть «пустым».
SAVE"Korol"SCREEN$
SCREEN$ Стр. 229. Функция возвращает символ, помешенный в указанном
(y'x) знакоместе экрана. Позиция знакоместа задается двумя
целочисленными значениями: у (0...21) - номер строки; х (0...31) - номер столбца.
200 PRINT AT 10,12;"@"
210 LET a$=SCREEN$ (10,12)
220 PRINT a$
@
SGN g Стр. 172. Функция определяет знак числового значения. Она
возвращает следующие значения:
1 - если аргумент положителен; -1 - если аргумент отрицателен; 0 -если аргумент равен 0.
PRINT SGN15
1
PRINT SGN -130
-1
SIN p Стр. 84. Функция вычисляет синус угла р, заданного в радианах.
PRINT SIN 1.2
0.93203909
SQR k Стр. 239. Функция вычисляет квадратный корень числа k.
PRINT SQR 49 7
STEP Стр. 19. Оператор используется для построения цикла FOR...
NEXT.
Устанавливает шаг приращения управляющей переменной.
10 FOR n=12 ТО 2 STEP-2 20 PRINT n;" "; 30 NEXT n 12 10 8 6 4 2
STOP Стр. 34. Оператор останавливает выполнение бейсик-программы.
После остановки программы ее выполнение может быть продолжено оператором CONTINUE.
STR$ w Стр. 131. Функция преобразует числовое значение w в
символьное. STR$ возвращает значение аргумента в виде символьной константы.
70 LET A=747920 80 A$=STR$ A 90 PRINT A$ 747920
TAB x Стр. 55. Оператор задаст позицию вывода на экран в текущей
строке. Целочисленное значение х (0..31) указывает номер колонки. Если х меньше текущей позиции вывода, символ помещается в заданную позицию, но строкой ниже. TAB используется только с PRINT и INPUT.
PRINT TAB 1;"*";ТАВ 5;"*";ТАВ 3;"|";ТАВ 3;"_" * *
/
TAN p Функция вычисляет тангенс угла р; заданного в радианах.
PRINT TAN 1.3 3. 6021024
THEN Стр. 26. Ключевое слово, используется в операторе IF...THEN...
TO Стр. 19. Как оператор, используется для построения циклов FOR.
..NEXT.
Как функция, выделяет подстроку (выполняет сечение) символьного значения. Начальная и конечная позиции сечения задаются двумя целыми числами, которые записываются через ключевое слово ТО в скобках.
PRINT "PIRAMIDA" (3 ТО 6) RAMI
USR n Стр. 144. Функция с целочисленным значением передает
управление подпрограмме в машинных кодах, расположенной по адресу n (0... 65535).
USR "a" Стр. 47. Функция с символьным значением возвращает адрес
первого из восьми байтов, задающих изображение символа, определяемого пользователем. Следом за USR указывается одна из 20 букв A,B,C,...U.
PRINT USR "A" 63368
VAL c$ Стр. 164. Функция возвращает символьное значение,
представляющее собой символьную запись числового значения, в числовую константу.
PRINT VAL "4+9" -49
VAL$ "c$" Функция возвращает строку символов, представляющую собой
результат вычисления символьного выражения, записанного в
виде символьной константы.
10 LET a$="ROBIN":LET b$="WOOD" 20 LET c$="a$+";" in the ";"+b$" 30 PRINT VAL$ c$ ROBIN in the WOOD
VERIFY a$ Стр. 146. Оператор проверяет правильность записи программы на магнитную ленту. Имя проверяемой программы задается символьным значением а$. Если программа, записанная на ленте, не совпадает с программой, находящейся в памяти компьютера, то выдается сообщение об ошибке: Таре loading error.
Таким же образом можно проверить правильность записи массивов VERIFY...DATA, экранного изображения -VERIFY...SCREEN$ и блока кодов - VERIFY...CODE.
VERIFY" " VERIFY"Miny" VERIFY"Sokoban"DATA r() VERIFY"Space war"SCREEN$ VERIFY"Tanx"CODE VERIFY"Tanx"CODE 16384,6912