Basic Msx |
Здравствуйте, гость ( Вход | Регистрация )
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+ вычисляет cos(a+ 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 |
------------------------------------------------------------------------
Формат: 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). -------------------- Живы будем - Не помрем !
|
Текстовая версия | Сейчас: 13.6.2024, 10:34 |