IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Basic Msx
SuperMax
сообщение 11.2.2015, 20:09
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Справочник по языку программирования BASIC состоит из двух частей: Меню
и Информативной части. Передвижение как по меню, так и по информативной час-
ти осуществляется с помощью клавиш со стрелками вверх и вниз. Для ускоренно-
го передвижения можно использовать клавиши со стрелками вверх и вниз при на-
жатой клавише CTRL. Выбрав в меню оператор, функцию или команду, по которым
вам необходимо получить справку, нажмите клавишу ПРОБЕЛ. Для выхода в меню
из информативной части используйте клавишу ВВОД. В любой момент Вы можете
покинуть справочник, используя клавишу ESC. При последующем входе в справоч-
ник (с помощью клавиши SELECT) Вы окажетесь в том же самом месте справочни-
ка, из которого его покинули. Все клавиши, которые в данный момент могут
оказать на работу справочника какое-либо действие, указываются в нижней
строке.

------------------------------------------------------------------------
INPUT# - оператор чтения данных из файла

Формат: INPUT # <номер>,<список переменных>

Оператор действует аналогично оператору INPUT, но данные вводятся не с
клавиатуры ПЭВМ, а из файла с указанным номером.

Пример: 10 OPEN "TEST" FOR INPUT AS #1
20 DIM X(10)
30 FOR I=0 TO 10
40 INPUT #1,X(I)
50 PRINT X(I)
60 NEXT
70 CLOSE
Программа заполняет массив переменных данными, считанными из файла с
именем "TEST", и выводит их на экран.

Примечание: Файл, используемый в операторе INPUT#, должен быть предваритель-
но открыт с помощью оператора OPEN с атрибутом INPUT.

------------------------------------------------------------------------
BIN$ - функция преобразования числа в строку

Формат: BIN$(<арифм.выражение>)

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

Примеры: BIN$(10) выдает "1010"
BIN$(-1) выдает "1111111111111111"

Примечание: Значение аргумента должно находиться в интервале от -32768 до
65535.

------------------------------------------------------------------------
OPEN - оператор открытия файла

Формат: OPEN"[<имя устройства>:]<имя файла>" [FOR <режим>] AS [#]<номер>

Перед использованием файла его необходимо объявить открытым с помощью
оператора OPEN, где указываются:
1. Имя устройства, где должен находиться файл (по умолчанию - А):
CAS - для работы с магнитофоном;
A или B - для работы с дисководом;
GRP - для вывода текста на графический экран (в этом случае имя
файла указывать не нужно).
2. Имя файла, которое он будет иметь на указанном устройстве.
3. Режим:
INPUT - для чтения из файла;
OUTPUT - для создания нового файла;
APPEND - для дополнения существующего файла (только на диске-
тах!).
4. Номер файла - число от 1 до указанного в операторе MAXFILES. Этот
номер далее будет использоваться для обращения к файлу в программе.

Пример: 10 MAXFILES=2
20 OPEN"CAS:INF" FOR INPUT AS #1
30 OPEN"A:REZ" FOR OUTPUT AS #2
После выполнения этой части программы будет открыт файл INF (для чтения
с кассеты) под номером 1, и файл REZ (для записи на дискету в дисководе А)
под номером 2.

------------------------------------------------------------------------
ATN - функция arctg x

Формат: ATN (<арифм.выражение>)

Функция вычисляет арктангенс аргумента; ее значение измеряется в ради-
анах.

Пример: 4*ATN(1) дает число 3.1415926535898

Примечание: 1 радиан равен (180 градусов) / 3.1415926535898.

------------------------------------------------------------------------
POKE - оператор записи в память

Формат: POKE <адрес>,<арифм.выражение>

Оператор записывает в байт памяти с указанным адресом значение
арифм.выражения. Оба аргумента могут быть переменными или постоянными вели-
чинами, записанными как в десятичной, так и в шестнадцатиричной форме. Зна-
чение арифм.выражения должно находиться в интервале от 0 до 255, адреса - в
интервале от &H8000 до &HFFFF (т.е. от 8000 до FFFF в шестнадцатиричной сис-
теме счисления).

Пример: 10 A=27
20 POKE &HB000,A
Число 27 будет записано в ячейку памяти с адресом В000.

Примечание: При указании адреса в интервале от 0000 до 7FFF оператор POKE
выполняться не будет, хотя сообщение об ошибке в этом случае
не выдается.

------------------------------------------------------------------------
STOP - оператор остановки программы

Формат: STOP

При выполнении оператора оканчивается работа программы, происходит пе-
реход в командный режим и выдается сообщение на экран: Break in < N >, где N
номер строки, в которой встретился данный оператор STOP. Часто употребляется
для тестирования программы.

Пример: : : :
100 A=B+C
200 STOP
: : :
После выполнения данного оператора STOP можно в командном режиме узнать
значение переменной A путем выполнения оператора PRINT A (для тестирования
программы)

Примечания: 1. Продолжить работу программы после ее остановки оператором
STOP можно командой CONT.
2. Действие оператора STOP аналогично нажатию <CTRL>+<STOP> во
время работы программы в конкретной строке.

------------------------------------------------------------------------
DIM - оператор задания массива

Формат: DIM <имя массива>(<индекс1>,<индекс2>,...)[,...]

Оператор резервирует в машинной памяти место для размещения массива
размерности, определяемой значениями индексов, а также присваивает всем эле-
ментам массива нулевые значения (для символьных переменных пустые строки).
Нумерация элементов массива начинается с нуля. Имя массива определяет тип
переменной так же, как для скалярных переменных.
Отдельный элемент массива обозначается именем массива, за которым следу-
ют его индексы в круглых скобках.
Одним оператором DIM могут описываться несколько массивов, перечисляемых
друг за другом через запятую.

Примеры: DIM ТА(24),М$(1,1),F%
Оператор описывает вещественный массив TA с 25 элементами, массив
символьных переменных М$ с 4 элементами (М$(0,0),М$(0,1),М$(1,0),М$(1,1)) и
целочисленную переменную F%.

Примечания: 1. Употреблению в программе элементов массива должно предшество-
вать его описание в операторе DIM.
2. Повторное описание одного и того же массива не допускается.
3. Если точная длина задаваемого массива неизвестна, следует оп-
ределить ее по максимально вероятной величине.
4. Индексы массива могут быть арифм.выражениями, подразумевающи-
ми целые положительные значения.

------------------------------------------------------------------------
LIST - команда просмотра текста программы

Формат: LIST [<номер строки1>][-<номер строки2>] или
LIST [<номер строки1>-][<номер строки2>]

Команда используется в режиме прямого доступа для последовательного
просмотра текста программы или его фрагмента. При наличии атрибутов просмотр
текста начинается с номера строки1 и заканчивается номером строки2; а при их
отсутствии - за номер строки1 по умолчанию принимается начало программы, за
номер строки2 - конец текста.
Приостановление просмотра текста совершается после нажатия клавиши
STOP, продолжение - после повторного нажатия этой клавиши. Для прекращения
просмотра необходимо одновременное нажатие клавиш STOP и CTRL.
Команда LIST, включенная в текст программы, прерывает ее выполнение и
переключает систему в командный режим.

Примеры: LIST 10-100 просмотр со строки 10 до строки 100
LIST 100 просмотр строки 100
LIST 100- просмотр со строки 100 до конца программы
LIST -100 просмотр с начала программы до строки 100

10 А=5
20 LIST
30 PRINT A
При выполнении программы переменной А будет присвоено значение 5, но
выведено оно не будет.

Примечания: 1. Введение несуществующего номера строки не вызывает появления
сообщения об ошибке. Просмотр программы в этом случае начнется
с первой имеющейся строки в интервале от номера строки1 до но-
мера строки2.
2. Команда LIST не изменяет значений переменных.

------------------------------------------------------------------------
CLOSE - оператор закрытия файла

Формат: CLOSE [<список номеров файлов>]

При записи данных закрытие обеспечивает вывод в файл признака конца
файла. Кроме того, закрытие файла позволяет использовать тот же номер для
открытия другого файла. При указании нескольких номеров они разделяются за-
пятыми. Оператор CLOSE без указания номеров произведет закрытие всех откры-
тых файлов.

Пример: 10 OPEN"A:REZ" FOR OUTPUT AS #1
...
200 CLOSE #1

------------------------------------------------------------------------
PEEK - функция чтения данных из памяти

Формат: PEEK(<адрес>)

Функция считывает число (лежащее в интервале от 0 до 255) из ячейки
оперативной памяти с указанным адресом. Адрес может лежать в интервале от
0000 до FFFF (в шестнадцатиричной системе счисления).

Пример: Х=PEEK(&НF676)
В результате выполнения этого оператора переменной Х будет присвоено
значение, размещенное в памяти по адресу F676.

------------------------------------------------------------------------
ON GOTO - оператор условного перехода

Формат: ON <арифм.выражение> GOTO <номера строк>

Оператор позволяет осуществить переход к одной из нескольких указанных
строк в зависимости от того, какое значение имеет арифм.выражение. Во время
выполнения оператора выражение вычисляется и целая часть его используется в
качестве указателя перехода на один из номеров строк.

Пример: 50 ON P GOTO 100,140,180
Оператор передает управление строке 100, если Р=1, строке 140, если Р=2
и строке 180, если Р=3.

Примечание: Любые другие значения Р, не выходящие за пределы 0-255,приведут
к передаче управления на следующий оператор. Если Р<0 или Р>255,
то будет выдано сообщение об ошибке.

------------------------------------------------------------------------
RETURN - оператор конца подпрограммы

Формат: RETURN [<номер строки>]

Возвращает управление из подпрограммы. Если указан номер строки, то
происходит возврат по этому номеру. Но обычно номер отсутствует и тогда уп-
равление передается оператору, следующему за оператором GOSUB, с помощью ко-
торого была вызвана данная подпрограмма. Как правило, RETURN размещается в
конце подпрограммы.

Пример: 100 GOSUB 1000
110 : : :
: : :
990 END
1000'Подпрограмма
1010 FOR I=0 TO 100 : A(I)=0 : NEXT I
1020 RETURN
Подпрограмма вызывается в 100-й строке, выполняется (обнуляется массив
A(100)), затем оператор RETURN осуществляет переход на строку номер 110

Примечание: Выполнению каждого оператора RETURN должно предшествовать выпол-
нение соответствующего оператора GOSUB.

------------------------------------------------------------------------
PRINT - оператор вывода на экран

Формат: PRINT [<список>]

Оператор используется для вывода на экран дисплея информации, определя-
емой списком, элементами которого могут быть числовые и символьные константы
и переменные. При отсутствии списка оператор PRINT используется для вывода
пустой строки.
Строка экрана разбита на зоны по 16 позиций каждая. Если элементы спис-
ка разделены запятыми, то значение следующего элемента будет напечатано в
следующей свободной зоне той же или следующей строки. Если данные разделены
";", то следующий элемент начнет печататься сразу за предыдущим.
Если оператор PRINT заканчивается ";", то следующий вывод на печать
начнется сразу за предыдущим; если в конце его стоит ",", то очередная пор-
ция информации будет печататься в следующей зоне той же строки. В остальных
случаях каждый оператор PRINT будет начинать печать с новой строки.

Пример: 20 PRINT "ABCD"
30 T$="START":B=25
40 PRINT "ABCD","EF";:PRINT T$,B
50 PRINT T$;"ABCD";"EF"
В результате выполнения программы на экран будет выведена следующая ин-
формация (символ "|" обозначает левую границу экрана):
|ABCD
|ABCD EFSTART 25
|STARTABCDEF

Примечание: В операторе PRINT можно использовать функции TAB и SPC.

------------------------------------------------------------------------
FOR - оператор цикла

Формат: FOR <имя переменной> = <арифм.выражение1> TO <арифм.выражение2>
[STEP <арифм.выражение3>]
тело цикла
NEXT [<имя переменной>]

При выполнении оператора счетчику цикла (переменной) в качестве началь-
ного значения присваивается значение арифм.выражения1, после чего выполняют-
ся операторы, входящие в тело цикла. При достижении ключевого слова NEXT к
счетчику цикла добавляется значение арифм.выражения3, называемое шагом цик-
ла. Если при этом значение счетчика превышает (а при отрицательном шаге бу-
дет меньше) значение арифм.выражения2, то программа переходит к выполнению
следующего после NEXT оператора; в противном случае - вновь выполняется тело
цикла. По умолчанию шаг цикла принимается равным 1.

Для досрочного выхода из цикла необходимо внутри цикла присвоить счет-
чику значение большее (меньшее - при отрицательном шаге), чем значение
арифм.выражения2, и передать управление на NEXT. В любом случае тело цикла
выполняется хотя бы один раз.

Допускаются также вложенные циклы, причем внутренний цикл должен цели-
ком содержаться в теле внешнего цикла. Концы циклов в этом случае могут
объединяться в один оператор NEXT, и счетчик внутреннего цикла должен нахо-
диться прежде счетчика внешнего цикла.

Примеры: 10 FOR X=0 TO 1 STEP 0.1
20 PRINT X;SIN(X)
30 NEXT X
Оператор распечатывает таблицу значений функции sin x для значений ар-
гумента от 0 до 1 с шагом 0.1.

10 FOR I=1 TO 10
20 FOR J=2 TO 3
30 PRINT I^J;
40 NEXT J,I
Программа выводит на печать значения квадратов и кубов первых десяти
натуральных чисел.

------------------------------------------------------------------------
LINE INPUT# - оператор чтения данных из файла

Формат: LINE INPUT # <номер>, <символьная переменная>

Оператор действует аналогично оператору LINE INPUT, но данные вводятся
не с клавиатуры ПЭВМ, а из файла с указанным номером.

Пример: 10 OPEN "TEST" FOR INPUT AS #1
20 DIM X$(I)
30 FOR I=0 TO 10
40 LINE INPUT #1,X$(I)
50 PRINT X$(I)
60 NEXT
70 CLOSE
Программа заполняет массив символьных переменных данными, считанными из
файла с именем "TEST", и выводит их на экран.

Примечание: Файл, используемый в операторе LINE INPUT#, должен быть предва-
рительно открыт с помощью оператора OPEN с атрибутом INPUT.

------------------------------------------------------------------------
HEX$ - функция преобразования числа в строку

Формат: HEX$(<арифм.выражение>)

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

Примеры: HEX$(255) выдает "FF"
HEX$(2*2) выдает "4"
HEX$(-1) выдает "FFFF"

Примечание: Значение аргумента должно находиться в интервале от -32768 до
65535.

------------------------------------------------------------------------
COS - функция cos x

Формат: COS (<арифм.выражение>)

Вычисляет косинус от аргумента, который должен быть задан в радианах.

Пример: COS(A+cool.gif вычисляет cos(a+cool.gif
COS(3.14159) дает -.99999999999643

Примечание: 1 радиан равен (180 градусов) / 3.1415926535898.

------------------------------------------------------------------------
FIX - функция [x]

Формат: FIX(<арифм.выражение>)

Функция выдает целую часть аргумента без округления.

Примеры: FIX(33.56) выдает 33
FIX(-5.56) выдает -5


--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:10
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



------------------------------------------------------------------------
Формат: LOCATE <арифм.выражение1>,<арифм.выражение2>[,1] или
LOCATE <арифм.выражение1>,<арифм.выражение2>,0

Оператор устанавливает курсор в позицию, первая координата которой (но-
мер колонки в строке) определяется значением арифм.выражения1, а вторая (но-
мер строки) - значением арифм.выражения2. Значение первого аргумента должно
лежать в интервале от 0 до значения аргумента последнего оператора WIDTH ми-
нус 1; второго - в диапазоне от 0 до 22 (или 23, если был выполнен оператор
KEY OFF). Курсор будет отображен в указанном месте, если третий аргумент
оператора LOCATE равен 1; если он равен 0, то курсор не отображается. Если
третий аргумент опущен, то состояние курсора не меняется.

Пример: 10 SCREEN0
20 WIDTH 80
30 LOCATE 36,11
40 PRINT "ПРИВЕТ"
В результате выполнения программы на экране, начиная с 36-й позиции
11-й строки, будет выведено слово "ПРИВЕТ".

------------------------------------------------------------------------
LINE INPUT - оператор ввода c экрана строки

Формат: LINE INPUT ["сообщение";]<символьная переменная>

Оператор используется для ввода достаточно больших объемов символьных
данных. При его выполнении на экран выдается сообщение (если оно имеется),
после чего можно вводить с клавиатуры нужный текст. При этом в указанную
символьную переменную будут занесены все символы, введенные до нажатия кла-
виши "ВВОД". В отличие от оператора INPUT, оператор LINE INPUT не рассматри-
вает запятые и пробелы как разделители.

Пример: 10 DIM A$(8)
20 FOR I=0 TO 8
30 LINE INPUT "ВВЕДИТЕ ФАМИЛИЮ И ИНИЦИАЛЫ";A$(I)
40 NEXT
50 PRINT "СПИСОК СОТРУДНИКОВ:"
60 FOR I=0 TO 8
70 PRINT HEX$(I+1)+". "+A$(I)
80 NEXT
Программа позволяет ввести и распечатать нумерованный список.

Примечание: Длина вводимой строки не должна превышать 255 символов.

------------------------------------------------------------------------
MID$ - функция вырезки подстроки

Формат: MID$(<строка>,<арифм.выражение1>[,<арифм.выражение2>])

Функция дает подстроку символьной строки, взятую начиная с позиции,
указанной в арифм.выражении1, и имеющую длину, указанную в арифм.выражении2.
Если арифм.выражение2 отсутствует или его значение выходит за реальную длину
строки, то подстрока берется до конца символьной строки.
Функция MID$ может также стоять в левой части оператора присваивания. В
этом случае строка, стоящая справа от знака "=", включается в качестве
подстроки в строку, указанную в функции MID$.

Примеры: MID$("КЛАВИАТУРА",3,4) дает "АВИА"
MID$("ABCDE",6,4) дает ""
MID$("ABCDE",3) дает "CDE"
MID$("ABCDEFG",7,9) дает "G"

10 T$="САЛОН"
20 MID$(T$,4,2)="ЮТ"
30 PRINT T$
В результате выполнения программы на экране будет напечатано слово "СА-
ЛЮТ".

Примечания: Значения арифм.выражений 1 и 2 должны лежать в интервале от
0 до 255.

------------------------------------------------------------------------
ON ERROR - оператор обработки ошибок

Формат: ON ERROR GOTO <номер строки>

Если в программе возникла ошибка, но до этого в каком-либо месте прог-
раммы встретился оператор ON ERROR с ненулевым номером строки, то, вместо
прекращения работы программы и выдачи сообщения о ошибке, управление будет
передано на указанную строку. Выполнение продолжается начиная с этой строки
до обнаружения оператора RESUME. При этом выполнение основной программы во-
зобновляется с того места, где оно было прервано. Если в операторе RESUME
указать номер строки, то программа будет выполняться, начиная с указанной
строки. Для отмены действия оператора ON ERROR достаточно выполнения опера-
тора ON ERROR GOTO 0.

Пример: 10 ON ERROR GOTO 100
20 INPUT A
30 PRINT 1/A
40 END
100 PRINT "ВЫ ВВЕЛИ 0! ПОВТОРИТЕ ВВОД ДАННЫХ"
110 RESUME 20
Программа запрашивает число и печатает обратное ему. При вводе 0 возни-
кает ошибка - деление на ноль. Программа сообщает об этом и запрашивает чис-
ло еще раз, после чего повторяет вычисление и печатает результат.

------------------------------------------------------------------------
WIDTH - оператор установки ширины экрана

Формат: WIDTH <арифм.выражение>

Оператор используется в текстовых экранах SCREEN0 и SCREEN1. После его
выполнения текст выводится на экран дисплея строками, имеющими ширину, рав-
ную значению арифм.выражения, и расположенными в центральной части экрана.
Значение аргумента должно лежать в интервале от 1 до 32 в SCREEN1 и от 1 до
80 в SCREEN0. Если оно будет больше 40, то печатаемые символы будут иметь
половинную ширину.

Примеры: WIDTH 20 информация выводится строками не более 20 сим-
волов шириной, причем символы имеют нормальную
ширину
WIDTH 60 информация выводится строками не более 60 сим-
волов шириной, причем символы имеют половинную
ширину

Примечание: Выполнение оператора WIDTH очищает экран дисплея.

------------------------------------------------------------------------
INSTR - функция положения подстроки в строке

Формат: INSTR([<арифм.выражение>,]<строка1>,<строка2>)

Функция определяет номер позиции, начиная с которой строка2 входит в
строку1, причем поиск начинается с позиции, заданной значением арифм.выраже-
ния. В случае отсутствия первого аргумента поиск начинается с первого симво-
ла строки1. Функция будет равна 0, если строка2 не является подстрокой стро-
ки1.

Примеры: INSTR(3,"TAМТАМ","TA") дает 4
INSTR("TAМТАМ","TA") дает 1
INSTR("ALFA","alfa") дает 0
INSTR("AB","") дает 1
INSTR("","AB") дает 0

Примечание: Значение арифм.выражения должно находиться в интервале от 0 до
255.

------------------------------------------------------------------------
AUTO - команда автонумерации строк

Формат: AUTO [<номер строки>][,<шаг>]

Команда используется для автоматической нумерации строк в процессе вво-
да или отладки программы. В качестве аргументов, если это необходимо, указы-
ваются номер начальной строки для автонумерации и шаг нумерации (по умолча-
нию оба этих значения равны 10). Номер текущей строки может быть заменен
точкой.
Команда AUTO присваивает номер каждой очередной строке автоматически,
после нажатия клавиши ВВОД при вводе предшествующей строки. Если строка со
сформированным таким образом номером уже имеется в программе, то после номе-
ра строки появится символ "*", который исчезнет при последующих просмотрах
текста.

Примеры: AUTO 10,5 нумерация со строки 10 с шагом 5
AUTO 100 нумерация со строки 100 с шагом 10
AUTO . нумерация с текущей строки с шагом 10

Примечания: 1. Нажатие клавиши F2 заменяет команду AUTO.
2. Для отмены автонумерации необходимо нажать клавиши
CTRL+STOR.

------------------------------------------------------------------------
VAL - функция преобразования строки в число

Формат: VAL(<строка>)

Функция дает числовое значение числа, заданного символьной строкой.
Строка, содержащая запись числа в шестнадцатиричной форме, должна начинаться
символами "&H", в двоичной форме - символами "&В", в восьмиричной форме сим-
волами "&O". Если строка не содержит в начале числа или символа "&", то зна-
чение функции равно нулю.

Примеры: VAL("123") дает 123
VAL("1Е3") дает 1000
VAL("ABC") дает 0
VAL("AB16") дает 0
VAL("14abC") дает 14
VAL(&HF) дает 15
VAL(&B11) дает 3
VAL(&O10) дает 8

------------------------------------------------------------------------
INT - функция выделения целой части

Формат: INT(<арифм.выражение>)

Функция выделяет целую часть числа, равного значению арифм.выражения.

Примеры: INT(3) выдает 3
INT(4.9) выдает 4
INT(-5.2) выдает -6

------------------------------------------------------------------------
READ - оператор ввода данных

Формат: READ <список переменных>

Оператор READ содержит переменные, которым присваиваются значения, за-
писанныe в операторе DATA. Список переменных может включать числовые и сим-
вольные переменные, разделенные запятыми.
Выполнение каждого оператора READ приводит к присвоению очередной пере-
менной значения, следующего за последним прочитанным. В начале программы это
первый элемент списка первого записанного в программе оператора DATA. Изме-
нить порядок чтения можно с помощью оператора RESTORE.

Пример: 20 DATA 1,-12.236,1.5,ABCD
30 DATA 6,134,"AB, CD",789
...
70 READ K,D1
80 READ L,S$
Выполнение этой части программы равносильно выполнению операторов:
70 К=1:D1=-12.236
80 L=1.5:S$="ABCD"

------------------------------------------------------------------------
CLS - оператор очистки экрана

Формат: CLS

Оператор используется для очистки экрана и установки курсора в левый
верхний угол экрана. В командном режиме он может быть заменен одновременным
нажатием клавиш HOME/CLS и SHIFT. Нажатие клавиши F10 также производит
очистку экрана перед запуском программы.

Пример: 10 CLS
20 LOCATE 20,2
30 PRINT "ПРИВЕТ"
40 GOTO 40
После запуска программы экран очистится, начиная с 20-й позиции 2-й
строки будет напечатано слово "ПРИВЕТ".

------------------------------------------------------------------------
XOR - операция исключающего логического сложения

Формат: <лог.выражение1> XOR <лог.выражение2>

Результатом выполнения операция XOR будет -1, если только одно из
лог.выражений инстинно, и 0, если они инстинны или ложны одновременно.

Пример: IF X>0 XOR Y>0 THEN 1000 ELSE 2000
Управление будет передано строке с номером 1000, если либо X>0, либо
Y>0, и строке с номером 2000 в противном случае.

Примечание: Если в качестве аргументов будут использоваться не логические, а
арифметические выражения, имеющие целые значения, то операция
XOR будет применяться к их значениям побитово.

------------------------------------------------------------------------
RENUM - команда перенумерации строк

Формат: RENUM [<номер строки1>][,<номер строки2>][,<шаг>]

Команда перенумеровывает строки программы, начиная с номера строки2 с
заданным шагом, причем в качестве нового начального номера берется номер
строки1. По умолчанию значение первого параметра равно номеру первой строки
в программе, а второго и третьего - равно 10. Вместо номера строки1 или 2
может быть использована точка, указывающая на номер последней использованной
строки. Следует помнить, что номер строки1 должен быть не меньше номера
строки2.
Одновременно с перенумерацией строк команда RENUM приводит в соот-
ветствие с новой нумерацией все попавшие в интервал передачи управления. Так
как при передаче управления несуществующим строкам перенумерация не происхо-
дит и выводится сообщение об ошибке, то команду RENUM можно использовать для
проверки текста программы.

Примеры: RENUM 100,10,5 перенумерация строк начиная со строки 10 с
шагом 5, в качестве нового номера берется
номер 100
RENUM 20 перенумерация строк начиная со строки 10 с
шагом 10, в качестве нового номера берется
номер 20

------------------------------------------------------------------------
SAVE - команда сохранения программы

Формат: SAVE <имя программы> [,A]

Команда позволяет сохранить текст программы на внешнем носителе (диске-
те или магнитной ленте), причем содержание оперативной памяти при этом не
изменяется. При указании атрибута А сохраненная программа может впоследствии
вызываться не только командой LOAD, но и MERGE.

Пример: SAVE "NAME"

------------------------------------------------------------------------
RUN - команда запуска программы

Формат: RUN [<номер строки>] или RUN <имя файла>

Команда загружает с внешнего носителя файл с указанным именем и присту-
пает к его выполнению. При отсутствии имени файла выполняется программа, со-
держащаяся в оперативной памяти, начиная с указанного номера строки (по
умолчанию - с первой строки программы). При запуске происходит стирание всех
переменных, поэтому в случае необходимости их сохранения вместо команды RUN
следует использовать операторы GOTO или GOSUB. В программном режиме команда
RUN позволяет определять последовательность выполнения программных модулей.

Примеры: RUN "PROG" запускает программу, записанную на внешнем но-
сителе в файл с именем PROG
RUN 100 запускает программу, находящуюся в оперативной
памяти, начиная со строки номер 100

Примечание: Аналогично команде RUN действует команда LOAD с параметром R,
но она не закрывает открытых файлов.

------------------------------------------------------------------------
VPOKE - оператор записи в видеопамять

Формат: VPOKE <адрес>,<арифм.выражение>

При выполнении этого оператора указанное значение (от 0 до 255) зано-
сится в ячейку видеопамяти с указанным адресом. Адрес и значение могут быть
переменными или константами. Значение адреса должно находиться в пределах от
&H0000 до &HFFFF (т.е. от 0000 до FFFF в шестнадцатиричной системе счисле-
ния).

Пример: 10 A=24
20 VPOKE &H0B00,A
В ячейку видеопамяти с адресом 0B00 запишется значение 24.

Примечание: Результат действия оператора зависит от текущего состояния ви-
деопроцессора. Его использование эффективно при хорошем знании
порядка размещения таблиц в видеопамяти.

------------------------------------------------------------------------
ERASE - оператор удаления массива

Формат: ERASE <имя масива>[,<имя массива>...]

Оператор освобождает место в машинной памяти, занятое указанным масси-
вом (массивами), которое становится доступным для записи информации.

Пример: ERASE А,В,С
Оператор освобождает машинную память, занятую массивами А, В и С.

Примечание: 1. Оператор ERASE целесообразно использовать в больших програм-
мах, требующих значительных объемов памяти.
2. Удаленный с помощью оператора ERASE массив можно объявить за-
ново оператором DIM.

------------------------------------------------------------------------
SPACE$ - функция создания строки пробелов

Формат: SPACE$(<арифм.выражение>)

Функция создает строку пробелов, длина которой равна значению арифм.вы-
ражения.

Пример: SPACE$(5) создает строку " "

Примечание: Значение аргумента должно находиться в интервале от 0 до 255.

------------------------------------------------------------------------
LOG - функция логарифма

Формат: LOG(<арифм.выражение>)

Функция вычисляет натуральный логарифм от значения арифм.выражения.

Примеры: LOG(Х)/LOG(А) дает логарифм числа Х по основанию А
LOG(2.71828) дает .99999932734724

Примечание: Значение арифм.выражения должно быть положительно.

------------------------------------------------------------------------
CSRLIN - функция определения позиции курсора

Формат: CSRLIN

Функция выдает номер строки, в которой в момент ее выполнения находится
курсор. Значение функции будет лежать в интервале от 0 до 22 (или 23, если
был выполнен оператор KEY OFF). Используется в текстовых режимах SCREEN0 и
SCREEN1.

Пример: 10 CLS
20 PRINT RND(1)
30 IF CSRLIN<20 THEN 20
40 END
Программа выводит на экран столбец из 20 случайных чисел.

------------------------------------------------------------------------
LPRINT - оператор вывода на печать

Формат: LPRINT [<список>]

Действие оператора аналогично действию оператора PRINT, но вывод проис-
ходит не на экран дисплея, а на принтер.



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:11
Сообщение #3


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



------------------------------------------------------------------------
Формат: RND(<арифм.выражение>)

Функция генерирует случайное число в диапазоне от 0 до 1 (1 исключает-
ся). Если значение арифм.выражения отрицательно, то только оно определяет
результат выполнения функции RND. Если оно равно нулю, то значением функции
будет предыдущее случайное число. При положительном значении арифм.выражения
значение функции RND будет зависеть только от предыдущего вычисленного слу-
чайного числа.
Функция RND, как правило, используется в игровых и моделирующих прог-
раммах. Для получения практически непредсказуемых результатов ее выполнения
целесообразно включить в начало программы оператор A=RND(-TIME).

Пример: INT(RND(1)*6)+1
В результате выполнения оператора с равной вероятностью будет выб-
рано одно из чисел: 1, 2, 3, 4, 5, 6.

Примечание: Для получения случайного натурального числа в диапазоне от X до
Y удобно использовать функцию INT(RND(1)*(Y-X+1))+X.

------------------------------------------------------------------------
TAB - функция разметки экрана

Формат: TAB(<арифм.выражение>)

Функция используется в операторе PRINT для распечатки данных в опреде-
ленных позициях экрана (например, при печатании таблиц). Значение арифм.вы-
ражения указывает номер колонки, с которой начнется печать очередной порции
информации. При использовании в одном операторе PRINT функции TAB несколько
раз значения аргументов должны последовательно возрастать; в противном слу-
чае параметр TAB будет игнорироваться.

Пример: 10 PRINT"012345"
20 FOR I=0 TO 4
30 PRINT TAB(I);"A";TAB(5);"B"
40 NEXT I
В результате выполнения этой программы на экран будет выведено следу-
ющее изображение (символ "|" означает левую границу экрана):
|012345
|A B
| A B
| A B
| A B
| AB

Примечания: 1. Значение аргумента должно находиться в интервале от 0 до 255.
2. Результат выполнения функции TAB зависит от ширины экрана,
которую можно менять оператором WIDTH.

------------------------------------------------------------------------
LEFT$ - функция вырезки начала строки

Формат: LEFT$(<строка>,<арифм.выражение>)

Функция дает подстроку длины, равной значению арифм.выражения, взятой
начиная с левого края строки, указанной в качестве аргумента. Если значение
арифм.выражения больше длины строки, то в качестве подстроки берется вся ис-
ходная строка, не дополняемая пробелами.

Примеры: LEFT$("PARAPET",4) дает "PARA"
LEFT$("ABCD",6) дает "ABCD"
LEFT$("ABCD",0) дает ""

Примечание: Значение арифм.выражения должно лежать в интервале от 0 до 255.


------------------------------------------------------------------------
STR$ - функция преобразования числа в строку

Формат: STR$(<арифм.выражение>)

Функция преобразует числовой аргумент в символьную строку (в десятичном
виде), оставляя слева пробел для неотрицательных чисел.

Примеры: STR$(156) дает " 156"
STR$(1E2) дает " 100"
STR$(-1/4) дает "-.25"
STR$(2^2+3/4) дает " 4.75"

------------------------------------------------------------------------
PRINT# - оператор записи данных в файл

Формат: PRINT # <номер>,<список>

Оператор действует аналогично оператору PRINT, но список данных выво-
дится не на экран дисплея, а в файл с указанным номером.

Пример: 10 OPEN "TEST" FOR OUTPUT AS #1
20 FOR I=0 TO 10
30 PRINT #1,I
40 NEXT
50 CLOSE
Программа создает на диске файл с именем "TEST" и записывает в него
числа от 0 до 10.

Примечание: Файл, используемый в операторе PRINT#, должен быть предваритель-
но открыт с помощью оператора OPEN с атрибутом OUTPUT.

------------------------------------------------------------------------
END - оператор конца программы

Формат: END

При выполнении оператора происходит закрытие всех открытых файлов,
окончание работы программы и выход в командный режим. Оператор END может
размещаться в любом месте программы, но, как правило, является последним.

Примеры: 100 PRINT"КОНЕЦ" : END

100 IF B=0 THEN END

------------------------------------------------------------------------
AND - операция логического умножения

Формат: <лог.выражение1> AND <лог.выражение2>

Результатом выполнения операции AND будет -1, если истинны оба заданных
выражения, и 0, если хотя бы одно выражение является ложным. Операция, как
правило, используется в операторе IF.

Примеры: Х>0 АND Y>0
Значение выражения будет равно -1, если числа Х и Y являются положи-
тельными; если же хотя бы одно из этих чисел отрицательно или равно нулю, то
результат также будет нулевым.
IF H>0 AND Y$ ="HATA" THEN 100
Управление будет передано строке с номером 100, если число Н положи-
тельно и Y$="НАТА"; в противном случае будет выполняться следующий за IF
оператор.

Примечание: Если в качестве аргументов будут использоваться не логические, а
арифметические выражения, имеющие целые значения, то операция
AND будет применяться к их значениям побитово.

------------------------------------------------------------------------
LOAD - команда загрузки программы

Формат: LOAD <имя программы> [,R]

Команда LOAD производит загрузку указанной программы с внешнего носите-
ля (дискеты или магнитной ленты) в оперативную память; запись программы во
внешней памяти при этом не меняется. Наличие параметра R автоматически за-
пускает программу на выполнение после загрузки.

Примеры: LOAD "NAME"
LOAD "PROG",R

Примечания: 1. Программа, имя которой указывается в команде LOAD, должна
быть предварительно записана на внешний носитель командой SA-
VE. При загрузке программы с магнитной ленты имя программы
должно быть записано так же, как при ее сохранении (т.е. с
различением строчных и заглавных букв).
2. Команда вида: LOAD<имя программы>,R - может быть заменена на
команду RUN<имя программы>.

------------------------------------------------------------------------
DATA - оператор задания данных

Формат: DATA <список значений>

Оператор DATA содержит список значений, которые присваиваются перемен-
ным, указанным в операторе READ. Этот список может включать числовые и сим-
вольные константы, разделяемые запятыми. Если символьная константа содержит
запятую или пробел, ее необходимо заключить в кавычки. Списки всех операто-
ров DATA рассматриваются как один блок данных для всей программы.
Выполнение каждого оператора READ приводит к присвоению значения,следу-
ющего за последним прочитанным. В начале программы это первый элемент списка
первого выполнившегося оператора DATA. Изменить порядок чтения можно с по-
мощью оператора RESTORE.

Пример: 20 DATA 1,-12.236,1.5,ABCD
30 DATA 6,134,"AB, CD",789
...
70 READ K,D1
80 READ L,S$
Выполнение этой части программы равносильно выполнению операторов:
70 К=1:D1=-12.236
80 L=1.5:S$="ABCD"

------------------------------------------------------------------------
CHR$ - функция получения символа по коду

Формат: CHR$(<арифм.выражение>)

Функция выдает символ, чей ASCII-код равен значению арифм.выражения.
Значение арифм.выражения должно находиться в интервале от 0 до 255.

Примеры: CHR$(65) дает символ А
CHR$(34)+"ARARAT"+CHR$(34) дает строку "ARARAT" (34 - код кавы-
чек)

------------------------------------------------------------------------
OR - операция логического сложения

Формат: <лог.выражение1> OR <лог.выражение2>

Результатом выполнения операции OR будет -1, если хотя бы одно из двух
указанных выражений истинно, и 0, если оба они ложны. Операция, как правило,
используется в операторе IF.

Примеры: Х>0 OR Y>0
Значение выражения будет равно -1 , если хотя бы одно из чисел Х, Y по-
ложительно; в противном случае оно будет нулевым.
IF H>0 OR Y$="NAL" THEN 100 ELSE 200
Управление будет передано строке с номером 100, если число Н является
положительным или Y$="NAL"; если не выполняются оба условия, то будет выпол-
няться оператор, находящийся в строке с номером 200.

Примечание: Если в качестве аргументов будут использованы не логические, а
арифметические выражения, имеющие целые значения, то операция OR
будет применяться к их значениям побитово.

------------------------------------------------------------------------
STRING$ - функция создания строки повторяющихся символов

Формат: STRING$(<арифм.выражение1>,<строка>) или
STRING$(<арифм.выражение1>,<арифм.выражение2>)

Функция создает строку повторяющихся символов длины, равной значению
арифм.выражения1. В качестве образующего элемента берется либо первый символ
указанной строки, либо символ, ASCII-код которого равен значению арифм.выра-
жения2.

Примеры: STRING$(5,"A") выдает "ААААА"
STRING$(4,65) выдает "АААА"
STRING$(3,"BFM") выдает "ВВВ"
STRING$(0,"E") выдает ""

Примечание: Значение арифм.выражения1 должно быть целым числом в интервале
от 0 до 255.

------------------------------------------------------------------------
EXP - функция экспоненты

Формат: EXP(<арифм.выражение>)

Функция вычисляет показательную функцию по основанию "е" от значения
арифм.выражения.

Пример: EXP(1) выдает 2.71828284588,т.е. значение е.

Примечание: Значение аргумента должно находиться в интервале от -149.688 до
145.

------------------------------------------------------------------------
SIN - функция sin x

Формат: SIN (<арифм.выражение>)

Вычисляет синус от аргумента, заданного в радианах.

Пример: 100 K=G*SIN(A)
Вычисляет длину катета прямоугольного треугольника, где G - длина гипо-
тенузы, A - величина угла, лежащего против катета, в радианах.

Примечание: 1 радиан равен (180 градусов) / 3.1415926535898.

------------------------------------------------------------------------
ASC - функция выдачи кода символа

Формат: ASC(<строка>)

Функция дает значение ASCII-кода первого символа заданной строки. Зна-
чения функции лежат в интервале от 0 до 255.

Примеры: ASC("A") дает 65
ASC("ANRG") дает 65
АSC(" ") дает 32

Примечание: Строка-аргумент не должна быть пустой строкой.

------------------------------------------------------------------------
IF...THEN...ELSE - оператор условного перехода

Формат: IF <логическое выражение> THEN <операторы> [ELSE<операторы>]

Eсли логическое выражение инстинно, то выполняются операторы после
THEN, иначе выполняются операторы после ELSE. Если отсутствует ELSE и логи-
ческое выражение не выполняется, то управление передается следующей строке.
Если после THEN или ELSE только один оператор, и это - GOTO, то слово GOTO
можно опустить.
Логическое выражение может состоять либо из простого логического выска-
зывания, либо из их комбинаций вида: <высказывание><операция><высказывание>,
разделенных логическими операциями AND, OR. Например: A<0 AND A>B и т.п.
Оператор часто используется при диалоге с пользователем и для проверки
правильности ввода данных.

Примеры: 10 IF B=1 THEN A=A+1 ELSE 100
20 INPUT"Продолжить игру?";K$
30 IF K$="НЕТ" OR K$="нет" THEN END

10 IF INKEY$="" THEN 10
Остановка работы программы до нажатия какой-либо клавиши.

Примечание: Ключевое слово THEN можно заменить на GOTO.

------------------------------------------------------------------------
GOTO - оператор безусловного перехода

Формат: GOTO <номер строки> или GO TO <номер строки>

Перeдается управление первому оператору в строке с указанным номером.
Используется при организации разветвлений; чтобы обойти группу операторов,
которые не следует выполнять, например, обойти подпрограммы, размещенные в
начале основной программы; при повторении действий и т.п.

Примеры: 10 'Возводит введенное число в квадрат
20 INPUT"Введите число";N
30 IF N=0 THEN END
40 'При вводе 0 - конец работы программы
50 PRINT"Число в квадрате =";N^2
60 GOTO 10
(здесь GOTO используется для повторения вычислений с новым числом)

10 SCREEN 5: CIRCLE(100,100),50,1
20 GOTO 20
(здесь GOTO - для "удержания" рисунка на экране)

Примечания: 1. Номер строки должен быть в программе.
2. Не рекомендуется употреблять много операторов GOTO в про-
грамме.

------------------------------------------------------------------------
MERGE - команда объединения программ

Формат: MERGE"<имя файла>"

Команда объединяет файл с указанным именем, ранее сохраненный в формате
ASCII (т.е. записанный оператором SAVE...,A), с текстом программы, находя-
щейся в памяти компьютера. При этом программа, вызываемая с дискеты, имеет
более высокий приоритет по сравнению с программой, находящейся в оперативной
памяти. Поэтому при наличии в обеих программах строк с одинаковыми номерами
в памяти останутся соответствующие строки "добавляемой" программы.

Пример: MERGE "PROG" добавляет к находящейся в памяти программе
файл с именем PROG, записанный на дискете

------------------------------------------------------------------------
NOT - операция логического отрицания

Формат: NOT <лог.выражение>

Операция NOT позволяет получить значение, противоположное значению за-
данного логического выражения. Используется, как правило, в операторе IF.

Примеры: IF NOT (А=2 AND B=3) THEN 100 ELSE 200
Управление будет передано строке с номером 200, если А=2 и В=3, и стро-
ке с номером 100, если хотя бы одно из этих условий не выполнено.
Y=NOT Х=0
Y будет равен 0, если число Х равно нулю, и -1, если Х больше или мень-
ше нуля.

Примечание: Если в качестве аргумента будет использоваться не логическое, а
арифметическое выражение, имеющее целое значение, то операция
NOT будет применяться к его значению побитово.

------------------------------------------------------------------------
SWAP - оператор обмена значений переменных

Формат: SWAP <переменная1>,<переменная2>

При выполнении оператора значение переменной1 присваивается перемен-
ной2, а значение переменной2 - переменной1. Обе указанные переменные должны
быть одного типа: символьные или числовые. Для числовых переменных, кроме
того, необходимо и совпадение подтипов: целочисленность, одинарная или двой-
ная точность.

Пример: 10 DIM A(10)
20 FOR I=1 TO 10
30 INPUT "ВВЕДИТЕ ЧИСЛО";A(I)
40 NEXT I
50 FOR I=1 TO 9
60 FOR J=1 TO 9
70 IF A(J)


--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:11
Сообщение #4


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



------------------------------------------------------------------------
Формат: GOSUB <номер строки>

В памяти запоминается местоположение следующего оператора программы, и
происходит переход на строку с указанным номером. Используется для вызова
подпрограммы, которая размещается начиная с указанного номера строки.

Пример: : : :
100 Y1=0 : Y2=10 : GOSUB 1000
: : :
990 END
1000'Подпрограмма
1010 FOR Y=Y1 TO Y2
1020 LOCATE 0,Y : PRINT SPACE$(40)
1030 NEXT Y : RETURN
Подпрограмма очищает (заполняет пробелами) часть текстового экрана со
строки номер Y1 по строку номер Y2; она может быть вызвана из любого места
программы.

Примечания: 1. Подпрограмма заканчивается оператором RETURN, который воз-
вращает управление следующему за GOSUB оператору.
2. Разрешается вызов подпрограммы из подпрограммы.

------------------------------------------------------------------------
SQR - функция извлечения квадратного корня

Формат: SQR(<арифм.выражение>)

Функция извлекает квадратный корень из значения арифм.выражения.

Пример: SQR(25) выдает 5

Примечание: Значение аргумента должно быть неотрицательным.

------------------------------------------------------------------------
ON GOSUB - оператор условного вызова подпрограмм

Формат: ON <арифм.выражение> GOSUB <номера строк>

Оператор позволяет осуществить вызов одной из нескольких указанных под-
программ в зависимости от того, какое значение имеет арифм.выражение. Во
время выполнения оператора выражение вычисляется и целая часть его использу-
ется в качестве указателя перехода на один из номеров строк. После встречи
оператора RETURN управление передается оператору, следующему за ON...GOSUB.

Пример: 50 ON P GOSUB 100,140,180
60 ...
...
100 K=K+1
110 RETURN
Оператор передает управление строке 100, если Р=1, строке 140, если Р=2
и строке 180, если Р=3. Например, если Р=1, выполнятся строки 100,110,60,...

Примечание: Любые другие значения Р, не выходящие за пределы 0-255, приведут
к передаче управления на следующий оператор. Если Р<0 или Р>255,
то будет выдано сообщение об ошибке.

------------------------------------------------------------------------
INKEY$ - функция распознавания клавиш

Формат: INKEY$

Результатом выполнения функции является символ, ASCII-код которого со-
ответствует нажатой клавише на клавиатуре. Использование функции INKEY$ в
операторе IF позволяет запрограммировать реакцию ЭВМ на нажатие определенных
клавиш.

Пример: 10 K$=INKEY$
20 IF K$="" THEN 10
30 PRINT "НАЖАТА КЛАВИША";K$
40 GOTO 10
Программа выводит на печать сообщение о том, какая клавиша была нажата;
если переменная К$ пуста, то управление возвращается строке с номером 10.

Примечание: Для распознавания клавиш, не имеющих графического представления,
используются их ASCII-коды, например, клавиша ESC имеет код 27,
SELECT - 24, CLS/HOME - 11, INS - 10, DEL - 127, BS - 8, ENTER -
13, TAB - 9, стрелка_вправо - 28, стрелка_влево - 29, стрел-
ка_вверх - 30, стрелка_вниз - 31. Однако этим способом нельзя
распознать клавиши CTRL, SHIFT, GRAPH, CAPS, РУС.

------------------------------------------------------------------------
ABS - функция модуля числа

Формат: ABS(<арифм.выражение>)

Функция вычисляет абсолютное значение арифм.выражения.

Примеры: ABS(-1) дает 1
ABS(6) дает 6

------------------------------------------------------------------------
RIGHT$ - функция получения конца строки

Формат: RIGHT$(<строка>,<арифм.выражение>)

Функция выдает подстроку длины, равной значению арифм.выражения, взятую
начиная с правого края строки, указанной в качестве аргумента. Если значение
арифм.выражения больше длины строки, то в качестве подстроки берется вся ис-
ходная строка, не дополняемая пробелами.

Примеры: RIGHT$("PARAPET",3) дает "РЕТ"
RIGHT$("ABCD",5) дает "ABCD"

------------------------------------------------------------------------
INPUT - оператор ввода c экрана

Формат: INPUT ["<сообщение>";] <список переменных>

Оператор используется для ввода данных с экрана дисплея. Вводимые зна-
чения будут последовательно присваиваться перечисленным в списке переменным,
как числовым, так и символьным. Символьная строка, играющая роль сообщения,
может содержать необходимый для запроса комментарий.
При выполнении оператора INPUT на экран выводится сообщение и знак "?".
Программа продолжит работу после набора на экране значений переменных и на-
жатия клавиши "ВВОД". Число и тип значений должны соответствобать числу и
типу переменных в списке. Если символьные переменные содержат запятую или
пробел, то их необходимо заключить в кавычки.

Пример: 20 INPUT "ВВЕДИТЕ МАССУ И ПЛОТНОСТЬ";M,P
30 PRINT М,Р
При выполнении программы на экране появится сообщение:
ВВЕДИТЕ МАССУ И ПЛОТНОСТЬ?
После набора чисел 12,10 и нажатия клавиши "ВВОД" на экране будет:
ВВЕДИТЕ МАССУ И ПЛОТНОСТЬ? 10,12
10 12

Примечание: 1.Если количество введенных значений будет меньше числа перемен-
ных в списке, то на экране появятся символы "??", после чего
необходимо продолжить ввод данных.
2.Если количество данных будет больше необходимого, то последние
лишние будут игнорироваться, и программа продолжит работу.

------------------------------------------------------------------------
POS - функция определения позиции курсора

Формат: POS(<арифм.выражение>)

Функция выдает номер позиции в строке, в которой в момент ее выполнения
находится курсор. Наличие аргумента обязательно, но значение арифм.выражения
может быть произвольным, так как полностью игнорируется. Значение функции
POS будет лежать в интервале от 0 до значения аргумента последнего оператора
WIDTH минус 1. Используется в текстовых режимах SCREEN0 и SCREEN1.

Пример: 10 SCREEN0
20 FOR I=0 TO 5
30 LOCATE I*4,1
40 X=POS(87)
50 PRINT X;
60 NEXT
После выполнения этой программы первая строка экрана будет иметь вид
(символ "|" отмечает левую границу экрана):
| 0 4 8 12 16 20

------------------------------------------------------------------------
SPC - функция указания числа пробелов

Формат: SPC(<арифм.выражение>)

Функция используется в операторе PRINT (или LPRINT). Значение арифм.вы-
ражения указывает количество пробелов, которое необходимо вывести после пос-
леднего выведенного на печать символа для распечатки новой порции информа-
ции.

Пример: 10 FOR I=0 TO 16 STEP 4
20 PRINT SPC(I);"*";
30 NEXT I
Программа выведет на печать следующую строку (символ "|" отмечает левую
границу экрана):
|* * * * *

Примечания: 1. Значение аргумента должно находиться в интервале от 0 до 255.
2. Функция SPC неприменима для создания строки пробелов (т.е.
оператор типа A$=SPC(10) невыполним).

------------------------------------------------------------------------
LEN - функция вычисления длины строки

Формат: LEN(<строка>)

Функция дает количество символов, содержащихся в аргументе.

Пример: LEN("ABCD") имеет значение 4
LEN("S"+"PORT") имеет значение 5
LEN("") имеет значение 0

------------------------------------------------------------------------
RESTORE - оператор управления вводом данных

Формат: RESTORE [<номер строки>]

Оператор RESTORE позволяет изменить последовательность ввода данных в
программе, а также многократно считывать одни и те же данные. В качестве ар-
гумента в нем указывается номер строки, в которой расположен необходимый для
последующего считывания оператором READ оператор DATA. При отсутствии номера
строки чтение данных начинается с первого значения списка.

Пример: 20 DATA 1,-12.236,1.5,ABCD
30 DATA 6,134,"AB, CD",789
...
60 RESTORE 30
70 READ K,D1
80 READ S$,L
Выполнение этой части программы равносильно выполнению операторов:
70 К=6:D1=134
80 S$="AB, CD":L=789
вне зависимости от того,выполнялись ли операторы READ до этого.

------------------------------------------------------------------------
DEFFN - оператор описания функции пользователя

Формат: DEFFN<**>(аргумент1,...,аргументN)=<выражение>

Если в программе необходимо несколько раз вычислить значение одного и
того же выражения при различных значениях некоторого параметра, то целесооб-
разно определить соответствующую функцию с помощью оператора DEFFN. Имя фун-
кции состоит из букв FN и имени переменной (например FNA, FNL3, FNED ). Пос-
ле знака равенства записывается произвольное выражение, зависящее, как пра-
вило, от записанных в скобках аргументов. При обращении к функции в скобках
записываются переменные или константы, значение которых будет подставлено в
выражение вместо соответствующих аргументов.
Так как перед обращением к функции она должна быть определена, то опе-
раторы DEFFN удобнее размещать в начале программы.

Пример: 10 DEFFNA(X,Y)=X*3+Y-45
20 DEFFNA2(X,Y,Z)=X*Z+X*Y+15
30 A=5:B=3
40 R1=FNA(A,3)
50 R2=FNA2(B,0,A)
После выполнения этой части программы R1 будет иметь значение, равное
A*3+3-45 (=-27), а R2 значение B*A+B*0+15 (=30).

Примечание: Если оператор DEFFN записан неверно, то в сообщении об ошибке
будет указан номер строки с обращением к функции, а не строки
с оператором DEFFN.

------------------------------------------------------------------------
NEW - команда очистки памяти

Формат: NEW

Команда очищает оперативную память от введенной ранее программы, обну-
ляет все переменные и закрывает все открытые файлы. Используется для удале-
ния из памяти старой программы и начала записи новой. В программе команда
NEW осуществляет переход в командный режим с очисткой памяти.

Пример: NEW

------------------------------------------------------------------------
TIME - псевдопеременная счетчика времени

Формат: TIME или
TIME=<имя переменной>

Значение псевдопеременной TIME увеличивается на единицу 60 раз в секунду
и автоматически сбрасывается на 0 при достижении значения 65535. Прочитать
это значение можно, используя TIME как безаргументную функцию. Значение TIME
можно изменить, присвоив ей значение как обычной переменной в указанных пре-
делах.

Пример: 10 TIME=0
20 IF TIME<600 GOTO 20
30 PRINT"ПРОШЛО 10 СЕКУНД ПОСЛЕ ЗАПУСКА"
Через 10 секунд после запуска программы появится сообщение.

------------------------------------------------------------------------
EOF - функция определения конца файла

Формат: EOF(<номер файла>)

При работе с файлом функция EOF определяет момент достижения конца фай-
ла по появлению специального символа. Ее значение равно -1, если код конца
файла найден; в противном случае оно равно нулю.

Пример: 10 OPEN "TEST" FOR INPUT AS#1
20 IF EOF(1) THEN 60
30 INPUT #1,A
40 PRINT A
50 GOTO 20
60 CLOSE
Программа открывает находящийся на дискете файл TEST, считывает находя-
щиеся в нем числовые данные и выводит их на печать. По достижении конца фай-
ла файл закрывается.

------------------------------------------------------------------------
DELETE - команда удаления строк

Формат: I. DELETE <номер строки1>
II. DELETE [<номер строки1>]-<номер строки2>

Команда предназначена для удаления из текста программы одной (вариант
I) или нескольких (вариант II) строк. В первом случае удаляется строка с но-
мером1, во втором удаление происходит, начиная с номера строки1 (по умолча-
нию - начало программы) и кончая номером строки2. Если в программе от-
сутствует хотя бы один из указанных номеров строк, то выводится сообщение об
ошибке и удаление строк не происходит.

Примеры: DELETE 10-200 удаление строк с 10 по 200
DELETE 100 удаление строки 100
DELETE -500 удаление всех строк до 500 включительно

------------------------------------------------------------------------
SGN - функция знака числа

Формат: SGN(<арифм.выражение>)

Функция определяет знак арифм.выражения. Если значение арифм.выражения
положительно, то результат выполнения функции равен 1; если отрицательно -
-1; если оно равно нулю, то значение функции также равно 0.

Примеры: SGN(24) выдает 1
SGN(2*2-4) выдает 0
SGN(-3465.7) выдает -1

------------------------------------------------------------------------
VPEEK - функция чтения данных из видеопамяти

Формат: VPEEK(<адрес>)

Функция считывает значение (в интервале от 0 до 255), хранящееся в ви-
деопамяти по указанному адресу. Адрес может лежать в интервале от 0000 до
FFFF (в шестнадцатиричной системе счисления).

Пример: X=VPEEK(&HF456)
В результате выполнения этого оператора переменной Х будет присвоено
значение, размещенное в видеопамяти по адресу F456.


--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:12
Сообщение #5


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Справочник по языку программирования BASIC состоит из двух частей: Меню
и Информативной части. Передвижение как по меню, так и по информативной час-
ти осуществляется с помощью клавиш со стрелками вверх и вниз. Для ускоренно-
го передвижения можно использовать клавиши со стрелками вверх и вниз при на-
жатой клавише CTRL. Выбрав в меню оператор, функцию или команду, по которым
вам необходимо получить справку, нажмите клавишу ПРОБЕЛ. Для выхода в меню
из информативной части используйте клавишу ВВОД. В любой момент Вы можете
покинуть справочник, используя клавишу ESC. При последующем входе в справоч-
ник (с помощью клавиши SELECT) Вы окажетесь в том же самом месте справочни-
ка, из которого его покинули. Все клавиши, которые в данный момент могут
оказать на работу справочника какое-либо действие, указываются в нижней
строке.

------------------------------------------------------------------------
SPRITE$ - псевдопеременная образа спрайта

Формат: SPRITE$(<номер образа>)

Псевдопеременная содержит образ спрайта с указанным номером и определя-
ется путем присваивания ей значения символьной строки. Эта строка должна
состоять из 8 или 32 символов (в зависимости от размера спрайта: 8*8 или
16*16 точек). В первом случае номер спрайта должен лежать в интервале от 0
до 255, во втором - от 0 до 63.
Для ознакомления с различными способами задания спрайтов рассмотрим

Примеры: 10 SCREEN 1
20 S$=""
30 FOR J=0 TO 7
40 READ A$
50 S$=S$+CHR$(VAL("&B"+A$))
60 NEXT J
70 SPRITE$(1)=S$
80 PUT SPRITE 1,(60,50),7,1
90 END
100 DATA 11111111
110 DATA 10000001
120 DATA 10000001
130 DATA 10000001
140 DATA 10000001
150 DATA 10000001
160 DATA 10000001
170 DATA 11111111
Программа определяет спрайт размером 8*8 точек и выводит его на экран в
виде голубого квадрата. Вид спрайта задается в строках 100-170, где 1 соот-
ветствует точкам, цвет которых надо менять, а 0 - тем, которые следует оста-
вить прозрачными. Цикл в строках 30-60 преобразует эти символы в вид, соот-
ветствующий внутреннему представлению спрайта, и данный вид присваивается
образу спрайта номер 1.
Этот же спрайт может быть определен оператором
SPRITE$(1)=CHR$(255)+STRING$(5,65)+CHR$(255)
Первый из приведенных выше способов хотя и долгий, но более наглядный,
второй же требует знания ASCII-кодов и потому не всегда удобен.

Аналогичную программу можно написать для определения спрайта размером
16*16:
10 SCREEN 1,2
20 SL$="" : SR$=""
30 FOR I=1 TO 16
40 READ A$
50 AL$=LEFT$(A$,8) : AR$=RIGHT$(A$,8)
60 SL$=SL$+CHR$(VAL("&B"+AL$))
70 SR$=SR$+CHR$(VAL("&B"+AR$))
80 NEXT
90 SPRITE$(0)=SL$+SR$
100 PUT SPRITE 0,(60,50),7,0
110 GOTO 110
1000 DATA 1000000000000000
1010 DATA 1100000000000000
1020 DATA 1110000000000000
1030 DATA 1111000000000000
1040 DATA 1111100000000000
1050 DATA 1111110000000000
1060 DATA 1111111000000000
1070 DATA 1111111100000000
1080 DATA 1111111110000000
1090 DATA 1111111111000000
1100 DATA 1111111111100000
1110 DATA 1111111111110000
1120 DATA 0000111100000000
1130 DATA 0000111100000000
1140 DATA 0000111100000000
1150 DATA 0000111100000000

Примечания: 1. Задание спрайтов возможно во всех экранах, кроме SCREEN0.
2. Псевдопеременная SPRITE$ позволяет определять только одноц-
ветные спрайты.

------------------------------------------------------------------------
LINE - оператор рисования отрезков и прямоугольников

Формат: LINE [[STEP] (X1,Y1)]-[STEP] (X2,Y2)[,Ц][,B] или
LINE [[STEP] (X1,Y1)]-[STEP] (X2,Y2)[,Ц][,BF]

Оператор используется в графических режимах (от SCREEN2 до SCREEN8) для
рисования отрезков и прямоугольников со следующими параметрами:
- числа X1,Y1 определяют координаты начала, а числа X2,Y2 - координаты
конца отрезка (при построении прямоугольника отрезок с указанными координа-
тами является его диагональю). При наличии атрибута STEP числа X1,Y1 (X2,Y2
соответственно) указывают приращение координат точки, упомянутой в последнем
выполненном графическом операторе. Эта же точка принимается за начало отрез-
ка, если числа X1,Y1 опущены;
- цвет отрезка (прямоугольника) определяется числом Ц. По умолчанию он
равен цвету изображения последнего выполненного оператора COLOR;
- если в операторе LINE присутствует расширение В, то рисуется замкну-
тый контур прямоугольника (но не его диагональ). Расширение BF дает изобра-
жение закрашенного прямоугольника.

Пример: 10 SCREEN 2:COLOR15,6,6
20 LINE(16,20)-(40,50),9,BF
30 LINE-STEP(50,22),15
40 LINE-STEP(10,10),,B
50 GOTO 50
Программа рисует закрашенный красный прямоугольник, от правого нижнего
угла которого отходит отрезок белого цвета. Правый конец этого отрезка сов-
падает с верхним левым углом замкнутого контура квадрата белого цвета.

Примечание: Допустимые значения чисел X1,Y1,X2,Y2,Ц определяются параметрами
конкретного экрана (см.оператор SCREEN). Если значение Ц выходит
за пределы допустимого, то будет выдано сообщение об ошибке. В
том случае, когда за пределы координатной системы выходят значе-
ния X1,X2,Y1,Y2, то на экране отображается только часть отрезка
(прямоугольника).

------------------------------------------------------------------------
SCREEN - оператор выбора режима экрана

Формат: SCREEN <номер>[,<формат>]

Oператор позволяет выбрать наиболее подходящий режим изображения на эк-
ране дисплея текстовой и графической информации. В качестве номера режима
используется число от 0 до 8. Второй параметр, формат, не действует в SCREEN
0. В остальных экранах он определяет формат образа и масштаб спрайтов следу-
ющим образом:
<формат>=0 - допустимы 256 спрайтов форматом 8*8, отображаемые в мас-
штабе х1;
<формат>=1 - допустимы 256 спрайтов форматом 8*8, отображаемые в мас-
штабе х2;
<формат>=2 - допустимы 64 спрайта форматом 16*16, отображаемые в мас-
штабе х1;
<формат>=3 - допустимы 64 спрайта форматом 16*16, отображаемые в мас-
штабе х2.
При начальной загрузке устанавливается режим SCREEN 0. В режиме прямого
доступа компьютер находится в одном из текстовых режимов (SCREEN 0 или SCRE-
EN 1); графические режимы (от SCREEN 2 до SCREEN 8) сохраняются только на
время выполнения программы. Каждое выполнение оператора SCREEN приводит к
очищению экрана; то же происходит и при окончании работы программы, если она
работала в графических режимах.
Выбор конкретного режима работы экрана зависит от цели использования
компьютера: при вводе текста важно его размещение на экране; в играх сущес-
твенную роль играет цветовая гамма изображения и возможность использования
спрайтов; при научных расчетах имеет значение разрешающая способность экрана
для графического представления результатов.
Рассмотрим характеристики режимов:

SCREEN 0

Этот режим предназначен исключительно для отображения текстов и часто
применяется для ввода и редактирования программ. Использование графических
операторов и спрайтов не допускается. Текст размещается в 24 строках (при
отображении значений функциональных клавиш - в 23). Каждая строка может вме-
щать 40 символов полной или 80 символов половинной ширины, что определяется
оператором WIDTH. Разрешено использование двух цветов из 16 возможных: для
текста и для фона.

SCREEN 1

Этот режим также является текстовым, но допускает использование одноц-
ветных спрайтов (не более 4 на одной горизонтальной линии). Графические опе-
раторы запрещаются. Текст размещается по 32 символа в строке. Помимо цвета
текста и фона возможно задание цвета границы экрана (бордюра).

SCREEN 2

Начиная с этого режима, разрешено использование всех графических опера-
торов. При их выполнении следует учитывать, что общее поле экрана размером
256*192 точки разделено на сегменты шириной 8 точек по горизонтали. Каждый
графический оператор воздействует не только на явно указанную в нем точку,
но и на все точки сегмента, к которому она принадлежит, если цвет этих точек
отличается от цвета фона. Поэтому при наложении друг на друга различных ри-
сунков может происходить "размывание" цветов.
Для изображения текста его нужно выводить в файл, находящийся на ус-
тройстве "GRP:" Понятия текстового курсора не существует, оператор WIDTH иг-
норируется.

SCREEN 3

Данный режим аналогичен SCREEN2, но имеет более низкую разрешающую спо-
собность. Поле экрана разделяется на 64*48 блоков размером 4*4 точки, и все
графические операторы воздействуют не только на явно указанную в них точку,
но и целиком на весь блок, которому эта точка принадлежит (это правило не
относится к спрайтам).

SCREEN 4

В выборе цвета, выполнении графических операторов и отображении текста
этот режим аналогичен SCREEN2. Новые возможности появляются для действий со
спрайтами: на одной горизонтальной линии может отображаться до 8 спрайтов, и
спрайты эти могут быть многоцветными (состоять из цветных линий).

SCREEN 5

Экранное поле состоит из 256*212 точек, каждая из которых при выполне-
нии графических операторов может иметь свой цвет, и рисунок не "размывает-
ся". Этот режим позволяет использовать 4 экранные страницы. Нумерация стра-
ниц начинается с нуля (подробнее см. оператор SET PAGE).

SCREEN 6

Экран состоит из 256*512 точек, каждая из которых может быть окрашена в
один из 4 возможных цветов. Использование экранных страниц аналогично SCRE-
EN5.

SCREEN 7

Система координат аналогична SCREEN6, цветовая гамма - SCREEN2. Исполь-
зуются две экранные страницы.

SCREEN 8

Система координат аналогична SCREEN5; используются две экранные страни-
цы. Одновременно на экран могут выводиться 256 цветов.

Примечания: 1. На всех экранах точка с координатами (0,0) находится в верх-
нем левом углу.
2. Особенности использования цветов в конкретных экранах см.так-
же в операторе COLOR.

------------------------------------------------------------------------
COLOR SPRITE - оператор определения цвета спрайта

Формат: COLOR SPRITE(<номер спрайта>)=<арифм.выражение>

Оператор действует в графических экранах, начиная со SCREEN4, но в от-
личие от оператора COLOR SPRITE$ определяет цвет всего спрайта целиком, а не
его отдельных линий. Характеристика спрайта задается арифм.выражением, зна-
чение которого должно быть целым числом от 0 до 127.
Двоичное представление ASCII-кода данного значения содержит в своих би-
тах следующую информацию:

БИТ 7 (крайний левый): всегда 0
БИТ 6: если этот бит равен 0, то при наложении спрайтов друг на друга
приоритет будет иметь спрайт с меньшим номером. В противном случае цвет то-
чек, входящих в пересечение спрайтов, определяется результатом выполнения
операции OR, примененной к наложившимся цветам. Точки спрайта, не входящие в
пересечение, при этом исчезают.
БИТ 5: если этот бит равен 1, то столкновение этого спрайта с другими
фиксироваться не будет.
БИТ 4: не используется
БИТЫ 0 - 3: позволяют закодировать номер цвета (от 0 до 15), присвоен-
ный данному спрайту.

Пример: 10 COLOR 15,1,1:SCREEN 4,1
30 SPRITE$(1)=STRING$(8,255)
40 PUT SPRITE 0,(74,45),7,1
50 PUT SPRITE 1,(77,50),8,1
60 IF INKEY$="" GOTO 60
70 COLOR SPRITE(1)=&B01001001
80 IF INKEY$="" GOTO 80
В программе задается образ спрайта в виде закрашенного квадрата разме-
ром 8*8 точек, который выводится на экран как спрайт номер 0 синего цвета и
спрайт номер 1 красного цвета, при этом часть синего спрайта налагается на
красный. После нажатия любой клавиши те точки красного спрайта, которые не
находились под синим, исчезают, а точки пересечения становятся белыми (7 OR
8 = 15).

Примечания: 1. Если для определения спрайта был использован оператор COLOR
SPRITE, то при выводе его на экран оператором PUT SPRITE пара-
метр <Цвет> следует писать только в том случае, когда нужно из-
менить цвет спрайта по сравнению с уже заданным.
2. Если значение арифм.выражения находится в интервале от 0 до
15, то следующие операторы эквивалентны:
PUT SPRITE 0,,<арифм.выражение>
COLOR SPRITE$(0)=STRING$(8,<арифм.выражение>)
COLOR SPRITE(0)=<арифм.выражение>

------------------------------------------------------------------------
STRIG(0) - функция проверки нажатия клавиши "ПРОБЕЛ"

Формат: STRIG(0)

Функция проверяет нажатие клавиши "ПРОБЕЛ" в момент ее выполнения. Ее
значение равно -1, если клавиша нажата, и 0 - в противном случае. Нажатие
клавиши "ПРОБЕЛ" до момента проверки не учитывается.

Пример: ...
20 IF STRIG(0)=0 GOTO 20
...
Программа будет выполнять строку 20 до тех пор, пока не будет нажата
клавиша "ПРОБЕЛ".

------------------------------------------------------------------------
PSET - оператор присвоения цвета точке

Формат: PSET [STEP] (X,Y)[,Ц]

Оператор используется в графических режимах (от SCREEN2 до SCREEN8) для
присвоения точке с координатами (X,Y) цвета с указанным номером Ц. Если при-
сутствует атрибут STEP, то числа Х и Y определяют приращение соответствующих
координат точки, упомянутой в последнем выполненном графическом операторе.
Если номер цвета Ц опущен, то точке присваивается цвет изображения, указан-
ный в последнем выполненном операторе COLOR.
Чаще всего оператор PSET используется для рисования графиков и позици-
онирования курсора перед выводом на экран.

Пример: 10 SCREEN 5:COLOR 15,6,6
20 PI=4*ATN(1)
30 FOR I=0 TO 200
40 X=I+20
50 YS=60*SIN(I*PI/50)
60 PSET(X,90-YS),15
70 YC=60*COS(I*PI/50)
80 PSET(X,90-YC),9
90 NEXT
100 GOTO 100
Программа рисует по точкам синусоиду белого и косинусоиду красного цве-
та.

Примечание: Значения чисел X,Y,Ц определяются параметрами соответствующего
экрана (см.оператор SCREEN). Если параметр Ц будет иметь недо-
пустимое значение, то будет выдано сообщение об ошибке. В случае
же, когда за пределы координатной системы экрана выйдет число Х
или Y, оператор не выполнится, но сообщения об ошибке не появит-
ся.

------------------------------------------------------------------------
BEEP - оператор выдачи звукового сигнала

Формат: BEEP

Оператор выдает короткий звуковой сигнал, причем если в момент его вы-
полнения еще была не закончена работа звукогенератора, т.е. продолжалось вы-
полнение операторов SOUND или PLAY, их действие прекращается.



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:13
Сообщение #6


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



------------------------------------------------------------------------
Формат: PUT SPRITE Н,[[STEP] (X,Y)][,Ц][,O]

Оператор используется во всех экранах, кроме SCREEN0, для отображения
спрайтов в зависимости от следующих параметров:
Н - номер спрайта должен быть числом от 0 до 31. Следует помнить, что
на одной горизонтальной линии может находиться не более 4 (начиная со SCRE-
EN4 - не более 8) спрайтов, поэтому при превышении этого числа спрайты с бо-
лее высокими номерами останутся невидимыми.
(Х,Y) - координаты верхнего левого угла матрицы 8*8 или 16*16 спрайта,
который должен быть отображен. Числа Х и Y могут лежать в интервале от
-32768 до 32767, однако при отображении спрайта будут использоваться коорди-
наты, пересчитанные как модуль деления Х и Y на соответствующие размеры эк-
рана (см.оператор SCREEN). Отметим, что при отображении спрайтов верхний ле-
вый угол экрана всегда соответствует точке (0,-1). При наличии атрибута STEP
числа Х и Y означают приращение соответствующих координат последней указан-
ной точки.
Ц - цвет отображения спрайта. Допустимые значения этого аргумента зави-
сят от параметров конкретного экрана (см.оператор SCREEN).
О - номер образа отображаемого спрайта (число от 0 до 255). Назначение
чисел Н и О различно: например, один и тот же образ может соответствовать
двум различным по номерам спрайтам.
При отсутствии необязательных аргументов их значения остаются такими
же, как в ранее выполненном операторе PUT SPRITE для того же номера Н.

Пример: 10 SCREEN2:COLOR15,6,6
20 SPRITE$(0)=CHR$(255)+STRING$(6,129)+CHR$(255)
30 SPRITE$(1)=STRING$(8,128)
40 PUT SPRITE3,(50,50),15,0
50 FOR I=0 TO 200:NEXT
60 PUT SPRITE1,(40,40),7,1
70 FOR I=0 TO 200:NEXT
80 PUT SPRITE1,,9,0
90 GOTO 90
В программе задается два образа спрайтов: номер 0 - в виде незакрашен-
ного квадрата и номер 1 - в виде вертикальной черты. Белый квадрат изобража-
ется в точке (50,50), голубая черта - в точке (40,40), после чего на месте
последней появляется красный квадрат.

Примечания: 1. При наложении спрайтов друг на друга приоритет в закрашивании
точки определенным цветом имеет спрайт с меньшим номером. Это
позволяет создавать многоцветные спрайты.
2. Для исчезновения спрайта необходимо задать его цвет как проз-
рачный (т.е. Ц=0) либо заполнить нулями соответствующий образ,
либо вывести его за пределы экрана (например, задав координаты
(0,212)).

------------------------------------------------------------------------
COLOR - оператор выбора цвета

Формат: I. COLOR [<цвет текста>],[<цвет фона>],[<цвет бордюра>]
II. COLOR=(Ц,К,З,С)
III. COLOR=NEW

Первый вариант оператора задает номера цветов, в которые будут окрашены
выводимый на экран текст, фон и граница экрана (бордюр). Последний параметр
не употребляется в режиме SCREEN0: в этом режиме экран и его граница окраши-
ваются одним цветом. Если необходимо изменить только один из этих парамет-
ров, то остальные можно опустить.
Как правило, номер цвета должен быть числом от 0 до 15. Каждый цвет со-
ответствует определенным пропорциям красного, зеленого и синего цветов. Эти
пропорции могут быть изменены с помощью второго варианта оператора COLOR,
где Ц - номер изменяемого цвета, а К,З,С - соответствующие пропорции красно-
го, зеленого и синего цветов. Последние три цифры могут меняться в интервале
от 0 до 7.
При включении компьютера по умолчанию устанавливается следующая палитра
цветов:

---------------------------------------------------------
| Номер | | | | |
| цвета | Цвет | Красный | Зеленый | Синий |
|-------|-------------------|---------|---------|-------|
| 0 | Прозрачный | 0 | 0 | 0 |
| 1 | Черный | 0 | 0 | 0 |
| 2 | Зеленый | 1 | 6 | 1 |
| 3 | Светло - зеленый | 3 | 7 | 3 |
| 4 | Темно - синий | 1 | 1 | 7 |
| 5 | Светло - синий | 2 | 3 | 7 |
| 6 | Темно - красный | 5 | 1 | 1 |
| 7 | Голубой | 2 | 6 | 7 |
| 8 | Красный | 7 | 1 | 1 |
| 9 | Светло - красный | 7 | 3 | 3 |
| 10 | Темно - желтый | 6 | 6 | 1 |
| 11 | Светло - желтый | 6 | 6 | 4 |
| 12 | Темно - зеленый | 1 | 4 | 1 |
| 13 | Лиловый | 6 | 2 | 5 |
| 14 | Серый | 5 | 5 | 5 |
| 15 | Белый | 7 | 7 | 7 |
---------------------------------------------------------

Эти же цвета устанавливаются при выполнении оператора SCREEN или
третьего варианта оператора COLOR.
В режиме SCREEN 6 используются только 4 цвета, а в режиме SCREEN 8 но-
мер цвета может меняться в интервале от 0 до 255. Он определяется по следу-
ющей формуле:
<номер цвета> = 32*З + 4*К + С\2,
где З,К,С определены выше.
Следует также отметить, что в текстовых режимах (SCREEN 0 и SCREEN 1)
выполнение оператора COLOR сразу влечет за собой изменение цвета фона и все-
го ранее выведенного текста. В графических же экранах при выполнении опера-
тора COLOR меняется только цвет бордюра, а цвет фона изменится на указанный
в COLOR только после выполнения оператора CLS (в частности, и оператора
SCREEN). Новый цвет текста при этом будет действовать только для операторов,
выполненных после COLOR.

Пример: 10 SCREEN2:COLOR15,4,4
20 OPEN "GRP:" AS #1
30 PRINT #1,"ABCD"
40 COLOR 9
50 PRINT #1,"abcd"
60 GOTO 60
На синем экране отображается строка "ABCD" белого и строка "abcd" крас-
ого цвета.

Примечание: Начальная установка цветов происходит по нажатию клавиши F6.

------------------------------------------------------------------------
CIRCLE - оператор рисования кругов и эллипсов

Формат: CIRCLE [STEP] (X,Y),P[,Ц][,H][,K][,A]

Оператор используется в графических режимах (от SCREEN2 до SCREEN8) для
рисования окружностей и эллипсов со следующими параметрами:
- числа Х,Y определяют координаты центра круга или эллипса (но сама
точка при этом не отображается). При наличии атрибута STEP они указывают
приращение соответствующих координат точки, упомянутой в последнем выполнен-
ном графическом операторе;
- число Р равняется радиусу, если рисуется окружность, или длине боль-
шей оси, если рисуется эллипс;
- цвет окружности (эллипса) определяется числом Ц. По умолчанию он ра-
вен цвету изображения последнего выполненного оператора COLOR;
- число Н задает начальный (по умолчанию 0), а число К - конечный (по
умолчанию 2*3.14) угол, измеренный в радианах. Путем задания иных значений
можно рисовать не замкнутые кривые, а дуги. Если какое-либо из чисел Н или К
будет отрицательно, то соответствующий ему конец дуги будет соединен отрез-
ком с точкой (X,Y);
- отношение между горизонтальной и вертикальной осями задается коэффи-
циентом А. По умолчанию он равен 1.

Пример: 10 SCREEN 2:COLOR15,6,6
20 CIRCLE(50,60),30,8,,,1.1
30 CIRCLE(70,45),40,,,,2
40 CIRCLE STEP (15,35),25,,-3.4,-6
50 GOTO 50
Программа рисует окружность красного цвета, овал и сектор круга белого
цвета.

Примечания: 1. Пропорции между координатами Х и Y не обязательно сохраняются
при изображении на экране. Поэтому для получения действительного
круга иногда необходимо изменить параметр А (например, А=1.1).
2. Допустимые значения чисел X,Y,Ц определяются параметрами
конкретного экрана (см.оператор SCREEN). Если значение Ц выходит
за пределы допустимого, то будет выдано сообщение об ошибке. В
том случае, когда за пределы координатной системы выходят значе-
ния Х,Y или не умещается вся фигура, то на экране отображается
та часть окружности (эллипса), которая на нем помещается.

------------------------------------------------------------------------
SOUND - оператор воспроизведения звуковых эффектов

Формат: SOUND <регистр>, <значение>

Данный оператор позволяет воспроизводить различные звуковые эффекты.
Регистры звукогенератора имеют номера от 0 до 13, значения не должны превы-
шать 255. Программируются следующие характеристики звука:
1. Частота. Устанавливается следующими регистрами:
канал А - регистры 0 и 1
канал В - регистры 2 и 3
канал С - регистры 4 и 5
Реальная частота в Гц вычисляется по формулам
Частота=F/FV ,где
F=3579545/32 ,а
FV=R0+256*R1 (для канала А)
FV=R2+256*R3 (для канала В)
FV=R4+256*R5 (для канала С)

2. Генератор шумов. Кодируется в регистре 6 значениями от 0 до 31 как
"средняя частота" шума, определяющаяся по формулам:
Частота=F/R6 ,где
F=3579545/32
3. Микширование каналов. В каждом из каналов возможен следующий сигнал:
а) ничего;
б) только заданный звуковой эффект;
в) только шум;
г) заданный звуковой эффект и шум.
Старшие два бита R7 должны быть двоичным числом 10. Следующие 3 разре-
шают (0) или запрещают (1) выход шума соответственно в каналах С, В и А.
Последние три разрешают (0) или запрещают (1) выход звука соответственно в
каналах С, В и А.

Пример: 10 SOUND &B10110011
Результат: в канале А шум, в канале В ничего, в канале С только звук.

4. Установка громкости. Используются регистры:
канал А - регистр 8
канал В - регистр 9
канал С - регистр 10
Значения лежат в пределах от 0 до 15 (максимальная громкость). При зна-
чении 16 громкость контролируется генератором огибающей.

5. Частота огибающей. Кодируется в регистрах 11 и 12, в Гц вычисляется
по формулам:
Частота=F/FV ,где
F=3579545/32 ,а
FV=R11+256*R12

6. Форма огибающей. Кодируется в четырех младших битах регистра 13 по
следующей таблице:

В3 В2 В1 В0 Форма огибающей

0 0 х х \____________________

0 1 x x /|___________________

1 0 0 0 \|\|\|\|\|\|\|\|\|\|\|

1 0 0 1 \____________________

1 0 1 0 \/\/\/\/\/\/\/\/\/\/\/
____________________
1 0 1 1 \|

1 1 0 0 /|/|/|/|/|/|/|/|/|/|/|

1 1 0 1 /---------------------

1 1 1 0 /\/\/\/\/\/\/\/\/\/\/\

1 1 1 1 /|____________________

Примеры: 10 BEEP
20 FOR I=0 TO 13
30 READ V:SOUND I,V
40 NEXT
50 END
100 DATA 0,0,0,0,0,0
110 DATA 30
120 DATA &B10110111
130 DATA 16,0,0
140 DATA 0,90,&B1110
Программа имитирует шум моря.

10 BEEP
20 FOR I=0 TO 13
30 READ V:SOUND I,V
40 NEXT
50 END
100 DATA 200,14,220,14,240,14
110 DATA 0
120 DATA &B10111000
130 DATA 15,15,15
140 DATA 0,0,0
Программа имитирует звук бомбардировщика.

10 BEEP
20 FOR I=0 TO 13
30 READ V:SOUND I,V
40 NEXT
50 FOR I=5120 TO 300 STEP -10
60 SOUND 11,I MOD 256
70 SOUND 12,I/256
80 FOR J=0 TO 20
90 NEXT J,I
95 END
100 DATA 0,0,255,14,255,14
110 DATA 10
120 DATA &B10000001
130 DATA 9,8,16
140 DATA 0,20,&B1100
Программа имитирует звук вертолета.

10 FOR I=0 TO 13
20 READ V:SOUND I,V
30 NEXT
40 FOR I=50 TO 200
50 SOUND 0,I
60 A=5^5
70 NEXT
80 SOUND 12,1010 BEEP
90 END
100 DATA 50,0,0,0,0,0
110 DATA 30
120 DATA &B10111110
130 DATA 10,0,16
140 DATA 0,0,0
Программа имитирует звук падающей бомбы.

------------------------------------------------------------------------
COLOR SPRITE$ - оператор определения многоцветного спрайта

Формат: COLOR SPRITE$(<номер спрайта>)=<строка>

Оператор используется в графических экранах, начиная со SCREEN4, для
создания многоцветных спрайтов. Спрайт с указанным номером определяется
строкой длины 8 или 16 символов (в зависимости от размера спрайта), каждый
символ которой соответствует одной линии спрайта.
Двоичная структура, соответствующая ASCII-коду каждого символа содержит
следующую информацию:

БИТ 7 (крайний левый): если этот бит равен 1, то линия будет изображена
на 32 точки левее координаты Х, заданной в PUT SPRITE.
БИТ 6: если этот бит равен 0, то при наложении спрайтов друг на друга
приоритет будет иметь спрайт с меньшим номером. В противном случае цвет то-
чек, входящих в пересечение спрайтов, определяется результатом операции OR,
примененной к наложившимся цветам. Точки спрайта, не входящие в пересечение,
при этом исчезают.
БИТ 5: если этот бит равен 1, то столкновения этого спрайта с другими
фиксироваться не будут.
БИТ 4: не используется.
БИТЫ 0 - 3: позволяют закодировать номер цвета (от 0 до 15), присвоен-
ный данной линии.

Пример: 10 COLOR 15,4,4:SCREEN 4,1
20 SPRITE$(1)=STRING$(8,255)
30 PUT SPRITE 1,(77,50),10,1
40 IF INKEY$="" GOTO 40
50 S$="":FOR J=0 TO 7:READ A$:S$=S$+CHR$(VAL("&B"+A$)):NEXT J
60 COLOR SPRITE$(1)=S$
70 DATA 00000111,00000001,00001101,00001000
80 DATA 00000011,00000011,00000001,00001001
90 IF INKEY$="" GOTO 90
В программе определяется спрайт в виде закрашенного квадрата размером
8*8 точек, изображаемый на экране желтым цветом. После нажатия любой клавиши
формируется символьная переменная длиной 8, двоичное представление которой
задано операторами DATA. После выполнения оператора COLOR SPRITE$ спрайт на
экране становится разноцветным.

Примечание: Если для определения спрайта был использован оператор COLOR
SPRITE$, то при выводе его на экран оператором PUT SPRITE пара-
метр <Цвет> следует писать только в том случае, когда нужно из-
менить цвет спрайта по сравнению с уже заданным.

------------------------------------------------------------------------
PLAY - функция проверки наличия данных

Формат: PLAY(<номер голоса>)

При выполнении оператора PLAY строки, соответствующие каждому голосу,
записываются в трех очередях. По мере их считывания очереди освобождаются.
Для проверки наличия данных в очереди используется функция PLAY. Номер голо-
са должен быть равен 1, если проверяется канал А, 2 - если проверяется канал
В, 3 - если проверяется канал С и 0, если проверяются все каналы. Значение
функции равно 0, если проверяемая очередь пуста, и -1 в противном случае.
При программировании длительных по протяженности музыкальных фрагментов
функция PLAY используется для обеспечения непрерывности звучания.

Пример: 10 A$="CDEFGAB"
20 PLAY A$,"O5 XA$;","O6 XA$;"
30 IF PLAY(0) THEN 20 ELSE 30
Программа обеспечивает непрерывное звучание по трем каналам музыкальной
фразы, заданной в строке 10.


--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:13
Сообщение #7


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



------------------------------------------------------------------------
Формат: PLAY <строка канала А>,<строка канала В>,<строка канала С>

Данный оператор позволяет воспроизводить мелодии, используя одновремен-
но до трех каналов (А,В и С). Строки должны иметь определенный вид и состо-
ять из следующих символов (как видно из примеров, не обязательно использо-
вать все виды):
1. Букв - кодов названий нот:
C - до; G - соль;
D - ре; A - ля;
E - ми; B - си;
F - фа; R - пауза.

Пример: 10 PLAY "C D E F G A B"
По каналу А проиграется гамма 4 октавы (пробелы необязательны).

2. Вспомогательных знаков:
"#" или "+" - знак диеза;
"-" - знак бемоля.

Пример: 10 PLAY "C C# D D# DD"

3. Вариаций октав - буквы O и номера октавы (от 1 до 8). Команда O
влияет на все последующие ноты до следующей команды О. Если октава не указа-
на, то она считается равной 4.

Пример: 10 PLAY "O2 C D O3 C D O4 C D"

4. Длительности ноты - точки (каждая увеличивает длительность в 1.5 ра-
за) или числа от 1 до 64 (по умолчанию 4), где, в частности:
1 - целая нота;
2 - половина; 16 - шестнадцатая;
4 - четверть; 32 - тридцать вторая;
8 - восьмая; 64 - шестдесят четвертая.

Пример: 10 PLAY "C D . E .."
20 PLAY "C1 D2 E3"

5. Длительности группы нот - буква L и число как в пункте 4. Каждая ко-
манда L действует до следующей команды L. По умолчанию - L4.

Пример: 10 PLAY "L1 C D L64 C D E F"

6. Темпа - буквы T и числа от 32 до 255 (по умолчанию 120). Задает чис-
ло четвертей, проигрываемых в минуту.

Пример: 10 PLAY "T32 C D E F T255 C D E F"
20 PLAY "C1 D2 E3"

7. Громкости - буквы V и числа от 0 до 15 (по умолчанию 8). Действует
до следующей команды V.

Пример: 10 PLAY "C D V15 C D"

8. Частоты огибающей - буквы M и числа от 1 до 65535 (по умолчанию 255)
Подробнее см. оператор SOUND.

9. Формы огибающей - буквы S и одного из перечисленных значений: 1, 4,
8, 10, 11, 12, 13 или 14. Подробнее см. оператор SOUND.

Пример: 10 PLAY "M1600 S8 C D E F G A B"

10. Возможно использование переменных. Тогда часть строки оператора PLAY
может иметь вид:
<Соответствующая буква> = <переменная> ;

Пример: 10 FOR I=120 TO 255 STEP 10
20 PLAY "T = I; C D E F"
30 NEXT I

11. Строка команды PLAY может быть сформирована из символьных перемен-
ных, содержащих допустимые команды. Для этого могут быть использованы выра-
жения с этими переменными или специальная команда X вида:
Х <переменная> ;

Пример: 10 A$="A B C D":B$="V 10":C$="D C F"
20 PLAY B$+A$,C$
30 PLAY "V15 XA$; V6 XA$;"

Примечание: При выполнении оператора PLAY его строка с командами запоминает-
ся и начинает выполняться автоматически, в это время уже могут
выполняться следующие операторы программы, хотя мелодия продол-
жает звучать. Для определения того, звучит ли еще мелодия или
нет служит функция PLAY (см.).

------------------------------------------------------------------------
POINT - функция цвета точки

Формат: POINT [STEP](X,Y)

Функция возвращает цвет точки с координатами (X,Y); при наличии атрибу-
та STEP числа Х и Y определяют приращение соответствующих координат точки,
упомянутой в последнем графическом операторе . Если точка не изображена, то
возвращается цвет фона. Если координаты X,Y выходят за границы экрана, то
значение функции будет равно -1.

Пример: 10 SCREEN 2:COLOR15,6,6
20 LINE(31,35)-(100,100),15,B
30 LINE(20,10)-(80,60),15,B
40 FOR X=31 TO 80
50 FOR Y=35 TO 60
60 IF POINT(X,Y)=6 THEN PSET(X,Y),4
70 NEXT:NEXT
80 GOTO 80
Программа рисует белые контуры двух пересекающихся прямоугольников и
закрашивает область пересечения (кроме границ) синим цветом.

Примечания: 1. Возможные значения параметров Х,Y, а также самой функции PO-
INT зависят от конкретного экрана (см.оператор SCREEN).
2. Функция POINT игнорирует спрайты и возвращает действительный
цвет точки, который последняя имеет в тот момент, когда не нахо-
дится под спрайтом.

------------------------------------------------------------------------
SET PAGE - оператор смены страниц

Формат: SET PAGE Н1,Н2

Оператор используется в графических режимах, имеющих несколько экранных
страниц (от SCREEN5 до SCREEN8). Он указывает номер Н1 страницы, отобража-
емой на экране, и номер Н2 страницы, на которую воздействуют графические и
другие операторы. Числа Н1 и Н2 изменяются от 0 до 3 в режимах SCREEN5-6, от
0 до 1 - в режимах SCREEN7-8. По умолчанию оба номера равны 0.
Применение оператора SET PAGE позволяет экономить время при выводе ин-
формации на экран, а также осуществлять этот вывод определенными порциями.

Пример: 10 SCREEN5
20 OPEN"GRP:" AS #1
30 SET PAGE 0,0:CLS
40 PSET (100,100):PRINT #1,"ABCD"
50 SET PAGE 1,1:CLS
60 FOR I=0 TO 7:FOR J=0 TO 127
70 PSET (2*J,I+8),I+2:PSET STEP(1,0),I+3
80 NEXT J,I:P=1
90 IF INKEY$="" THEN 90
100 P=P XOR 1
110 SET PAGE P,P
120 GOTO 90
Программа отображает и активизирует нулевую страницу, на которую выво-
дится строка "АВСD", затем - первую страницу, на которой рисуется 8 отрез-
ков. После этого нажатие произвольной клавиши приводит к чередованию на эк-
ране первой и нулевой страниц.

10 SCREEN5
20 OPEN "GRP:" AS #1
30 SET PAGE 0,0:CLS
40 PSET (50,60):PRINT #1,"РИСУНОК"
50 SET PAGE 0,1
60 BLOAD "RIS",S
70 SET PAGE 1,1
80 GOTO 80
Программа выводит на экран нулевую страницу с надписью "РИСУНОК" и заг-
ружает на первую страницу файл "RIS", содержащий некоторое изображение. Пос-
ле окончания загрузки первая страница выводится на экран.

------------------------------------------------------------------------
DRAW - оператор рисования

Формат: DRAW <строка>

Оператор используется в графических экранах (от SCREEN2 до SCREEN8) для
рисования различных фигур в соответствии с командами, указанными в символь-
ной строке. Эти команды являются параметрами Графического Макро-Языка (GML)
и интерпретируются как графические операторы. Каждый такой оператор состоит
из собственно команды, обозначаемой одной латинской буквой, и одного или
двух числовых параметров.
С - определяет цвет рисуемой линии и действует на все последующие опе-
раторы до переопределения.
Направление движения определяется следующими командами:
U - вверх;
Е - вверх и вправо;
R - вправо;
F - вниз и вправо;
D - вниз;
G - вниз и влево;
L - влево;
Н - вверх и влево.
Для рисования отрезков произвольного направления используется оператор М с
параметрами X,Y. С его помощью точка, указанная в последнем графическом опе-
раторе, соединяется линией с точкой, имеющей координаты (X,Y). Если коорди-
натам предшествует знак + или -, то числа X и Y указывают на приращение со-
ответствующих координат последней указанной точки.

Пример: 10 SCREEN5:COLOR15,6,6
20 PRESET (120,90)
30 DRAW "C15 R30 U30 C10 G30 M50,50"
40 DRAW "C9 M+30,40"
50 GOTO 50
Программа рисует прямоугольный треугольник, катеты которого имеют бе-
лый, а гипотенуза - желтый цвет. Его левый нижний угол соединен отрезком
желтого цвета с точкой (50,50), а от этой последней отходит красная линия до
точки (80,40). (Отметим, что пробелы в символьной строке необязательны.)

Все указанные выше операторы могут быть модифицированы с использованием
префиксов:
В - точка двигается в указанном направлении, но линия не рисуется;
N - после отображения отрезка происходит возврат к стартовой точке.

Пример: 10 SCREEN5:COLOR15,6,6
20 PRESET (120,90)
30 DRAW "C15 NE17 NF17 NG17 NH17 NU20 NR20 ND20 NL20"
40 GOTO 40
Программа рисует в центре экрана восьмиконечную звездочку белого цвета.

Некоторые дополнительные возможности предоставляют следующие два опера-
тора, каждый из которых действует на все последующие (до тех пор, пока не
будет выполнена переустановка):
А - вращение рисунка на 0,90,180 или 270 градусов. В этом случае коман-
да имеет параметр 0,1,2 или 3 соответственно.
S - задает масштаб изображения. Все размеры умножаются на число, равное
параметру, деленному на 4.

Пример: 10 SCREEN5:COLOR15,6,6
20 PRESET (120,90)
30 DRAW "C15 A0 S0 E30 F30 G30 H30"
40 DRAW "A2 S8 E30 F30 G30 H30"
50 GOTO 50
Программа рисует два ромба. Левый из них получается из правого путем
увеличения в 2 раза и поворота на 180 градусов.

Во всех рассмотренных операторах языка GML параметры могут быть замене-
ны арифм.выражениями, переменными или элементами массива переменных. В этом
случае применяется следующий формат:
<Oператор>=<выражение>;
Точка с запятой необходима после каждого выражения, служащего в качестве па-
раметра; в операторе М точка с запятой требуется после обеих координат.

Пример: 10 SCREEN5:COLOR15,6,6
20 PRESET (120,90)
30 FOR I=0 TO 20 STEP 2
40 DRAW "C15 S10 NL=I*20; NR=I*20; BU1"
50 NEXT
60 GOTO 60
Программа рисует последовательность горизонтальных отрезков увеличива-
ющейся длины.

Существует еще один оператор языка GML, позволяющий создавать подпрог-
раммы. Он имеет следующий формат:
X <имя символьной переменной>;
- и интерпретирует содержимое переменной, как строку Графического Макро-Язы-
ка.

Пример: 10 SCREEN2:COLOR15,6,6
20 A$="R20 U20 L20 D20"
30 B$="E14 F14 BL20"
40 C$="R5 U10 L5 D10"
50 D$="R4 U4 L4 D4"
60 E$="XA$;BR4 XC$;BM+10,-5 XD$;BM-18,-12 XB$;"
70 DRAW"BM20,20C1S2XE$;BM100,100S6C15XE$;"
80 GOTO 80
Программа рисует маленький черный дом в верхнем левом углу экрана и
большой белый дом в центре. Изображение создается с помощью подпрограмм ри-
сования фасада (строка А$), крыши (строка В$), двери (строка С$) и окна
(строка D$).

Примечания: 1. Размеры создаваемых оператором DRAW изображений зависят от
параметров конкретного экрана (см.оператор SCREEN).
2. Цвет точек в операторе DRAW определяется аналогично оператору
PSET.

------------------------------------------------------------------------
STICK(0) - функция опроса управляющих клавиш

Формат: STICK(0)

Значение функции равно 0, если в момент ее выполнения ни одна из управ-
ляющих клавиш не нажата. В противном случае ее значение определяется следу-
ющей таблицей:

---------------------------------------------
| Значение | Нажатые |
| функции | клавиши |
|----------|--------------------------------|
| 1 | стрелка-вверх |
| 5 | стрелка-вниз |
| 7 | стрелка-влево |
| 3 | стрелка-вправо |
| 8 | стрелка-вверх и стрелка-влево |
| 2 | стрелка-вверх и стрелка-вправо |
| 6 | стрелка-вниз и стрелка-влево |
| 4 | стрелка-вниз и стрелка-вправо |
---------------------------------------------


Пример: 10 SCREEN1 : COLOR 15,6,6
20 SPRITE$(0)=STRING$(2,16)+CHR$(40)+CHR$(198)+CHR$(40)+
STRING$(2,16)
30 X=120 : Y=90
40 PUT SPRITE0,(X,Y),15
50 ON STICK(0) GOSUB 100,200,300,400,500,600,700,800
60 GOTO 40
100 IF Y=0 THEN RETURN ELSE Y=Y-1:RETURN
200 IF Y=0 THEN ELSE Y=Y-1
300 IF X=250 THEN RETURN ELSE X=X+1:RETURN
400 IF X=250 THEN ELSE X=X+1
500 IF Y=180 THEN RETURN ELSE Y=Y+1:RETURN
600 IF Y=180 THEN ELSE Y=Y+1
700 IF X=0 THEN RETURN ELSE X=X-1:RETURN
800 IF X=0 THEN 100 ELSE X=X-1:GOTO 100
Программа создает крестообразный спрайт, выводит его на экран и перед-
вигает в пределах экрана согласно нажатым управляющим клавишам.

------------------------------------------------------------------------
PAINT - оператор закрашивания области

Формат: PAINT [STEP] (X,Y),Ц1[,Ц2]

Оператор используется в режимах SCREEN2-SCREEN8 для закрашивания части
экрана. Закраска начинается с точки с координатами (X,Y) (при наличии атри-
бута STEP числа Х и Y определяют приращение соответствующих координат точки,
упомянутой в последнем графическом операторе) цветом Ц1 и распространяется
на область, ограниченную замкнутым контуром. Если контур отсутствует или в
нем имеется зазор, то цветом Ц1 закрашивается весь экран. Для режимов SCRE-
EN2 и SCREEN4 параметр Ц2 не употребляется, и цвет контура должен быть равен
Ц1; в остальных экранах цвет контура может указываться числом Ц2.

Пример: 10 SCREEN3:COLOR15,6,6
20 CIRCLE(120,90),50,7,,,2
30 PAINT STEP(0,0),9,7
40 GOTO 40
Программа рисует в центре экрана эллипс с голубой границей и закрашива-
ет его красным цветом.

Примечание: Допустимые параметры чисел Х,Y,Ц1 и Ц2 зависят от конкретного
экрана (см.оператор SCREEN).

------------------------------------------------------------------------
PRESET - оператор стирания точки

Формат: PRESET [STEP] (X,Y)[,Ц]

Оператор используется в графических экранах (от SCREEN2 до SCREEN8) для
присвоения точке с координатами (X,Y) цвета фона. Если номер цвета Ц явно
указан, то результат будет аналогичен выполнению оператора PSET (X,Y),Ц. Ес-
ли присутствует атрибут STEP, то числа Х и Y определяют приращение соот-
ветствующих координат точки, упомянутой в последнем выполненном графическом
операторе.
Оператор PRESET используется обычно для позиционирования курсора перед
выводом на экран.

Пример: 10 SCREEN 2:COLOR15,6,6
20 OPEN "GRP:" AS#1
30 PRESET(20,12)
40 PRINT#1,"ABCDE"
50 GOTO 50
Программа выведет на экран строку "ABCDE", причем верхний левый угол
строки будет расположен в точке с координатами (20,12).

Примечание: Значения чисел X,Y,Ц определяются параметрами соответствующего
экрана (см.оператор SCREEN). Если параметр Ц имеет недопустимое
значение, то будет выдано сообщение об ошибке; если же за преде-
лы координатной системы выйдет значение Х или Y, оператор не вы-
полнится, но сообщение об ошибке не появится.



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SuperMax
сообщение 11.2.2015, 20:13
Сообщение #8


Администратор
*****

Группа: Root Admin
Сообщений: 5 785
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



------------------------------------------------------------------------
Формат: I. COPY (X1,Y1)-(X2,Y2)[,H1] TO (X3,Y3),[H2],<лог.операция>
II. COPY (X1,Y1)-(X2,Y2)[,H1] TO <имя массива>/<спецификация файла>
III. COPY <имя массива>/<спецификация файла>[,N] TO (X3,Y3),Н2,
<лог.операция>

Оператор используется в графических экранах, начиная со SCREEN5, для
копирования блока изображения:
I. с одного места экрана на другое;
II. с экрана в цифровой форме в переменную заданного размера или в ука-
занный файл;
III. из переменной или файла на экран.
Копирование происходит в зависимости от следующих параметров:
(Х1,Y1) - координаты верхнего левого, а (Х2,Y2) - нижнего правого угла
копируемого прямоугольного блока.
Н1 - номер страницы, с которой происходит копирование; по умолчанию он
равен номеру активной страницы.
(Х3,Y3) - координаты точки, в которую отображается точка (Х1,Y1). Ос-
тальные точки копируются путем параллельного переноса.
Н2 - номер страницы, на которую производится копирование; по умолчанию
Н2=Н1.
<лог.операция> - задается ключевым словом, определяющим цвет скопиро-
ванного рисунка. Цвет каждой точки Ц1 скопированного блока определяется в
зависимости от цвета этой точки Ц2 и цвета экрана до копирования Ц3 по сле-
дующим формулам:
XOR Ц1=(NOT Ц2) AND Ц3 ОR (NOT Ц3) AND Ц2
OR Ц1=Ц2 OR Ц3
AND Ц1=Ц2 AND Ц3
PSET Ц1=Ц2
PRESET Ц1=NOT Ц2
N - параметр направления позволяет в случае необходимости "перевернуть"
копируемый блок следующим образом:
N=0 - верхний левый угол переходит в нижний правый
N=1 - верхний правый угол переходит в нижний левый
N=2 - нижний левый угол переходит в верхний правый
N=3 - нижний правый угол переходит в верхний левый
Минимальная размерность числового массива при выполнении II варианта
оператора COPY TO определяется по формуле:
INT((4*(ABS(X1-X2)+1)*(ABS(Y1-Y2)+1)+7)/8)+4 - для SCREEN 5 и 7
INT((2*(ABS(X1-X2)+1)*(ABS(Y1-Y2)+1)+7)/8)+4 - для SCREEN 6
INT((8*(ABS(X1-X2)+1)*(ABS(Y1-Y2)+1)+7)/8)+4 - для SCREEN 8

Примеры: 10 SCREEN5
20 SET PAGE 0,0
30 LINE (100,0)-(130,30),7,BF
40 LINE (100,40)-(130,70),6,BF
50 IF INKEY$="" THEN 50
60 SET PAGE 1,1:CLS
70 COPY (0,0)-(255,100),0 TO (100,0),1,PSET
80 GOTO 80
Программа выводит на экран изображения голубого и бордового закрашенных
прямоугольников, расположенных друг над другом. После нажатия любой клавиши
рисунок смещается на 100 точек правее, но цвет фигур не меняется. Если в
строке 70 ключевое слово PSET заменить на XOR, то голубой прямоугольник пос-
ле перемещения станет бордовым ((NOT7)AND1 OR (NOT1)AND7=6), а бордовый -
голубым ((NOT6)AND1 OR (NOT1)AND6=7). Употребление ключевого слова OR приве-
дет к окрашиванию обоих скопированных прямоугольников в голубой цвет
(7OR1=6OR1=7).

10 DIM M%(1000)
20 SCREEN5
30 SET PAGE 0,0
40 LINE (10,10)-(100,100),15,BF
50 COPY (0,0)-(50,50),0 TO M%
60 IF INKEY$="" THEN 60
70 CLS
80 COPY M% TO (10,10),0
90 GOTO 90
Программа выводит на экран изображение белого прямоугольника и запоми-
нает часть экрана. После нажатия любой клавиши эта часть вновь появляется
на экране, смещенная на 10 точек вниз и вправо.

Примечание: Допустимые значения чисел Х1,Х2,Х3,Y1,Y2,Y3,Н1 и Н2 зависят от
параметров конкретного экрана (см.оператор SCREEN).


--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 17.10.2018, 0:22