Реферат: Описание языка 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

еще рефераты
Еще работы по программированию, базе данных