Программный раздел | Ключевые слова, включенные в этот список |
Управляющие элементы программ |
DO...LOOP
END
EXIT
FOR...NEXT
IF...THEN...ELSE
GOSUB...RETURN
GOTO
ON...GOSUB
ON...GOTO
SELECT CASE
STOP
SYSTEM
|
Описание констант и переменных |
CONST
DATA
DIM
ERASE
OPTION BASE
READ
REDIM
REM
RESTORE
SWAP
TYPE...END TYPE
|
Определение и вызов процедур Basic |
CALL
DECLARE
EXIT
FUNCTION
RUN
SHELL
SHARED
STATIC
SUB
|
Ввод/вывод |
CLS
CSRLIN
INKEY$
INP
INPUT
KEY (присваивание)
LINE INPUT
LOCATE
LPOS
LPRINT
LPRINT USING
OPEN COM
OUT
POS
PRINT
PRINT USING
SPC
функция SCREEN
TAB
VIEW PRINT
WAIT
WIDTH
|
Вывод графических изображений |
CIRCLE
COLOR
GET (графика)
LINE
PAINT
PALETTE
PCOPY
PMAP
POINT
PRESET
PSET
PUT (графика)
оператор SCREEN
VIEW
WINDOW
|
Команды системного файла DOS |
CHDIR
KILL
MKDIR
NAME
RMDIR
|
Ввод/вывод файла |
CLOSE
EOF
FILEATTR
FREEFILE
GET (файл в/вв)
INPUT
INPUT$
LINE INPUT
LOC
LOCK
LOF
OPEN
PUT (в/вв файлов)
функция SEEK
оператор SEEK
UNLOCK
WRITE
|
Управление памятью |
CLEAR
FRE
PEEK
POKE
|
Строковые функции |
ASC
CHR$
HEX$
INSTR
LCASE$
LEFT$
LEN
LSET
LTRIM$
функция MID$
оператор MID$
OCT$
RIGHT$
RSET
RTRIM$
SPACE$
STR$
STRING$
UCASE$
VAL
|
Математические функции |
ABS
ASC
ATN
CDBL
CINT
CLNG
COS
CSNG
CVDMBF
CVSMBF
EXP
INT
LOG
RANDOMIZE
RND
SGN
SIN
SQR
TAN
функция TIME$
|
Функция отладки программ |
COM
ERDEV
ERDEV$
ERL
ERR
ERROR
KEY (отслеживание события)
ON COM
ON ERROR
ON KEY
ON PEN
ON PLAY
ON STRIG
ON TIMER
PEN
PLAY (отслеживание события)
RESUME
RETURN
STRIG
функция TIMER
оператор TIMER
|
ABS SGN функции |
СПРАВКА: Функции ABS, SGN ABS возвращает абсолютное значение числа.
SGN возвращает значение, указывающее знак числового выражения
(1 - если выражение положительно; 0 - если оно равно нулю; и -1, если оно отрицательно).
ABS(числовое_выражение)
SGN(числовое_выражение)
- любое числовое выражение.
Пример:
PRINT ABS(45.5 - 100!) 'Вывод: 54.5
PRINT SGN(1), SGN(-1), SGN(0) 'Вывод: 1 -1 0
|
AND NOT ORXOR EQV IMP операторы |
СПРАВКА: Булевые Операции
Знаки булевых операций выполняют манипуляции битами, булевые операции или проверку многократных отношений. Они возвращают значение "истина" (не-ноль) или "ложь" (ноль), которое используется при принятии решения.
результат = выражение1 булева_операция выражение2
- любая из следующих булевых операций:
NOT - отрицание;
AND - конъюнкция;
OR - дизъюнкция (включающее "или");
XOR - исключающее "или";
EQV - эквивалентность;
IMP - импликация.
Каждая операция возвращает результат, как это приведено в следующей таблице истинности.
И - "истина" (не-ноль); Л -ложь (ноль).
Выражение1 | Выражение2 | NOT | AND | OR | XOR | EQV | IMP |
И | И | Л | И | И | Л | И | И |
И | Л | Л | Л | И | И | Л | Л |
Л | И | И | Л | И | И | Л | И |
Л | Л | И | Л | Л | Л | И | Л |
Булевые операции выполняются после арифметических и операций отношений, в восходящем порядке.
Перед выполнением булевых операций выражения переводятся в целые или длинные целые.
Если выражение равно 0 или -1, то в результате, булева операция возвращает 0 или -1. Поскольку булевы операции выполняют поразрядные вычисления, использование значений, отличных от 0 для "ложь" и -1 для "истина", может привести к неожиданным результатам.
|
APPEND BINARY INPUT OUTPUT RANDOM ключевые слова |
СПРАВКА: Оператор OPEN Режимы Файла
Ключевые слова APPEND, BINARY, INPUT, OUTPUT и RANDOM используются в операторе OPEN для указания режимов. Кроме того, INPUT, OUTPUT и RANDOM используются в операторе OPEN COM.
- APPEND указывает, что файл должен быть открыт для последовательного вывода, и устанавливает указатель файла в конец файла. В этом случае операторы PRINT # или WRITE # дополняют файл.
- BINARY указывает бинарный режим файла. В бинарном режиме Вы можете считывать или записывать информацию в позицию любого байта, используя операторы GET и PUT.
- INPUT указывает, что файл открыт для последовательного ввода.
- OUTPUT указывает, что файл открыт для последовательного вывода.
- RANDOM указывает, что файл открыт в режиме прямого доступа к файлу. Этот режим устанавливается по умолчанию.
|
AS ключевое слово |
СПРАВКА: Ключевое слово AS
Выполняет разные функции как часть различных операторов:
- Указывает тип переменной при использовании с операторами COMMON, DECLARE, DEF FN, DIM, FUNCTION, REDIM, SHARED, STATIC и SUB.
- Указывает тип элемента в типе данных, определенных пользователем, при использовании с оператором TYPE.
- Присваивает номер файла файлу или устройству при использовании с оператором OPEN.
- Указывает имя поля при использовании с оператором FIELD.
- Указывает новое имя файла при использовании с оператором NAME.
|
ASC CHR$ функции |
СПРАВКА: Функции ASC, CHR$
ASC возвращает ASCII код первого символа в строковом выражении.
CHR$ возвращает символ, соответствующий указанному коду ASCII.
ASC(строк_выражение$)
CHR$(ascii-код%)
- любое строковое выражение.
ascii-код% - код ASCII нужного символа.
Пример:
PRINT ASC("Q") 'Вывод: 81
PRINT CHR$(65) 'Вывод: A
|
ATN COS SIN TAN функции |
СПРАВКА: Функции ATN, COS, SIN, TAN
ATN возвращает арктангенс указанного числового выражения.
COS, SIN и TAN возвращают косинус, синус и тангенс указанного угла.
ATN(числ_выражение)
COS(угол)
SIN(угол)
TAN(угол)
- отношение сторон правильного треугольника.
угол - угол в радианах.
- Функция ATN возвращает угол в радианах.
- Для перевода градусов в радианы умножьте градусы на (PI / 180).
Пример:
CONST PI=3.141592654
PRINT ATN(TAN(PI/4.0)), PI/4.0 'Вывод: .7853981635 .7853981635
PRINT (COS(180 * (PI / 180))) 'Вывод: -1
PRINT (SIN(90 * (PI / 180))) 'Вывод: 1
PRINT (TAN(45 * (PI / 180))) 'Вывод: 1.000000000205103
|
BEEP оператор |
СПРАВКА: Оператор BEEP
Генерирует звуковой сигнал через динамик компьютера.
BEEP
|
BSAVE BLOAD операторы |
СПРАВКА: BSAVE, BLOAD Операторы
BSAVE копирует содержимое области памяти в файл.
BLOAD загружает файл, созданный BSAVE, в память.
BSAVE файл_спец$, смещение%, длина&
BLOAD файл_спец$[,смещение%]
- для BSAVE - файл, в который байт за байтом будет скопирована область памяти. Для BLOAD - файл образа памяти, созданный предыдущим BSAVE.
смещение% - для BSAVE - смещение начального адреса области памяти, которую Вы хотите сохранить. Для BLOAD - смещение начального адреса области памяти, в которую будут загружены данные.
длина& - число байтов для копирования (от 0 до 65535).
- Начальный адрес области памяти для сохранения или загрузки определяется смещением начального адреса (offset) и последним оператором DEF SEG.
|
CALL оператор |
СПРАВКА: Оператор CALL
Передает управление в процедуру типа SUB.
[CALL] имя [([аргументы])]
- имя вызываемой процедуры типа SUB.
аргументы - переменные или константы передаваемые в процедуру SUB. Разделяйте аргументы запятыми. При указании аргументов массива введите имя массива и после него пустые скобки.
- Если Вы опускаете ключевое слово CALL, то пропустите также скобки, в которые заключен список аргументов. Либо опишите процедуру в операторе DECLARE перед ее вызовом, либо сохраните программу и Qbasic автоматически сгенерирует оператор DECLARE.
- При указании аргумента, чье значение не будет изменяться процедурой, заключите этот аргумент в скобки.
|
CALL ABSOLUTE оператор |
СПРАВКА: Оператор CALL ABSOLUTE
Передает управление в процедуру на языке Ассемблер.
CALL ABSOLUTE ([аргументы,] смещение%)
- аргументы, переданные в процедуру на языке Ассемблер такие, как смещения относительно текущего сегмента данных.
смещение% - смещение от текущего кода сегмента, установленного DEF SEG, до выполнения процедуры.
|
CALL ABSOLUTE оператор |
СПРАВКА: Оператор CALL ABSOLUTE
Передает управление в процедуру на языке Ассемблер.
CALL ABSOLUTE ([аргументы,] смещение%)
- аргументы, переданные в процедуру на языке Ассемблер такие, как смещения относительно текущего сегмента данных.
смещение% - смещение от текущего кода сегмента, установленного DEF SEG, до выполнения процедуры.
|
CDBL CSNG функции |
СПРАВКА: Функции CDBL, CSNG
CDBL переводит числовое выражение в значение с двойной точностью.
CSNG переводит числовое выражение в значение с одинарной точностью.
CDBL(числ_выражение)
CSNG(числ_выражение)
- любое числовое выражение.
Пример:
PRINT 1 / 3, CDBL(1 / 3) 'Вывод: .3333333 .3333333333333333
PRINT CSNG(975.3421515#) 'Вывод: 975.3422
|
CHAIN оператор |
СПРАВКА: Оператор CHAIN
Передает управление из текущей программы в другую программу Basic.
CHAIN файл_спец$
- имя программы, в которую передается управление.
Пример:
Предполагается, что программа M-QB.BAS находится в каталоге \DOS.
CHAIN "C:\DOS\M-QB.BAS"
|
CHDIR MKDIR RMDIR FILES операторы |
СПРАВКА: Операторы CHDIR, MKDIR, RMDIR, FILES
CHDIR изменяет каталог устройства, принимаемый по умолчанию. MKDIR создает подкаталог. MRDIR удаляет подкаталог. FILES отображает содержимое текущего каталога или указанного каталога.
CHDIR путь$
MKDIR путь$
RMDIR путь$
FILES [файл_спец$]
- путь нового каталога, принимаемого по умолчанию, создаваемого подкаталога или удаляемого каталога.
файл_спец$ - имя файла или путь (может включать устройство и подстановочные символы DOS). Если Вы не указываете файл_спец$, то FILES отображает все файлы в текущем каталоге.
Пример:
'Для этого примера необходимо, чтобы существовал каталог C:\TMP.
MKDIR "C:\TMP\TEST"
CHDIR "C:\TMP"
FILES
RMDIR "TEST"
|
CINT CLNG функции |
СПРАВКА: Функции CINT, CLNG
CINT округляет числовое выражение до целого значения.
CLNG округляет числовое выражение до длинного (4 байта) целого значения.
CINT(числ_выражение)
CLNG(числ_выражение)
- для CINT - любое числовое выражение в пределах от -32768 до 32767. Для CLNG - любое числовое выражение в пределах от -2147483648 до 2147483647.
Пример:
PRINT CINT(12.49), CINT(12.51) 'Вывод: 12 13
PRINT CLNG(338457.8) 'Вывод: 338458
|
CIRCLE оператор |
СПРАВКА: Оператор CIRCLE
Рисует на экране окружности и эллипсы.
CIRCLE [STEP] (x!,y!),радиус![,[цвет%] [,[старт!] [,[конец!] [,аспект!]]]]
= указывает, что координаты задаются по отношению к текущей графической позиции курсора.
(x!,y!) - координаты центра окружности или эллипса.
радиус! - радиус окружности или эллипса в единицах текущей системы координат, определенной последними операторами SCREEN, VIEW и WINDOW.
цвет% - атрибут цвета, устанавливающий цвет окружности. Допустимые атрибуты цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
старт! - начальный угол дуги в радианах.
конец! - конечный угол дуги в радианах.
аспект! - отношение длины оси У к длине оси Х, используемое при изображении эллипсов.
Для перевода градусов в радианы умножьте значение в градусах на (PI / 180).
Пример:
SCREEN 2
CIRCLE (320, 100), 200
CIRCLE STEP (0,0), 100
|
CLEAR оператор |
СПРАВКА: Оператор CLEAR
Закрывает все файлы, освобождает буферы файлов, очищает все общие переменные, устанавливает числовые переменные и массивы в ноль, устанавливает строковые переменные в ноль и инициализирует стек. Кроме того, CLEAR может изменять размер стека.
CLEAR [,,стек&]
- устанавливает размер (в байтах) стекового пространства для Ваших программ.
Пример:
CLEAR ,,2000
|
CLOSE оператор |
СПРАВКА: Оператор CLOSE
Закрывает один или несколько файлов или устройств.
CLOSE [[#]номер_файла%[,[#]номер_файла%]...]
- номер открытого файла или устройства.
CLOSE без аргументов закрывает все открытые файлы и устройства.
Пример:
CLS
INPUT "Введите имя файла: ", n$
OPEN n$ FOR OUTPUT AS #1
PRINT #1, "Это хранится в файле"
CLOSE
OPEN n$ FOR INPUT AS #1
INPUT #1, a$
PRINT "Чтение из файла: "; a$
CLOSE
|
CLS оператор |
СПРАВКА: Оператор CLS
Очищает экран.
CLS [{0 | 1 | 2}]
- CLS - очищает либо текстовую, либо графическую области просмотра. Если была установлена графическая область просмотра (с помощью VIEW), то очищает только графическую область просмотра. В противном случае, очищает текстовую область просмотра или весь экран.
- CLS 0 - полностью очищает экран, как текст, так и графику.
- CLS 1 - очищает графическую область просмотра или весь экран, если графическая область просмотра не была установлена.
- CLS 2 - очищает текстовую область просмотра.
|
COLOR оператор |
СПРАВКА: Оператор COLOR
Устанавливает цвета экрана.
COLOR [основной%] [,[фоновый%] [,граница%]] | Режим экрана 0 (только текст) |
COLOR [фоновый%] [,палитра%] | Режим экрана 1 |
COLOR [основной%] | Режимы экрана 4, 12, 13 |
COLOR [основной%] [,фоновый&] | Режимы экрана 7-10 |
основной% основной& | число, устанавливающее цвет переднего плана экрана. В режиме экрана 0 основной% - это атрибут цвета, устанавливающий цвет текста. В других режимах экрана основной% - это атрибут цвета или 4-битовое значение (только в режиме экрана 4), устанавливающие цвет текста и линий. |
фоновый% фоновый& | число, устанавливающее фоновый цвет экрана. В режиме экрана 0, фоновый% - это атрибут цвета. В режиме экрана 1, фоновый% - это 4-битовое значение. В режимах экрана 7-10, фоновый& - это значение цвета. |
граница% | Атрибут цвета, устанавливающий цвет границы экрана. |
палитра% | Число (0 или 1), указывающее какую из двух групп атрибутов цвета нужно использовать:
палитра% | Атрибут 1 | Атрибут 2 | Атрибут 3 |
0 | Зеленый | Красный | Коричневый |
1 | Бирюзовый | Малиновый | Ярко-белый |
|
- Допустимые атрибуты и значения цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
- Если в Вашей системе есть EGA, VGA или MCGA адаптер, используйте оператор PALETTE для изменения назначений цвета для атрибутов цвета.
Пример:
SCREEN 7
FOR i% = 0 TO 15
COLOR i%
PRINT i%
NEXT i%
|
COM ON COM операторы |
СПРАВКА: Операторы COM, ON COM
COM включает, выключает или приостанавливает отслеживание событий в коммуникационном порту. При включенном отслеживании событий ON COM обращается к подпрограмме каждый раз, как только порт получает символы.
COM(n%) ON
COM(n%) OFF
COM(n%) STOP
ON COM(n%) GOSUB строка
- номер 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
|
COMMON оператор |
СПРАВКА: Оператор COMMON
Определяет глобальные переменные, которые могут быть использованы совместно несколькими программами или в цепочке программ.
COMMON [SHARED] переменные
- обозначает, что переменные совместно используются всеми процедурами SUB и FUNCTION.
переменные - одна или несколько переменных для совместного использования:
- перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
- перемен
- имя переменной Basic. Имя переменной может быть длиной до 40 символов и должно начинаться с буквы. Допустимые символы: A-Z, 0-9 и точка (.).
- тип - тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, определенный пользователем).
Если массив не был специально описан в предыдущем операторе DIM как статический, то переменная массива в операторе COMMON является динамическим массивом. Его размеры должны быть установлены позже оператором DIM или REDIM.
|
CONST оператор |
СПРАВКА: Оператор CONST
Описывает одну или несколько символьных констант.
CONST имя_константы = выражение [,имя_константы = выражение]...
- ммя константы. Имя может состоять из максимум 40 символов и должно начинаться с буквы. Допустимыми символами являются: A-Z, 0-9 и точка (.).
выражение - выражение, присваиваемое константе. Выражение может состоять из буквальных констант (например 1.0), других констант, любых арифметических и логических знаков операций, исключая возведение в степень (^), или одной строки литералов.
Пример:
CONST PI = 3.141593
INPUT "Радиус окружности: "; r
PRINT "Площадь = "; PI * r ^ 2
|
CSRLIN POS функции
LOCATE оператор |
СПРАВКА: Оператор LOCATE, Функции CSRLIN, POS
LOCATE перемещает курсор на экране в указанную позицию.
CSRLIN возвращает текущую позицию строки курсора.
POS возвращает текущую позицию столбца курсора.
LOCATE [row%] [,[column%] [,[curcor%] [,start% [,stop%]]]]
CSRLIN
POS(выражение)
- номер строки и столбца, куда перемещается курсор.
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"
|
CVI, CVL CVS, CVD MKI$, MKL$ MKS$, MKD$ функции |
СПРАВКА: Функции MKn$, CVn
MKI$, MKL$, MKS$ и MKD$ переводят числа в числовые строки, которые могут храниться в операторе строковых переменных FIELD. CVI, CVL, CVS и CVD переводят эти строки обратно в числа.
MKI$(целое_выражение%)
MKL$(длинное_целое_выражение&)
MKS$(выражение_одинарн_точности!)
MKD$(выражение_двойной_точности#)
CVI(2_байт_числ_строка)
CVL(4_байт_числ_строка)
CVS(4_байт_числ_строка)
CVD(8_байт_числ_строка)
Функция | Возвращает | Функция | Возвращает |
MKI$ | 2 байт. строку | CVI | Целое |
MKL$ | 4 байт. строку | CVL | Длинное целое |
MKS$ | 4 байт. строку | CVS | Число одинарной точности |
MKD$ | 8 байт. строку | CVD | Число двойной точности |
|
CVSMBF CVDMBF MKSMBF$ MKDMBF$ функции |
СПРАВКА: Функции MKSMBF$, MKDMBF$, CVSMBF, 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#
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)
|
DATA READ RESTORE оператор |
СПРАВКА: Операторы DATA, READ, RESTORE
DATA указывает значения для чтения последующими операторами READ.
READ считывает эти значения и присваивает их переменным.
RESTORE позволяет READ заново считать значения в указанном операторе DATA.
DATA константа[,константа]...
READ переменные
RESTORE [строка]
- одна или несколько числовых или строковых констант, указывающих данные для чтения. Строковые константы, содержащие запятые, двоеточия, пробелы, должны быть заключены в кавычки (" ").
переменные - одна или несколько переменных, разделенных запятой, которым присваиваются значения данных. Имя переменной может быть до 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$ = "04-09-2007" 'Замечание: Новая системная дата остается в силе, пока Вы cнова не измените ее.
PRINT "Установленная дата "; DATE$
|
DECLARE оператор |
СПРАВКА: Оператор DECLARE
Описывает процедуру FUNCTION или SUB и выполняет проверку аргументов на соответствие типу данных.
DECLARE {FUNCTION | SUB} имя [([параметры])]
- имя процедуры.
параметры - одна или несколько переменных, указывающих параметры, которые передаются в процедуру при ее вызове:
- перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
- перемен
- имя переменной Basic.
- тип - тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип, определенный пользователем). ANY допускает использование любого типа данных.
DECLARE необходим при вызове процедур SUB без использования CALL. QBasic автоматически добавляет оператор DECLARE при сохранении Вашей программы.
|
DEF FN оператор |
СПРАВКА: Оператор DEF FN
Определяет функцию.
DEF FNимя[(параметры)] = выражение
DEF FNимя[(параметры)]
[блок_операторов]
FNимя = выражение
[блок_операторов]
EXIT DEF
[блок_операторов]
END DEF
- один или несколько аргументов в следующем формате:
- перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
- перемен
- имя переменной Basic.
- тип - тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, определенный пользователем).
выражение - возвращаемое значение функции.
Оператор FUNCTION позволяет определять функцию лучшим образом.
|
DEF SEG оператор |
СПРАВКА: Оператор DEF SEG
Устанавливает адрес текущего сегмента.
DEF SEG [=адрес]
- адрес сегмента, используемый BLOAD, BSAVE, CALL ABSOLUTE, PEEK или POKE; значение в пределах от 0 до 65535. Если адрес опущен, DEF SEG переустанавливает адрес текущего сегмента в сегмент данных, принимаемый по умолчанию.
Пример:
DEF SEG = 0
Status% = PEEK(&H417) 'Считывает статус клавиатуры.
POKE &H417, (Status% XOR &H40) 'Изменяет состояние Caps Lock, бит 6.
|
DEFLNG DEFSNG DEFDBL DEFSTR операторы |
СПРАВКА: Операторы DEFтип
Устанавливают тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION.
DEFINT обл_букв [,обл_букв]...
DEFLNG обл_букв [,обл_букв]...
DEFSNG обл_букв [,обл_букв]...
DEFDBL обл_букв [,обл_букв]...
DEFSTR обл_букв [,обл_букв]...
- буква или область букв (например, A-M). QBasic устанавливает тип данных по умолчанию для переменных, функций DEF FN и процедур FUNCTION, имена которых начинаются с указанной буквы, в следующем порядке:
Оператор | Тип данных по умолчанию |
DEFINT | Целый |
DEFLNG | Длинное целое |
DEFSNG | Одинарной точности |
DEFDBL | Двойной точности |
DEFSTR | Строковый |
Суффикс типа данных (%, &, !, # или $) всегда имеет преимущество над операторами DEFтип.
Одинарная точность - тип данных по умолчанию, если вы не указали операторов DEFтип.
После указания в программе оператора DEFтип QBasic автоматически вставляет соответствующий оператор DEFтип в каждую создаваемую Вами процедуру.
Пример:
DEFDBL A-Z
a = SQR(3)
PRINT "Квадратный корень 3 = "; a
|
DIM REDIM операторы |
СПРАВКА: Операторы DIM, REDIM
DIM описывает массив или указывает тип данных для переменных не массива.
REDIM описывает или изменяет размер динамического массива, стирая все предыдущие значения.
DIM [SHARED] переменная[(индекс)] [AS тип]
[,переменная[(индекс)] [AS тип]]...
REDIM [SHARED] переменная(индекс) [AS тип]
[,переменная(индекс) [AS тип]]...
- указывает, что переменные используются совместно всеми процедурами SUB или FUNCTION в модуле.
переменная - имя переменной массива.
индекс - размеры массива в следующем виде:
- [низ TO] верх [,[низ TO] верх]...
- низ
- нижняя граница индекса массива. По умолчанию нижняя граница равна нулю.
- верх - верхняя граница.
AS тип - описывает тип данных массива или переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, описанный пользователем).
DIM описывает либо статические, либо динамические массивы. Если область хранения массива не была описана в $STATIC, $DYNAMIC или COMMON, массивы, размер которых был задан в числах, являются статическими, а массивы, размер которых был задан в переменных - динамическими. REDIM всегда описывает динамические массивы.
Область хранения статического массива выделяется при запуске программы и остается постоянной. Область хранения динамического массива выделяется при работе программы.
Пример:
' $DYNAMIC
DIM A(49, 49)
REDIM A(19, 14)
|
DO...LOOP оператор |
СПРАВКА: Оператор DO...LOOP
Повторяет блок операторов, пока условие верно, или до тех пор, пока условие не станет верным.
DO [{WHILE | UNTIL} условие]
[блок_операторов]
LOOP
DO
[блок_операторов]
LOOP [{WHILE | UNTIL} условие]
- числовое выражение, которое Basic оценивает как истинное (не-ноль) или ложное (ноль).
Пример:
i% = 0
PRINT "Значение i% в начале цикла равно "; i%
DO WHILE i% < 10
i% = i% + 1
LOOP
PRINT "Значение i% в конце цикла равно "; i%
|
DOUBLE INTEGER LONG SINGLE STRING * n% STRING ключевые слова |
СПРАВКА: Ключевые слова типов данных
Указывают тип данных для переменных в операторах описания и в списке параметров:
- DOUBLE - 64-битовая переменная двойной точности с плавающей запятой.
- INTEGER - 16-битовая целая переменная со знаком.
- LONG - 32-битовая целая переменная со знаком.
- SINGLE - 32-битовая переменная одинарной точности с плавающей запятой.
- STRING * n% - строковая переменная фиксированной длины ( длина - n% байтов).
- STRING - строковая переменная переменной длины.
|
DRAW оператор |
СПРАВКА: Оператор DRAW
Рисует объект.
DRAW строка_команд$
- строковое выражение, содержащее одну или несколько следующих команд DRAW.
Команды изображения линии и перемещения курсора: | |
D[n%] | Перемещает курсор вниз на n% единиц. |
E[n%] | Перемещает курсор вправо-вверх на n% единиц. |
F[n%] | Перемещает курсор вправо-вниз на n% единиц. |
G[n%] | Перемещает курсор влево-вниз на n% единиц. |
H[n%] | Перемещает курсор влево-вверх на n% единиц. |
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"
|
$DYNAMIC $STATIC метакоманды |
СПРАВКА: Метакоманды $DYNAMIC, $STATIC
Устанавливают область хранения массивов по умолчанию.
{REM | '} $STATIC
{REM | '} $DYNAMIC
- REM или символ апострофа (') должен стоять перед метакомандами.
$STATIC - указывает, что массивы, описанные в последовательности операторов DIM, являются статическими массивами (если только они не были описаны в нестатических процедурах SUB или FUNCTION). Область хранения массива выделяется при запуске программы и остается постоянной.
$DYNAMIC - указывает, что массивы, описанные в последовательности операторов DIM, являются динамическими массивами. Область хранения массива выделяется динамично при работе программы.
Обычно DIM или REDIM предоставляют более удобный способ описания того, является ли массив динамическим или статическим.
|
END оператор |
СПРАВКА: Оператор END
Заканчивает программу, процедуру, блок или тип данных, определенный пользователем.
END [{DEF | FUNCTION | IF | SELECT | SUB | TYPE}]
- заканчивает, состоящее из нескольких строк, определение функции DEF FN.
FUNCTION - заканчивает определение процедуры типа FUNCTION.
IF - заканчивает блок оператора IF...THEN...ELSE.
SELECT - заканчивает блок SELECT CASE.
SUB - заканчивает процедуру типа SUB.
TYPE - заканчивает определение типа данных, определенных пользователем.
Если аргумент не указан, то END завершает программу и закрывает все файлы.
Пример:
PRINT "GAME OVER!"
END
|
ENVIRON оператор
ENVIRON$ Функция |
СПРАВКА: Функция ENVIRON$, Оператор ENVIRON
ENVIRON$ возвращает строку среды DOS.
ENVIRON изменяет или добавляет строку среды в таблицу среды DOS.
ENVIRON$ (переменная_среды$)
ENVIRON$ (n%)
ENVIRON строк_выражение$
- имя переменной среды DOS.
n% - указывает, что ENVIRON$ возвращает n строк из таблицы строк среды.
строк_выражение$ - имя или установка переменной среды DOS (например, PATH или PROMPT) в одном из следующих форматов:
- переменная_среды$=строка_среды$
- переменная_среды$ строка_среды$
Изменения, сделанные оператором ENVIRON, удаляются по окончании работы QBASIC.
Пример:
ENVIRON "PATH=TEST"
PRINT ENVIRON$("PATH")
|
EOF функция |
СПРАВКА: Функция 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))
|
ERASE оператор |
СПРАВКА: Оператор ERASE
Переинициализирует элементы массива или освобождает область хранения динамического массива.
ERASE имя_массива [,имя_массива]...
- имя массива.
Для статических массивов, ERASE устанавливает каждый элемент числового массива в ноль, а каждый элемент строкового массива в строку нулевой длины.
Для динамических массивов, ERASE освобождает память, используемую массивом. Вам придется заново описать размеры массива в REDIM или DIM прежде, чем использовать его.
Пример:
DIM a%(0)
a%(0) = 6
PRINT "До : "; a%(0)
ERASE a%
PRINT "После: "; a%(0)
|
ERDEV ERDEV$ функции |
СПРАВКА: Функции ERDEV, ERDEV$
ERDEV возвращает код ошибки от последнего устройства, выдавшего критическую ошибку. ERDEV$ возвращает имя устройства, выдавшего эту ошибку.
ERDEV
ERDEV$
- Младший байт значения, возвращаемого ERDEV, содержит код ошибки DOS.Старший байт содержит информацию об устройстве.
Пример:
'Иллюстрирует использование 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
|
ERR ERL функции |
СПРАВКА: Функции ERR, ERL
ERR возвращает код ошибки выполнения для последней ошибки.
ERL возвращает номер строки, в которой обнаружена ошибка, или последний установленный номер строки перед строкой, где была обнаружена ошибка.
ERR
ERL
- ERL не возвращает метку строки. Если нет номеров строк в программе, ERL возвращает 0.
Пример:
'Иллюстрирует использование 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
|
ERROR оператор |
СПРАВКА: Оператор ERROR
Эмулирует ошибку Basic или ошибку, определенную пользователем.
ERROR выражение%
- код ошибки Basic или ошибки, определенной пользователем; значение в интервале от 1 до 255. Для определения собственного кода ошибки используйте значения, которых нет в таблице "Коды ошибок выполнения":
1 - NEXT без FOR
2 - синтаксическая ошибка
3 - RETURN без GOSUB
4 - нет данных
5 - неверный вызов функции
6 - переполнение
7 - не хватает памяти
8 - метка не определена
9 - индекс вне режима
10 - повторяющееся определение
11 - деление на ноль
12 - ошибка в режиме управления
13 - ошибка ввода
14 - в строке нет места
16 - слишком сложная строковая формула
17 - невозможно продолжить
18 - функция не определена
19 - нет RESUME
20 - RESUME без ошибки
24 - устройство в тайм-ауте
25 - ошибка устройства
26 - FOR без NEXT
27 - нет бумаги
29 - WHILE без WEND
30 - WEND без WHILE
33 - повторяющаяся метка
35 - подпрограмма не определена
37 - ошибка счетчика аргументов
38 - массив не определен
40 - необходима переменная
50 - переполнение FIELD
51 - внутренняя ошибка
52 - плохое имя файла/плохой номер
53 - файл не найден
54 - плохой режим файла
55 - файл уже открыт
56 - оператор FIELD активен
57 - ошибка в/вв устройства
58 - файл уже существует
59 - неверная длина записи
61 - диск заполнен
62 - ошибка: введен конец файла
63 - неверный номер записи
64 - плохое имя файла
67 - слишком много файлов
68 - устройство недоступно
69 - переполнение буфера коммуникации
70 - нет разрешения
71 - ошибка формата диска
72 - ошибка диска
73 - недоступная возможность
74 - переименование через диски
75 - ошибка доступа к пути/файлу
76 - путь не найден
|
Пример:
'Иллюстрирует использование 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
|
EXIT оператор |
СПРАВКА: Оператор EXIT
Выход из цикла DO или FOR, процедуры типа FUNCTION или SUB, или функции типа DEF FN.
EXIT {DEF | DO | FOR | FUNCTION | SUB}
- выход из функции типа 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%
|
EXP LOG функции |
СПРАВКА: Функции EXP, LOG
EXP возвращает e, возведенное в указанную степень, где e - основание натурального логарифма. 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
Отводит место под переменные в буфере файлов прямого доступа.
FIELD [#]номер_файла%, ширина_поля% AS переменная$[,ширина_поля% AS переменная$] ...
- номер открытого файла.
ширина_поля% - число символов в поле.
переменная$ - переменная, идентифицирующая поле и содержащая данные поля.
Запись переменных обычно обеспечивает лучший способ для управления записью данных.
Пример:
OPEN "ФАЙЛДАН.ДАН" FOR RANDOM AS #1 LEN = 80
FIELD #1, 30 AS name$, 50 AS address$
|
FILEATTR функция |
СПРАВКА: Функция FILEATTR
Возвращает информацию об открытом файле.
FILEATTR(номер_файла%,атрибут%)
- номер открытого файла.
атрибут% - указывает тип возвращаемой информации. Если атрибут% равен 1, FILEATTR возвращает значение, указывающее режим доступа к файлу:
Значение | Режим |
1 | Ввод |
2 | Вывод |
4 | Прямой |
8 | Добавление |
32 | Двоичный |
Если атрибут% равен 2, FILEATTR возвращает указатель файла DOS.
Пример:
OPEN "ТЕСТ.ДАН" FOR BINARY AS #1
PRINT FILEATTR(1, 1)
CLOSE
|
FIX INT функции |
СПРАВКА: Функции FIX, INT
FIX округляет выражение с плавающей запятой до его целой части.
INT возвращает наибольшее целое, меньшее или равное числовому выражению.
FIX(числ_выражение)
INT(числ_выражение)
- любое числовое выражение.
Пример:
PRINT FIX(12.49), FIX(12.54) 'Вывод: 12 12
PRINT INT(12.54), INT(-99.4) 'Вывод: 12 -100
|
FOR...NEXT оператор |
СПРАВКА: Оператор FOR...NEXT
Повторяет блок операторов указанное число раз.
FOR счетчик = начало TO конец [STEP приращение]
[блок_операторов]
NEXT [счетчик [,счетчик]...]
- числовая переменная, используемая как счетчик цикла.
начало и конец - начальное и конечное значение счетчика.
приращение - приращение счетчика при каждом шаге цикла.
Пример:
FOR i% = 1 TO 15
PRINT i%
NEXT i%
FOR i% = 7 to -6 STEP -3
PRINT i%
NEXT i%
|
FRE функция |
СПРАВКА: Функция FRE
Возвращает объем (в байтах) доступной или неиспользуемой памяти.
FRE(числ_выражение)
FRE(строк_выражение$)
- значение, указывающее тип памяти:
Значение | FRE возвращает |
-1 | Размер наибольшего массива (нестрокового), который Вы можете создать. |
-2 | Неиспользуемое стековое пространство. |
Любое другое число | Доступное строковое пространство. |
строк_выражение$ - любое строковое выражение. FRE сжимает свободное строковое пространство в один блок, а затем возвращает объем доступного строкового пространства.
Пример:
PRINT "Строковое пространство", FRE("")
PRINT "Неиспользуемое стековое пространство", FRE(-2)
PRINT "Пространство массива", FRE(-1)
|
FREEFILE функция |
СПРАВКА: Функция FREEFILE
Возвращает номер следующего доступного неиспользуемого файла.
FREEFILE
Пример:
OPEN "ТЕСТ.ДАТ" FOR OUTPUT AS #1
PRINT "Номер следующего файла: "; FREEFILE
CLOSE
|
FUNCTION оператор |
СПРАВКА: Оператор FUNCTION
Определяет процедуру FUNCTION.
FUNCTION имя [(параметры)] [STATIC]
[блок_операторов]
имя = выражение
[блок_операторов]
END FUNCTION
- имя функции и возвращаемый ею тип данных, указанный суффиксом типа данных (%, &, !, # или $).
параметры - одна или несколько переменных, указывающих параметры, которые передаются в функцию при ее вызове:
- перемен[( )] [AS тип] [, перем[( )] [AS тип]]...
- переменная
- имя переменной Basic.
- тип - тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, определенный пользователем).
STATIC - указывает, что значения локальных переменных функции сохраняются между вызовами функции.
выражение - возвращаемое значение функции.
При вызове функции Вы можете указать, что значение аргумента не должно изменяться функцией. Для этого заключите аргумент в круглые скобки.
|
GET (В/ВВ файлов) PUT (В/ВВ файлов) операторы |
СПРАВКА: Операторы GET, PUT (В/ВВ файлов)
GET считывает из файла в буфер прямого доступа или в переменную.
PUT записывает содержимое переменной или буфера прямого доступа в файл.
GET [#]номер_файла%[,[номер_записи&][,переменная]]
PUT [#]номер_файла%[,[номер_записи&][,переменная]]
- номер открытого файла.
номер_записи& - для файлов прямого доступа - номер записи для чтения или записи. Для двоичных файлов- позиция байта, где начинается чтение или запись.
переменная - для GET - переменная, используемая для приема ввода из файла. Для PUT - переменная, содержащая вывод для записи в файл. Переменной обычно является переменная определенного пользователем типа данных.
Пример:
TYPE TestRecord
Student AS STRING * 20
Score AS SINGLE
END TYPE
DIM MyClass AS TestRecord
OPEN "FINAL.DAT" FOR RANDOM AS #1 LEN = LEN(MyClass)
MyClass.Student = "Олег Дворченко"
MyClass.Score = 99
PUT #1, 1, MyClass
CLOSE #1
OPEN "FINAL.DAT" FOR RANDOM AS #1 LEN = LEN(MyClass)
GET #1, 1, MyClass
PRINT "СТУДЕНТ:", MyClass.Student
PRINT "СЧЕТ:", MyClass.Score
CLOSE #1
KILL "FINAL.DAT"
|
GET (Графика) PUT (Графика) операторы |
СПРАВКА: Операторы GET, PUT (Графика)
GET сохраняет графический образ экрана. PUT выводит на экран образ, сохраненный GET.
GET [STEP](x1!,y1!)-[STEP](x2!,y2!), имя_массива[(индекс%)]
PUT [STEP] (x1!,y1!), имя_массива[(index%)] [,ключ_словоb]
- указывает, что координаты задаются относительно текущей графической позиции курсора.
(x1!,y1!) - координаты левого верхнего угла образа, сохраненного GET, или положение на экране, где PUT выводит образ.
(x2!,y2!) - координаты правого нижнего угла сохраненного образа.
имя_массива - имя массива, в котором хранится образ. Используйте число бит-на-пиксел-на-плоскость число плоскостей для определения необходимого размера массива, хранящего графический образ экрана. Кроме того, число бит-на-пиксел-на-плоскость и число плоскостей вместе с разрешением по горизонтали определяют какие режимы экрана являются совместимыми:
Режим экрана | Число бит-на-пиксел-на-плоскость | Число плоскостей | Разрешение по горизонт. (в пикселах) |
1 | 2 | 1 | 320 |
2, 4, 11 | 1 | 1 | 640 |
3 | 1 | 1 | 720 |
7 | 1 | 4 | 320 |
8, 9(> 64K видеопамяти), 12 | 1 | 4 | 640 |
9(64K видеопамяти), 10 | 1 | 2 | 640 |
13 | 8 | 1 | 320 |
Следующая формула дает требуемый размер в байтах для массива, используемого для хранения образа:
size% = 4 + INT(((PMAP (x2!, 0) - PMAP (x1!, 0) + 1) *
(bits-per-pixel-per-plane%) + 7) / 8) * planes% *
(PMAP (y2!, 1) - PMAP (y1!, 1) + 1), где
- bits-per-pixel-per-plane% - число бит-на-пиксел-на-плоскость
- planes% - число плоскостей
Операции GET и PUT совместимы в режимах экрана, имеющих одинаковое разрешение по горизонтали и число бит-на-пиксель-на-плоскость и число плоскостей. Например, режимы экрана 2, 4 и 11 совместимы; режимы экрана 8 и 12 также совместимы.
индекс% - индекс массива, где начинается хранение образа.
ключ_слово - ключевое слово, обозначающее как отображается образ:
Ключевое слово | Действие |
AND | Объединяет сохраненный образ с существующим образом. |
OR | Накладывает сохраненный образ на существующий образ. |
PSET | Рисует сохраненный образ, стирая существующий образ. |
PRESET | Рисует сохраненный образ в реверсивном цвете, стирая существующий образ. |
XOR | Рисует сохраненный образ или стирает ранее нарисованный образ, храня при этом фоновые эффекты мультипликации. |
Оператор PUT всегда должен выполняться в том же режиме экрана, в котором использовался оператор GET для сохранения образа или в совместимом режиме.
Пример:
SCREEN 1
DIM Box%(1 TO 200)
x1% = 0: x2% = 10: y1% = 0: y2% = 10
LINE (x1%, y1%)-(x2%, y2%), 2, BF
GET (x1%, y1%)-(x2%, y2%), Box%
DO
PUT (x1%, y1%), Box%, XOR
x1% = RND * 300
y1% = RND * 180
PUT (x1%, y1%), Box%
LOOP WHILE INKEY$ = ""
|
GOSUB...RETURN оператор |
СПРАВКА: Оператор GOSUB...RETURN
Переходит в подпрограмму и возвращается из нее.
GOSUB строка1
.
.
.
RETURN [строка2]
- метка или номер первой строки подпрограммы.
строка2 - метка или номер строки, в которую возвращается подпрограмма.
Если Вы не указываете метку или номер строки для RETURN, то выполнение программы продолжится с оператора, стоящего за GOSUB (при вызове подпрограммы) или там, где произошло событие (при обработке событий). Смотрите ключевое слово ON для информации об операторах обработки событий.
Операторы SUB и CALL представляют собой более удобную альтернативу для подпрограмм GOSUB.
Пример:
FOR i% = 1 TO 20
GOSUB Square
NEXT i%
END
Square:
PRINT i%, i% * i%
RETURN
|
GOTO оператор |
СПРАВКА: Оператор GOTO
Выполняет переход в указанную строку.
GOTO строка
- метка или номер следующей выполняемой строки.
DO...LOOP, SELECT CASE, IF...THEN...ELSE, SUB и FUNCTION предоставляют более удобный способ контроля хода Вашей программы.
GOTO также используется в качестве ключевого слова в операторе ON ERROR.
Пример:
CLS
10 INPUT "Введите Ваш возраст:", i
IF i < 7 THEN PRINT "Подрастите и приходите..." GOTO 10
IF i > 100 THEN PRINT "Столько живут только крокодилы!": GOTO 10
|
HEX$ OCT$ функции |
СПРАВКА: Функции HEX$, OCT$
HEX$ возвращает шестнадцатиричное представление числа.
OCT$ возвращает восьмеричное представление числа.
HEX$(числ_выражение&)
OCT$(числ_выражение&)
- любое числовое выражение. Выражение округляется до целого или длинного целого перед оценкой.
Пример:
INPUT x
a$ = HEX$ (x)
b$ = OCT$ (x)
PRINT x; " равно ";a$;" в шестнадцатеричной и "; b$;" в восьмеричной системах счисления."
|
IF...THEN...ELSE оператор |
СПРАВКА: Оператор IF...THEN...ELSE
Выполняет оператор или блок операторов в зависимости от указанных условий.
IF условие1 THEN
[блок_операторов-1]
[ELSEIF условие2 THEN
[блок_ операторов-2]]...
[ELSE
[блок операторов-n]]
END IF
IF условие THEN операторы [ELSE операторы]
- любое выражение, которое может быть оценено как истинное (не-ноль) или ложное (ноль).
условие2
блок_операторов-1 - один или несколько операторов в одной или нескольких строках.
блок_операторов-2
блок_операторов-n
операторы - один или несколько операторов, разделенных двоеточиями.
Пример:
INPUT "1 или 2? ", i%
IF i% = 1 OR i% = 2 THEN
PRINT "OK"
ELSE
PRINT "Вне диапазона"
END IF
|
INKEY$ функция |
СПРАВКА: Функция INKEY$
Считывает символ с клавиатуры.
INKEY$
- INKEY$ возвращает нулевую строку символов, если нет символа для возврата.
- Для стандартных клавиш INKEY$ возвращает 1-байтовую строку символов, содержащую считанный символ.
- Для расширенных клавиш INKEY$ возвращает 2-байтовую строку символов, состоящую из символа нуля (ASCII 0) и скан-кода клавиатуры.
Пример:
PRINT "Для выхода нажмите Esc..."
DO
LOOP UNTIL INKEY$ = CHR$(27) '27 - это ASCII код для Esc.
СПРАВКА: Скан-коды клавиатуры
Клавиша | Код | Клавиша | Код | Клавиша | Код |
Esc | 1 | A | 30 | Caps Lock | 58 |
! или 1 | 2 | S | 31 | F1 | 59 |
@ или 2 | 3 | D | 32 | F2 | 60 |
# или 3 | 4 | F | 33 | F3 | 61 |
$ или 4 | 5 | G | 34 | F4 | 62 |
% или 5 | 6 | H | 35 | F5 | 63 |
^ или 6 | 7 | J | 36 | F6 | 64 |
& или 7 | 8 | K | 37 | F7 | 65 |
* или 8 | 9 | L | 38 | F8 | 66 |
( или 9 | 10 | : или ; | 39 | F9 | 67 |
) или 0 | 11 | " или ' | 40 | F10 | 68 |
_ или - | 12 | ~ или ` | 41 | F11 | 133 |
+ или = | 13 | Левый Shift | 42 | F12 | 134 |
Bksp | 14 | | или \ | 43 | NumLock | 69 |
Tab | 15 | Z | 44 | Scroll Lock | 70 |
Q | 16 | X | 45 | Home или 7 | 71 |
W | 17 | C | 46 | ? или 8 | 72 |
E | 18 | V | 47 | PgUp или 9 | 73 |
R | 19 | B | 48 | Серый - | 74 |
T | 20 | N | 49 | <- или 4 | 75 |
Y | 21 | M | 50 | Центр или 5 | 76 |
U | 22 | < или , | 51 | -> или 6 | 77 |
I | 23 | > или . | 52 | Серый + | 78 |
O | 24 | ? или / | 53 | End или 1 | 79 |
P | 25 | Правый Shift | 54 | ? или 2 | 80 |
{ или [ | 26 | Prt Sc или * | 55 | PgDn или 3 | 81 |
} или ] | 27 | Alt | 56 | Ins или 0 | 82 |
Enter | 28 | Пробел | 57 | Del или . | 83 |
Ctrl | 29 | | | | |
|
INP функция
OUT оператор |
СПРАВКА: Функция INP, Оператор OUT
INP возвращает байт, считанный с аппаратного порта ввода/вывода.
OUT посылает байт в аппаратный порт ввода/вывода.
INP(port%)
OUT port%, data%
- число в пределах от 0 до 65535, определяющее порт.
data% - числовое выражение в пределах от 0 до 255, посылаемое в порт.
Пример:
x% = INP(&H3FC) 'Считывает Управляющий Регистр Модема COM1.
OUT &H3FC, (x% XOR 1) 'Изменяет бит Готовности Данных Терминала.
|
INPUT LINE INPUT операторы |
СПРАВКА: Операторы INPUT, LINE INPUT
INPUT считывает входные данные с клавиатуры или из файла. LINE INPUT считывает строку, содержащую до 255 символов, с клавиатуры или из файла.
INPUT [;] ["приглашение"{; | ,}] список переменных
LINE INPUT [;] ["приглашение";] переменная$
INPUT #номер файла%, список переменных
LINE INPUT #номер файла%, переменная$
- необязательная строка, отображаемая на экране перед вводом пользователем данных. Точка с запятой, стоящая сразу после приглашения, добавляет знак вопроса в строку приглашения.
список переменных - одна или несколько переменных, разделенных запятыми, в которых хранятся данные, введенные с клавиатуры или считанные из файла. Переменная может состоять из 40 символов и должна начинаться с буквы. Допустимыми являются символы A-Z, 0-9 и точка (.).
переменная$ - хранит строку символов, введенных с клавиатуры или считанных из файла.
номер файла% - номер открытого файла.
INPUT использует запятую для разделения записей. LINE INPUT считывает все символы до символа возврата каретки.
При вводе с клавиатуры точка с запятой, стоящая сразу после INPUT, оставляет курсор в той же строке по нажатии пользователем клавиши Enter.
Пример:
CLS
OPEN "СПИСОК" FOR OUTPUT AS #1
DO
INPUT " ИМЯ: ", name$ 'Считывает ввод с клавиатуры.
INPUT " ВОЗРАСТ: ", age$
WRITE #1, name$, age$
INPUT "Продолжить"; R$
LOOP WHILE UCASE$(R$) = "Д"
CLOSE #1
'Просмотр файла.
OPEN "СПИСОК" FOR INPUT AS #1
CLS
PRINT "Записи в файле:": PRINT
DO WHILE NOT EOF(1)
LINE INPUT #1, REC$ 'Считывает записи из файла.
PRINT REC$ 'Печатает записи на экране.
LOOP
CLOSE #1
KILL "СПИСОК"
|
INPUT$ функция |
СПРАВКА: Функция INPUT$
Возвращает строку символов, считанных из указанного файла.
INPUT$(n[,[#]номер_файла%])
- число символов (байтов) для чтения.
номер_файла% - номер открытого файла. Если номер_файла% опущен, INPUT$ считывает с клавиатуры.
Пример:
OPEN "TEST.DAT" FOR OUTPUT AS #1
PRINT #1, "Текст"
CLOSE
OPEN "TEST.DAT" FOR INPUT AS #1
PRINT INPUT$(3, 1) 'Печатает первые три символа
CLOSE
|
INSTR функция |
СПРАВКА: Функция INSTR
Возвращает позицию первого обнаружения строки в другой строке.
INSTR([начало%,]строк_выражение1$,строк_выражение2$)
- устанавливает позицию символа, откуда начинается поиск. Если начало% опущено, INSTR начинает поиск с позиции 1.
строк_выражение1$ - строка, которую ищут.
строк_выражение2$ - строка, в которой ищут.
Пример:
a$ = "m-qb.narod.ru"
PRINT "Позиция строки ="; INSTR(1, a$, "narod")
|
IOCTL оператор
IOCTL$ функция |
СПРАВКА: Оператор IOCTL, Функция IOCTL$
IOCTL посылает управляющую строку драйверу устройства.
IOCTL$ возвращает информацию о текущем состоянии драйвера устройства.
IOCTL [#]номер_файла%, строка$
IOCTL$([#]номер_файла%)
- номер открытого устройства.
строка$ - управляющая строка, посылаемая в устройство.
Управляющая строка IOCTL и информация, возвращаемая IOCTL$, зависят от драйвера устройства. Информацию об управляющей строке IOCTL и том, что возвращает IOCTL$, смотрите в документации на драйвер устройства.
|
KEY (Присваивание) оператор |
СПРАВКА: Оператор KEY (Присваивание)
Присваивает клавише строку символов и может отображать значения клавиш.
KEY key%, символьное_выражение$
KEY LIST
KEY ON
KEY OFF
- номер функциональной клавиши. Используйте цифры от 1 до 10 для функциональных клавиш от F1 до F10. Используйте 30 и 31 для функциональных клавиш F11 и F12 на расширенной клавиатуре.
символьное_выражение$ - строка длинной до 15 символов, которая отображается при нажатии функциональной клавиши.
LIST - отображает установки для каждой клавиши.
ON - включает строку отображения функциональных клавиш.
OFF - выключает строку отображения функциональных клавиш.
Пример:
KEY 4, "MENU" + CHR$ (13)
KEY LIST
KEY 4, ""
KEY LIST
|
KEY (Отслеживание событий)
ON KEY
операторы |
СПРАВКА: Операторы KEY, ON KEY (Отслеживание событий)
KEY включает, выключает или приостанавливает отслеживание событий для клавиш. При включенном отслеживании событий ON KEY обращается к подпрограмме каждый раз при нажатии клавиши.
KEY(n%) ON
KEY(n%) OFF
KEY(n%) STOP
ON KEY(n%) GOSUB строка
- значение, указывающее на функциональную клавишу, клавишу направления или определенную пользователем клавишу.
n% | Клавиши |
0 | Все перечисленные здесь клавиши (KEY(0) ON, KEY(0) OFF и KEY(0) STOP). |
1-10 | Функциональные клавиши F1-F10. |
11 | Клавиша СТРЕЛКА ВВЕРХ. |
12 | Клавиша СТРЕЛКА ВЛЕВО. |
13 | Клавиша СТРЕЛКА ВПРАВО. |
14 | Клавиша СТРЕЛКА ВНИЗ. |
15-25 | Определенные пользователем клавиши. |
30, 31 | Функциональные клавиши F11 и F12. |
KEY(n%) ON - включает отслеживание событий для указанной клавиши.
KEY(n%) OFF - выключает отслеживание событий для клавиш.
KEY(n%) STOP - приостанавливает отслеживание событий. Событие обрабатывается при включении KEY ON.
строка - метка или номер первой строки подпрограммы отслеживания событий.
Для объявления определенных пользователем клавиш используйте следующие варианты оператора KEY:
KEY n%, CHR$(флаг_клавиатуры%) + CHR$(скан-код%)
- значение в пределах от 15 до 25, идентифицирующее клавишу.
флаг_клавиатуры% - одно из следующих значений или сумма значений, указывающие, используются ли определенные пользователем клавиши в комбинации с клавишами Shift, Ctrl, Alt, NumLock или Caps Lock или же с клавишами расширенной клавиатуры:
Значение | Клавиша |
0 | Нет флага клавиатуры |
1 до 3 | Любая клавиша Shift |
4 | Клавиша Ctrl |
8 | Клавиша Alt |
32 | Клавиша NumLock |
64 | Клавиша Caps Lock |
128 | Клавиши расширенной клавиатуры на клавиатурах со 101-ой клавишей |
Для указания совместного использования клавиш сложите соответствующие значения. Например, значение 12 указывает, что определенная пользователем клавиша используется в комбинации с клавишами Ctrl и Alt. |
скан-код% - скан-код объявляемой клавиши.
СПРАВКА: Скан-коды клавиатуры
Клавиша | Код | Клавиша | Код | Клавиша | Код |
Esc | 1 | A | 30 | Caps Lock | 58 |
! или 1 | 2 | S | 31 | F1 | 59 |
@ или 2 | 3 | D | 32 | F2 | 60 |
# или 3 | 4 | F | 33 | F3 | 61 |
$ или 4 | 5 | G | 34 | F4 | 62 |
% или 5 | 6 | H | 35 | F5 | 63 |
^ или 6 | 7 | J | 36 | F6 | 64 |
& или 7 | 8 | K | 37 | F7 | 65 |
* или 8 | 9 | L | 38 | F8 | 66 |
( или 9 | 10 | : или ; | 39 | F9 | 67 |
) или 0 | 11 | " или ' | 40 | F10 | 68 |
_ или - | 12 | ~ или ` | 41 | F11 | 133 |
+ или = | 13 | Левый Shift | 42 | F12 | 134 |
Bksp | 14 | | или \ | 43 | NumLock | 69 |
Tab | 15 | Z | 44 | Scroll Lock | 70 |
Q | 16 | X | 45 | Home или 7 | 71 |
W | 17 | C | 46 | ? или 8 | 72 |
E | 18 | V | 47 | PgUp или 9 | 73 |
R | 19 | B | 48 | Серый - | 74 |
T | 20 | N | 49 | <- или 4 | 75 |
Y | 21 | M | 50 | Центр или 5 | 76 |
U | 22 | < или , | 51 | -> или 6 | 77 |
I | 23 | > или . | 52 | Серый + | 78 |
O | 24 | ? или / | 53 | End или 1 | 79 |
P | 25 | Правый Shift | 54 | ? или 2 | 80 |
{ или [ | 26 | Prt Sc или * | 55 | PgDn или 3 | 81 |
} или ] | 27 | Alt | 56 | Ins или 0 | 82 |
Enter | 28 | Пробел | 57 | Del или . | 83 |
Ctrl | 29 | | | | |
Пример:
'В этом примере необходимо, чтобы клавиши Caps Lock и Num Lock были выключены.
CONST ESC = 27
KEY 15, CHR$(&H4) + CHR$(&H1F) 'Устанавливает Ctrl+S как KEY 15
ON KEY(15) GOSUB PauseHandler
KEY(15) ON
WHILE INKEY$ <> CHR$(ESC)
PRINT "Нажмите Esc для останова, Ctrl+S для паузы"
PRINT
WEND
END
PauseHandler:
SLEEP 1
RETURN
|
KILL оператор |
СПРАВКА: Оператор KILL
Удаляет файлы с диска.
KILL файлы$
- определяет файл или файлы для удаления. Может включать путь и подстановочные символы DOS (? и *).
Пример:
INPUT "Файлы для удаления: "; f$
KILL f$
|
LBOUND UBOUND функции |
СПРАВКА: Функции LBOUND, UBOUND
Возвращает верхнюю или нижнюю границу (наименьший или наибольший доступный индекс) для указанного размера массива.
LBOUND(массив[,размер%])
UBOUND(массив[,размер%])
- имя массива.
размер% - указывает размер массива, верхняя или нижняя граница которого возвращаются. Используйте 1 для первого размера,2 - для второго размера и т.д. Значение по умолчанию равно 1.
Пример:
DIM a%(1 TO 3, 2 TO 7)
PRINT LBOUND(a%, 1), UBOUND(a%, 2)
|
LCASE$ UCASE$ функции |
СПРАВКА: Функции LCASE$, UCASE$
Переводят все буквы строки в строчные или прописные буквы.
LCASE$(строк_выражение$)
UCASE$(строк_выражение$)
- любое строковое выражение.
Пример:
Test$ = "СТрокА"
PRINT Test$
PRINT LCASE$(Test$); " только со строчными буквами"
PRINT UCASE$(Test$); " ТОЛЬКО С ПРОПИСНЫМИ БУКВАМИ"
|
LEFT$ RIGHT$ функции |
СПРАВКА: Функции LEFT$, RIGHT$
Возвращают указанное число символов, стоящих с левого или с правого конца строки.
LEFT$(строк_выражение$,n%)
RIGHT$(строк_выражение$,n%)
- любое строковое выражение.
n% - число возвращаемых символов, начиная с самого правого или левого символа строки.
Пример:
a$ = "http://m-qb.narod.ru/"
PRINT LEFT$(a$, 4) 'Вывод: http
PRINT RIGHT$(a$, 3) 'Вывод: .ru
|
LEN функция |
СПРАВКА: Функция LEN
Возвращает число символов в строке или число байтов, необходимых для хранения переменной.
LEN(строк_выражение$)
LEN(переменная)
- любое строковое выражение.
переменная - любая нестроковая переменная.
Пример:
a$ = "m-qb.narod.ru"
PRINT LEN(a$)
|
LET оператор |
СПРАВКА: Оператор LET
Присваивает значение выражения переменной.
[LET] переменная=выражение
- любая переменная. Имя переменной может быть длиной до 40 символов и должно начинаться с буквы. Допустимые символы: A-Z, 0-9 и точка (.).
выражение - любое выражение, которое имеет присваиваемое значение.
Использование необязательного ключевого слова LET не рекомендуется. Оператор присвоения переменная=выражение выполняет те же действия, как с LET, так и без него.
|
LINE (Графика) оператор |
СПРАВКА: Оператор LINE
Рисует на экране линию или прямоугольник.
LINE [[STEP](x1!,y1!)]-[STEP](x2!,y2!) [,[цвет%] [,[B | BF] [,стиль%]]]
- указывает, что координаты задаются относительно текущего графического положения курсора.
(x1!,y1!) - координаты начала линии на экране.
(x2!,y2!) - координаты конца линии на экране.
цвет% - атрибут цвета, устанавливающий цвет линии или прямоугольника. Допустимые атрибуты цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
B - рисует прямоугольник вместо линии.
BF - рисует заполненный прямоугольник.
стиль% - 16-битовое значение, биты которого устанавливают будут ли рисоваться точки растра. Используется для изображения прерывистых и пунктирных линий.
Пример:
SCREEN 1
LINE (110, 70)-(190, 120), , B
LINE (0, 0)-(320, 200), 3, , &HFF00
|
LOC функция |
СПРАВКА: Функция LOC
Возвращает текущую позицию в файле
LOC(номер_файла%)
- номер открытого файла или устройства.
Для бинарных файлов LOC возвращает позицию последнего считанного или записанного байта.
Для файлов прямого доступа LOC возвращает номер последней записи, считанной из или записанной в файл.
Для последовательных файлов LOC возвращает позицию текущего байта в этом файле, деленную на 128.
Пример:
OPEN "TEST.DAT" FOR RANDOM AS #1
FOR i% = 1 TO 10
PUT #1, , i%
NEXT i%
SEEK #1, 2
GET #1, , i%
PRINT "Данные: "; i%; " Текущая запись: "; LOC(1); " Следующая: "; SEEK(1)
|
LOCK...UNLOCK операторы |
СПРАВКА: Операторы LOCK, UNLOCK
LOCK ограничивает или закрывает доступ к файлу при работе в сети.
UNLOCK отменяет ограничения, наложенные последним оператором LOCK.
LOCK [#]номер_файла% [,{запись& | [начало&] TO конец&}]
UNLOCK [#]номер_файла% [,{запись& | [начало&] TO конец&}]
- номер открытого файла.
запись& - для файлов прямого доступа - номер закрываемой записи по отношению к первой записи в файле. Для бинарных файлов - номер закрываемого байта относительно первого байта в файле.
начало& и конец& - номера первой и последней записи или байта в диапазоне закрываемых или открываемых записей или байтов.
Для последовательных файлов LOCK и UNLOCK влияют на весь файл.
Пример:
'Этот пример работает только в сети.
OPEN "TEST.DAT" FOR RANDOM AS #1
FOR i% = 1 TO 10
PUT #1, , i%
NEXT i%
LOCK #1, 2 'Закрытие записи 2
GET #1, 2, i%
UNLOCK #1, 2 'Открытие записи 2
|
LOF функция |
СПРАВКА: Функция LOF
Возвращает длину файла в байтах.
LOF(номер_файла%)
- номер открытого файла.
Пример:
INPUT "Введите имя файла: "; f$
OPEN f$ FOR BINARY AS #1
PRINT "Длина файла = "; LOF(1)
CLOSE
|
LPOS функция |
СПРАВКА: Функция LPOS
Возвращает число символов, посланных на печать после последнего символа возврата каретки.
LPOS(n%)
- указывает один из портов принтера: 0 = LPT1, 1 = LPT1, 2 = LPT2, 3 = LPT3
Пример:
'Для выполнения этого примера нужен принтер.
LPRINT
FOR i% = 1 TO 20
LPRINT i%;
IF LPOS(1) >= 10 THEN LPRINT 'Начать новую строку.
NEXT i%
|
LSET RSET операторы |
СПРАВКА: Операторы LSET, RSET
LSET и RSET перемещают данные в буфер файлов прямого доступа (подготавливая его к оператору PUT) и осуществляют правое или левое выравнивание значений строковой переменной. LSET также копирует содержимое одной записи переменной в другую.
LSET строк_переменная$=строк_выражение$
RSET строк_переменная$=строк_выражение$
LSET запись_переменной1=запись_переменной2
- любая строковая переменная или поле файлов прямого доступа, определенные в операторе FIELD.
строк_выражение$ - для LSET - версия строк_переменной$ для левого края. Для RSET, версия строк_переменной$ для правого края.
запись_переменной1 - запись переменных любого определенного пользователем типа данных.
запись_переменной2 Используйте LSET для присвоения записи переменной одного типа данных другому типу данных, определенному пользователем.
Пример:
OPEN "FILEDAT.DAT" FOR RANDOM AS #1 LEN = 10
FIELD #1, 5 AS Ls1$, 5 AS Rs1$
LSET Ls1$ = "ЛSET"
RSET Rs1$ = "ПSET"
PUT #1, 1
CLOSE #1
OPEN "FILEDAT.DAT" FOR RANDOM AS #1 LEN = 10
FIELD #1, 5 AS Ls2$, 5 AS Rs2$
GET #1, 1
PRINT "*" + Ls2$ + "*", "*" + Rs2$ + "*"
CLOSE #1
|
LTRIM$ RTRIM$ функции |
СПРАВКА: Функции LTRIM$, RTRIM$
Удаляют начальные или конечные пробелы из строки.
LTRIM$(строк_выражение$)
RTRIM$(строк_выражение$)
- любое строковое выражение.
Пример:
a$ = " Basic "
PRINT "*" + a$ + "*" 'Вывод: * Basic *
PRINT "*" + LTRIM$(a$) + "*" 'Вывод: *Basic *
PRINT "*" + RTRIM$(a$) + "*" 'Вывод: * Basic*
|
MID$ функция/оператор |
СПРАВКА: Функция и Оператор MID$
Функция MID$ возвращает часть строки (подстроку).
Оператор MID$ замещает часть строковой переменной другой строкой.
MID$(строк_выражение$,начало%[,длина%])
MID$(строк_переменная$,начало%[,длина%])=строк_выражение$
- строка, из которой функция MID$ возвращает подстроку, или строка замещения, используемая в операторе MID$. Может быть любым строковым выражением.
начало% - позиция первого возвращаемого или замещаемого символа в строке.
длина% - число символов в подстроке. Если длина опущена, MID$ возвращает или замещает все символы справа от начальной позиции.
строк_переменная$ - строковая переменная, изменяемая оператором MID$.
Пример:
a$ = "Почему я никогда не был в Париже?"
PRINT MID$(a$, 27, 5) 'Вывод: Париж
Text$ = "Париж, Франция"
PRINT Text$ 'Вывод: Париж, Франция
MID$(Text$, 8) = "Сиэтл "
PRINT Text$ 'Вывод: Париж, Сиэтл
|
MOD оператор |
СПРАВКА: Арифметический Оператор MOD
Делит одно число на другое и возвращает остаток.
числ_выражение1 MOD числ_выражение2
- любые числовые выражения. Действительные числа округляются до целых. числ_выражение2
Пример:
PRINT 19 MOD 6.7 'QBasic округляет 6.7 до 7, затем делит. Вывод: 5
|
NAME оператор |
СПРАВКА: Оператор NAME
Переименовывает файлы и каталоги.
NAME старый$ AS новый$
- существующее имя файла и новое имя файла. Каждое имя может включать путь.
Пример:
INPUT "Старое имя: "; OldFN$
INPUT "Новое имя : "; NewFN$
NAME OldFN$ AS NewFN$
|
NEXT ключевое слово |
СПРАВКА: Ключевое слово NEXT
Осуществляет приращение и проверку счетчика в цикле FOR...NEXT, или при использовании с RESUME продолжает выполнение, начиная с программы отслеживания ошибок.
|
OFF ключевое слово |
СПРАВКА: Ключевое слово OFF - Различное использование
Выключает отображение присвоений функциональных клавиш при использовании с оператором KEY (Присваивание) или выключает отслеживание события при использовании операторами события OFF (COM OFF, KEY OFF, PEN OFF, PLAY OFF, STRIG OFF и TIMER OFF).
|
ON ERROR оператор |
СПРАВКА: Оператор ON ERROR
Включает обработку ошибок при обнаружении ошибки во время выполнения программы, передавая управление на подпрограмму обработки ошибок, или возобновляет выполнение программы.
ON ERROR GOTO строка
- метка или номер первой строки подпрограммы обработки ошибок. Для выключения обработки ошибок задайте: GOTO 0.
Если оператор ON ERROR не используется, любая ошибка выполнения завершает Вашу программу.
Пример:
'Иллюстрирует использование 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
|
ON ключевое слово |
СПРАВКА: Ключевое слово ON
- Включает отслеживание ошибки при использовании с оператором ON ERROR.
- Включает отслеживание события при использовании с операторами события ON (COM ON, KEY ON, PEN ON, PLAY ON, STRIG ON и TIMER ON).
- Указывает, какое событие отслеживать при использовании с ON-операторами события (ON COM, ON KEY, ON PEN, ON PLAY, ON STRING, and ON TIMER).
- Указывает, какое выражение оценивать при использовании с операторами ON...GOSUB и ON...GOTO.
|
TIMER ON TIMER операторы |
СПРАВКА: Операторы TIMER, ON TIMER
TIMER включает, выключает или приостанавливает отслеживание события для таймера. При включенном отслеживании события ON TIMER обращается к подпрограмме, как только прошло указанное число секунд.
TIMER ON
TIMER OFF
TIMER STOP
ON TIMER(n%) GOSUB строка
- включает отслеживание события для таймера.
TIMER OFF - выключает отслеживание события для таймера.
TIMER STOP - приостанавливает отслеживание события. События обрабатываются при включении TIMER ON отслеживания события.
n% - число секунд, которые должны пройти, прежде чем ON TIMER обратится к подпрограмме отслеживания события; значения находятся в пределах от 1 до 86400 (24 часа).
строка - метка или номер первой строки подпрограммы отслеживания события.
Пример:
ON TIMER(1) GOSUB TimeUpdate
TIMER ON
CLS
PRINT "Время: "; TIME$
StartTime = TIMER
WHILE TimePast < 10
TimePast = TIMER - StartTime
WEND
END
TimeUpdate:
LOCATE 1, 8: PRINT TIME$
RETURN
|
ON...GOSUB ON...GOTO операторы |
СПРАВКА: Операторы ON...GOSUB, ON...GOTO
Выполняет переход в одно из нескольких положений в зависимости от значения выражения.
ON выражение% GOSUB список_строк
ON выражение% GOTO список_строк
- выражение в диапазоне от 0 до 255.
список_строк - набор меток или номеров строк. Если значение выражения равно 1, то программа переходит в первую строку из списка; если выражение равно 2, то программа переходит во вторую строку из списка и т.д.
SELECT CASE предоставляет более удобный путь для ветвления программы.
Пример:
FOR i% = 1 TO 2
ON i% GOSUB One, Two
NEXT i%
END
One: PRINT "Один"
RETURN
Two: PRINT "Два"
RETURN
|
OPEN оператор |
СПРАВКА: Оператор OPEN
Открывает файл или устройство.
OPEN файл$ [FOR режим] [ACCESS доступ] [закр] AS [#]номер_файла% [LEN=д_зап%]
- имя файла или устройства. Имя файла может включать устройство и путь.
режим - один из следующих режимов файла: APPEND, BINARY, INPUT, OUTPUT или RANDOM.
СПРАВКА: Оператор OPEN Режимы Файла
Ключевые слова APPEND, BINARY, INPUT, OUTPUT и RANDOM используются в операторе OPEN для указания режимов. Кроме того, INPUT, OUTPUT и RANDOM используются в операторе OPEN COM.
- APPEND указывает, что файл должен быть открыт для последовательного вывода, и устанавливает указатель файла в конец файла. В этом случае операторы PRINT # или WRITE # дополняют файл.
- BINARY указывает бинарный режим файла. В бинарном режиме Вы можете считывать или записывать информацию в позицию любого байта, используя операторы GET и PUT.
- INPUT указывает, что файл открыт для последовательного ввода.
- OUTPUT указывает, что файл открыт для последовательного вывода.
- RANDOM указывает, что файл открыт в режиме прямого доступа к файлу. Этот режим устанавливается по умолчанию.
доступ - при работе в сети указывает, открыт ли файл для READ (чтения), WRITE (записи) или READ WRITE (чтения-записи).
СПРАВКА: Оператор OPEN Предложение ACCESS
Указывает тип доступа, который получает пользователь к открытому файлу.
ACCESS {READ | WRITE | READ WRITE}
- открывает файл только для чтения.
WRITE - открывает файл только для записи.
READ WRITE - открывает файл как для чтения, так и для записи. Режим READ WRITE действителен только для бинарных и файлов прямого доступа, а также для файлов, открытых с APPEND (последовательный доступ).
закр - показывает, как файл закрыт для сетевого доступа: SHARED (общий), LOCK READ (закрыт для чтения), LOCK WRITE (закрыт для записи), LOCK READ WRITE (закрыт для чтения-записи).
номер_файла% - номер в пределах от 1 до 255, идентифицирующий открытый файл.
д_зап% - для файлов прямого доступа - длина записи (по умолчанию 128 байт). Для последовательных файлов - число буферированных символов (по умолчанию 512 байт).
Пример:
INPUT "Введите имя файла: "; n$
OPEN n$ FOR OUTPUT AS #1
PRINT #1, "Это хранится в файле"
CLOSE
OPEN n$ FOR INPUT AS #1
INPUT #1, a$
PRINT "Чтение из файла: "; a$
CLOSE
|
OPEN COM оператор |
СПРАВКА: Оператор OPEN COM
Открывает и инициализирует канал связи для ввода или вывода (В/ВВ). Оператор OPEN COM должен быть выполнен до начала работы с устройством, использующим для связи интерфейс RS232.
OPEN "COMn: параметры1 параметры2" [FOR режим] AS [#]filenum% [LEN=reclen%]
- открываемый порт связи (1 = COM1, 2 = COM2).
параметры1 - наиболее часто используемые параметры связи:
[бод] [,[паритет] [,[данные] [,[стоп]]]]
- бод - скорость передачи данных (в бодах) открываемого устройства: 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600
- паритет - вариант контроля паритета: N (отсутствует), E (по четности), O (по нечетности), S (с промежутком), M (с маркером), PE (включение проверки ошибок)
- данные - число битов данных в байте: 5, 6, 7, 8
- стоп - число стоповых битов: 1, 1.5, 2
- По умолчанию: 300 бод, по четности, 7 битов данных, 1 стоповый бит.
параметры2 - список реже используемых параметров, разделяемых запятыми:
- ASC - открывает устройство в режиме ASCII.
- BIN - открывает устройство в двоичном режиме.
- CD[m] - устанавливает тайм-аут (в миллисекундах) для линии DCD (Data Carrier Detect).
- CS[m] - устанавливает тайм-аут (в миллисекундах) для линии CTS (Clear to Send).
- DS[m] - устанавливает тайм-аут (в миллисекундах) для линии DS (Data Set Ready).
- LF - посылает символ перевода строки после символа возврата каретки.
- OP[m] - задает время ожидания (в миллисекундах) OPEN COM открытия каналов связи.
- RB[n] - устанавливает размер (в байтах) принимающего буфера.
- RS - подавляет обнаружение сигнала "Запрос на передачу" (RTS).
- TB[n] - устанавливает размер (в байтах) передающего буфера.
режим - INPUT, OUTPUT, или RANDOM (по умолчанию).
СПРАВКА: Оператор OPEN Режимы Файла
Ключевые слова APPEND, BINARY, INPUT, OUTPUT и RANDOM используются в операторе OPEN для указания режимов. Кроме того, INPUT, OUTPUT и RANDOM используются в операторе OPEN COM.
- APPEND указывает, что файл должен быть открыт для последовательного вывода, и устанавливает указатель файла в конец файла. В этом случае операторы PRINT # или WRITE # дополняют файл.
- BINARY указывает бинарный режим файла. В бинарном режиме Вы можете считывать или записывать информацию в позицию любого байта, используя операторы GET и PUT.
- INPUT указывает, что файл открыт для последовательного ввода.
- OUTPUT указывает, что файл открыт для последовательного вывода.
- RANDOM указывает, что файл открыт в режиме прямого доступа к файлу. Этот режим устанавливается по умолчанию.
filenum% - число в пределах от 1 до 255, идентифицирующее канал связи, пока он открыт.
reclen% - размер буфера режима прямого доступа (по умолчанию 128 байтов).
Пример:
'Используйте данный пример при проблемах с коммуникациями через последовательный порт.
OPEN "COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1
|
OPTION BASE оператор |
СПРАВКА: Оператор OPTION BASE
Устанавливает нижнюю границу индекса массива, принимаемую по умолчанию.
OPTION BASE {0 | 1}
- Предложение TO в операторе DIM предоставляет более удобный способ установки нижней границы.
|
PAINT оператор |
СПРАВКА: Оператор PAINT
Заполняет графическую область указанным цветом или образцом.
PAINT [STEP] (x!,y!)[,[{цвет% | образец$}] [,[цвет_границ%] [,фон$]]]
- указывает, что координаты задаются относительно текущей графической позиции курсора.
(x!,y!) - координаты экрана начала зарисовки.
color% - атрибут цвета, устанавливающий заполняющий цвет.
образец$ - образец заполнения шириной 8 бит и длиной до 64 байт, определяемый следующим образом:
образец$ = CHR$(arg1) + CHR$(arg2) + ... + CHR$(argn%)
Аргументы CHR$ - числа в пределах от 0 до 255.
Каждый CHR$(argn%) определяет 1-байт, участок в 8 пикселов образца, основанного на бинарной форме числа.
цвет_границ% - атрибут цвета, указывающий цвет границы заполняемой области. PAINT прекращает заполнение области, когда он наталкивается на границу указанного цвета.
фон$ - 1 байт, фон участка в 8 пикселов образца. Указание фона участка образца позволяет Вам зарисовывать уже зарисованную область.
Допустимые атрибуты цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
Пример:
SCREEN 1
CIRCLE (106, 100), 75, 1
LINE (138, 35)-(288, 165), 1, B
PAINT (160, 100), 2, 1
|
PALETTE PALETTE USING операторы |
СПРАВКА: Операторы PALETTE, PALETTE USING
Изменяет установки атрибутов цвета в текущем режиме экрана. PALETTE и PALETTE USING работают только в системах с адаптерами EGA, VGA или MCGA.
PALETTE [атрибут%,цвет&]
PALETTE USING имя_массива#[(индекс%)]
- изменяемый атрибут цвета.
цвет& - значение цвета, присвоенное атрибуту.
имя_массива# - массив значений цвета, который присваивается текущей группе атрибутов цвета экрана. Массив должен быть достаточно большим для присвоения цветов всем атрибутам.
индекс% - индекс первого элемента массива, который присваивается атрибуту.
Допустимые атрибуты и значения цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
Пример:
PALETTE 0, 1
SCREEN 1
FOR i% = 0 TO 3: a%(i%) = i%: NEXT i%
LINE (138, 35)-(288, 165), 3, BF
LINE (20, 10)-(160, 100), 2, BF
DO
FOR i% = 0 TO 3
a%(i%) = (a%(i%) + 1) MOD 16
NEXT i%
PALETTE USING a%(0)
LOOP WHILE INKEY$ = ""
|
PCOPY оператор |
СПРАВКА: Оператор PCOPY
Копирует одну страницу видеопамяти в другую.
PCOPY исх_страница%,приним_страница%
- номер копируемой страницы видеопамяти.
приним_страница% - номер страницы видеопамяти, в которую копируют.
Значение, идентифицирующее видеостраницу, определяется размером видеопамяти и текущим режимом экрана.
Пример:
PCOPY 1, 3
|
PEEK функция
POKE оператор |
СПРАВКА: Функция PEEK, Оператор POKE
PEEK возвращает значение байта, хранящегося в указанном месте памяти.
POKE записывает значение байта в указанное место памяти.
PEEK(адрес)
POKE адрес,байт%
- позиция байта относительно адреса текущего сегмента, установленного DEF SEG; значения в пределах от 0 до 65535.
байт% - значение байта для записи в указанное место памяти; значения в пределах от 0 до 255.
Пример:
DEF SEG = 0
Status% = PEEK(&H417) 'Считывает статус клавиатуры.
POKE &H417, (Status% XOR &H40) 'Изменяет состояние Caps Lock, бит 6.
|
PEN функция |
СПРАВКА: Функция PEN
Возвращает статус светового пера.
PEN(n%)
- указывает информацию, которая должна быть возвращена о статусе светового пера:
n% | Возвращает |
0 | Использовалось ли световое перо после последнего вызова (-1 если да, 0 если нет). |
1 | Координату X последнего нажатия пера. |
2 | Координату Y последнего нажатия пера. |
3 | Текущий статус переключателя пера (-1 если вниз, 0 если вверх) |
4 | Координату Х места, где последний раз использовалось перо. |
5 | Координату Y места, где последний раз использовалось перо. |
6 | Символ строки последнего нажатия пера. |
7 | Символ столбца последнего нажатия пера. |
8 | Символ строки, где последний раз использовалось перо. |
9 | Символ столбца, где последний раз использовалось перо. |
Пример:
DO
P = PEN(3)
LOCATE 1, 1: PRINT "Перо находится "
IF P THEN PRINT "вверху" ELSE PRINT "внизу "
PRINT "X ="; PEN(4), " Y ="; PEN(5); " "
LOOP
|
PEN ON PEN операторы |
СПРАВКА: Операторы PEN, ON PEN
PEN включает, выключает или приостанавливает отслеживание события для светового пера. При включенном отслеживании события ON PEN обращается к подпрограмме при каждой активизации светового пера.
PEN ON
PEN OFF
PEN STOP
ON PEN GOSUB строка
- включает отслеживание события для светового пера.
PEN OFF - выключает отслеживание события для светового пера.
PEN STOP - приостанавливает отслеживание события для светового пера. События обрабатываются при включении PEN ON отслеживания события.
строка - метка или номер первой строки подпрограммы отслеживания события.
Пример:
'Для выполнения этого примера нужно световое перо.
ON PEN GOSUB Handler
PEN ON
PRINT "Для выхода нажмите Esc"
DO UNTIL INKEY$ = CHR$(27): LOOP
END
Handler:
PRINT "Перо - в строке"; PEN(6); ", столбце"; PEN(7)
RETURN
|
PLAY функция |
СПРАВКА: Функция PLAY
Возвращает число музыкальных нот в фоновой очереди.
PLAY(n)
-любое числовое выражение.
Пример:
Music$ = "MBT180o2P2P8L8GGGL2E-P24P8L8FFFL2D"
PLAY Music$
WHILE PLAY(0) > 5: WEND
PRINT "Почти закончили!"
|
PLAY (Музыка) оператор |
СПРАВКА: Оператор PLAY (Музыка)
Играет музыкальные ноты.
PLAY строка_команд$
- выражение, состоящее из одной или нескольких следующих команд PLAY:
Команды октавы и тона:
Oоктава | Задает текущую октаву (0 - 6). |
< или > | Переходит на одну октаву вверх или вниз. |
A - G | Играет определенную ноту текущей октавы. |
Nнота | Играет определенную ноту (0 - 84) в диапазоне семи октав (0 - сброс). |
Команды длительности и темпа:
Lразмер | Задает длительность каждой ноты (1 - 64). L1 - целая нота, L2 - 1/2 ноты и т.д. |
ML | Вид исполнения legato. |
MN | Вид исполнения normal. |
MS | Вид исполнения staccato. |
Pпауза | Задает паузу (1 - 64). P1 - пауза в целую ноту, P2 - пауза в 1/2 ноты и т.д. |
Tтемп | Задает темп исполнения в четвертях в минуту (32-255). |
Команды режима:
MF | Основное звучание. |
MB | Фоновое звучание. |
Команды изменения ноты:
# или + | Диез. |
- | Бемоль. |
. | Длительность 3/2 от размера ноты. |
Для выполнения подстрок команды PLAY из строки команды PLAY используйте команду "X":
PLAY "X"+ VARPTR$(строка_команд$)
Пример:
'Последовательно проигрывает все ноты в 7 октавах
scale$ = "CDEFGAB"
PLAY "L16"
FOR i% = 0 TO 6
PLAY "O" + STR$(i%)
PLAY "X" + VARPTR$(scale$)
NEXT i%
|
PMAP функция |
СПРАВКА: Функция PMAP
Возвращает координату окна эквивалентную координате области просмотра, определенную оператором WINDOW, или наоборот.
PMAP (начальная_координата#, n%)
- координата окна или области просмотра.
n% - значение, определяющее какую координату возвратить:
начальная_координата | n% | Возвращает |
Координата Х окна | 0 | Координату Х области просмотра |
Координата Y окна | 1 | Координату Y области просмотра |
Координата Х области просмотра | 2 | Координату Х окна |
Координата Y области просмотра | 3 | Координату Y окна |
Пример:
SCREEN 1
WINDOW SCREEN (0, 0)-(100, 100)
PRINT "Логическая x=50, физическая x="; PMAP(50, 0)
PRINT "Логическая y=50, физическая y="; PMAP(50, 1)
|
PLAY ON PLAY (Отслеживание событий) операторы |
СПРАВКА: Операторы PLAY, ON PLAY (Отслеживание событий)
PLAY включает, выключает или приостанавливает отслеживание события при игре музыки. При включенном отслеживании события ON PLAY обращается к подпрограмме каждый раз, когда в музыкальном буфере содержится число нот, меньшее указанного числа.
PLAY ON
PLAY OFF
PLAY STOP
ON PLAY(лимит_очереди%) GOSUB строка
- включает отслеживание события при игре музыки.
PLAY OFF - выключает отслеживание события при игре музыки.
PLAY STOP - приостанавливает отслеживание события при игре музыки. События обрабатываются при включении PLAY ON отслеживания события.
лимит_очереди% - число в пределах от 1 до 32. ON PLAY обращается к подпрограмме, когда число нот в музыкальном буфере меньше числа лимит_очереди%.
строка - метка или номер первой строки подпрограммы отслеживания события.
Пример:
ON PLAY(3) GOSUB Background
PLAY ON
Music$ = "MBo3L8ED+ED+Eo2Bo3DCL2o2A"
PLAY Music$
LOCATE 2, 1: PRINT "Для останова нажмите любую клавишу";
DO WHILE INKEY$ = "": LOOP
END
Background:
i% = i% + 1
LOCATE 1, 1: PRINT "Фон был вызван "; i%; "раз(а)";
PLAY Music$
RETURN
|
POINT функция |
СПРАВКА: Функция POINT
Возвращает текущие графические координаты курсора и атрибут цвета заданной точки растра (элемента растра).
POINT {(n%) | (x%,y%)}
- указывает тип возвращаемых координат:
n% | Возвращает |
0 | Текущую координату Х области просмотра |
1 | Текущую координату Y области просмотра |
2 | Текущую координату Х окна |
3 | Текущую координату Y окна |
(x%,y%) - координаты точки растра, которую POINT проверяет на цвет. Если координаты находятся за пределами текущей области просмотра, POINT возвращает -1.
Пример:
SCREEN 1
LINE (0, 0)-(100, 100), 2
LOCATE 14, 1
FOR y% = 1 TO 10
FOR x% = 1 TO 10
PRINT POINT(x%, y%);
NEXT x%
PRINT
NEXT y%
|
PRESET PSET операторы |
СПРАВКА: Операторы PRESET, PSET
Рисует заданную точку на экране.
PRESET [STEP] (x!,y!) [,color%]
PSET [STEP] (x!,y!) [,color%]
- указывает, что x! и y! заданы относительно текущего графического положения курсора.
(x!,y!) - координаты экрана устанавливаемой точки растра.
color% - атрибут цвета, устанавливаемый для точки растра. Если color% опущен, PRESET использует текущий цвет фона, а PSET использует текущий цвет переднего плана.
Доступные атрибуты цвета зависят от Вашего графического видеоадаптера и режима экрана. Значения координат зависят от графического видеоадаптера, режима экрана и последних установок в операторах VIEW и WINDOW.
Пример:
SCREEN 1
FOR i% = 0 TO 320
PSET (i%, 100)
FOR delay% = 1 TO 100: NEXT delay%
PRESET (i%, 100)
NEXT i%
|
PRINT LPRINT операторы |
СПРАВКА: Операторы PRINT, LPRINT
PRINT выводит данные на экран или записывает их в файл.
LPRINT печатает данные на принтере LPT1.
PRINT [#номер_файла%,] [выражения] [{; | ,}]
LPRINT [выражения] [{; | ,}]
- номер открытого файла. Если номер файла не указан, PRINT выводит данные на экран.
выражения - одно или несколько числовых или символьных выражений для печати.
{; | ,} - определяет, где начинается следующий вывод:
- ; - печать сразу после последнего значения.
- , - печать в начале следующей зоны печати.
- Ширина зоны печати - 14 символов.
Пример:
OPEN "ТЕСТ.ДАН" FOR OUTPUT AS #1
PRINT #1, USING "##.### "; 12.12345
CLOSE
OPEN "ТЕСТ.ДАН" FOR INPUT AS #1
INPUT #1, a$
PRINT a$
LPRINT "Это строка "; 1
LPRINT "Это строка ",
LPRINT 2
|
PRINT USING LPRINT USING операторы |
СПРАВКА: Операторы PRINT USING, LPRINT USING
PRINT USING записывает отформатированный вывод на экран или в файл.
LPRINT USING печатает отформатированный вывод на принтере LPT1.
PRINT [#номер_файла%,] USING символы_формата$; выражения [{; | ,}]
LPRINT USING символы_формата$; выражения [{; | ,}]
- номер следующего открытого файла.
символы_формата$; - символьное выражение, содержащее один и более определителей формата.
выражения - одно или несколько числовых или символьных выражений, разделенных запятыми, точкой с запятой, пробелами или табуляцией.
{; | ,} - определяет, где начинается следующий вывод:
- ; - печать сразу после последнего значения.
- , - печать в начале следующей зоны печати.
- Ширина зоны печати - 14 символов.
СПРАВКА: Определители формата
Символы, форматирующие числовые выражения
# | Позиция цифры |
. | Позиция десятичной точки |
, | Слева от десятичной точки печатает запятую после каждой третьей цифры |
+ | Позиция знака числа |
^^^^ | Печать в степенном формате |
- | После цифры печатает конечный знак для отрицательных чисел |
$$ | Печать предшествующего $ |
** | Заполняет места впереди * |
**$ | Совмещает ** и $$ |
Символы, форматирующие символьные выражения
& | Печать целого выражения |
! | Печать только первого символа выражения |
\ \ | Печать первых n символов, где n - число пробелов между косыми чертами + 2 |
Символы, используемые для печати символьных констант
_ | Печать следующего форматируемого символа как литерала |
Все не перечисленные здесь символы печатаются как литералы |
Пример:
a = 123.4567
PRINT USING "###.##"; a
LPRINT USING "+###.####"; a
a$ = "ABCDEFG"
PRINT USING "!"; a$
LPRINT USING "\ \"; a$
|
RANDOMIZE оператор
RND функция |
СПРАВКА: Оператор RANDOMIZE, Функция RND
RANDOMIZE инициализирует генератор случайных чисел.
RND возвращает случайное число одинарной точности между 0 и 1.
RANDOMIZE [число%]
RND[(n#)]
- число, используемое для инициализации генератора случайных чисел. Если опущено, то RANDOMIZE запрашивает его.
n# - значение, устанавливающее то, как RND генерирует следующее случайное число:
n# | RND возвращает |
Меньше 0 | То же самое число для любых n# |
Больше 0 (или опущено) | Следующее случайное число |
0 | Последнее сгенерированное число |
Пример:
RANDOMIZE TIMER
x% = INT(RND * 6) + 1
y% = INT(RND * 6) + 1
PRINT "Координаты экрана: x ="; x%; "и y ="; y%
|
REM оператор |
СПРАВКА: Оператор REM
Позволяет вставлять комментарии в программы.
REM комментарий
' комментарий
- любой текст.
При работе программы комментарии игнорируются, если только они не содержат метакоманды.
Комментарий может быть вставлен в строке после выполняемого оператора, если перед комментарием стоит символ апострофа (') или перед REM стоит двоеточие (:).
Пример:
REM Это комментарий.
' Это тоже комментарий.
PRINT "Тест1" 'Это комментарий после оператора PRINT.
PRINT "Тест2" : REM Это тоже комментарий после оператора PRINT.
|
RESET оператор |
СПРАВКА: Оператор RESET
Закрывает все открытые файлы и устройства.
RESET
|
RESUME оператор |
СПРАВКА: Оператор RESUME
Продолжает выполнение программы после подпрограммы обработки ошибок.
RESUME [{строка | NEXT}]
- метка или номер строки для продолжения программы. Если метка равна 0 или отсутствует, выполнение продолжается с оператора, в котором была обнаружена ошибка.
NEXT - продолжает выполнение программы со следующего оператора за оператором, в котором была обнаружена ошибка.
Пример:
'Иллюстрирует использование 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
|
RUN оператор |
СПРАВКА: Оператор RUN
Выполняет текущую или указанную программу.
RUN [{номер_строки | файл$}]
- номер строки в текущей программе, где должно начинаться выполнение программы. Если номер строки не указан, то выполнение программы начнется с первой выполняемой строки.
файл$ - имя исходного файла Basic. QBasic ожидает расширение .BAS.
Перед загрузкой программы, RUN закрывает все файлы и очищает память. Используйте оператор CHAIN для запуска программы, не закрывая при этом открытых файлов.
Пример:
'Предполагается, что программа TEST.BAS находится в каталоге \DOS.
RUN "C:\DOS\TEST.BAS"
|
SCREEN функция |
СПРАВКА: Функция SCREEN
Возвращает ASCII значение или атрибут цвета символа, находящегося в указанном месте экрана.
SCREEN (строка%,столбец% [,флаг_цвета%])
- координата строки символа.
столбец% - координата столбца символа.
флаг_цвета% - значение (0 или 1), указывающее что возвращать.
Значение | Возвращает |
0 (или опущен) | ASCII код символа |
1 | Атрибут цвета символа |
Пример:
CLS
PRINT "Привет"
PRINT "Значение кода ASCII символа в позиции 1,1 равно"; SCREEN(1, 1)
PRINT "Hello"
PRINT "Значение кода ASCII символа в позиции 3,1 равно"; SCREEN(3, 1)
|
SCREEN оператор |
СПРАВКА: Оператор SCREEN
Устанавливает режим и другие характеристики экрана.
SCREEN режим% [,[перекл_цвета%] [,[актив_стр%] [,видим_стр%]]]
- устанавливает режим экрана.
СПРАВКА: Режимы Экрана
В следующей таблице дана обобщенная информация по режимам экрана:
SCREEN 0: Текстовый режим
- 40 x 25, 40 x 43, 40 x 50, 80 x 25, 80 x 43 или 80 x 50 формат текста 8 x 8 формат символа (8 x 14, 9 x 14 или 9 x 16 с EGA или VGA)
- 16 цветов назначаются любому из 16 атрибутов (с CGA или EGA)
- 64 цвета назначаются любому из 16 атрибутов (с EGA или VGA)
- В зависимости от разрешения текста и адаптера, 8 страниц видеопамяти (0-7), 4 страницы (0-3), 2 страницы (0-1) или 1 страница (0)
SCREEN 1: 320 x 200 графический режим
- 40 x 25 формат текста, 8 x 8 формат символа
- 16 фоновых цветов и один из двух наборов 3 цветов переднего плана, присвоенных с использованием оператора COLOR с CGA
- 16 цветов назначаются 4 атрибутам с EGA или VGA
- 1 страница видеопамяти (0)
SCREEN 2: 640 x 200 графический режим
- 80 x 25 формат текста, 8 x 8 формат символа
- 16 цветов назначаются 2 атрибутам с EGA или VGA
- 1 страница видеопамяти (0)
SCREEN 3: Нужен адаптер Hercules, только монохромный монитор
- 720 x 348 графический
- 80 x 25 формат текста, 9 x 14 формат символа
- Обычно 2 страницы видеопамяти (0-1); 1 страница (0), если установлен второй цветной видеоадаптер
- Оператор PALETTE не поддерживается
- Вызовите Hercules драйвер MSHERC.COM перед использованием режима экрана 3
SCREEN 4:
- Поддерживает персональные компьютеры фирмы Olivetti моделей M24, M240, M28, M280, M380, M380/C и M380/T, а также персональные компьютеры фирмы AT&T серии 6300
- 640 x 400 графический режим
- 80 x 25 формат текста, 8 x 16 формат символа
- 1 из 16 цветов присвоен цвету переднего плана (выбранный оператором COLOR); фон - неизменно черный
- 1 страница видеопамяти (0)
- Оператор PALETTE не поддерживается
SCREEN 7: 320 x 200 графический режим
- 40 x 25 формат текста, 8 x 8 формат символа
- Присвоение 16 цветов любому из 16 атрибутов
- При 64K памяти EGA адаптера - 2 страницы видеопамяти (0-1); в других случаях - 8 страниц (0-7)
SCREEN 8: 640 x 200 графический режим
- 80 x 25 формат текста, 8 x 8 формат символа
- Присвоение 16 цветов любому из 16 атрибутов
- При 64K памяти EGA адаптера - 1 страница видеопамяти (0); в других случаях, 4 страницы (0-3)
SCREEN 9: 640 x 350 графический режим
- 80 x 25 или 80 x 43 формат текста, 8 x 14 или 8 x 8 формат символа
- 16 цветов назначаются 4 атрибутам (память адаптера 64K) или 64 цвета назначаются 16 атрибутам (память адаптера более 64K)
- При 64K памяти EGA адаптера - 1 страница видеопамяти (0); в других случаях, 2 страницы (0-1)
SCREEN 10: 640 x 350 графический режим, только монохромные мониторы
- 80 x 25 или 80 x 43 формат текста, 8 x 14 или 8 x 8 формат символа
- Вплоть до 9 псевдоцветов назначаются 4 атрибутам
- 2 страницы видеопамяти (0-1), нужен адаптер с 256K памяти
Screen 11 (VGA или MCGA)
- 640 x 480 графический режим
- 80 x 30 или 80 x 60 формат текста, 8 x 16 или 8 x 8 формат символа
- Присвоение вплоть до 256K цветов 2 атрибутам
- 1 страница видеопамяти (0)
Screen 12 (VGA)
- 640 x 480 графический режим
- 80 x 30 или 80 x 60 формат текста, 8 x 16 или 8 x 8 формат символа
- Присвоение вплоть до 256K цветов 16 атрибутам
- 1 страница видеопамяти (0)
Screen 13 (VGA или MCGA)
- 320 x 200 графический режим
- 40 x 25 формат текста, 8 x 8 формат символа
- Присвоение вплоть до 256K цветов 256 атрибутам
- 1 страница видеопамяти (0)
перекл_цвета% - значение (0 или 1), которое переключает между цветным и монохромным изображением (только в режимах 0 и 1):
Режим | Значение | Действие |
0 | 0 | Отключает цвет |
0 | Не ноль | Включает цвет |
1 | 0 | Включает цвет |
1 | Не ноль | Отключает цвет |
актив_стр% - страница экрана, в которую записывается вывод текста или графики.
видим_стр% - страница экрана, отображаемая на экране в данный момент.
Пример:
SCREEN 1 '320 x 200 graphics
LINE (110, 70)-(190, 120), , B
LINE (0, 0)-(320, 200), 3, , &HFF00
|
SEEK функция/оператор |
СПРАВКА: Функция и Оператор SEEK
Функция SEEK возвращает текущую позицию файла.
Оператор SEEK устанавливает позицию файла для следующей записи или чтения.
SEEK(номер_файла%)
SEEK [#]номер_файла%, позиция&
- номер открытого файла.
позиция - позиция, в которой будет осуществляться следующее чтение или запись. Для файлов прямого доступа, номер записи. Для других файлов, позиция байта по отношению к началу файла. Первый байт находится в позиции 1.
Пример:
OPEN "TEST.DAT" FOR RANDOM AS #1
FOR i% = 1 TO 10
PUT #1, , i%
NEXT i%
SEEK #1, 2
GET #1, , i%
PRINT "Данные: "; i%; " Текущая запись: "; LOC(1); " Следующая: "; SEEK(1)
|
SELECT CASE оператор |
СПРАВКА: Оператор SELECT CASE
Выполняет один из нескольких блоков операторов в зависимости от значения выражения.
SELECT CASE тест_выражение
CASE список_выражений1
[блок_операторов-1]
[CASE список_выражений2
[блок_операторов-2]]...
[CASE ELSE
[блок_операторов-n]]
END SELECT
- любое числовое или строковое выражение.
список_выражений1 - одно или несколько выражений для сравнения с тест_выражением. В выражении ключевое слово IS должно стоять перед любым знаком отношения.
список_выражений2
блок_операторов-1 - один или несколько операторов в одной или нескольких строках.
блок_операторов-2
блок_операторов-n
Аргументы списка выражений могут могут принимать любую из следующих форм или их комбинацию и должны разделяться запятыми:
выражение[,выражение]...
выражение TO выражение
IS оператор_отношения выражение
- любое числовое или строковое выражение, совместимое с тест_выражением.
знак_отношения - один из следующих знаков отношения: <, <=, >, >=, <> или =.
Пример:
INPUT "Введите уровень риска (1-5): ", Total
SELECT CASE Total
CASE IS >= 5
PRINT "Максимальный риск, шансов на возвращение практически нет."
PRINT "Сходите в нотариальную контору."
CASE 2 TO 4
PRINT "Высокий риск, шансов на возвращение немного."
PRINT "Проверьте снаряжение и припасы."
CASE 1
PRINT "Риск отсутствует, возврат гарантирован."
PRINT "В Вас отсутствует дух авантюризма."
END SELECT
|
SHARED STATIC операторы |
СПРАВКА: Операторы SHARED, STATIC
SHARED предоставляет процедурам доступ к переменным уровня модуля.
STATIC делает переменную локальной для функции или процедуры и сохраняет ее значение между вызовами.
SHARED переменная[()] [AS тип] [,переменная[()] [AS тип]]...
STATIC переменная[()] [AS тип] [,переменная[()] [AS тип]]...
- имя переменной уровня модуля или статической переменной. Имя переменной может быть длиной до 40 символов и должно начинаться с буквы. Допустимые символы: A-Z, 0-9 и точка (.).
AS тип - описывает тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, определенный пользователем).
|
SHELL оператор |
СПРАВКА: Оператор SHELL
Приостанавливает выполнение программ Basic для запуска команд DOS или командного файла.
SHELL [строка_команд$]
- имя команды DOS или командного файла.
Выполнение Вашей программы возобновляется по завершении выполнения команды DOS или командного файла.
Если Вы опустили строку команд, SHELL вызывает COMMAND.COM и выводит на экран командное приглашение DOS. Для возобновления выполнения Вашей программы используйте команду EXIT.
Пример:
SHELL "DIR"
|
SLEEP оператор |
СПРАВКА: Оператор SLEEP
Приостанавливает выполнение программы.
SLEEP [секунды&]
- число секунд приостановки программы.
Если секунды& равны 0 или опущены, программа будет приостановлена до тех пор, пока Вы не нажмете клавишу или не произойдет событие.
Пример:
PRINT "Вздремните 10 секунд..."
SLEEP 10
PRINT "Проснитесь!"
|
SOUND оператор |
СПРАВКА: Оператор SOUND
Генерирует звук через динамик Вашего компьютера.
SOUND частота, длительность
- частота звука в Гц; значения находятся в пределах от 37 до 32767.
длительность - число тактов системных часов, в течение которых длится звук; значения - в диапазоне от 0 до 65535. Каждую секунду происходит 18.2 такта.
Пример:
FOR i% = 440 TO 1000 STEP 5
SOUND i%, i% / 1000
NEXT i%
|
SPACE$ функция |
СПРАВКА: Функция SPACE$
Возвращает строку пробелов.
SPACE$(n%)
- нужное число пробелов в строке.
Пример:
FOR i% = 1 TO 5
x$ = SPACE$ (i%)
PRINT x$; i%
NEXT i%
|
SPC функция |
СПРАВКА: Функция SPC
Оставляет заданное число пробелов в операторах PRINT или LPRINT.
SPC(n%)
- число пробелов; значения в диапазоне от 0 до 32767.
Пример:
PRINT "Текст1"; SPC(10); "Текст2"
|
SQR функция |
СПРАВКА: Функция SQR
Возвращает квадратный корень числового выражения.
SQR(числ_выражение)
- значение большее или равное нулю.
Пример:
PRINT SQR(25), SQR(2) 'Вывод: 5 1.414214
|
STEP ключевое слово |
СПРАВКА: Ключевое слово STEP
В цикле FOR...NEXT указывает насколько увеличивать значение счетчика при каждой итерации. В графических операторах указывает, что координаты точки растра заданы относительно текущего графического положения курсора.
|
STICK функция |
СПРАВКА: Функция STICK
Возвращает координаты джойстика.
STICK(n%)
- указывает возвращаемые координаты:
n% | Возвращает |
0 | Координату Х джойстика A |
1 | Координату Y джойстика A |
2 | Координату Х джойстика B |
3 | Координату Y джойстика B |
Вы должны вызвать STICK(0) перед STICK(1), STICK (2), или STICK(3). STICK(0) записывает текущие координаты в память.
Пример:
Temp% = STICK(0)
PRINT STICK(2), STICK(3)
|
STOP оператор |
СПРАВКА: Оператор STOP
Останавливает программу.
STOP
- Ключевое слово STOP также приостанавливает отслеживание событий в следующих операторах: COM, ON COM, KEY, ON KEY, PEN, ON PEN, PLAY, ON PLAY, STRIG, ON STRIG, TIMER, ON TIMER
Пример:
FOR i% = 1 TO 10
PRINT i%
IF i% = 5 THEN STOP 'STOP - пауза; F5 - продолжение.
NEXT i%
|
STR$ VAL функция |
СПРАВКА: Функции STR$, VAL
STR$ возвращает строковое представление числа.
VAL переводит строковое представление числа в число.
STR$(числ_выражение)
VAL(строк_выражение$)
- любое числовое выражение.
строк_выражение$ - строковое представление числа.
Пример:
PRINT "Десятичное 65 представляется в шестнадцатиричной системе как ";
PRINT "&H" + LTRIM$(STR$(41))
PRINT VAL(RIGHT$("IBM 1991", 4))
|
STRIG функция |
СПРАВКА: Функция STRIG
Возвращает состояние триггера джойстика.
STRIG(n%)
- значение, указывающее условие состояния джойстика:
n% | Условие |
0 | Нижний триггер джойстика A был нажат с момента последнего STRIG(0) |
1 | Нижний триггер джойстика A нажат в данный момент |
2 | Нижний триггер джойстика В был нажат с момента последнего STRIG(2) |
3 | Нижний триггер джойстика В нажат в данный момент |
4 | Верхний триггер джойстика A был нажат с момента последнего STRIG(4) |
5 | Верхний триггер джойстика A нажат в данный момент |
6 | Верхний триггер джойстика В был нажат с момента последнего STRIG(6) |
7 | Верхний триггер джойстика В нажат в данный момент |
STRIG возвращает -1 если условие истинно и 0 в противном случае.
Пример:
'Для выполнения этого примера нужен джойстик.
PRINT "Для выхода нажмите Esc или кнопку джойстика"
DO
IF STRIG(0) OR INKEY$ = CHR$(27) THEN EXIT DO
LOOP
DO
BEEP 'Подает сигнал (BEEP) при нажатом триггере A.
LOOP WHILE STRIG(1)
|
STRIG ON STRIG операторы |
СПРАВКА: Операторы STRIG, ON STRIG
STRIG включает, выключает или приостанавливает отслеживание события для джойстика. При включенном отслеживании события, ON STRIG обращается к подпрограмме при каждом нажатии указанного триггера.
STRIG(n%) ON
STRIG(n%) OFF
STRIG(n%) STOP
ON STRIG(n%) GOSUB строка
- значение, указывающее тригер джойстика:
n% | Тригер |
0 | Нижний тригер, джойстик A |
2 | Нижний тригер, джойстик В |
4 | Верхний тригер, джойстик A |
6 | Верхний тригер, джойстик В |
STRIG(n%) ON - включает отслеживание события для джойстика.
STRIG(n%) OFF - выключает отслеживание события для джойстика.
STRIG(n%) STOP - приостанавливает отслеживание события. События обрабатываются при включении STRIG ON отслеживания события.
строка - метка или номер первой строки подпрограммы отслеживания события.
Пример:
'Для выполнения этого примера нужен джойстик.
ON STRIG(0) GOSUB Handler
STRIG(0) ON
PRINT "Для выхода нажмите Esc"
DO UNTIL INKEY$ = CHR$(27): LOOP
END
Handler:
PRINT "Тригер джойстика отжат"
RETURN
|
STRING$ функция |
СПРАВКА: Функция STRING$
Возвращает строку указанной длины, состоящую из повторяющегося символа.
STRING$(длина%,{ascii-код% | строк_выражение$})
- длина строки.
ascii-код% - ASCII код повторяемого символа.
строк_выражение$ - любое строковое выражение. STRING$ заполняет строку первым символом из строк_выражения$.
Пример:
PRINT STRING$(5, "-");
PRINT "Привет";
PRINT STRING$(5, "-")
|
SUB оператор |
СПРАВКА: Оператор SUB
Определяет процедуру SUB.
SUB имя[(параметры)] [STATIC]
[блок_операторов]
END SUB
- имя процедуры SUB, длиной до 40 символов, без суффикса типа данных.
параметры - одна или несколько переменных, указывающих параметры, которые передаются в процедуру SUB при ее вызове:
- перемен[( )] [AS тип] [, перемен[( )] [AS тип]]...
- перемен
- имя переменной Basic.
- тип - тип данных переменной (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, определенный пользователем).
STATIC - указывает, что значения локальных переменных процедуры SUB сохраняются между вызовами функции.
При вызове процедуры SUB Вы можете указать, что значение аргумента не должно изменяться процедурой. Для этого заключите аргумент в круглые скобки.
|
SWAP оператор |
СПРАВКА: Оператор SWAP
Обменивает значения двух переменных.
SWAP переменная1, переменная2
и переменная2 - две переменные одного и того же типа данных.
Пример:
a% = 1: b% = 2
PRINT "До : "; a%, b%
SWAP a%, b%
PRINT "После: "; a%, b%
|
SYSTEM оператор |
СПРАВКА: Оператор SYSTEM
Закрывает все открытые файлы и возвращает управление в операционную систему.
SYSTEM
|
TAB функция |
СПРАВКА: Функция TAB
Перемещает курсор текста в указанную позицию печати.
TAB(столбец%)
- номер столбца новой позиции печати.
Пример:
PRINT TAB(25); "Текст"
|
TIME$ функция |
СПРАВКА: Функция и Оператор TIME$
Функция TIME$ возвращает текущее системное время компьютера.
Оператор TIME$ устанавливает текущее системное время в Вашем компьютере.
TIME$
TIME$ = строк_выражение$
- время в одном из следующих форматов:
чч | Устанавливает часы; минуты и секунды по умолчанию равны 00. |
чч:мм | Устанавливает часы и минуты; секунды по умолчанию равны 00. |
чч:мм:сс | Устанавливает часы, минуты и секунды. |
Функция TIME$ возвращает строку в формате чч:мм:сс.
Пример:
PRINT TIME$
TIME$ = "08:00:58" 'Замечание: Новое системное время остается в силе, пока Вы снова не измените его.
PRINT "Установленное время "; TIME$
|
TIMER функция |
СПРАВКА: Функция TIMER
Возвращает число секунд, прошедших с полуночи и до текущего момента.
TIMER
- Используйте TIMER для хронометража программ или частей программ, или с оператором RANDOMIZE для запуска генератора случайных чисел.
Пример:
RANDOMIZE TIMER
|
TYPE оператор |
СПРАВКА: Оператор TYPE
Определяет тип данных, содержащий один или несколько элементов.
TYPE тип_пользов
имя_элемента AS тип
[имя_элемента AS тип]
.
.
.
END TYPE
- имя определяемого типа данных. Имя может быть длиной до 40 символов и должно начинаться с буквы. Допустимые символы: A-Z, 0-9 и точка (.).
имя_элемента - элемент типа данных, определенного пользователем.
тип - тип элемента (INTEGER, LONG, SINGLE, DOUBLE, STRING или тип данных, определенный пользователем).
Используйте DIM, REDIM, COMMON, STATIC или SHARED для создания переменной определенного пользователем типа данных.
Пример:
TYPE Card
Suit AS STRING * 9
Value AS INTEGER
END TYPE
DIM Deck(1 TO 52) AS Card
Deck(1).Suit = "Клуб"
Deck(1).Value = 2
PRINT Deck(1).Suit, Deck(1).Value
|
VARPTR функция |
СПРАВКА: Функции VARPTR, VARSEG
VARPTR возвращает адрес смещения переменной.
VARSEG возвращает адрес сегмента переменной.
VARPTR(имя_переменной)
VARSEG(имя_переменной)
- любая переменная Basic.
|
VARPTR$ функция |
СПРАВКА: Функция VARPTR$
Возвращает строковое представление адреса переменной для использования с операторами DRAW и PLAY.
VARPTR$(строка_команд$)
- cтроковая переменная, содержащая команды DRAW или PLAY.
Пример:
Scale$ = "CDEFGAB"
PLAY "L16"
FOR i% = 0 TO 6
PLAY "O" + STR$(i%)
PLAY "X" + VARPTR$(Scale$)
NEXT i%
|
VIEW оператор |
СПРАВКА: Оператор VIEW
Определяет размер и положение области просмотра, где графика может быть выведена на экран.
VIEW [[SCREEN] (x1!,y1!)-(x2!,y2!) [,[цвет%] [,граница%]]]
- указывает, что координаты задаются относительно экрана, а не области просмотра.
(x1!,y1!)-(x2!,y2!) - координаты диагонали противоположных углов области просмотра.
цвет% - атрибут цвета, устанавливающий заполняющий цвет области просмотра.
граница% - атрибут цвета, устанавливающий цвет границы области просмотра.
Если все аргументы опущены, область просмотра - весь экран.
Допустимые атрибуты цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.
Пример:
SCREEN 1
VIEW (10, 10)-(300, 180), , 1
LOCATE 1, 11: PRINT "Большая область просмотра графики";
VIEW SCREEN (80, 80)-(200, 125), , 1
LOCATE 11, 11: PRINT "Маленькая область просмотра графики";
|
VIEW PRINT оператор |
СПРАВКА: Оператор VIEW PRINT
Устанавливает на экране границы области просмотра текста.
VIEW PRINT [верх% TO низ%]
- номер верхней строки области просмотра текста.
низ% - номер нижней строки области просмотра текста.
Если Вы опустили аргументы верх% и низ%, то VIEW PRINT отводит весь экран под область просмотра текста.
Диапазон для верх% и низ% зависит от режима экрана.
Пример:
VIEW PRINT 10 TO 15
FOR i% = 1 TO 100 'Вывод будет прокручиваться между 10 и 15 строкой
PRINT i%
NEXT i%
|
WAIT оператор |
СПРАВКА: Оператор WAIT
Приостанавливает выполнение программы до ввода двоичного кода из порта ввода.
WAIT номер_порта%, AND-выражение% [,XOR-выражение%]
- номер порта ввода.
AND-выражение% - целое выражение, которое WAIT объединяет со значением двоичного кода, используя оператор AND. Если результат не равен нулю, WAIT останавливает использование порта.
XOR-выражение% - может быть использовано для включения/выключения битов линии в двоичном коде перед использованием AND.
Пример:
'Читает порт контроллера прерываний с адресом &H20.
'Для продолжения нажмите любую клавишу.
WAIT &H20, 1
|
WHILE...WEND оператор |
СПРАВКА: Оператор WHILE...WEND
Выполняет серию операторов, пока указанное условие верно.
WHILE условие
.
.
.
WEND
- числовое выражение, которое Basic оценивает как истинное (не-ноль) или ложное (ноль).
DO...LOOP предоставляет более удобный способ для выполнения операторов в программном цикле.
|
WIDTH операторы |
СПРАВКА: Операторы WIDTH
Устанавливает ширину строк вывода устройства (например, принтера) или файла, а также изменяет число строк и столбцов, отображаемых на экране.
WIDTH [столбцы%] [,строки%]
WIDTH {#номер_файла% | устройство$}, столбцы%
WIDTH LPRINT columns%
- нужная ширина в столбцах. Ширина экрана должна быть 40 или 80 столбцов.
строки% - нужная высота экрана в строках. Допустимые значения - 25, 30, 43, 50 или 60, в зависимости от типа видеоадаптера и режима экрана.
#номер_файла% - номер открытого файла или устройства.
устройство$ - имя устройства: SCRN:, COM1:, COM2:, LPT1:, LPT2:, LPT3:
Пример:
OPEN "LPT1:" FOR OUTPUT AS #1
WIDTH #1, 132
|
WINDOW оператор |
СПРАВКА: Оператор WINDOW
Определяет логическое пространство для текущей графической области просмотра. Используйте оператор WINDOW для задания своей собственной системы координат в области просмотра.
WINDOW [[SCREEN] (x1!,y1!)-(x2!,y2!)]
- инвертирует обычное направление декартовых координат Y на экране так, что значения Y увеличиваются сверху вниз на экране.
(x1!,y1!) - логические координаты, соответствующие координатам верхнего левого экрана области просмотра.
(x2!,y2!) - логические координаты, соответствующие координатам нижнего правого экрана области просмотра.
WINDOW без аргументов выключает логическую систему координат.
Используйте оператор VIEW для изменения размера области просмотра.
Пример:
SCREEN 1
FOR i% = 1 TO 10 STEP 2
WINDOW (-160 / i%, -100 / i%)-(160 / i%, 100 / i%)
CIRCLE (0, 0), 10
NEXT i%
|
WRITE оператор |
СПРАВКА: Оператор WRITE
Записывает данные на экран или в последовательный файл.
WRITE [[#]номер_файла%,] выражение
- номер открытого последовательного файла. Если номер файла опущен, WRITE выводит данные на экран.
выражение - одна или несколько переменных или выражений, разделенных запятыми, значения которых записываются на экран или в файл.
WRITE вставляет запятые между объектами и заключает в кавычки строки в той последовательности, в которой они написаны. WRITE записывает значения в файл в той форме, которая может быть считана оператором INPUT.
Пример:
CLS
OPEN "LIST" FOR OUTPUT AS #1
DO
INPUT " ИМЯ : ", Name$
INPUT " ВОЗРАСТ: ", Age$
WRITE #1, Name$, Age$
INPUT "Добавить еще"; R$
LOOP WHILE UCASE$(R$) = "Д"
CLOSE #1
'Печать файла на экране.
OPEN "LIST" FOR INPUT AS #1
CLS
PRINT "Записи в файле:": PRINT
DO WHILE NOT EOF(1)
INPUT #1, Rec1$, Rec2$ 'Считывает записи из файла
PRINT Rec1$, Rec2$ 'Печатает записи на экране
LOOP
CLOSE #1
KILL "LIST"
|