Языки Бейсик
.pdfГлава XII. Бейсик-HELP |
131 |
Пример:
i% = 0
PRINT “Значение i% в начале цикла равно “; i% DO WHILE i% < 10
i% = i% + 1
LOOP
PRINT “Значение i% в конце цикла равно “; i%
См. также EXIT, FOR...NEXT, WHILE...WEND”
DOUBLE-ключевое слово
Указывает тип данных для переменных в операторах описания и в списке параметров:
Соответствие ключевых слов и типов данных: |
Суффикс |
||
|
|
|
|
INTEGER |
16-битовая целая переменная со знаком. |
% |
|
|
|
|
|
LONG |
32-битовая целая переменная со знаком. |
& |
|
|
|
|
|
SINGLE |
32-битовая переменная одинарной точности с |
! |
|
плавающей запятой. |
|||
|
|
||
|
|
|
|
DOUBLE |
64-битовая переменная двойной точности с пла- |
# |
|
вающей запятой. |
|||
|
|
||
STRING * n% |
Строковая переменная фиксированной длины ( |
$ |
|
|
длина — n% байтов). |
|
|
STRING |
Строковая переменная переменной длины. |
$ |
|
|
|
|
|
|
|
|
|
См. также AS, Набор основных символов, COMMON, DECLARE, DEF FN, DIM, REDIM, FUNCTION, SHARED, STATIC, SUB, TYPE
DRAW-оператор
Рисует объект.
Формат записи:
DRAW строка_команд$
ãäå
строка_команд$ строковое выражение, содержащее одну или несколько следующих команд DRAW:
|
|
DRAW-оператор |
|
|
|
|
Команды изображения линии и перемещения курсора: |
|
|
|
|
D[n%] |
|
Перемещает курсор вниз на n% единиц. |
|
|
|
E[n%] |
|
Перемещает курсор вправо-вверх на n% единиц. |
|
|
|
F[n%] |
|
Перемещает курсор вправо-вниз на n% единиц. |
|
|
|
G[n%] |
|
Перемещает курсор влево-вниз на n% единиц. |
|
|
|
H[n%] |
|
Перемещает курсор влево-вверх на n% единиц. |
|
|
|
|
|
|
132 |
Языки Бейсик |
|
|
|
|
L[n%] |
Перемещает курсор влево на n% единиц. |
|
|
|
|
M[{+|-}]x%,y% |
Перемещает курсор в точку x%,y%.Если перед x% стоит + |
|
|
или -, перемещает относительно текущей точки. |
|
R[n%] |
Перемещает курсор вправо на n% единиц. |
|
|
|
|
U[n%] |
Перемещает курсор вверх на n% единиц. |
|
|
|
|
[B] |
Необязательная приставка, которая перемещает курсор, не |
|
рисуя при этом. |
||
|
||
[N] |
Необязательная приставка, которая рисует и возвращает |
|
курсор в первоначальную позицию. |
||
|
||
|
|
|
|
Команды цвета, вращения и масштаба: |
|
|
|
|
An% |
Поворачивает объект на n% * 90 градусов(n% может быть 0, |
|
1, 2 èëè 3). |
||
|
||
|
|
|
Cn% |
Устанавливает рисующий цвет (n% — атрибут цвета). |
|
|
|
|
Pn1%,n2% |
Устанавливает цвет заполнения и границы объекта(n1% — |
|
атрибут цвета заполнения, n2% — атрибут цвета границы). |
||
|
||
|
Определяет масштаб рисунка, устанавливая единицу длины |
|
Sn% |
перемещения курсора. По умолчанию n% равно 4, что экви- |
|
|
валентно 1 точке растра. |
|
|
|
|
TAn% |
Поворачивает угол на n% градусов (от — 360 до 360). |
|
|
|
|
|
|
Если Вы опустили n% в командах изображения линии и перемещения курсора, курсор перемещается на 1 единицу.
Для выполнения подстроки команд DRAW из строки команд DRAW, используйте команду “X”:
DRAW “X”+ VARPTR$(строка_команд$)
Пример:
'Для выполнения этого примера необходим цветной графический
адаптер.
SCREEN 1
Triangle$ = “F60 L120 E60”
DRAW “C2 X” + VARPTR$(Triangle$)
DRAW “BD30 P1,2 C3 M-30,-30”
См. также PALETTE, PALETTE USING, SCREEN, VARPTR$, Атрибуты и значения Цвета.
$DYNAMIC-метакоманда
Устанавливает область хранения массивов по умолчанию.
Формат записи:
{REM | '} $STATIC {REM | '} $DYNAMIC
ãäå
Глава XII. Бейсик-HELP |
133 |
|
{REM | '} |
REM или символ апострофа (') должен стоять перед метакоман- |
|
|
äàìè. |
|
$STATIC |
указывает, что массивы, описанные в последовательности операторов |
|
|
DIM, являются статическими массивами (если только они не были описа- |
|
|
ны в нестатических процедурах SUB или FUNCTION). Область хране- |
|
|
ния массива выделяется при запуске программы и остается постоянной. |
|
$DYNAMIC указывает, что массивы, описанные в последовательности операторов DIM, являются динамическими массивами. Область хранения массива выделяется динамично при работе программы.
Обычно DIM или REDIM предоставляют более удобный способ описания того, является ли массив динамическим или статическим.
См. также DIM, REDIM, REM, SHARED, STATIC
ELSE-ключевое слово
Выполняет оператор или блок операторов в зависимости от указанных условий. См. оператор IF ELSE
См. также ON...GOSUB, ON...GOTO, SELECT CASE
ELSEIF-ключевое слово
Выполняет оператор или блок операторов в зависимости от указанных условий. См. оператор IF ELSE
См. также ON...GOSUB, ON...GOTO, SELECT CASE
END-оператор
Заканчивает программу, процедуру, блок или тип данных, определенный пользователем.
Формат записи:
END [{DEF | FUNCTION | IF | SELECT | SUB | TYPE}]
ãäå |
|
DEF |
Заканчивает, состоящее из нескольких строк, определение функ- |
|
öèè DEF FN. |
FUNCTION Заканчивает определение процедуры типа FUNCTION. |
|
IF |
Заканчивает блок оператора IF...THEN...ELSE. |
SELECT |
Заканчивает блок SELECT CASE. |
SUB |
Заканчивает процедуру типа SUB. |
TYPE |
Заканчивает определение типа данных, определенных пользователем. |
Если аргумент не указан, то END завершает программу и закрывает все открытые программой файлы.
Пример:
PRINT “Игра окончена.”
END
См. также DEF FN, FUNCTION, IF THEN ELSE, SELECT CASE, STOP, SUB, SYSTEM, TYPE
134 |
Языки Бейсик |
ENVIRON$-функция, ENVIRON-оператор
ENVIRON$ возвращает строку среды DOS.
ENVIRON изменяет или добавляет строку среды в таблицу среды DOS.
Формат записи:
ENVIRON$ (переменная_среды$)
ENVIRON$ (n%)
ENVIRON строк_выражение$
ãäå
переменная_среды$ имя переменной среды DOS.
n% |
указывает, что ENVIRON$ возвращает n строк из табли- |
|
цы строк среды. |
строк_выражение$ |
имя или установка переменной среды DOS (например, |
|
PATH или PROMPT) в одном из следующих форматов: |
|
переменная_среды$=строка_среды$ |
|
переменная_среды$ строка_среды$ |
Изменения, сделанные оператором ENVIRON, удаляются по окончании работы BASIC.
Пример:
ENVIRON “PATH=TEST”
PRINT ENVIRON$(“PATH”)
EOF-оператор
Проверка конца файла. EOF возвращает “истинно” (не ноль) при достижении конца файла.
Формат записи:
EOF(номер_файла%)
где номер_файла% Номер открытого файла.
Пример:
CLS
OPEN “ÒÅÑÒ.ÄÀÍ” FOR OUTPUT AS #1
FOR i% = 1 TO 10
WRITE #1, i%, 2 * i%, 5 * i%
NEXT i%
CLOSE #1
OPEN “ÒÅÑÒ.ÄÀÍ” FOR INPUT AS #1
DO
LINE INPUT #1, a$
PRINT a$
LOOP UNTIL (EOF(1))
См. также CLOSE, LOC, LOF, OPEN
Глава XII. Бейсик-HELP |
135 |
EQV-ключевое слово
Булева операция EQV — Эквивалентность
ñì.AND
ERASE-оператор
Заново определяет элементы массива или освобождает область хранения динамического массива.
Формат записи:
ERASE имя_массива [,имя_массива]...
ãäå
имя_массива Имя массива.
Для статических массивов, ERASE устанавливает каждый элемент числового массива в ноль, а каждый элемент строкового массива в строку нулевой длины.
Для динамических массивов ERASE освобождает память, используемую массивом. Вам придется заново описать размеры массива в REDIM или DIM прежде, чем использовать его.
Пример:
DIM a%(0) a%(0) = 6
PRINT “Äî : “; a%(0) ERASE a%
PRINT “После: “; a%(0)
См. также CLEAR, DIM, REDIM
ERDEV-функция, ERDEV$-функция
ERDEV возвращает код ошибки от последнего устройства, выдавшего крити- ческую ошибку. ERDEV$ возвращает имя устройства, выдавшего эту ошибку.
Формат записи:
ERDEV
ERDEV$
Младший байт значения, возвращаемого ERDEV, содержит код ошибки DOS.
Старший байт содержит информацию об устройстве.
См. также ERR, ERL, ON ERROR
ERR-Функция, ERL-функция
ERR возвращает код ошибки выполнения для последней ошибки.
ERL возвращает номер строки, в которой обнаружена ошибка, или последний установленный номер строки перед строкой, где была обнаружена ошибка.
136 |
Языки Бейсик |
Формат записи:
ERR
ERL
ERL не возвращает метку строки. Если нет номеров строк в программе, ERL возвращает 0.
См. также ERDEV, ERDEV$, ERROR, ON ERROR, RESUME, Коды ошибок выполнения
ERROR-оператор
Эмулирует ошибку Basic или ошибку, определенную пользователем.
Формат записи:
ERROR выражение%
ãäå
выражение% код ошибки Basic или ошибки, определенной пользователем; значение в интервале от 1 до 255. Для определения собственного кода ошибки используйте значения, которых нет в таблице “Коды ошибок выполнения”.
См. также ERDEV, ERDEV$, ERR, ERL, ON ERROR, RESUME
Пример
'Иллюстрирует использование ERDEV, ERDEV$, ERL, ERR,
'ERROR, ON ERROR è RESUME.
ON ERROR GOTO Handler
10 CHDIR “a:\” 'Обнаружение ОШ. 71 “Нет готовности диска,”
'если нет диска в дисководе A
20 y% = 0
30 x% = 5 / y% 'ОШ. 11 “Деление на ноль”
40 PRINT “x% =“; x%
50 ERROR 57 'ОШ. 57 “Ошибка В/ВВ на устройстве”
Handler:
PRINT “Ошибка “; ERR; “ в строке “; ERL SELECT CASE ERR
CASE 71
PRINT “Используемое устройство “; ERDEV$;
PRINT “ Код ошибки устройства = “; ERDEV
RESUME NEXT CASE 11
INPUT “Введите новое значение для делителя: “; y% RESUME ' Повторяет выполнение строки 30
' с новым значением для y% CASE ELSE
PRINT “Нераспознанная ошибка, завершение программы” END
END SELECT
Глава XII. Бейсик-HELP |
137 |
EXIT-оператор
Выход из цикла DO или FOR, процедуры типа FUNCTION или SUB, или функции типа DEF FN.
Формат записи:
EXIT {DEF | DO | FOR | FUNCTION | SUB}
ãäå |
|
DEF |
Выход из функции типа DEF FN. |
DO |
Выход из цикла DO. |
FOR |
Выход из цикла FOR. |
FUNCTION Выход из процедуры типа FUNCTION. |
|
SUB |
Выход из процедуры типа SUB. |
Пример:
i% = 0
DO
i% = i% + 1
IF i% = 500 THEN EXIT DO
LOOP
PRINT “ВЫХОД (EXIT) при”; i%
См. также DEF FN, DO...LOOP, FOR...NEXT, FUNCTION, SUB
ЕХР-оператор
EXP возвращает e, возведенное в указанную степень, где e — основание натурального логарифма, равное 2,718282.. LOG возвращает натуральный логарифм числового выражения.
Формат записи:
EXP(числ_выражение)
LOG(числ_выражение)
ãäå
числ_выражение Для EXP — число меньшее или равное 88.02969.
Для LOG — любое положительное числовое выражение.
Пример:
PRINT EXP(0), EXP(1) 'Вывод: 1 2.718282
PRINT LOG(1), LOG(EXP(1)) 'Вывод: 0 1
FIELD-оператор
Отводит место под переменные в буфере файлов прямого доступа.
Формат записи:
FIELD [#]номер_файла%, ширина_поля% AS переменная$
[,ширина_поля% AS переменная$] ...
138 |
Языки Бейсик |
ãäå
номер_файла% Номер открытого файла. ширина_поля% Число символов в поле.
переменная$ Переменная, идентифицирующая поле и содержащая данные поля. Запись переменных с использованием оператора TYPE обыч- но обеспечивает лучший способ для управления записью данных.
Пример:
OPEN “ФАЙЛДАН.ДАН” FOR RANDOM AS #1 LEN = 80
FIELD #1, 30 AS name$, 50 AS address$
См. также GET, PUT, LSET, RSET, TYPE
FILEATTR-оператор
Возвращает информацию об открытом файле. Формат записи:
FILEATTR(номер_файла%,атрибут%)
ãäå
номер_файла% Номер открытого файла.
атрибут% |
Указывает тип возвращаемой информации. Если атрибут% |
|
равен 1, FILEATTR возвращает значение, указывающее ре- |
|
жим доступа к файлу: |
Значение Режим
1Ââîä
2Вывод
4Прямой
8Добавление
32 Двоичный
Если атрибут% равен 2, FILEATTR возвращает указатель файла DOS.
Пример:
OPEN “ÒÅÑÒ.ÄÀÍ” FOR BINARY AS #1
PRINT FILEATTR(1, 1)
CLOSE
См. также OPEN
FILES-оператор
FILES отображает содержимое текущего каталога или указанного каталога. См. CHDIR.
FIX-оператор
FIX округляет выражение с плавающей запятой до его целой части.
INT возвращает наибольшее целое, меньшее или равное числовому выражению.
Глава XII. Бейсик-HELP |
139 |
Формат записи:
FIX(числ_выражение)
INT(числ_выражение)
где числ_выражение Любое числовое выражение.
Пример:
PRINT FIX(12.49), FIX(12.54) 'Вывод: 12 12
PRINT INT(12.54), INT(-99.4) 'Вывод: 12 — 100
См. также CINT, CLNG
FOR-оператор
Повторяет блок операторов указанное число раз. Формат записи:
FOR счетчик = начало TO конец [STEP приращение] [блок_операторов]
NEXT [счетчик [,счетчик]...]
ãäå |
|
счетчик |
Числовая переменная, используемая как счетчик цикла. |
начало и конец |
Начальное и конечное значение счетчика. |
Приращение |
Приращение счетчика при каждом шаге цикла. |
Пример:
FOR i% = 1 TO 15
PRINT i%
NEXT i%
FOR i% = 7 to — 6 STEP — 3
PRINT i%
NEXT i%
См. также DO...LOOP, EXIT, WHILE...WEND
FRE оператор
Возвращает объем (в байтах) доступной или неиспользуемой памяти.
Формат записи:
FRE(числ_выражение)
FRE(строк_выражение$)
ãäå
Числ_выражение Значение, указывающее тип памяти:
Значение |
FRE возвращает |
|
|
|
|
-1 |
Размер наибольшего массива (нестрокового), кото- |
|
рый Вы можете создать. |
||
|
||
|
|
|
|
|
140 |
Языки Бейсик |
|
|
-2 |
Неиспользуемое стековое пространство. |
|
|
Любое другое число |
Доступное строковое пространство. |
|
|
|
|
строк_выражение$ Любое строковое выражение. FRE сжимает свободное строковое пространство в один блок, а затем возвращает объем доступного строкового пространства.
Пример:
PRINT “Строковое пространство”, FRE(““)
PRINT “Неиспользуемое стековое пространство”, FRE(-2) PRINT “Пространство массива”, FRE(-1)
FREEFILE-оператор
Возвращает номер следующего доступного для использования файла.
Формат записи:
FREEFILE
Пример:
OPEN “ÒÅÑÒ.ÄÀÒ” FOR OUTPUT AS #1
PRINT “Номер следующего файла: “; FREEFILE
CLOSE
См. также OPEN
FUNCTION-оператор
Определяет процедуру FUNCTION.
Формат записи:
FUNCTION имя [(параметры)] [STATIC] [блок_операторов] имя = выражение [блок_операторов]
END FUNCTION
ãäå |
|
èìÿ |
имя функции и возвращаемый ею тип данных, указанный суф- |
|
фиксом типа данных (%, &, !, # или $). |
параметры |
одна или несколько переменных, указывающих параметры, кото- |
|
рые передаются в функцию при ее вызове: в виде: |
|
перемен[( )] [AS тип] [, перем[( )] [AS тип]]... |
ãäå |
|
переменная |
имя переменной Basic. |
òèï |
тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, |
|
STRING или тип данных, определенный пользователем). |
STATIC |
указывает, что значения локальных переменных функции сохра- |
|
няются между вызовами функции. |
выражение |
возвращаемое значение функции. |
