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

Языки Бейсик

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

Глава 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 оценивает как истинное (не ноль) или ложное (ноль).

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