Реферат: Описание языка Turbo Basic для студентов всех специальностей
<span Courier New"">СТУДЕНТ!ВНИМАНИЕ! ЧТОБЫ ПРОСМАТРИВАТЬ ЭТОТ ФАЙЛ, ДОСТАТОЧНО,
<span Courier New"">СТОЯ НА НЕМ,НАЖАТЬ КЛАВИШУ «ENTER».
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New""> ГОСУДАРСТВЕННЫЙ КОМИТЕТ РФ
<span Courier New""> ПО ВЫСШЕМУ ОБРАЗОВАНИЮ
<span Courier New""> ──────────────
<span Courier New""> МОСКОВСКИЙ
<span Courier New""> ГОСУДАРCTВЕННЫЙ ИНСТИТУТ
<span Courier New""> СТАЛИ И СПЛАВОВ
<span Courier New""> (ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)
<span Courier New""> ────────────────────────────────────────────────
<span Courier New""> Кафедра инженерной кибернетики
<span Courier New""> ────────────────────────────────────────────────
<span Courier New"">
<span Courier New""> Г.И. Светозарова
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New""> Утверждается к печати на Одобрено
<span Courier New""> ротапринте, тираж 1000 экз. методическим советом
<span Courier New""> института
<span Courier New""> Проректор института В.П. Соловьев
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New""> ОСНОВЫ ПРИКЛАДНОЙ ИНФОРМАТИКИ
<span Courier New"">
<span Courier New""> Раздел: Описание языкаТурбо-Бейсик
<span Courier New"">
<span Courier New""> Справочное пособие
<span Courier New""> для студентов всех специальностей
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New""> Москва, 1994
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New""> АННОТАЦИЯ
<span Courier New"">
<span Courier New""> Настоящее пособие содержит описание основных средств языка
<span Courier New"">Турбо-Бейсик, атакже необходимые сведения по среде Турбо-Бейсика.
<span Courier New""> Пособие в основном ориентировано наиспользование при выпол-
<span Courier New"">нении практикумапо курсу «Основы прикладной информатики». Может
<span Courier New"">такжеиспользоваться в качестве справочника по языку Турбо-Бейсик.
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New""> С Московский государственный
<span Courier New""> институтстали и сплавов
<span Courier New""> 1994 г.
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 3 -
<span Courier New"">
<span Courier New""> С О Д Е Р Ж А Н И Е
<span Courier New"">
<span Courier New"">
<span Courier New""> 1. Основные средстваязыка.............................. 4
<span Courier New""> 1.1. Структурапрограммы............................. 4
<span Courier New""> 1.2. Типыданных..................................... 4
<span Courier New""> 1.3. Массивы......................................... 5
<span Courier New""> 1.4.Выражения....................................... 5
<span Courier New""> 1.5. Стандартныефункции............................. 6
<span Courier New""> 1.6. Основныеоператоры.............................. 8
<span Courier New""> 1.7. Операторы цикла…10
<span Courier New""> 1.8. Подпрограммы, функции ипроцедуры… 12
<span Courier New""> 2. Цвет играфика… 16
<span Courier New""> 3. Файлы. Работа с файлами данных последовательного и
<span Courier New""> прямого доступа…20
<span Courier New""> 3.1. Файлы последовательногодоступа… 20
<span Courier New""> 3.2. Файлы прямогодоступа… 23
<span Courier New""> 4. Движущиеся изображения, звуковые эффектыи нестандар-
<span Courier New""> тный ввод с клавиатуры…26
<span Courier New""> 4.2. ОператорDRAW… 26
<span Courier New""> 4.3. Операторы GET иPUT… 27
<span Courier New""> 4.4. ОператорBEEP… 28
<span Courier New""> 4.5. ОператорSOUND… 28
<span Courier New""> 4.6. ОператорPLAY… 28
<span Courier New""> 4.7 Функция INKEY$… 30
<span Courier New""> 5. Библиотека стандартных процедур вТурбо-Бейсике… 31
<span Courier New""> 6. Рекомендуемый порядок работы на ПЭВМпри создании и
<span Courier New""> выполнении программ на языкеТурбо-Бейсик… 32
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New"">
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 4 -
<span Courier New"">
<span Courier New""> 1. ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА
<span Courier New"">
<span Courier New""> 1.1. Структура программы
<span Courier New"">
<span Courier New""> Программа состоит из строк. Одна строка содержит один или
<span Courier New"">несколькооператоров, разделенных двоеточием. Например,
<span Courier New""> a=1:b=1
<span Courier New""> Перенос оператора на другую строкудопускается. В этом слу-
<span Courier New"">чае используетсязнак переноса _. Например,
<span Courier New""> a=1:b_
<span Courier New""> =1
<span Courier New""> Строки могут нумероваться (но это необязательно). Ссылка в
<span Courier New"">нужное местопрограммы может осуществляться также по метке.
<span Courier New""> _Метка . размещается в отдельной строке, начинается с буквы и
<span Courier New"">содержит любоеколичество букв и цифр. После метки ставится двое-
<span Courier New"">точие. Например,
<span Courier New""> aaa:
<span Courier New""> x=x+1
<span Courier New""> ...
<span Courier New""> GOTO aaa
<span Courier New""> Если первым символом в строке является апостроф ('), то
<span Courier New"">строкавоспринимается как комментарий.
<span Courier New""> _Имя . образуется из букв от Aдо Z (или от a до z), знака под-
<span Courier New"">черкивания _ ицифр от 0 до 9, начинается с буквы. Имяиспользу-
<span Courier New"">ется дляобозначения переменных, меток, процедур и т.п.
<span Courier New"">
<span Courier New""> 1.2. Типы данных
<span Courier New"">
<span Courier New""> Целый (значения от -32767 до 32767,занимает 2 байта); длин-
<span Courier New"">ный целый (от2 5-31 0до 2 531 0, 4 байта); вещественный (4 байта); ве-
<span Courier New"">щественныйдвойной точности (8 байт); символьный ( последователь-
<span Courier New"">ность любыхсимволов, каждый символ занимает 1 байт).
<span Courier New""> _Тип переменной .определяетсятипом данных, которые она предс-
<span Courier New"">тавляет. Указаниетипа переменной задается соответствующим знаком
<span Courier New"">после имени.
<span Courier New""> a$ — символьный
<span Courier New""> a% — целый
<span Courier New""> a& — длинный целый
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 5 -
<span Courier New""> a! — вещественный обычной точности
<span Courier New""> а# — вещественный двойной точности
<span Courier New""> Если знак после имени отсутствует, то эта переменная счита-
<span Courier New"">ется по умолчаниювещественной обычной точности. То есть
<span Courier New""> a!=1.1
<span Courier New"">и
<span Courier New""> а=1.1
<span Courier New"">одно и то же.
<span Courier New"">
<span Courier New""> 1.3. Массивы
<span Courier New"">
<span Courier New""> _Описание массивов . осуществляется с помощью оператора DIM с
<span Courier New"">указаниемразмеров. Например, оператор
<span Courier New""> DIM a(10), b(10:20, 25:45)
<span Courier New"">описываетодномерный массив a, элементы которого имеют индексы от
<span Courier New"">0 до 10, идвухмерный массив b, элементы которого имеют индексы :
<span Courier New"">первый от 10 до 20,второй от 25 до 45.
<span Courier New""> Если нижняя граница индексов в описании не указана, то она
<span Courier New"">считается равной0.
<span Courier New""> Используя оператор _OPTION BASEn ., можно задать нижнюю грани-
<span Courier New"">цу индексовравной n. Например,
<span Courier New""> OPTION BASE 1
<span Courier New""> DIM a(10)
<span Courier New"">В этом случаеиндекс элементов массива a 2 0будет принимать значе-
<span Courier New"">ния, начиная с1. Если описание массива отсутствует, топо умол-
<span Courier New"">чанию верхнийиндекс равен 10 ( нижний — 0). Вописании массива
<span Courier New"">вместо константыможет использоваться переменная. Например,
<span Courier New""> DIM a(n)
<span Courier New"">Значение n должнобыть предварительно определено.
<span Courier New""> Используя _операторERASE ., можно освободить память,выделен-
<span Courier New"">ную подмассив, и вернуть ее для дальнейшегоиспользования. Нап-
<span Courier New"">ример, оператор
<span Courier New""> ERASE a
<span Courier New"">возвращает память,выделенную под массив a.
<span Courier New"">
<span Courier New""> 1.4. Выражения
<span Courier New"">
<span Courier New""> _Символьные выражения . состоят из символьных констант (после-
<span Courier New"">довательностьсимволов, заключенная в кавычки),символьных пере-
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 6 -
<span Courier New"">менных, символьных функций, соединенных знаком + (конкатенация,
<span Courier New"">или объединение).Например,
<span Courier New""> a$=«КАТЯ»
<span Courier New""> b$=«ЛЕНА»
<span Courier New""> f$=a$+" И "+b$
<span Courier New"">В результате f$будет иметь значение «КАТЯ И ЛЕНА». При помощи
<span Courier New"">функцийLEFT$, RIGHT$, MID$ можно выбрать частьсимвольной пере-
<span Courier New"">менной слева,справа или из середины. Например,
<span Courier New""> F1$=LEFT$(f$,4)
<span Courier New""> F2$=RIGHT(f$,4)
<span Courier New""> F3$=MID$(f$,6,1)
<span Courier New"">В результатебудет F1$ = «КАТЯ», F2$ =«ЛЕНА» и F3$ = «И».
<span Courier New""> _Числовые выражения . включаютв себя константы, переменные,
<span Courier New"">функции, соединенные знаками арифметических операций, при этом
<span Courier New"">могутиспользоваться величины разных типов.
<span Courier New""> _Приоритеты . арифметическихопераций:
<span Courier New""> 1. Возведение в степень (^)
<span Courier New""> 2. Умножение, деление (*,/ )
<span Courier New""> 3. Деление нацело () (например, 52 равно2)
<span Courier New""> 4. Вычисление остатка от деления (MOD)(например, 45 MOD 19
<span Courier New"">равно 7)
<span Courier New""> 5. Сложение, вычитание (+,-)
<span Courier New"">
<span Courier New""> 1.5. Стандартные функции
<span Courier New"">
<span Courier New""> Запись на Бейсике Математическая запись
<span Courier New""> ABS (x) │x│
<span Courier New""> SIN (x) sin x
<span Courier New""> COS (x) cos x
<span Courier New""> TAN (x) tg x
<span Courier New""> ATN (x) arctg x
<span Courier New""> EXP (x) e 5x
<span Courier New""> LOG (x) ln x
<span Courier New""> LOG2(x) log 42 0x
<span Courier New""> LOG10(x) lg x
<span Courier New""> INT (x) целая часть х
<span Courier New""> SGN (x) знак х (+1 при х > 0,
<span Courier New""> 0 прих=0, -1 при x < 0)
<span Courier New""> SQR (x) квадратныйкорень из х
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 7 -
<span Courier New""> LEN (а$) количество символов а$
<span Courier New""> LEFT$(a$,n) выбирает из a$ n символов,
<span Courier New""> начинаяс первого
<span Courier New""> MID$ (a$,m,n) выбирает изa$ n символов,
<span Courier New""> начинаяс m-го
<span Courier New""> RIGHT$ (a$,n) выбирает n символов а$,
<span Courier New""> начиная споследнего
<span Courier New""> STR$ (x) преобразует число к
<span Courier New""> символьномувиду
<span Courier New""> VAL (a$) определяет числовоезначение а$
<span Courier New""> ASC (a$) определяеткод первого
<span Courier New""> символа а$
<span Courier New""> TAB(n) указывает номерпозиции для
<span Courier New""> выводаследующего элемента в
<span Courier New""> списке выводаоператора PRINT
<span Courier New""> SPC (n) вывод n пробелов,используется
<span Courier New""> в спискевывода оператора PRINT
<span Courier New""> RND [(x)] выдает случайное число изинте-
<span Courier New""> рвала (0,1)
<span Courier New""> Замечания. 1. [] обозначаютнеобязательный параметр.
<span Courier New"">2. Если х=0, топовторяется последнее сгенерированное число; если
<span Courier New"">х < 0, то для каждого x 2 0генерируется новая последовательность
<span Courier New"">случайных чисел;если x > 0 или отсутствует, то генерируется оче-
<span Courier New"">редное случайноечисло, но при повторном запуске последователь-
<span Courier New"">ность повторяется. Можно использовать оператор RANDOMIZE (перед
<span Courier New"">первымиспользованием функции RND), чтобы при новом запуске прог-
<span Courier New"">раммы получатьновую последовательность случайных чисел.
<span Courier New""> _Операции отношения .: <, <=, >, >=, <>.
<span Courier New""> Левая и правая части отношения — эточисловое или символьное
<span Courier New"">выражение (впоследнем случае сравниваются числовые коды симво-
<span Courier New"">лов). Если отношение удовлетворяется (являетсяистинным), то его
<span Courier New"">значение равно -1, если не удовлетворяется (является ложным), то
<span Courier New"">его значение0. Отношения могут быть использованытакже в число-
<span Courier New"">вых выражениях.Например, при выполнении оператора
<span Courier New""> PRINT 5 > 6, 5 < 6, (5 < 6) * 15
<span Courier New"">будет напечатано0, -1 и -15.
<span Courier New""> _Логические операции .: AND (логическое и ), OR (логическое
<span Courier New"">или), XOR (исключающее или ), EQV(эквивалентность), IMP (импли-
<span Courier New"">кация).
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 8 -
<span Courier New""> Логические операции осуществляются над целыми числами -1
<span Courier New"">(TRUE) и 0(FALSE).
<span Courier New""> -1, если A = -1,B = -1
<span Courier New""> A AND B 0, в остальных случаях
<span Courier New"">
<span Courier New""> 0, если A = 0, B= 0
<span Courier New""> A OR B -1, в остальных случаях
<span Courier New"">
<span Courier New""> -1, если A и B несовпадают
<span Courier New""> A XOR B 0, если A и B совпадают
<span Courier New"">
<span Courier New""> -1, если A и Bсовпадают
<span Courier New""> A EQV B 0, если A и B не совпадают
<span Courier New"">
<span Courier New""> 0, если A =-1, B = 0
<span Courier New""> A IMP B -1, в остальных случаях
<span Courier New"">
<span Courier New""> 1.6. Основные операторы
<span Courier New"">
<span Courier New""> _Оператор присваивания . имеетвид
<span Courier New""> 1переменная 0 = 1выражение
<span Courier New""> _Оператор безусловногоперехода . имеет вид
<span Courier New""> GOTO 1метка
<span Courier New""> _Условный оператор . имеет вид
<span Courier New""> IF 1условие 0 THEN 1операторы 0[ELSE 1операторы 0]
<span Courier New"">Например,
<span Courier New""> IF a < b THEN t=15: V=16 ELSE t=17
<span Courier New"">В качествеусловия может использоваться целое выражение, которое
<span Courier New"">интерпретируетсякак FALSE, если его значение равно 0, и TRUE,
<span Courier New"">если не равно 0.
<span Courier New""> Если после THEN или после ELSE располагается целая группа
<span Courier New"">операторов, то можно использовать _IF блок .,который имеет следую-
<span Courier New"">щую структуру
<span Courier New""> IF 1условие 0 THEN
<span Courier New""> 1операторы
<span Courier New""> ELSE
<span Courier New""> 1операторы
<span Courier New""> END IF
<span Courier New"">При этом ELSE иоператоры за ним могут отсутствовать, т.е. воз-
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 9 -
<span Courier New"">можна конструкция
<span Courier New""> IF 1условие 0 THEN
<span Courier New""> 1операторы
<span Courier New""> END IF
<span Courier New"">Если после ELSEнеобходима проверка условия, то используется опе-
<span Courier New"">ратор ELSEIF
<span Courier New""> IF 1условие 0 THEN
<span Courier New""> 1операторы
<span Courier New""> ELSEIF 1условие 0 THEN
<span Courier New""> 1операторы
<span Courier New""> ELSE
<span Courier New""> 1операторы
<span Courier New""> END IF
<span Courier New""> _Оператор конца END . используется для окончания выполнения
<span Courier New"">программы. Может использоваться в программенесколько раз. Ис-
<span Courier New"">пользуется такжес IF, SUB, DEF, SELEСT (см.ниже)
<span Courier New""> _Оператор очистки экрана CLS .обычно располагается в начале
<span Courier New"">программы дляочистки экрана перед выводом результатов программы.
<span Courier New""> _Оператор ввода INPUT . имеетвид
<span Courier New""> INPUT [;] [ 1поясняющий текст 0], 1список переменных
<span Courier New"">Поясняющий текстзаключается в кавычки. Переменные в списке отде-
<span Courier New"">ляются друг отдруга запятыми. ";" после INPUT означает, что кур-
<span Courier New"">сор останется натой же строке, когда будет нажат «Ввод».
<span Courier New""> _Оператор вывода PRINT . имеетвид
<span Courier New""> PRINT [ 1список вывода 0]
<span Courier New"">Элементы спискаразделяются "," или ";" или пробелом. В первом
<span Courier New"">случае вывод следующего элемента начинается в новуюзону (строка
<span Courier New"">экрана условноразделена на 5 зон по 14 позиций каждая), во вто-
<span Courier New"">ром - через пробел (для чисел) или непосредственно вслед (для
<span Courier New"">символьных строк)за предыдущим элементом.
<span Courier New""> Элементом списка может быть имяпеременной, константа (сим-
<span Courier New"">вольная заключается в кавычки) или выражение (перед выводом вы-
<span Courier New"">числяется).
<span Courier New""> _Оператор вывода PRINT USING .имеет вид
<span Courier New"">PRINT USING 1формат 0; 1список вывода
<span Courier New""> Формат задается в виде символьной строки (заключенной в ка-
<span Courier New"">вычки), задающей форму вывода каждого элемента спискапо следую-
<span Courier New"">щим правилам длячисел : # — для каждой цифры, ^^^^ — длявывода
<span Courier New"">в показательнойформе. Остальные символы обозначают сами себя.
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 10 -
<span Courier New"">Например 1,
<span Courier New""> ##.## - будет выведено 2 цифры в качестве целой части и две
<span Courier New"">- дробной. Если целая часть содержит более двухцифр, то перед
<span Courier New"">числом будетнапечатан знак % .
<span Courier New""> #.## ^^^^ — вывод будет осуществляться впоказательной фор-
<span Courier New"">ме.
<span Courier New""> Для символьных строк :
<span Courier New""> " 1 0 " — (двапробела) — будет выведено четыре символа
<span Courier New""> "\" 1 0- (без пробела) — будет выведено двасимвола
<span Courier New"">Вообще количествовыведенных символов будет равно числу пробелов
<span Courier New"">между двумянаклонными линиями + 2.
<span Courier New""> "!" 1 0- будет выведен один символ
<span Courier New""> "&" 1 0- будут выведены все 1 0символы
<span Courier New"">Например,
<span Courier New""> A$= «КОТ» : GA= 6.5
<span Courier New""> B$= «СОБАКА» : GB= 15.3
<span Courier New""> PRINT USING "& ВЕСИТ #.#, ВЕСИТ ##.# КГ";A$,GA,B$,GB
<span Courier New"">При выполненииэтого оператора на экране появится
<span Courier New""> КОТ ВЕСИТ 6.5, СОБАКА ВЕСИТ 15.3 КГ
<span Courier New""> _Оператор определения положениякурсора
<span Courier New""> LOCATE i,j
<span Courier New"">устанавливаеткоординаты (номер строки i и номер столбца j), в ко-
<span Courier New"">торые начнетсявывод данных оператором PRINT.
<span Courier New"">
<span Courier New""> 1.7. Операторы цикла
<span Courier New"">
<span Courier New"">1. FOR i=i 4нач 0 toi 4кон 0 [STEP ih]
<span Courier New""> 1операторы
<span Courier New""> NEXT i
<span Courier New""> i, i 4нач 0, i 4кон 0, ih — соответственно, управляющая переменная
<span Courier New"">цикла, ее начальное, конечное значения и шаг изменения. Если
<span Courier New"">ih=1, то шагможно опустить. Например,
<span Courier New""> FOR i=1 to 10
<span Courier New""> ....
<span Courier New""> NEXT i
<span Courier New""> FOR i=1 to 10
<span Courier New""> FOR j=1 to 20
<span Courier New""> ....
<span Courier New""> NEXT j: NEXT i
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 11 -
<span Courier New"">или
<span Courier New""> FOR i=1 to 10
<span Courier New""> FOR j=1 to 20
<span Courier New""> ....
<span Courier New""> NEXT j,i
<span Courier New"">2. DO WHILE 1условие
<span Courier New""> 1операторы
<span Courier New""> LOOP
<span Courier New"">или
<span Courier New""> WHILE 1условие
<span Courier New""> 1операторы
<span Courier New""> WEND
<span Courier New"">(операторывыполняются 1, 0 пока выполняется условие)
<span Courier New"">3. DO UNTIL 1условие
<span Courier New""> 1операторы
<span Courier New""> LOOP
<span Courier New"">(операторывыполняются до тех пор, пока не будетвыполнено усло-
<span Courier New"">вие. Как толькоусловие будет выполнено, осуществляетсявыход из
<span Courier New"">цикла).
<span Courier New"">4. DO
<span Courier New""> 1операторы
<span Courier New""> LOOP
<span Courier New"">Выход из цикла вэтом случае осуществляется оператором EXIT.
<span Courier New"">
<span Courier New""> _Оператор EXIT . 1( 0выход) используется с SELECT, DEF, FOR, IF,
<span Courier New"">LOOP, SUB, WHILE.Например,
<span Courier New""> EXIT FOR осуществляет выход из цикла,организованного опера-
<span Courier New"">торами FOR/NEXTдо его завершения
<span Courier New""> EXIT IF — выход из любого места IF блока
<span Courier New""> EXIT LOOP — выход из цикла,заканчивающегося оператором LOOP
<span Courier New"">или WEND.
<span Courier New"">Остальные случаииспользования EXIT будут рассмотрены вместе с
<span Courier New"">соответствующимиоператорами.
<span Courier New""> _Операторы выбора . ON/GOTO иON/GOSUB
<span Courier New""> ON n GOTO 1метка 0 [, 1метка 0...]
<span Courier New"">n может приниматьзначения от 0 до 255. Переход осуществляется на
<span Courier New"">метку,определяемую значением n. Например, при n = 2 переход осу-
<span Courier New"">ществляется навторую метку в списке. Если n = 0 или n больше ко-
<span Courier New"">личества меток всписке, то выполняется следующий по порядку опе-
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 12 -
<span Courier New"">ратор.
<span Courier New""> ON n GOSUB 1метка 0 [, 1метка 0...]
<span Courier New"">n принимаетзначения от 0 до 255. Переходосуществляется к одной
<span Courier New"">из возможныхподпрограмм (см.ниже), определяемыхметками в спис-
<span Courier New"">ке, в зависимостиот значения n.
<span Courier New""> После выполнения подпрограммы возврат осуществляется к опе-
<span Courier New"">ратору,следующему за ON/GOSUB.
<span Courier New"">
<span Courier New""> 1.8. Подпрограммы, функции и процедуры
<span Courier New"">
<span Courier New""> _Подпрограмма . — помеченнаяпоследовательность операторов, за-
<span Courier New"">канчивающаяся оператором RETURN. Выполняется, когда достигнут
<span Courier New"">GOSUB.
<span Courier New""> ....
<span Courier New""> GOSUB aa
<span Courier New""> ....
<span Courier New""> END
<span Courier New""> aa:
<span Courier New""> 1операторы
<span Courier New""> RETURN
<span Courier New"">Оператор RETURNосуществляет возврат к оператору, непосредственно
<span Courier New"">следующему заGOSUB.
<span Courier New""> _Функция . может бытьопределена одной строкой (оператор-функ-
<span Courier New"">ция) или несколькими строками (подпрограмма-функция).
<span Courier New""> DEF FN 1имя 0 [( 1списокпараметров 0)] = 1выражение
<span Courier New"">(это определениеоператора-функции) 1.
<span Courier New"">Здесь списокпараметров может включать 1 0не более 16параметров.
<span Courier New""> DEF FN 1имя 0 [( 1списокпараметров 0)]
<span Courier New""> 1описание переменных
<span Courier New""> 1операторы
<span Courier New""> [EXIT DEF]
<span Courier New""> ....
<span Courier New""> [FN 1имя 0 = 1выражение 0]
<span Courier New""> END DEF
<span Courier New"">(это определениеподпрограммы-функции) 1.
<span Courier New"">Обращение кфункции записывается там, где нужнополучить ее зна-
<span Courier New"">чение. При этом параметры заменяются их фактическимизначениями.
<span Courier New"">Например 1,
<span Courier New""> DEF FNF (x,y) = x * x + y * y
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 13 -
<span Courier New""> a = 3: b = 4
<span Courier New""> P = FNF (a,b)
<span Courier New"">или
<span Courier New""> P = FNF (3,4)
<span Courier New"">Функциявозвращает одно значение, тип которогоопределяется име-
<span Courier New"">нем функции.Определение функции может располагаться в любом месте
<span Courier New"">программы (обычнов начале или в конце). Например,
<span Courier New""> F = FNa (1.5)
<span Courier New""> PRINT F
<span Courier New""> DEF FNa (x)
<span Courier New""> FNa = x*x
<span Courier New""> END DEF
<span Courier New""> END
<span Courier New"">или
<span Courier New""> F =FNa (1.5)
<span Courier New""> PRINT F
<span Courier New""> END
<span Courier New""> DEF FNa (x)
<span Courier New""> FNa = x*x
<span Courier New""> END DEF
<span Courier New"">В результатебудет напечатано 2.25.
<span Courier New""> Список параметров оператора-функции может включать только
<span Courier New"">имена переменных.
<span Courier New""> _Процедура . — этопоследовательность строк программы, располо-
<span Courier New"">женная между операторами SUB и END SUB и выполняемая приобраще-
<span Courier New"">нии к ней припомощи оператора CALL.
<span Courier New""> SUB 1имя 0 [( 1списокпараметров 0)]
<span Courier New""> 1описание переменных
<span Courier New""> 1операторы
<span Courier New""> [EXIT SUB]
<span Courier New""> END SUB
<span Courier New"">Имя можетсодержать до 31 символа. Списокпараметров (не более
<span Courier New"">16) может включать имена переменных и массивов. Для массивов в
<span Courier New"">скобкахуказывается размерность. Например, 1 — для одномерного
<span Courier New"">массива, 2 — длядвухмерного и т.д.
<span Courier New""> В обращении к процедуре за именемфактического массива сле-
<span Courier New"">дуют пустыескобки. Например,
<span Courier New""> SUB SUM (x (1), n, S)
<span Courier New""> S = 0
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 14 -
<span Courier New""> FOR I=1 to n
<span Courier New""> S = S + x (I)
<span Courier New""> NEXT I
<span Courier New""> END SUB
<span Courier New""> DIM A (3)
<span Courier New""> A (1) = 1: A (2) = 2: A (3) = 4
<span Courier New""> CALL SUM ( A (), 3, S)
<span Courier New""> S = S/3
<span Courier New""> PRINT S
<span Courier New""> END
<span Courier New"">Этапрограмма вычисляет среднее значение элементов массива A,
<span Courier New"">процедура SUMсуммирует элементы массива.
<span Courier New""> Основные отличия процедуры от подпрограммы-функции :
<span Courier New"">1 — процедура необязана возвращать значение, она неимеет типа;
<span Courier New"">2 — вызываетсяоператором CALL, а не из выражения.
<span Courier New""> Отдельные переменные, используемые впроцедуре (или подпрог-
<span Courier New"">рамме-функции),могут быть объявлены локальными, т.е. действующи-
<span Courier New"">ми только в данной подпрограмме (операторLOCAL), общими, т.е.
<span Courier New"">действующими какв подпрограмме, так и в основной программе (опе-
<span Courier New"">ратор SHARED) истатическими, т.е. действующими в данной подпрог-
<span Courier New"">рамме как LOCAL,но сохраняющими полученные значения до следующе-
<span Courier New"">го обращения(оператор STATIC). По умолчанию в подпрограмме-функ-
<span Courier New"">ции переменнаяявляется SHARED, а в процедуре STATIC.
<span Courier New""> DEF FNF1
<span Courier New""> LOCAL i, S
<span Courier New""> FOR i =1 to 10
<span Courier New""> S = S + i
<span Courier New""> NEXT i
<span Courier New""> FNF1 = S
<span Courier New""> END DEF
<span Courier New"">После выхода изподпрограммы-функции переменные i и S теряют свои
<span Courier New"">значения (привходе в подпрограмму всегда S = 0). Эти же имена
<span Courier New"">могут использоватьсяв программе для обозначения других величин.
<span Courier New""> DEF FN