IPB

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

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


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

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

 



Текстовая версия Сейчас: 29.3.2024, 3:17