![]() |
|
|
Реферат: Все о Turbo BasicС помощью оператора LINE можно также чертить и закрашивать прямоугольники LINE (x1, y1) - (x2, y2), [k], B[F] Точки (x1, y1) и (x2, y2) трактуются при этом как левая нижняя и правая верхняя вершины прямоугольника. Если цвет k отсутствует, то прямоугольник будет начерчен 3-м цветом палитры. При наличии параметра F площадь внутри прямоугольника будет закрашена. Например, оператор LINE (80, 175) - (100, 25), 2, BF закрашивает красным цветом прямоугольник, расположенный между 80-ой и 100-ой позициями по горизонтали и 175-ой и 25-ой позициями по вертикали. Оператор 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) вторым цветом палитры. Если использовать знак " - " перед начальной и конечной точками дуги, то будет нарисован сектор, т.е. конечные точки дуги будут соединены с центром. Например, CIRCLE (160, 100), 80, 2, - PI/2, - PI Можно изобразить сплюснутую (или наоборот вытянутую) окружность, добавив в оператор CIRCLE еще один параметр. Если значение этого параметра меньше 1, то окружность будет сплюснута по вертикали, если больше 1, то - по горизонтали. Например, CIRCLE (160, 100), 80, 2, , , 3/4 Все параметры оператора CIRCLE задаются в определенном порядке и разделяются запятыми. Обязательными являются только параметры, указывающие положение центра и радиус окружности. Остальные параметры необязательны, однако, запятые должны быть оставлены, если пропущены параметры в середине списка. Оператор 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 ( ) @ # $ % ^ & ! - _ / ' ~ Полное имя файла в MS DOS содержит весь путь по дереву от корневой директории к нужному файлу. Например, C:\ST\LAB\work.bas, где C - имя диска, ST - имя директории на диске, LAB - имя поддиректории директории ST, work.bas - имя программы на Бейсике. Далее речь пойдет только о файлах данных. 3.1. Файлы последовательного доступа Последовательный файл состоит из записей, доступ к которым осуществляется последовательно, т.е. n-я запись следует за (n - 1)-ой как при формировании файла, так и при считывании из него. Создание последовательного файла включает следующие шаги: открытие файла (оператор OPEN), вывод данных в файл (операторы PRINT#, WRITE#, или PRINT# USING) и закрытие файла (оператор CLOSE). Считывание из последовательного файла включает следующие шаги: открытие файла, ввод данных из файла (операторы INPUT#, INPUT$, LINE INPUT#), закрытие файла. Оператор OPEN подготавливает файл для чтения из файла (INPUT) или записи в файл (OUTPUT, если создается новый файл, APPEND, если добавляются записи в уже существующий файл). INPUT OPEN имя файла FOR OUTPUT AS #номер файла APPEND Оператор CLOSE закрывает файл, т.е. делает невозможным чтение или запись. CLOSE [#номер файла] Оператор CLOSE без параметров закрывает все открытые файлы. Единицей информации, которая передается при записи в файл или чтении из файла, является запись (логическая запись). Запись делится на поля. Каждое поле связано с одним элементом данных. Могут быть созданы два типа последовательных файлов: 1) с разделителями полей, когда каждое поле автоматически отделяется специальным символом (например, запятой). Для создания такого файла используется оператор WRITE#, для чтения из него - оператор INPUT#. Данные в файле хранятся в таком виде, как если бы они набирались на клавиатуре при выполнении оператора INPUT, т.е. разделены запятыми и каждая запись заканчивается переводом строки. Оператор INPUT# имеет вид INPUT #номер файла, список переменных где переменные в списке по типу должны соответствовать данным в файле. 2) поля не разделены, и каждая запись точно такая же, как если бы эти данные отображались на экране или печатались на принтере. Для создания такого файла используется оператор PRINT#, для чтения из него - операторы INPUT$ или LINE INPUT#. Оператор INPUT$ передает из файла сразу всю строку (запись) указанной длины n в символьную переменную, например, ST$ ST$ = 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 имеет вид OPEN имя файла AS #номер файла LEN = длина записи (отсутствие указания режима ввода или вывода означает, что файл прямого доступа). Оператор FIELD имеет вид FIELD # номер файла, n1 AS имя1 [,n2 AS имя2, ...] , где n1, n2, ... - длина поля в байтах под переменные имя1, имя2, ... (имя1, имя2, - символьные переменные ). Операторы LSET, RSET имеют вид LSET имя = символьное выражение RSET имя = символьное выражение Оператор LSET (RSET) заполняет одно поле записи в буфере (оператор LSET - с начала, RSET - с конца, оставшиеся позиции заполняются пробелами). Оператор PUT имеет вид PUT # номер файла [, номер записи] Этот оператор передает содержимое буфера в файл на место записи с указанным номером (или текущей, если номер не указан). Оператор GET имеет вид 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 +h,+V для относительного перемещения на 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 "M 160, 100" осуществляет перемещение от текущей позиции в позицию (160, 100), оставляя при этом след в виде закрашенных точек. Оператор DRAW "BM160, 100" осуществляет то же перемещение, но не оставляя следа. Оператор DRAW "L10 U10 R10 D10" прочерчивает линию на 10 позиций влево, на 10 позиций вверх, на 10 позиций вправо и на 10 позиций вниз, т.е. образует квадрат. Пробелы, разделяющие параметры, необязательны и используются для наглядности. Оператор DRAW "BM 180, 20 NU10 ND10 NL10 NR 10" осуществляет перемещение без обозначения пути в точку (180, 20), а затем чертит крест (знак +). В операторе DRAW можно использовать не только символьные константы (см.выше), но и символьные переменные, в которых заранее заготавливаются отдельные фрагменты рисунка (или весь рисунок), что позволяет воспроизводить их многократно различными операторами DRAW. Например, SQAR$ = "L10U10R10D10" DRAW SQAR$ Аргументы перемещения n, k, V могут быть заданы константами, как в приведенных выше примерах операторов DRAW, или переменными. В последнем случае нужно использовать функцию VARPTR$. Например, операторы DRAW " E15 " и a = 15 DRAW " E = " + VARPTR$ (a) выполняют одно и то же действие. Это же относится и к операторам I% = 1 DRAW " M = " + VARPTR$ (I%) + " , 40" и DRAW " M = 1, 40" Но в первом случае (при использовании переменной I%) оператор DRAW может выполняться при различных ее значениях, например, в цикле. Замечание. Выполнение оператора DRAW возможно только в графическом режиме (переход при помощи оператора SCREEN). 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 вычисляется по формуле N = 4 + INT((n1*2+7)/8) * n2 при высокой разрешающей способности N = 4 + INT((n1 + 7)/8) * n2 При использовании массива целого типа (один элемент равен двум байтам) необходимо предусмотреть размер INT((N + 1)/2). Оператор PUT помещает копию части экрана, сохраненную оператором GET в любую часть экрана, левый верхний угол которой задан точкой (x, y). Этот оператор имеет вид PUT (x, y), B 4.3. Оператор BEEP Этот оператор вызывает звуковой сигнал определенной частоты и длительности 0,25 секунды. Используется, когда нужно привлечь внимание при выполнении какой-либо части программы. 4.4. Оператор SOUND Этот оператор вызывает звуковой сигнал частоты x (от 37 до 32767 Гц) и длительности в "тиках" (1/18 секунды) y SOUND x, y Оператор SOUND с нулевой длительностью прерывает работу предыдущего оператора SOUND, даже если тот не отзвучал до конца. Используется для специальных звуковых эффектов (сирена и пр.). 4.5. Оператор PLAY Этот оператор позволяет создавать музыку. Общий вид оператора PLAY символьное выражение где символьное выражение задает порядок звучания нот, их длительность, номер октавы и т.д., используя следующие параметры: буквы C, D, E, F, G, A, B (ноты от "до" до "си"), A#, или A+, обозначает A диез, A- обозначает A бемоль, аналогично - для остальных нот; On означает играть в октаве n (n изменяется от 0 до 6, октава начинается с ноты "до" (буква C), по умолчанию n = 4). Например, PLAY " O3 FGA O4 ABC " В этом примере в 3-ей октаве звучат ноты F, G, A, в четвертой октаве ноты A, B, C. Если перед нотой используется знак > или < , например, > A, < C то это означает, что номер текущей октавы увеличивается или уменьшается на 1. Можно вместо номера октавы и символа ноты задать ее порядковый номер (от 1 до 84), указав перед ним букву N. Например, PLAY " O4G " аналогично оператору PLAY " N44 " Длительность ноты устанавливается параметром Ln, где n может принимать значения от 1 до 64 и обозначает долю полной ноты, т.е. L1 обозначает полную ноту, L2 обозначает половинную, L4 - четвертную ноту и т.д. Пауза задается параметром Pn (n - длина паузы, измеряется в длительностях, установленных параметром L). Темп задается параметром Tn, где n - число четвертных нот в минуту, может принимать значения от 32 до 255 (по умолчанию n = 120). Параметры MS, MN или ML определяют долю времени звучания каждой ноты от длительности, определенной параметром L: MS - в 3/4 этой длительности (стаккато), MN - в 7/8 (обычное, нормальное звучание), ML - полное время (легато). Режим звучания может быть основным, когда следующий оператор программы не будет выполняться, пока оператор PLAY не завершен (параметр MF), или фоновым, когда выполнение оператора PLAY не препятствует выполнению остальных операторов программы (параметр MB). Например, PLAY "L8 MF MS O3 GG L4 AG O4 C O3 L2 B" Отдельные музыкальные отрезки можно описать предварительно в виде символьных строк и использовать их затем в операторе PLAY. Например, A$="EDE" : B$ = "CDE" : PLAY A$ + B$ 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. БИБЛИОТЕКА СТАНДАРТНЫХ ПРОЦЕДУР В ТУРБО-БЕЙСИКЕ 1. Решение систем линейных алгебраических уравнений (SIMQ.BAS) 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. Войти в Турбо-Бейсик. Для этого набрать tb в командной строке и нажать клавишу "Ввод". Еще раз нажать "Ввод". В верхней строке экрана высвечивается главное меню. 2. Для первоначального ввода или исправления программы войти в редактор (пункт меню EDIT). 3. После того, как программа составлена (или внесены исправления), ее необходимо записать в память на диск или дискету (пункт главного меню FILE, подпункт SAVE или клавиша F2). Замечание. Рекомендуется после набора каждых 10 строк записывать программу на диск (простым нажатием клавиши F2), чтобы в случае сбоя ПЭВМ программа не пропала. 4. Выполнить программу (пункт RUN главного меню), переход на большой экран для анализа результатов - команда ALT/F5. 5. Выйти из Турбо-Бейсика (пункт FILE, подпункт EXIT или команда ALT/X). Замечание. В каждом режиме в нижней строке экрана указано назначение функциональных клавиш. Например, если курсор находится в главном меню, то нажатие клавиши F1 (Help) вызывает появление на экране сведений по использованию соответствующего режима, переход к следующей странице - "Ввод". Нажатие F5 (Zoom) вызывает раскрытие текущего окна на весь экран, повторное нажатие F5 - возврат в исходное положение; F6 (Next) - переход к следующему окну; F7 (Goto) - переход в режим редактирования; ALT/X (Exit) - выход из Турбо-Бейсика. В режиме редактирования: F1 - Help (см. выше), F2 - Save (запись на диск или дискету); F3 - New (загрузка новой программы, имя вводится в появившееся окно) и т.д. Галина Ивановна Светозарова ОСНОВЫ ПРИКЛАДНОЙ ИНФОРМАТИКИ Раздел: Описание языка Турбо-Бейсик Справочное пособие -------------------------------------------------------------- Подписано в печать Уч.-изд.л. 1,5 Тираж 1000 экз. Заказ Цена Московский институт стали и сплавов, Ленинский проспект, 4 Типография ЭОЗ МИСиС, Орджоникидзе, 8/9 _ |
Страницы: 1, 2
![]() |
||
НОВОСТИ | ![]() |
![]() |
||
ВХОД | ![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |