Раздел: Описание языка Турбо-БейсикСправочное пособиедля студентов всех специальностей Москва, 1994 АННОТАЦИЯНастоящее пособие содержит описание основных средств языка Турбо-Бейсик, а также необходимые сведения по среде Турбо-Бейсика. Пособие в основном ориентировано на использование при выполнении практикума по курсу "Основы прикладной информатики". Может также использоваться в качестве справочника по языку Турбо-Бейсик.С О Д Е Р Ж А Н И Е
1. ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА1.1. Структура программыПрограмма состоит из строк. Одна строка содержит один или несколько операторов, разделенных двоеточием. Например,
=1 _Метка размещается в отдельной строке, начинается с буквы и содержит любое количество букв и цифр. После метки ставится двоеточие. Например,
x=x+1 ... GOTO aaa _Имя образуется из букв от A до Z (или от a до z), знака подчеркивания _ и цифр от 0 до 9, начинается с буквы. Имя используется для обозначения переменных, меток, процедур и т.п. 1.2. Типы данныхЦелый (значения от -32767 до 32767, занимает 2 байта); длин ный целый (от 2 5-31 0до 2 531 0, 4 байта); вещественный (4 байта); вещественный двойной точности (8 байт); символьный ( последовательность любых символов, каждый символ занимает 1 байт)._Тип переменной - определяется типом данных, которые она представляет. Указание типа переменной задается соответствующим знаком после имени.
a% - целый a& - длинный целый a! - вещественный обычной точности а# - вещественный двойной точности
1.3 Массивы_Описание массивов осуществляется с помощью оператора DIM с указанием размеров. Например, оператор
Если нижняя граница индексов в описании не указана, то она считается равной 0. Используя оператор _OPTION BASE n ., можно задать нижнюю границу индексов равной n. Например,
DIM a(10)
Используя _оператор ERASE ., можно освободить память, выделенную под массив, и вернуть ее для дальнейшего использования. Например, оператор
1.4. Выражения_Символьные выражения - состоят из символьных констант (последовательность символов, заключенная в кавычки), символьных переменных, символьных функций, соединенных знаком + (конкатенация, или объединение). Например,
b$="ЛЕНА" f$=a$+" И "+b$
F2$=RIGHT(f$,4) F3$=MID$(f$,6,1) _Числовые выражения - включают в себя константы, переменные, функции, соединенные знаками арифметических операций, при этом могут использоваться величины разных типов. _Приоритеты арифметических операций:
2. Умножение, деление (*,/ ) 3. Деление нацело (\) (например, 5\2 равно 2) 4. Вычисление остатка от деления (MOD) (например, 45 MOD 19 равно 7) 5. Сложение, вычитание (+,-) 1.5. Стандартные функции
Замечания. 1. [] обозначают необязательный параметр. 2. Если х=0, то повторяется последнее сгенерированное число; если х < 0, то для каждого x генерируется новая последовательность случайных чисел; если x > 0 или отсутствует, то генерируется очередное случайное число, но при повторном запуске последовательность повторяется. Можно использовать оператор RANDOMIZE (перед первым использованием функции RND), чтобы при новом запуске программы получать новую последовательность случайных чисел. _Операции отношения .: <, <=, >, >=, <>. Левая и правая части отношения - это числовое или символьное выражение (в последнем случае сравниваются числовые коды символов). Если отношение удовлетворяется (является истинным), то его значение равно -1 , если не удовлетворяется (является ложным), то его значение 0. Отношения могут быть использованы также в числовых выражениях. Например, при выполнении оператора
_Логические операции .: AND (логическое и ), OR (логическое или), XOR (исключающее или ), EQV (эквивалентность), IMP (импли- кация). Логические операции осуществляются над целыми числами -1 (TRUE) и 0 (FALSE).
1.6. Основные операторы_Оператор присваивания имеет вид
_Оператор безусловного перехода имеет вид
_Условный оператор имеет вид
Если после THEN или после ELSE располагается целая группа операторов, то можно использовать IF блок ., который имеет следующую структуру
операторы ELSE операторы END IF
операторы END IF
операторы ELSEIF условие THEN операторы ELSE операторы END IF _Оператор конца END - используется для окончания выполнения программы. Может использоваться в программе несколько раз. Используется также с IF, SUB, DEF, SELEСT (см.ниже) _Оператор очистки экрана CLS - обычно располагается в начале программы для очистки экрана перед выводом результатов программы. _Оператор ввода INPUT имеет вид
_Оператор вывода PRINT имеет вид
Элементом списка может быть имя переменной, константа (символьная заключается в кавычки) или выражение (перед выводом вычисляется). _Оператор вывода PRINT USING имеет вид
Например,
#.## ^^^^ - вывод будет осуществляться в показательной форме.
"\\" - (без пробела) - будет выведено два символа
"&" - будут выведены все символы
B$= "СОБАКА" : GB= 15.3 PRINT USING "& ВЕСИТ #.#,\ \ ВЕСИТ ##.# КГ";A$,GA,B$,GB
_Оператор определения положения курсора LOCATE i,j - устанавливает координаты (номер строки i и номер столбца j), в которые начнется вывод данных оператором PRINT. 1.7. Операторы цикла1. FOR i=i нач to i кон [STEP ih]операторы NEXT i i, i нач, i кон, ih - соответственно, управляющая переменная цикла, ее начальное, конечное значения и шаг изменения. Если ih=1, то шаг можно опустить. Например,
.... NEXT i FOR i=1 to 10 FOR j=1 to 20 .... NEXT j: NEXT i
FOR j=1 to 20 .... NEXT j,i 2. DO WHILE условие операторы LOOP или WHILE условие операторы WEND (операторы выполняются 1, 0 пока выполняется условие) 3. DO UNTIL условие операторы LOOP (операторы выполняются до тех пор, пока не будет выполнено условие. Как только условие будет выполнено, осуществляется выход из цикла). 4. DO операторы LOOP Выход из цикла в этом случае осуществляется оператором EXIT. _Оператор EXIT - (выход) используется с SELECT, DEF, FOR, IF, LOOP, SUB, WHILE. Например,
EXIT IF - выход из любого места IF блока EXIT LOOP - выход из цикла, заканчивающегося оператором LOOP или WEND. _Операторы выбора - ON/GOTO и ON/GOSUB ON n GOTO метка1 [, метка2...] n может принимать значения от 0 до 255. Переход осуществляется на метку, определяемую значением n. Например, при n = 2 переход осуществляется на вторую метку в списке. Если n = 0 или n больше количества меток в списке, то выполняется следующий по порядку оператор. ON n GOSUB метка1 [, метка2...] n принимает значения от 0 до 255. Переход осуществляется к одной из возможных подпрограмм (см.ниже), определяемых метками в списке, в зависимости от значения n. После выполнения подпрограммы возврат осуществляется к оператору, следующему за ON/GOSUB. 1.8. Подпрограммы, функции и процедуры_Подпрограмма - помеченная последовательность операторов, заканчивающаяся оператором RETURN. Выполняется, когда достигнут GOSUB.
GOSUB aa .... END aa: операторы RETURN _Функция - может быть определена одной строкой (оператор-функция) или несколькими строками (подпрограмма-функция). DEF FN имя [( список параметров)] = выражение (это определение оператора-функции). Здесь список параметров может включать не более 16 параметров. DEF FN имя [( список параметров)] описание переменных операторы [EXIT DEF] .... [FN имя = выражение] END DEF (это определение подпрограммы-функции). Обращение к функции записывается там, где нужно получить ее значение. При этом параметры заменяются их фактическими значениями. Например, DEF FNF (x,y) = x * x + y * y a = 3 : b = 4 P = FNF (a,b) или
Функция возвращает одно значение, тип которого определяется именем функции. Определение функции может располагаться в любом месте программы (обычно в начале или в конце). Например, F = FNa (1.5) PRINT F DEF FNa (x) FNa = x*x END DEF END или F = FNa (1.5) PRINT F END DEF FNa (x) FNa = x*x END DEF В результате будет напечатано 2.25. Список параметров оператора-функции может включать только имена переменных. _Процедура - это последовательность строк программы, расположенная между операторами SUB и END SUB и выполняемая при обращении к ней при помощи оператора CALL. SUB имя [( список параметров)] описание переменных операторы [EXIT SUB] END SUB Имя может содержать до 31 символа. Список параметров (не более 16) может включать имена переменных и массивов. Для массивов в скобках указывается размерность. Например, 1 - для одномерного массива, 2 - для двухмерного и т.д. В обращении к процедуре за именем фактического массива следуют пустые скобки. Например, SUB SUM (x (1), n, S) S = 0 FOR I=1 to n S = S + x (I) NEXT I END SUB DIM A (3) A (1) = 1 : A (2) = 2 : A (3) = 4 CALL SUM ( A (), 3, S) S = S/3 PRINT S END Эта программа вычисляет среднее значение элементов массива A, процедура SUM суммирует элементы массива. Основные отличия процедуры от подпрограммы-функции :
2 - вызывается оператором CALL, а не из выражения. DEF FNF1 LOCAL i, S FOR i =1 to 10 S = S + i NEXT i FNF1 = S END DEF После выхода из подпрограммы-функции переменные i и S теряют свои значения (при входе в подпрограмму всегда S = 0). Эти же имена могут использоваться в программе для обозначения других величин. DEF FNF2 LOCAL i SHARED S FOR i = 1 to 10 S = S + i NEXT i FNF2 = S END DEF В этом случае S сохраняет значение после выхода из подпрограммы и имеет один и тот же смысл во всех частях программы. DEF FNF3 LOCAL i STATIC S FOR i = 1 to 10 S = S + i NEXT i FNF3 = S END DEF В этом случае S сохраняет значение после выхода из подпрограммы до следующего обращения к ней, т.е. после первого обращения значение функции FNF3 будет 55, после второго - 110 и т.д. (S нельзя изменять в основной программе). 2. ЦВЕТ И ГРАФИКА
Графический режим устанавливается (или отменяется) _оператором SCREEN .. SCREEN i[,j]
После выполнения оператора SCREEN точка устанавливается в середину экрана. _Оператор COLOR - устанавливает цвет фона экрана и палитру (из трех цветов) для окрашивания точек (для текстового режима - еще и цвет рамки). Существует две палитры цветов: 0 и 1, следующего состава:
Для фона можно выбрать один из 16 цветов (0 - черный, 1 - синий, 2 - зеленый, 3 - бирюзовый, 4 - красный, 5 - лиловый, 6 - коричневый, 7 - белый, 8 - серый, 9 - голубой, 10 - ярко-зеленый, 11 - ярко-бирюзовый, 12 - ярко-красный, 13 - ярко-лиловый, 14 - желтый, 15 - ярко-белый) Оператор COLOR имеет вид COLOR i, j[,k] Например, операторы
В графическом режиме (для получения на экране неподвижных изображений) могут использоваться следующие операторы: PSET (PRESET) - включает (или выключает) точку; LINE - чертит линию; CIRCLE - чертит окружность или ее часть; PAINT - закрашивает указанную часть экрана. Более сложные операторы для получения движущихся изображений (DRAW, GET, PUT) рассматриваются в п.4. Оператор PSET (x, y) - включает точку с координатами x,y. Оператор PSET STEP (x, y) - включает точку, отстоящую на x позиций по горизонтали и на y позиций по вертикали от текущей точки. Например, если в предыдущем положении точка имеет координаты (60, 75), то оператор PSET (10, 20) определяет точку с координатами (10, 20), а оператор PSET STEP (10, 20) определяет точку с координатами (70, 95). Операторы
Оператор LINE позволяет начертить отрезок прямой, указав его начало (x1, y1), конец (x2, y2) и цвет k LINE [(x1, y1)] - (x2, y2), k Если начальная точка отсутствует, то линия будет прочерчена, начиная с точки, в которой остановился предыдущий оператор. С помощью оператора LINE можно также чертить и закрашивать прямоугольники
_Оператор CIRCLE - позволяет строить окружности, дуги, секторы и эллипсы. Оператор CIRCLE (x, y),r, k чертит окружность радиуса r с центром в точке (x, y) цветом k. После вычерчивания окружности последней использованной точкой считается ее центр. Оператор CIRCLE (x, y), r, k, ALPHA1,ALPHA2 вычерчивает дугу, имеющую начало под углом ALPHA1 и конец - под углом ALPHA2. Например, оператор (при PI = 3.1416) CIRCLE (160, 100), 80, 2, PI/2, PI строит дугу от PI/2 до PI окружности радиуса 80 с центром в точке (160, 100) вторым цветом палитры. Если использовать знак " - " перед начальной и конечной точ- ками дуги, то будет нарисован сектор, т.е. конечные точки дуги будут соединены с центром. Например,
_Оператор PAINT - позволяет закрашивать большие области экрана. Для закрашивания необходимо указать произвольную точку внутри закрашиваемой области (x, y), цвет, которым нужно закрасить область (k1) и цвет границы, которую нельзя пересекать при закрашивании (k2), k1 и k2 могут совпадать. Оператор PAINT имеет вид PAINT (x, y), k1, k2 Например, оператор PAINT (160, 100), 2, 2 закрасит окружность нарисованную последним оператором CIRCLE, красным цветом, как и цвет окружности, использованный в операторе CIRCLE. 3. ФАЙЛЫ. РАБОТА В БЕЙСИКЕ С ФАЙЛАМИ ПОСЛЕДОВАТЕЛЬНОГО И ПРЯМОГО ДОСТУПА
имя.расширение Имя может содержать до 8 символов, расширение - до трех. Могут использоваться следующие символы A - z 0 - 9 ( ) { } @ # $ 1 0% ^ & ! - _ / ' ~ Полное имя файла в MS DOS содержит весь путь по дереву от корневой директории к нужному файлу. Например,
3.1. Файлы последовательного доступаПоследовательный файл состоит из записей, доступ к которым осуществляется последовательно, т.е. n-я запись следует за (n - 1)-ой как при формировании файла, так и при считывании из него.Создание последовательного файла включает следующие шаги:
_Оператор OPEN - подготавливает файл для чтения из файла (INPUT) или записи в файл (OUTPUT, если создается новый файл, APPEND, если добавляются записи в уже существующий файл). OPEN имя файла FOR OUTPUT AS # номер файла APPEND CLOSE [# номер файла ] Оператор CLOSE без параметров закрывает все открытые файлы. Единицей информации, которая передается при записи в файл или чтении из файла, является запись (логическая запись). Запись делится на поля. Каждое поле связано с одним элементом данных. Могут быть созданы два типа последовательных файлов: 1) с разделителями полей, когда каждое поле автоматически отделяется специальным символом (например, запятой). Для создания такого файла используется оператор WRITE#, для чтения из него - оператор INPUT#. Данные в файле хранятся в таком виде, как если бы они наби- рались на клавиатуре при выполнении оператора INPUT, т.е. разделены запятыми и каждая запись заканчивается переводом строки. _Оператор INPUT# - имеет вид INPUT # номер файла , список переменных где переменные в списке по типу должны соответствовать данным в файле. 2) поля не разделены, и каждая запись точно такая же, как если бы эти данные отображались на экране или печатались на принтере. Для создания такого файла используется оператор PRINT#, для чтения из него - операторы INPUT$ или LINE INPUT#. _Оператор _INPUT$ - передает из файла сразу всю строку (запись) указанной длины n в символьную переменную, например,
_Оператор LINE INPUT# - передает в указанную переменную ST$ всю строку независимо от ее длины LINE INPUT # номер файла ,ST$ Пример (с разделителями полей): OPEN "SEQU.DAT" FOR OUTPUT AS #1 ST$ = " ИВАНОВ " INT% = 1972 FLOT! = 75.3 теперь записываем строку в файл WRITE #1, ST$, INT%, FLOT! ST$ = " ПЕТРОВ " INT% = 1975 FLOT! = 62.5 записываем другую строку в файл WRITE #1, INT%, ST$, FLOT! CLOSE #1 END Созданный файл будет следующим " ИВАНОВ ", 1972, 75.3 1975, " ПЕТРОВ ", 62.5 Следующая программа читает из этого файла: OPEN "SEQU.DAT" FOR INPUT AS #1 ST$ = " " INT% = 0 FLOT! = 0 теперь читаем строку текста из файла INPUT #1, ST$, INT%, FLOT! PRINT ST$, INT%, FLOT! ST$ = " " INT% = 0 FLOT! = 0 читаем другую строку INPUT #1, INT%, ST$, FLOT! PRINT INT%, ST$, FLOT! CLOSE #1 END Пример (без разделителей полей): OPEN "SEQUEN.DAT" FOR OUTPUT AS #1 ST$ = " ИВАНОВ " INT% = 1972 FlOT! = 73.1 записываем строку текста в файл PRINT #1, ST$, INT%, FLOT! ST$ = " ПЕТРОВ " INT% = 1975 FLOT! = 64.3 запишем другую строку, используя оператор PRINT #1, USING "+####$#.##^^^^"; INT%, ST$, FLOT! CLOSE #1 END Содержание созданного файла будет таким: ИВАНОВ 1972 73.1 1975 ПЕТРОВ 6.43Е+01 Следующая программа читает из этого файла: OPEN "SEQUEN.DAT" FOR INPUT AS #1 ST$ = " " ST$ = INPUT$ (80,#1) PRINT ST$ LINE INPUT #1, ST$ PRINT ST$ CLOSE #1 END 3.2. Файлы прямого доступаФайл прямого доступа состоит из записей, доступ к которым возможен в произвольном порядке по номеру записи.Создание файла прямого доступа включает следующие шаги: открытие файла (оператор OPEN); задание структуры записи файла, или разметка буфера (оператор FIELD); передача записи в буфер (операторы LSET или RSET); пересылка содержимого буфера в файл (оператор PUT), при этом если номер записи в операторе PUT не указан явно, буфер помещается на место текущей записи, при открытии файла указатель текущей записи равен 1, после каждой операции ввода или вывода указатель сдвигается на следующую запись; закрытие файла (оператор CLOSE). Записи передаются в виде строк символов. Поэтому необходимо использовать соответствующие функции преобразования данных в строку символов и обратно. Ниже перечислены функции и осуществляемые ими преобразования. MKI$ (MKL$) - целое (длинное целое) в 2-х (4-х) байтовую строку; MKS$ (MKD$) - вещественное (вещественное двойной точности) в 4-х (8-ми) байтовую строку. CVI(CVL) - 2-х (4-х) байтовую строку в целое (длинное целое); CVS(CVD) - 4-x (8-ми) байтовую строку в вещественное (вещественное двойной точности). Считывание из файла прямого доступа включает также пять шагов: открытие файла; разметка буфера; передача записи из файла в буфер (оператор GET); обработка данных буфера (переменные буфера доступны из программы); закрытие файла. Если вывод в файл и ввод из файла осуществляются в одной программе, то открытие и закрытие файла осуществляется один раз перед началом и после окончания всех операций с файлом. _Оператор OPEN - имеет вид
_Оператор FIELD - имеет вид
где n1, n2, ... - длина поля в байтах под переменные имя1, имя2, ... ( имя1, имя2, - символьные переменные ). _Операторы LSET, RSET - имеют вид
RSET имя = символьное выражение _Оператор PUT - имеет вид
Этот оператор передает содержимое буфера в файл на место записи с указанным номером (или текущей, если номер не указан). _Оператор GET - имеет вид
Этот оператор передает содержимое записи с указанным номером в буфер (если номера нет, передается текущая запись). В качестве примера приводится программа, которая формирует файл прямого доступа из записей следующей структуры: N п/п Фамилия Год рождения В программе переменные обозначены n%, nam$, dat%; для соответс- твующих полей буфера используются обозначения np$ (2 байта), nm$ (10 байт), dt$ (6 байт). OPEN "GSR.DAT" AS #1 LEN = 18 FIELD #1, 2 AS np$, 10 AS nm$, 6 AS dt$ FOR i%=1 to 3 INPUT n%, nam$, dat% LSET np$ = MKI$ (n%) LSET nm$ = nam$ LSET dt$ = MKI$ (dat%) PUT #1,i% NEXT i% CLOSE #1 END Следующая программа осуществляет ввод данных из файла GSR.DAT и их печать в обратном порядке. OPEN "GSR.DAT" AS #1 LEN = 18 FIELD #1, 2 AS np$, 10 AS nm$, 6 AS dt$ FOR i% = 3 to 1 STEP -1 GET #1, i% n% = CVI (np$) dat%=CVI (dt$) PRINT n%, nm$, dat% NEXT i% CLOSE #1 END 4. ДВИЖУЩИЕСЯ ИЗОБРАЖЕНИЯ, ЗВУКОВЫЕ ЭФФЕКТЫ И НЕСТАНДАРТНЫЙ ВВОД С КЛАВИАТУРЫ4.1. Оператор DRAWПри помощи оператора DRAW можно чертить (рисовать) на экране различные фигуры (предметы), используя параметры Un, Dn, Ln, Rn для перемещения на n позиций от текущей точки вверх (U), вниз (D), влево (L) или вправо (R); En, Fn, Gn, Hn для перемещения по диагонали на n точек вверх и вправо (E), вниз и вправо (F), вниз и влево (G), вверх и влево (H); M h,V для перемещения в точку с координатами h и V; M 7+ 0h, 7+ 0V для относительного перемещения на h позиций вправо (+) или влево (-) и на V позиций вниз (+) или вверх (-). Кроме того, параметр An устанавливает угол n, где n=0 (0 градусов), 1 (90 градусов), 2 (180 градусов) или 3 (270 градусов); TAn - поворачивает на угол n, где n меняется от -360 до 360 градусов. При n>0 поворот осуществляется против часовой стрелки, при n<0 - по часовой стрелке; Cn - устанавливает цвет n из текущей палитры; Sn - определяет масштаб n/4, n может меняться от 1 до 255 (по умолчанию n=4); B - подавляет высвечивание точек по пути перемещения в соответствии с командой С (по умолчанию путь перемещения высвечивается в виде линий, С содержит какие-либо из перечисленных параметров); N означает возврат в исходную позицию после выполнения команды перемещения С.Последовательность параметров, определяющая режим и порядок перемещений, заключается в кавычки и указывается в операторе DRAW. Например, оператор
В операторе DRAW можно использовать не только символьные константы (см.выше), но и символьные переменные, в которых заранее заготавливаются отдельные фрагменты рисунка (или весь рисунок), что позволяет воспроизводить их многократно различными операторами DRAW. Например,
DRAW SQAR$
DRAW " E = " + VARPTR$ (a)
DRAW " M = " + VARPTR$ (I%) + " , 40"
4.2. Операторы GET и PUTОператоры GET и PUT позволяют создавать движущиеся изображения.При выполнении оператора GET текущее состояние части экрана запоминается. При выполнении оператора PUT изображение, сохраненное оператором GET, воспроизводится в другом указанном месте экрана, т.е. изображение как бы движется. Оператор GET запоминает изображение заданной области экрана в массиве, который должен быть заранее описан. Оператор GET имеет вид GET (x1, y1) - (x2, y2), B (x1, y1), (x2, y2) определяют верхнюю левую и нижнюю правую границы запоминаемой области, B - имя числового массива, в котором сохраняется копия этой части экрана. Существует формула, определяющая требуемую длину массива (в байтах), исходя из размера запоминаемой области и режима работы экрана. Так при средней разрешающей способности для сохранения n1 точек по горизонтали и n2 точек по вертикали необходимый размер массива N вычисляется по формуле
Оператор PUT помещает копию части экрана, сохраненную оператором GET в любую часть экрана, левый верхний угол которой задан точкой (x, y). Этот оператор имеет вид PUT (x, y), B 4.3. Оператор BEEPЭтот оператор вызывает звуковой сигнал определенной частоты и длительности 0,25 секунды. Используется, когда нужно привлечь внимание при выполнении какой-либо части программы.4.4. Оператор SOUNDЭтот оператор вызывает звуковой сигнал частоты x (от 37 до 32767 Гц) и длительности в "тиках" (1/18 секунды) ySOUND x, y Оператор SOUND с нулевой длительностью прерывает работу предыдущего оператора SOUND, даже если тот не отзвучал до конца. Используется для специальных звуковых эффектов (сирена и пр.). 4.5. Оператор PLAYЭтот оператор позволяет создавать музыку. Общий вид оператораPLAY символьное выражение где символьное выражение 1 0задает порядок звучания нот, их длительность, номер октавы и т.д., используя следующие параметры: буквы C, D, E, F, G, A, B (ноты от "до" до "си"), A 1# 0, или A+, обозначает A диез, A- обозначает A бемоль, аналогично - для остальных нот; On означает играть в октаве n (n изменяется от 0 до 6, октава начинается с ноты "до" (буква C), по умолчанию n = 4). Например,
Можно вместо номера октавы и символа ноты задать ее порядковый номер (от 1 до 84), указав перед ним букву N. Например,
L1 обозначает полную ноту, L2 обозначает половинную, L4 - четвертную ноту и т.д. Пауза задается параметром Pn (n - длина паузы, измеряется в длительностях, установленных параметром L). Темп задается параметром Tn, где n - число четвертных нот в минуту, может принимать значения от 32 до 255 (по умолчанию n = 120). Параметры MS, MN или ML определяют долю времени звучания каждой ноты от длительности, определенной параметром L:
MN - в 7/8 (обычное, нормальное звучание), ML - полное время (легато).
4.6. Функция INKEY$Функция INKEY$ действует аналогично оператору INPUT, однако при вводе на экране не высвечивается вводимый символ и не требуется нажатие клавиши "Ввод". Программа при этом не прерывает работу, как при выполнении оператора INPUT. При выполнении оператораX$ = INKEY$ символ, соответствующий нажатой клавише, присваивается переменной X$. Рассмотрим в качестве примера программу: PRINT "Задайте направление: 1-север, 2-юг, 3-запад, 4-восток" aa: D$ = INKEY$ IF D$ = "" THEN aa ON VAL (D$) GOTO nn, ww, ee, ss PRINT "Неправильная клавиша" : GOTO aa nn: ... ww: ... Здесь, пока не будет нажата какая-либо клавиша, 3-й и 4-й операторы выполняются в цикле, обеспечивая режим ожидания. Когда клавиша "1", "2", "3", или "4" нажата, соответствующее значение присваивается переменной D$. Далее в операторе ON осуществляется ее преобразование к числовому значению и переход к указанной метке для соответствующей обработки. 5. БИБЛИОТЕКА СТАНДАРТНЫХ ПРОЦЕДУР В ТУРБО-БЕЙСИКЕ
2. Интерполирование функций (ALI.BAS) 3. Обращение матрицы и вычисление определителя (MINV.BAS) 4. Умножение матриц (GMPRD.BAS) 5. Вычисление корня уравнения (RTMI.BAS) 6. Решение систем нелинейных уравнений (SNEN.BAS) 7. Вычисление корней полинома (POLRT.BAS) 8. Вычисление производной (DCAR.BAS) 9. Вычисление интеграла (QATR.BAS) 10. Экстремум функции (FMCG.BAS) 11. Решение систем обыкновенных дифференциальных уравнений (RKGS.BAS) 12. Сглаживание функций (SG13.BAS) 13. Аппроксимация функций (APFS.BAS) 14. Упорядочивание значений (используется при интерполировании функций) (ATSG.BAS) 15. Вычисление полиномов Чебышева (используется при аппроксимации функций) (APCH.BAS) Подключение библиотечной процедуры осуществляется оператором $INCLUDE " имя библиотечной процедуры" Пример использования библиотечной процедуры QATR.BAS $INCLUDE "QATR.BAS" CLS PRINT "ВЫЧИСЛЕНИЕ ИНТЕГРАЛА" CALL QATR(0, 1, .0001, 24, INTEGRAL, IER%) PRINT "ИНТЕГРАЛ ="; PRINT USING "###.####"; INTEGRAL PRINT "КОД ОШИБКИ ="; IER% DEF FNFCTN (X) = LOG ( 1 + X) / (1 + X * X) END 6. РЕКОМЕНДУЕМЫЙ ПОРЯДОК РАБОТЫ НА ПЭВМ ПРИ СОЗДАНИИ И ВЫПОЛНЕНИИ ПРОГРАММ НА ЯЗЫКЕ ТУРБО-БЕЙСИК
Автор: Галина Ивановна Светозарова
Справочное пособие -------------------------------------------------------------- Подписано в печать Уч.-изд.л. 1,5 Тираж 1000 экз. -------------------------------------------------------------- Московский институт стали и сплавов, Ленинский проспект, 4 Типография ЭОЗ МИСиС, Орджоникидзе, 8/9 |