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

Языки Бейсик

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

Глава XII. Бейсик-HELP

171

образец$

образец заполнения шириной 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

См. также ASC, CHR$, CIRCLE, DRAW, LINE, SCREEN,

Атрибуты и Значения Цвета, Режимы Экрана

PALETTE-оператор

Изменяет установки атрибутов цвета в текущем режиме экрана. PALETTE и PALETTE USING работают только в системах с адаптерами EGA, VGA или MCGA.

Формат записи:

PALETTE [атрибут%,цвет&]

PALETTE USING имя_массива#[(индекс%)]

ãäå

атрибут%

изменяемый атрибут цвета.

öâåò&

значение цвета, присвоенное атрибуту.

имя_массива# массив значений цвета, который присваивается текущей группе атрибутов цвета экрана. Массив должен быть достаточно боль-

 

шим для присвоения цветов всем атрибутам.

индекс%

Индекс первого элемента массива, который присваивается

 

атрибуту.

Допустимые атрибуты и значения цвета зависят от Вашего графического адаптера и режима экрана, установленного последним оператором SCREEN.

172 Языки Бейсик

Пример:

'Для выполнения этого примера нужен цветной графический адаптер. 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$ = ““

См. также COLOR, SCREEN, Атрибуты и Значения Цвета, Режимы Экрана

PCOPY-оператор

Копирует одну страницу видеопамяти в другую.

Формат записи:

PCOPY исх_страница%,приним_страница%

ãäå

исх_страница% номер копируемой страницы видеопамяти. приним_страница% номер страницы видеопамяти, в которую копируют. Зна-

чение, идентифицирующее видеостраницу, определяется размером видеопамяти и текущим режимом экрана.

Пример:

PCOPY 1, 3

См. также SCREEN, Режимы Экрана

PEEK-функция

PEEK возвращает значение байта, хранящегося в указанном месте памяти.

POKE записывает значение байта в указанное место памяти.

Формат записи:

PEEK(адрес)

POKE адрес,байт%

ãäå

 

адрес

позиция байта относительно адреса текущего сегмента, установлен-

 

ного DEF SEG; значения в пределах от 0 до 65 535.

áàéò%

значение байта для записи в указанное место памяти; значение в пре-

 

делах от 0 до 255.

Глава XII. Бейсик-HELP

173

Пример:

 

 

DEF SEG = 0

 

Status% = PEEK(&H417) 'Считывает статус клавиатуры.

 

POKE &H417, (Status% XOR &H40) 'Изменяет

 

'состояние Caps Lock, бит 6.

 

См. также DEF SEG

 

PEN-функция

 

Возвращает статус светового пера.

 

Формат записи:

 

PEN(n%)

 

ãäå

 

 

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 Операторы, SCREEN, Режимы экрана

PEN-оператор

PEN включает, выключает или приостанавливает отслеживание события для светового пера. При включенном отслеживании события ON PEN обращается к подпрограмме при каждой активизации светового пера. См. ON PEN.

См. также PEN Функция

174

Языки Бейсик

PLAY-функция

Возвращает число музыкальных нот в фоновой очереди.

Формат записи:

PLAY(n)

ãäå

nЛюбое числовое выражение.

Пример:

Music$ = “MBT180o2P2P8L8GGGL2E-P24P8L8FFFL2D”

PLAY Music$

WHILE PLAY(0) > 5: WEND

PRINT “Почти закончили!”

См. также PLAY (Музыка), PLAY, ON PLAY (Отслеживание события)

PLAY-оператор

Играет музыкальные ноты.

Формат записи:

PLAY строка_команд$

ãäå

строка_команд$ выражение, состоящее из одной или нескольких следующих команд PLAY:

Команды октавы и тона:

Oктава Задает текущую октаву (0 — 6).

< or > Переходит на одну октаву вверх или вниз. 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

Фоновое звучание.

Глава XII. Бейсик-HELP

175

Команды изменения ноты:

# èëè + Äèåç.

-Бемоль.

.Длительность 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%

См.также BEEP, PLAY Функция

PLAY, ON PLAY (Отслеживание событий) SOUND, VARPTR$

PLAY-отслеживание событий

PLAY включает, выключает или приостанавливает отслеживание события при игре музыки. При включенном отслеживании события ON PLAY обращается к подпрограмме каждый раз, когда в музыкальном буфере содержится число нот, меньшее указанного числа. См. ON PLAY.

См. также PLAY (Музыка), PLAY Функция

PMAP-функция

Возвращает координату окна эквивалентную координате области просмотра, определенную оператором WINDOW, или наоборот.

Формат записи:

PMAP (начальная_координата#, n%)

ãäå

 

 

 

 

начальная_координата#

координата окна или области просмотра.

n%

Значение, определяющее какую координату возвратить:

См. таблицу

 

 

 

 

 

 

 

 

начальная_координата

 

n %

Возвращает

 

 

 

 

 

Координата Х окна

 

 

0

Координату Х области просмотра

 

 

 

 

 

Координата Y окна

 

 

1

Координату Y области просмотра

 

 

 

Координата Х области просмотра

2

Координату Х окна

 

 

 

Координата Y области просмотра

3

Координату Y окна

 

 

 

 

 

 

 

 

 

 

176

Языки Бейсик

Пример:

'Для выполнения этого примера нужен графический 'адаптер, поддерживающий режим экрана 1.

SCREEN 1

WINDOW SCREEN (0, 0)-(100, 100)

PRINT “Логическая x=50, физическая x=“; PMAP(50, 0) PRINT “Логическая y=50, физическая y=“; PMAP(50, 1)

См.также POINT, VIEW, WINDOW

POINT-функция

Возвращает текущие графические координаты курсора и атрибут цвета заданной точки растра (элемента растра).

Формат записи:

POINT {(n%) | (x%,y%)}

ãäå

 

 

(n%)

Указывает тип возвращаемых координат:

 

 

 

 

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%

См.также COLOR, PMAP, SCREEN, VIEW, WINDOW, Атрибуты и значения цвета

POKE-функция

PEEK возвращает значение байта, хранящегося в указанном месте памяти.

Глава XII. Бейсик-HELP

177

POKEзаписываетзначениебайтавуказанноеместопамяти.См.PEEK

См.такжеDEFSEG

POS-функция

LOCATE перемещает курсор на экране в указанную позицию.

CSRLIN возвращает текущую позицию строки курсора.

POS возвращает текущую позицию столбца курсора.

Ñì. CSRLIN

PRESET-оператор

Рисует заданную точку на экране.

Формат записи:

PRESET [STEP] (x!,y!) [,color%]

PSET [STEP] (x!,y!) [,color%]

ãäå

 

STEP

указывает, что 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%

См.также SCREEN, VIEW, WINDOW, Атрибуты и значения цвета, Режимы экрана

PRINT-оператор

PRINT выводит данные на экран или записывает их в файл.

LPRINT печатает данные на принтере LPT1.

Ñì. LPRINT

См.также PRINT USING, LPRINT USING, WIDTH, WRITE

178

Языки Бейсик

PRINT USING-оператор

PRINT USING записывает отформатированный вывод на экран или в файл. LPRINT USING печатает отформатированный вывод на принтере LPT1. См. LPRINT USING

См.также PRINT, LPRINT, WIDTH

PSET-оператор

Рисует заданную точку на экране. См. PRESET

См.также SCREEN, VIEW, WINDOW, Атрибуты и значения цвета, Режимы экрана

PUT(В/ВВ файлов)-оператор

GET считывает из файла прямого доступа в буфер или в переменную.

PUT записывает содержимое переменной или буфера в файл прямого доступа. См. GET

См. также FIELD, GET, PUT (Графика), LSET, RSET, MKn$, CVn функции, TYPE.

PUT(графика)-оператор

GET сохраняет графический образ экрана. PUT выводит на экран образ, сохраненный GET.

См. GET(графика)

См. также SCREEN, Режимы Экрана

RANDOM-ключевое слово

Ключевые слова APPEND, BINARY, INPUT, OUTPUT и RANDOM используются в операторе OPEN для указания режимов. Кроме того, INPUT, OUTPUT и RANDOM используются в операторе

OPEN COM.

Cì.Append.

RANDOM указывает, что файл открыт в режиме прямого доступа к файлу. Этот режим устанавливается по умолчанию.

См. также OPEN, OPEN COM, PRINT, LPRINT, WRITE

RANDOMIZE-оператор

Инициализирует генератор случайных чисел.

RND возвращает случайное число одинарной точности между 0 и 1. Формат записи:

RANDOMIZE [число%]

RND[(n#)]

Глава XII. Бейсик-HELP

179

ãäå

число% число, используемое для инициализации генератора случайных чи- сел. Если опущено, то 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%

READ-оператор

Оператор DATA указывает значения для чтения последующими операторами READ.

READ считывает эти значения и присваивает их переменным.

RESTORE позволяет READ заново считать значения в указанном операторе DATA.

Cì. DATA

REDIM-оператор

DIM описывает массив или указывает тип данных для переменных не массива.

REDIM описывает или изменяет размер динамического массива, стирая все предыдущие значения. См. DIM.

См. также COMMON, ERASE, OPTION BASE, SHARED, STATIC, $STATIC,

$DYNAMIC

REM-оператор

Позволяет вставлять комментарии в программы.

Формат записи:

REM комментарий или ' комментарий

ãäå

комментарий любой текст.

При работе программы комментарии игнорируются, если только они не содержат метакоманды. См. $DINAMIC, $STATIC.

180

Языки Бейсик

Комментарий может быть вставлен в строке после выполняемого оператора, если перед комментарием стоит символ апострофа (') или перед REM стоит двоеточие (:).

Пример:

REM Это комментарий.

' Это тоже комментарий.

PRINT “Тест1” 'Это комментарий после оператора PRINT.

PRINT “Тест2”:REM Это тоже комментарий после оператора PRINT.

RESET-оператор

Закрывает все открытые файлы и устройства.

Формат записи:

RESET

См. также CLOSE, END, OPEN, STOP

RESTORE-оператор

DATA указывает значения для чтения последующими операторами READ.

READ считывает эти значения и присваивает их переменным.

RESTORE позволяет READ заново считать значения в указанном операторе DATA.

Ñì. DATA.

RESUME-оператор

Продолжает выполнение программы после подпрограммы обработки ошибок.

Формат записи:

RESUME [{строка | NEXT}]

ãäå

строка метка или номер строки для продолжения программы. Если метка равна 0 или отсутствует, выполнение продолжается с оператора, в котором была обнаружена ошибка.

NEXT продолжает выполнение программы со следующего оператора за оператором, в котором была обнаружена ошибка.

См. также ERROR, ON ERROR

RETURN-оператор

Операторы GOSUB и RETURN обеспечивают переход в подпрограмму и возврат из нее.

Cì. GOSUB.

См. также CALL, ON Ключевое слово, ON...GOSUB, SUB

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