IPB

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

> Basic Msx
SuperMax
сообщение 11.2.2015, 20:09
Сообщение #1


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

Группа: Root Admin
Сообщений: 6 291
Регистрация: 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:13
Сообщение #2


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

Группа: Root Admin
Сообщений: 6 291
Регистрация: 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, оператор не вы-
полнится, но сообщение об ошибке не появится.



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

Сообщений в этой теме


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

 



Текстовая версия Сейчас: 15.6.2024, 18:25