Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Языки Бейсик

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
622 Кб
Скачать

Глава 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

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

указывает, что значения локальных переменных функции сохра-

 

няются между вызовами функции.

выражение

возвращаемое значение функции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]