Языки Бейсик
.pdfГлава XII. Бейсик-HELP |
121 |
Допустимые атрибуты и значения цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
Если в Вашей системе есть EGA, VGA или MCGA адаптер, используйте оператор PALETTE для изменения назначений цвета для атрибутов цвета.
Пример:
'Для выполнения этого примера нужен цветной графический адаптер.
SCREEN 7
FOR i% = 0 TO 15
COLOR i%
PRINT i% NEXT i%
См. также DRAW, PAINT, PALETTE, PALETTE USING, SCREEN, Атрибуты и Значения Цвета, Режимы Экрана (главы 11.8.3, 11.8.4).
COM — оператор
COM включает, выключает или приостанавливает отслеживание событий в коммуникационном порту. При включенном отслеживании событий ON
COM обращается к подпрограмме каждый раз, как только порт получает символы.
Формат записи:
COM(n%) ON
COM(n%) OFF
COM(n%) STOP
ON COM(n%) GOSUB строка
ãäå |
|
n% |
Номер COM (серийного) порта (1 или 2). |
COM(n%) ON |
Включает отслеживание коммуникационных событий. |
COM(n%) OFF Выключает отслеживание коммуникационных событий. COM(n%)STOPПриостанавливает отслеживание коммуникационных собы-
|
тий. Событие обрабатывается при включении COM ON. |
строка |
метка или номер первой строки подпрограммы отслеживания |
|
событий. |
Пример:
COM(1) ON 'Включает отслеживание событий в порту 1 ON COM(1) GOSUB ComHandler
DO : LOOP WHILE INKEY$ = ““ COM(1) OFF
END ComHandler:
PRINT “Что-то было введено с терминала, подключенного к COM1” RETURN
См. также OPEN COM
122 |
Языки Бейсик |
COMMON — оператор
Определяет глобальные переменные, которые могут быть использованы совместно несколькими программами или в цепочке программ.
Формат записи:
COMMON [SHARED] переменные
ãäå
SHARED Обозначает, что переменные совместно используются всеми процедурами SUB и FUNCTION.
переменные одна или несколько переменных для совместного использования: перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
ãäå
перемен имя переменной Basic. Имя переменной может быть длиной до 40 символов и должно начинаться с буквы. Допустимые символы: A-Z, 0-9 и точка (.).
тип тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING) или тип данных, определенный пользователем).
Если массив не был специально описан в предыдущем операторе DIM как статический, то переменная массива в операторе COMMON является динамическим массивом. Его размеры должны быть установлены позже оператором DIM или REDIM.
См. также CHAIN, DIM, REDIM, FUNCTION, SHARED, STATIC, SUB
CONST — оператор
Описывает одну или несколько констант.
Формат записи:
CONST имя_константы = выражение [,имя_константы = выражение]...
ãäå
имя_константы имя константы. Имя может состоять из максимум 40 символов и должно начинаться с буквы. Допустимыми символами являются: A-Z, 0-9 и точка (.).
выражение выражение, присваиваемое константе. Выражение может состоять из буквальных констант (например 1.0), других констант, любых арифметических и логических знаков операций, исключая возведение в степень (^), или одной строки литералов.
Пример:
CONST PI = 3.141593
INPUT “Радиус окружности: “; r PRINT “Площадь = “; PI * r ^ 2
Глава XII. Бейсик-HELP |
123 |
COS — функция
COS возвращает косинус указанного угла. См. ATN
CSNG — функция
CSNG переводит числовое выражение в значение с одинарной точностью. См. CDBL
CSRLIN — функция
CSRLIN возвращает текущую позицию строки курсора. LOCATE перемещает курсор на экране в указанную позицию. POS возвращает текущую позицию столбца курсора.
Формат записи:
LOCATE [row%] [,[column%] [,[curcor%] [,start% [,stop%]]]] CSRLIN
POS(выражение)
ãäå
row% и column% Номер строки и столбца, куда перемещается курсор.
cursor% |
Определяет режим отображения курсора: 0 =видимый, 1=не- |
|
видимый |
start% è stop% |
Целое выражение в пределах от 0 до 31, которое определяет |
|
первую и последнюю строки сканирования курсора. Вы мо- |
|
жете изменить размер курсора посредством изменения строк |
|
сканирования курсора. |
выражение |
Любое выражение. |
Пример:
CLS
LOCATE 5, 5
MyRow% = CSRLIN
MyCol% = POS(0)
PRINT “Позиция 1 (Нажмите любую клавишу)”
DO
LOOP WHILE INKEY$ = ““
LOCATE (MyRow% + 2), (MyCol% + 2)
PRINT “Позиция 2”
CVD — функция
MKI$, MKL$, MKS$ è MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD.
CVI, CVL, CVS и CVD переводят эти строки обратно в числа.
Формат записи:
MKI$(целое_выражение%)
MKL$(длинное_целое_выражение&)
124 |
Языки Бейсик |
MKS$(выражение_одинарной_точности!)
MKD$(выражение_двойной_точности#)
CVI(2_байт_числ_строка)
CVL(4_байт_числ_строка)
CVS(4_байт_числ_строка)
CVD(8_байт_числ_строка)
ãäå
Функция |
Возвращает |
Функция |
Возвращает |
|
|
|
|
MKI$ |
2 байт. строку |
CVI |
Целое |
|
|
|
|
MKL$ |
4 байт. строку |
CVL |
Длинное целое |
|
|
|
|
MKS$ |
4 байт. строку |
CVS |
Число одинарной точности |
|
|
|
|
MKD$ |
8 байт. строку |
CVD |
Число двойной точности |
|
|
|
|
|
|
|
|
См. также FIELD, MKSMBF$, MKDMBF$, CVSMBF, CVDMBF
CVDMBF — функция
MKSMBF$ è MKDMBF$ переводят числа в формате IEEE в числовые строки бинарного формата (Microsoft-Binary-format), которые могут храниться в операторе строковых переменных FIELD.
CVSMBF è CVDMBF переводят эти строки обратно в числа в формате IEEE.
Формат записи:
MKSMBF$(выражение_одинарной_точности!)
MKDMBF$(выражение_двойной_точности#)
CVSMBF (4_байт_числ_строка)
CVDMBF (8_байт_числ_строка)
Функция |
Возвращает |
|
|
MKSMBF$ |
4 байт. строку, содержащую число в бинарном формате IBM. |
|
|
MKDMBF$ |
8 байт. строку, содержащую число в бинарном формате IBM. |
|
|
CVSMBF |
Число одинарной точности в формате IEEE. |
|
|
CVDMBF |
Число двойной точности в формате IEEE. |
|
|
|
|
Эти функции полезны для поддержки файлов данных, созданных более ранними версиями Basic.
Пример:
TYPE Buffer
SngNum AS STRING * 4
DblNum AS STRING * 8
END TYPE
DIM RecBuffer AS Buffer
OPEN “TESTDAT.DAT” FOR RANDOM AS #1 LEN = 12
SNum = 98.9
DNum = 645.3235622#
Глава XII. Бейсик-HELP |
125 |
RecBuffer.SngNum = MKSMBF$(SNum)
RecBuffer.DblNum = MKDMBF$(DNum)
PUT #1, 1, RecBuffer
GET #1, 1, RecBuffer
CLOSE #1
PRINT CVSMBF(RecBuffer.SngNum), CVDMBF(RecBuffer.DblNum)
См. также FIELD, MKn$, CVn
CVI — функция
MKI$, MKL$, MKS$ è MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD. CVI, CVL, CVS è CVD переводят эти строки обратно в числа.
Ñì. CVD
CVL — функция
MKI$, MKL$, MKS$ è MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD. CVI, CVL, CVS è CVD переводят эти строки обратно в числа.
Ñì. CVD
CVS — функция
MKI$, MKL$, MKS$ è MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD. CVI, CVL, CVS è CVD переводят эти строки обратно в числа.
Ñì. CVD
CVSMBF — функция
MKSMBF$ è MKDMBF$ переводят числа в формате IEEE в числовые строки бинарного формата (Microsoft-Binary-format), которые могут храниться в операторе строковых переменных FIELD.
CVSMBF è CVDMBF переводят эти строки обратно в числа в формате IEEE. См.CVDMBF
DATA — оператор
DATA указывает значения констант для чтения последующими операторами READ.
READ считывает эти значения и присваивает их переменным.
RESTORE позволяет READ заново считать значения в указанном операторе DATA.
Формат записи:
DATA константа[,константа]...
READ переменные
RESTORE [строка]
126 |
Языки Бейсик |
ãäå |
|
константа |
одна или несколько числовых или строковых констант, указываю- |
|
щих данные для чтения. Строковые константы, содержащие запя- |
|
тые, двоеточия, пробелы, должны быть заключены в кавычки (“ “). |
переменные одна или несколько переменных, разделенных запятой, которым присваиваются значения данных. Имя переменной может быть до
|
40 символов длиной и должно начинаться с буквы. Допустимые |
|
символы: A-Z, 0-9 и точка (.). |
строка |
метка или номер строки оператора DATA. Если строка опущена, |
|
следующий оператор READ считывает значения из оператора |
|
DATA, стоящего в программе первым. |
Операторы DATA могут быть введены только на модульном уровне. Они не могут использоваться в процедурах.
Пример:
FOR i% = 1 TO 3
READ a%, b$
PRINT a%, b$
RESTORE
NEXT i%
DATA 1, “Повторить”
Функция DATE$, Оператор DATE$
Функция DATE$ возвращает текущую системную дату компьютера.
Оператор DATE$ устанавливает текущую системную дату в Вашем компьютере.
Формат записи:
DATE$
DATE$ = строк_выражение$
ãäå
строк_выражение$ дата в одном из следующих форматов: мм-дд-гг, мм-дд-гггг,
ìì/ää/ãã,
ìì/ää/ãããã.
Функция DATE$ возвращает строку в формате мм-дд-гггг.
Замечание: Хотя формат даты для России принят, как дд-мм-гг, DATE$ использует формат, принятый в США, для совместимости с другими версиями Basic.
Пример:
PRINT DATE$
DATE$ = “07-21-91” 'Замечание: Новая системная
Глава XII. Бейсик-HELP |
127 |
'дата остается в силе, пока 'Вы снова не измените ее.
PRINT “Установленная дата “; DATE$
См. также TIME$
DECLARE — оператор
Описывает процедуру FUNCTION или SUB и выполняет проверку аргументов на соответствие типу данных.
Формат записи:
DECLARE {FUNCTION | SUB} имя [([параметры])]
ãäå
имя имя процедуры.
параметры одна или несколько переменных, указывающих параметры, которые передаются в процедуру при ее вызове в виде:
перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
ãäå
перемен имя переменной Basic.
òèï |
тип данных переменной (INTEGER, LONG, SINGLE, |
|
DOUBLE, STRING или тип, определенный пользовате- |
|
лем). ANY допускает использование любого типа данных. |
DECLARE необходим при вызове процедур SUB без использования CALL. Basic автоматически добавляет оператор DECLARE при сохранении Вашей программы.
DEF FN-оператор
Определяет функцию пользователя.
Формат записи:
DEF FNимя[(параметры)] = выражение
èëè
DEF FNимя[(параметры)] [блок_операторов]
FNимя = выражение [блок_операторов]
EXIT DEF [блок_операторов]
END DEF
ãäå
параметры один или несколько аргументов в следующем формате:
перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
128 |
Языки Бейсик |
ãäå |
|
перемен |
имя переменной Basic. |
òèï |
тип данных переменной (INTEGER, LONG, SING- |
|
LE, DOUBLE, STRING или тип данных, определен- |
ный пользователем).
выражение возвращаемое значение функции.
Оператор FUNCTION позволяет определять функцию лучшим образом.
См. также EXIT FUNCTION, SHARED, STATIC
DEF SEG-оператор
Устанавливает адрес текущего сегмента.
Формат записи:
DEF SEG [=адрес]
ãäå
адрес адрес сегмента, используемый BLOAD, BSAVE, CALL ABSOLUTE, PEEK или POKE; значение в пределах от 0 до 65 535. Если адрес опущен, DEF SEG переустанавливает адрес текущего сегмента в сегмент данных, принимаемый по умолчанию.
Пример:
DEF SEG = 0
Status% = PEEK(&H417) 'Считывает статус клавиатуры.
POKE &H417, (Status% XOR &H40) 'Изменяет состояние Caps Lock,
‘áèò 6.
См. также BSAVE, BLOAD, CALL ABSOLUTE, PEEK, POKE
DEFINT-оператор
Устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION.
Формат записи:
DEFINT îáë_áóêâ [,îáë_áóêâ]...
DEFLNG îáë_áóêâ [,îáë_áóêâ]...
DEFSNG îáë_áóêâ [,îáë_áóêâ]...
DEFDBL îáë_áóêâ [,îáë_áóêâ]...
DEFSTR îáë_áóêâ [,îáë_áóêâ]...
ãäå
обл_букв буква или область букв (например, A-M).
Basic устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION, имена которых начинаются с указанной буквы, в следующем порядке:
Глава XII. Бейсик-HELP |
129 |
||
|
|
|
|
|
Оператор |
Тип данных по умолча- |
|
|
íèþ |
|
|
|
|
|
|
|
|
|
|
|
DEFINT |
Целый |
|
|
|
|
|
|
DEFLNG |
Длинное целое |
|
|
|
|
|
|
DEFSNG |
Одинарной точности |
|
|
|
|
|
|
DEFDBL |
Двойной точности |
|
|
|
|
|
|
DEFSTR |
Строковый |
|
|
|
|
|
|
|
|
|
Суффикс типа данных (%, &, !, # или $) всегда имеет преимущество над операторами DEFтип.
Одинарная точность — тип данных по умолчанию, если вы не указали оператор DEFтип.
После указания в программе оператора DEFтип Basic автоматически вставляет соответствующий оператор DEFтип в каждую создаваемую Вами процедуру.
Пример:
DEFDBL A-Z a = SQR(3)
PRINT “Квадратный корень 3 = “; a
DEFLNG-оператор
Устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION. См. DEFINT
DEFSNG оператор
Устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION. См. DEFINT
DEFDBL-оператор
Устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION. См. DEFINT
DEFSTR-оператор
Устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION. См. DEFINT
DIM-оператор
DIM описывает массив или указывает тип данных для переменных не массива.
REDIM описывает или изменяет размер динамического массива, стирая все предыдущие значения.
Формат записи:
DIM [SHARED] переменная[(индекс)] [AS тип]
[,переменная[(индекс)] [AS тип]]...
130 |
Языки Бейсик |
REDIM [SHARED] переменная(индекс) [AS тип]
[,переменная(индекс) [AS тип]]...
ãäå |
|
SHARED |
указывает, что переменные используются совместно всеми проце- |
|
дурами SUB или FUNCTION в модуле. |
переменная имя переменной |
|
индекс |
Размеры массива в следующем виде: |
|
[íèç TO] âåðõ [,[íèç TO] âåðõ]... |
|
ãäå |
|
íèç нижняя граница индекса массива. По умолчанию нижняя |
|
граница равна нулю. |
|
âåðõ верхняя граница. |
AS òèï |
описывает тип данных массива или переменной (INTEGER, |
|
LONG, SINGLE, DOUBLE, STRING или тип данных, определен- |
|
ный пользователем). |
DIM описывает либо статические, либо динамические массивы. Если область хранения массива не была описана в $STATIC, $DYNAMIC или COMMON, массивы, размер которых был задан в числах, являются статическими, а массивы, размер которых был задан в переменных — динамическими. REDIM всегда описывает динамические массивы. Область хранения статического массива выделяется при запуске программы и остается постоянной. Область хранения динамического массива выделяется при работе программы.
Пример:
'$DYNAMIC
DIM A(49, 49) REDIM A(19, 14)
См. также COMMON, ERASE, OPTION BASE,SHARED, STATIC, $STATIC, $DYNAMIC
DO LOOP-оператор
Повторяет блок операторов, пока условие верно, или до тех пор, пока условие не станет верным.
Формат записи:
DO [{WHILE | UNTIL} условие] [блок_операторов]
LOOP
èëè
DO [блок_операторов]
LOOP [{WHILE | UNTIL} условие]
ãäå
условие числовое выражение, которое Basic оценивает как истинное (не ноль) или ложное (ноль).
