ZX Учебная: BASIC
В этой рубрике первые три номера ZX Revije постараются вкратце познакомить вас с основами BASIC для ZX Spectrum. Это сделано по предложениям, поступившим в редакцию.
Основные команды компьютера
RUN — выполнение программы
LIST — вывод программы на экран
BREAK — временная остановка программы
CONTINUE — продолжение выполнения программы, временно остановленной командой BREAK
EDIT — вывод текущей строки внизу экрана, что позволяет изменить её содержимое
NEW — удаление программы и переменных из памяти, а также очистка самого экрана
CLEAR — удаляет все переменные и освобождает занимаемое ими пространство
Команды ввода-вывода и связанные с ними команды
К этой группе относятся следующие команды: INPUT, PRINT, CLS, READ, DATA и RESTORE.
INPUT
Служит для ввода данных с клавиатуры и присваивания их входным переменным.
Общий формат:
INPUT[ строковое выражение ;] список
где:
- строковое выражение — строковое выражение, которое отображается на экране в момент ожидания ввода данных с клавиатуры;
- список — одна или несколько переменных, разделённых запятыми, которым присваиваются значения, введённые с клавиатуры;
- ; — символ, отделяющий строковое выражение от переменных, указанных в списке.
Команда выполняется так: выполнение программы временно приостанавливается и ожидается ввод значений для переменных, указанных в списке.
Примечания:
-
Команду INPUT можно использовать вместе с опцией AT, чтобы задать позицию на экране (строку, столбец), в которой будет приниматься значение.
Общий формат опции:
AT m,nгде:
- m — задаёт строку;
- n — задаёт столбец в строке m (0–31).
-
Команду INPUT можно использовать вместе с опцией LINE. Она позволяет избежать появления кавычек при вводе строковой переменной.
-
Команду INPUT можно использовать вместе с опциями задания цвета (PAPER, INK, FLASH, BRIGHT, INVERSE или OVER).
Используется для вывода числовых значений и текста на экран монитора (или телевизора).
Общий формат команды:
PRINT[ список]
где:
- список — перечень элементов.
Примечания:
-
Символы запятая, апостроф и точка с запятой служат для разделения элементов списка и задают расположение выводимых на экран данных и текста:
- ' — продолжает вывод в следующей строке;
- , — продолжает вывод в следующей половине строки (начиная со столбца 0 или столбца 16);
- ; — продолжает вывод в следующем столбце.
-
Команду PRINT можно использовать вместе с опцией TAB, которая задаёт расположение вывода в пределах одной строки, то есть определяет начальную позицию поля вывода в строке.
Общий формат опции:
TAB nгде n задаёт столбец, с которого начинается первое поле, указанное в команде PRINT.
-
Команду PRINT можно использовать вместе с опцией AT, чтобы задать начальную позицию (строку и столбец) на экране, с которой начинается вывод данных и текста.
Общий формат опции:
AT m,nгде:
- m — задаёт строку (0–21);
- n — задаёт столбец в строке m.
-
Команду PRINT можно использовать вместе с опциями задания цвета (PAPER, INK, FLASH, BRIGHT, INVERSE или OVER).
CLS
Используется для очистки экрана.
Общий формат команды:
CLS
При выполнении этой команды содержимое экрана очищается.
DATA
Используется для размещения в программе данных, которые будут прочитаны командой READ. Данные считываются последовательно, по порядку; строковые данные должны быть заключены в кавычки.
Общий формат команды:
ZX Учебная: BASIC
DATA
Список данных, где:
список данных — перечень элементов, разделённых запятыми. Элементами списка могут быть числовые и символьные переменные.
Эта команда не исполняется сама по себе, а связана с одной из команд READ. Чаще всего она помещается в конце программы. Типы данных в команде DATA и имена переменных в команде READ должны соответствовать друг другу.
READ
Используется для считывания данных, указанных в команде DATA, и присвоения их переменным, перечисленным в команде READ.
Общий вид команды:
READ список переменных
где:
список переменных — одна или несколько числовых, символьных или индексных переменных, разделённых запятыми.
При выполнении этой команды переменным, указанным в READ, присваиваются значения из одной или нескольких команд DATA. Эта команда похожа на INPUT, но считываемые данные фиксированы и заранее заданы командой DATA.
RESTORE
Используется для инициализации данных, указанных в команде DATA.
Общий вид команды:
RESTORE [номер]
где:
номер — номер строки команды DATA, с которой начинается инициализация. Если номер не указан, начальной позицией считается первая команда DATA в программе.
Эта команда позволяет следующей команде READ считывать данные начиная с первой команды DATA, номер строки которой равен или больше номера, указанного в команде RESTORE.
Примеры команд из предыдущей группы:
10 PRINT "Obrež",15.10.1989;" god."
a) PRINT 2+3*5
b) PRINT "Novi Sad"
c) PRINT "Novi Sad"
d) PRINT "Novi Sad"
e) PRINT AT 10,10;"ZX REVIJA"
f) PRINT TAB 10;"BASIC"
10 INPUT "argument? ";x
20 PRINT "Funkcija:"
30 PRINT: PRINT y=x*x-3*x-1.6
40 PRINT: PRINT "za x=";x;" ima vrednost"
50 PRINT x*x-3*x-1.6
10 INPUT a$:INPUT LINE b$
20 PRINT "(INPUT):"
;a$
30 PRINT "(INPUT LINE):"
;b$
10 READ a$
20 PRINT "ime:"
;a$
30 DATA Matija
10 READ a,b:PRINT a,b
20 RESTORE 40
30 READ x,y,z:PRINT x,y,z
40 DATA 1,2,4
10 READ x:RESTORE 200
20 READ y:RESTORE 300
30 READ z
40 PRINT x;" ";y;" ";z
100 DATA 23,43,54
200 DATA 1,0,3
300 DATA 200,300,400
Команда комментария REM
Используется для добавления строки комментария в программу.
Общий вид команды:
REM текст
где:
текст — любое содержимое, служащее комментарием.
Пример команды REM:
10 REM primer za naredbu REM
20 INPUT "stranica?";a
INPUT "visina?";h
30 PRINT "trougao sa:"
PRINT "stranicom a=";a
40 PRINT "i visinom h=";h
50 REM rezultat P=a*h/2
60 PRINT "ima površinu P=";a*h/2
Команда остановки STOP
Используется для прекращения дальнейшего выполнения текущей программы.
Общий вид команды:
STOP
Она останавливает выполнение программы, после чего его можно продолжить командой CONTINUE.
Пример команды STOP:
10 READ a,b,c
20 PRINT a,b,c
30 DATA 10,11,15
40 STOP
Команда присваивания LET
Используется для вычисления значения выражения — числового или символьного — и присваивания вычисленного значения переменной, числовой или символьной.
Общий вид команды:
LET<числовая переменная>=<числовое выражение>
LET<символьная переменная>=<символьное выражение>
Команда действует следующим образом: вычисляется значение выражения справа от знака равенства, а затем присваивается переменной слева от знака равенства.
Пример команды LET:
10 REM pretvaranje metre u centimetre
20 INPUT "unesite veličinu u metrima:";m
ZX Учебная: BASIC
Фрагмент 3/4.
;m
30 LET c=100*m
40 PRINT m; "метров — "; c; " см": STOP
Функции для выполнения основных математических операций
Доступны следующие функции: SQR, EXP, LN, ABS, SGN, INT, SIN, COS, TAN, ASN, ACS и ATN.
SQR
Используется для вычисления квадратного корня из числового значения.
Общий вид функции:
SQR(числовое выражение)
Значение числового выражения, являющегося аргументом функции, не должно быть меньше нуля.
EXP
Используется для определения экспоненты числового выражения.
Общий вид функции:
EXP(числовое выражение)
Экспоненциальную функцию вида aᵇ можно вычислить с помощью соотношения:
aᵇ = EXP(b*LN(a))
LN
Используется для вычисления логарифма числового выражения (речь идёт о функции ln(x), то есть о логарифме по основанию e = 2,71…).
Общий вид функции:
LN(числовое выражение)
Значение числового выражения должно быть больше нуля.
ABS
Используется для определения абсолютного значения числового выражения.
Общий вид функции:
ABS(числовое выражение)
По определению:
|x| = x, если x > 0
0, если x = 0
-x, если x < 0
SGN
Используется для определения знака числового выражения.
Общий вид функции:
SGN(числовое выражение)
По определению:
sgn(x) = 1, если x > 0
0, если x = 0
-1, если x < 0
INT
Используется для определения целой части числового выражения.
Общий вид функции:
INT(числовое выражение)
Под целой частью числового выражения понимается наибольшее целое число, не превышающее значение заданного выражения. Например:
INT(7.13)=7
INT(-5.6)=-6
SIN, COS и TAN
Используются для вычисления одной из тригонометрических функций SIN, COS и TAN для заданного числового выражения.
Общий вид функций:
SIN(числовое выражение)
COS(числовое выражение)
TAN(числовое выражение)
Здесь числовое выражение — аргумент функции, представляющий значение угла в радианах.
Примечания:
- При использовании функции TAN следует учитывать, где эта функция не определена.
- Функцию ctg(x) можно вычислить по формуле:
ctg(x)=1/tg(x)
ASN, ACS и ATN
Используются для вычисления значений обратных тригонометрических функций для заданного числового выражения.
Общий вид функций:
ASN(числовое выражение)
ACS(числовое выражение)
ATN(числовое выражение)
Числовое выражение — аргумент функции. Для него существуют определённые ограничения, поскольку оно представляет собой значение sin(x), cos(x) или tg(x).
Примечания:
- Для функций ASN и ACS числовое выражение должно принадлежать интервалу [-1, 1]. Для функции ATN следует учитывать, где функция tg(x) определена.
- Функцию arcctg(x) можно вычислить по формуле:
arcctg(x)=PI/2-arctg(x)
Примеры использования предыдущих функций
10 REM вычисление квадратного корня
20 INPUT "Введите число?";a
30 PRINT "Для числа a=";a
PRINT "Квадратный корень равен ";SQR(a)
40 STOP
10 INPUT "Введите значение показателя?";a
20 PRINT "Для числа a=";a
PRINT "Значение EXP(a) равно ";EXP(a)
30 STOP
10 INPUT "Введите число?";a
20 PRINT "Логарифм числа a=";a;" равен ";LN(a)
10 INPUT "Первое число ";a
INPUT "Второе число ";b
20 PRINT "Для чисел a=";a
PRINT "Абсолютное значение произведения a*b равно ";ABS(a*b)
10 INPUT a,b: PRINT "a=";a, "b=";b
20 PRINT "Знак разности a-b: ";SGN(a-b)
10 INPUT "Введите число?";a
20 PRINT "INT(a)=";INT(a)
10 PRINT "ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ"
PRINT
20 PRINT "Для угла АЛЬФА=30 градусов, то есть..."
π/6 радиан
30 PRINT "sin 30°="; SIN(PI/6)
40 PRINT "cos 30°="; COS(PI/6)
50 PRINT "tg 30°="; TAN(PI/6)
60 PRINT "ctg 30°="; 1/TAN(PI/6)
10 FOR n=0 TO 255
20 PLOT n,88+175/PI*ASN(n/128-1)
30 NEXT n
10 FOR n=0 TO 255
20 PLOT n,40+120/PI*ASN(n/128-1)
30 NEXT n
10 PRINT ATN -1
20 PRINT ATN 0
30 PRINT ATN 1
Команды для генерации случайных чисел
RND
Используется для получения случайного числа из интервала [0, 1), то есть числа, которое не может быть меньше 0 и обязательно меньше 1. Таким образом, функция RND возвращает случайное значение, всегда находящееся между 0 и 1.
Общий вид функции:
RND
RANDOMIZE
Используется для задания начальной позиции в последовательности случайных чисел, генерируемых функцией RND, то есть для определения начального случайного числа.
Общий вид команды:
RANDOMIZE [n]
где:
n — целое число, удовлетворяющее условию 0<=n<=65535
Примечания:
- Запись
RANDOMIZEэквивалентна записиRANDOMIZE 0. - Функция RND, следующая за командой
RANDOMIZE n, всегда возвращает значение[75*(n+1)-1]/65536.
Пример использования функции RND:
10 REM случайное число из интервала 1–36
20 PRINT 1+INT(RND*36): STOP
Пример использования команды RANDOMIZE:
10 RANDOMIZE 1
20 PRINT "случайное число 1"; RND
30 PRINT "случайное число 2"; RND
40 PRINT "случайное число 3"; RND
50 PRINT "случайное число 4"; RND: STOP
Нажми a для повтора
Нажми b для продолжения
Экран 25
Поделитесь вашим мнением о статье