ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 16

Пример        RANDOMIZE TIMER
              bankroll = 100 : bet = 5 : delayVal = .5
              WHILE NOT INSTAT   `для завершения нажать клавишу
                roll = INT(RND(1) * 6) + INT(RND(1) * 6) + 2
                PRINT STRING$(30,"-")
                PRINT "Сумма наличности =" bancroll
                PRINT roll : DELAY delayVal
                IF roll = 2 OR roll = 3 OR roll = 12 THEN
                  PRINT "Вы проиграли"
                  bancroll = bancroll + bet
                ELSEIF roll = 7 OR roll = 11 THEN
                  PRINT "Вы выиграли !"
                  bancroll = bancroll - bet
                ELSE
                  PRINT "Ваши очки" roll
                  noPoint = -1
                  WHILE noPoint
                    nextRoll : DELAY delayVal
                    IF roll = nextRoll THEN   `вложенный блок IF
                      PRINT "Вы выиграли !"
                      bancroll = bancroll + bet
                      noPoint = 0
                    ELSE IF nextRoll = 7 THEN
                      PRINT "Вы проиграли"
                      bancroll = bancroll - bet
                      noPoint = 0
                    ENDIF
                  WEND              `завершает цикл WHILE noPoint
                ENDIF               `завершает первый блок IF
              WEND                  `конец цикла WHILE NOT INSTAT


   Оператор   INCR
   ----------------------------------------------------------------

Назначение    INCR  увеличивает значение переменной

Синтаксис     INCR  числовая переменная [, приращение ]

Замечания     Приращение - необязательное числовое выражение,
              эначение которого прибавляется к переменной.
                 Оператор INCR  дает простую возможность уве-
              личить значение переменной, не используя опера-
              тор присваивания.

Отличия       В интерпретаторе BASIC такого оператора нет.

См. также     DECR

Пример        I% = -15  'инициализация переменных-счетчиков
              J% = -500

              WHILE I% < 0
                PRINT I%,J%      'вывод значений счетчиков
                INCR I%          'эначение увеличивается на 1
                INCR J%, 5       'эначение увеличивается на 5
              WEND

              END                'конец программы

   Функция INKEY$
   -------------------------------------------------------------
Назначение    INKEY$ считывает коды клавиш клавиатуры без воспро-
              изведения на экране их значений.

Синтаксис     s$ = INKEY$

Замечания     INKEY$ присваивает переменной s$ строку из 0, 1 или
              2 символов, отражающую состояние буфера клавиатуры.
                 Пустая строка  (LEN(s$)=0)  означает, что  буфер
              пуст.
                 Если длина строки равна 1 (LEN(s$)=1), то строка
              содержит код ASCII  клавиши,  которая  была  нажата
              последней; например, значение I3 для клавишы Enter,
              (наэываемой также "возвратом каретки",  65 для кла-
              виши A.
                 Если длина строки равна 2 (LEN(s$)=2),  то  пос-
              ледней была  нажата клавиша расширенной клавиатуры,
              значение которой не входит в стандартный код ASCII;
              например, одна  из  клавиш HOME,  PgDn или стрелки.
              Первый символ такой строки 0,  второй  -  вспомога-
              тельный код.  (Для  определения нажатой клавиши см.
              таблицу расширенных кодов ASCII в приложении F).
                 Если нажата функциональная клавиша, определяемая
              пользователем (см. оператор KEY), INKEY$ возвращает
              строку (по  одному  символу при каждом вызове функ-
              ции), которая соответствует последовательности сим-
              волов в определении функциональной клавиши.
                 Функция INKEY предоставляет надежный способ вво-
              да пользователем    данных    в    программу    без
              ограничений, имеющихся в  операторе  INPUT.  INKEY$
              возвращает результат  не  ожидая  нажатия очредного
              символа, и поэтому обычно используется  в  цикле  в
              подпрограмме низкого  уровня для непрерывного конт-
              роля и конструирования  вводимой  строки,  проверка
              которой выполняется   процедурами   более  высокого
              уровня.
                 INKEY$ пропускает  без обработки и вывода на эк-
              ран все   нажатия   клавиш,   включая   управляющие
              (Tab,Enter и BackSpace), за исключением :
              - Ctrl-Break -  комбинация  прерывающая  выполнение
                программы, кроме тех случаев,  когда при компиля-
                ции соответствующее прерывание было запрещено;
              - Ctrl-Alt-Del - комбинация,  вызывающая перезапуск
                системы;
              - Shift-PrtSc - комбинация,  распечатывающая содер-
                жимое экрана.

См. также     INSTAT

Пример        PRINT "Введите несколько символов и затем нажмите
              

              'чтение и воспроизведение кодов клавиш
              WHILE Char$ <> CHR$(13)
                Char$ = INKEY$
                InputSnring$ = InputString$ + Char$

              WEND

              PRINT InputSnring$

              END           'конец программы

   Оператор INPUT
   -------------------------------------------------------------
Назначение    INPUT подсказывает пользователю,  что нужно  ввести
              значение одной или нескольких переменных.

Синтаксис     INPUT [;] [текст подсказки {;|,}] список_переменных

Замечания     Текст подсказки - это необязательная символика кон-
              станта. Список переменных - одна или несколько сим-
              вольных или числовых переменных, разделенных запяты-
              ми.
                  Оператор INPUT ждет, пока пользователь не введет
              данные с  клавиатуры,  и затем присваивает значения
              заданным переменным.
                  Если за текстом подсказки указана точка с запя-
              той, TURBO BASIC  выводит  знак  вопроса  вслед  за
              текстом. Для того, чтобы знак вопроса не выводился,
              нужно поставить запятую.
                  Вводимые данные должны соответствовать типам пе-
              ременных в операторе INPUT,  т.е.  нечисловые данные
              недопустимы  для  числовых переменных.  Если типы не
              согласованы,  TURBO BASIC потребует повторного ввода
              даннах.  Так, при вводе нецифрового символа для чис-
              ловой переменной  появится  сообщение
              ?  Redo  from start (повторите сначала )
                  Если оператор INPUT содержит несколько перемен-
              ных, данные для них должны отделяться друг от друга
              запятыми.
                  Если непосредственно  за  ключевым  словом INPUT
              указана точка с  запятой,  то  при  нажатии  клавиши
              Enter  после  окончания ввода курсор останется в той
              же строке.  В противном случае на дисплее будут  вы-
              полнены возврат каретки и перевод строки.

Отличие       В TURBO BASIC данные,  вводимые по запросу оператора
              INPUT,  могут разделяться запятыми или пробелами.  В
              интерпретаторе BASIC требуется, чтобы входные данные
              разделялись запятыми.

Пример        INPUT "Введите Ваш возраст и вес: ", Age, Weight
              PRINT USING "Вам ### лет, Ваш вес ###":-
                           Age, Weight

              END   `конец программы

   Оператор INPUT #
   -------------------------------------------------------------
Назначение    Оператор INPUT # присваивает переменным значения из
              последовательного файла

Синтаксис     INPUT # номер файла, список переменных

Замечания     Номер файла определяется при открытии файла.  Список
              переменных -  одна или несколько символьных или чис-
              ловых переменных, разделенных запятыми.
                  В качестве  файла  может использоваться дисковый
              файл, последовательный порт (COMn:)  или  клавиатура
              (KYBD:).
                  Данные в файле должны соответствовать типам  пе-
              ременных в операторе INPUT #. Значения в файле зада-
              ются в том же виде,  что и для оператора  INPUT,  то
              есть разделяются   запятыми,  последним  указывается
              возврат каретки.  Файлы такого вида создаются с  по-
              мощью оператора WRITE #.

См. также     WRITE #

Пример        SUB Makefile
              `Открытие последовательного файла INPUT # для вывода
              `Запись в файл строк, состоящих из данных  различных
              `типов, с помощью оператора WRITE #

              `файлу переменных присваивается значение #1
              OPEN "INPUT#.LTA" FOR OUTPUT AS #1

              `определение и инициализация переменных
              StringVariable$ = "Я вернусь."
              Integer$ = 1000
              FloatingPoint! = 30000.1234

              `запись строки текста в последовательный файл
              WRITE# 1, StringVariable$, Integer$, FloatingPoint!

              CLOSE 1          `закрытие файла переменных

              END SUB          `конец процедуры Makefile

              SUB ReadFile
              `Эта процедура открывает последовательный файл
              `для ввода. Чтение строк, состоящих из данных
              `различных типов, из файла с помощью
              `оператора INPUT #

              `файлу переменных присваивается значение #1
              OPEN "INPUT#.LTA" FOR INPUT AS #1

              StringVariable$ = " "   `определение и
              Integer$ = 0            `инициализация
              FloatingPoint! = 0      `переменных

              `чтение строки текста из последовательного файла
              INPUT# 1, StringVariable$, Integer$, FloatingPoint!

              PRINT  StringVariable$, Integer$, FloatingPoint!

              CLOSE #1         `закрытие файла переменных

              END SUB          `конец процедуры Readfile

              CALL MakeFile
              CALL ReadFile

              END              `конец программы


   Функция  INP
   ---------------------------------------------------------------

Назначение    INP осуществляет считывание из порта ввода / вывода

Синтаксис     y = INP(номер порта)

Замечания     INP считывает один байт из порта ввода / вывода с за-
              данным номером. Номер порта соответствует аппаратно-
              му порту ввода и может иметь значения от 0 до 65535.
                  Функция INP полезна при считывании информации о
              состоянии различных  аппаратных  подсистем,  таких,
              как  порт  связи.(Описание распределения портов для
              имеющейся модели компьютера см. в техническом спра-
              вочном руководстве.)
                  Для вывода в порт ввода /  вывода  следует  ис-
              пользовать оператор OUT

См. также     OUT

Пример        `считывая регистр состояния,
              `подавляя и пропуская биты управления,
              `программа порождает  пронзительный звуковой сигнал
              `в динамике.

              `Из порта 61 (шестнадцатиричное) считывается
              `значение
              StatusReg% = INP(&H61)
              StatusReg% = StatusReg% AND &H00FC
              `на считываемое значение накладывается маска
              `удлинить звук, чтобы его можно было услышать
              FOR J = 1 to 1000
                StatusReg%= StatusReg% XOR 2
                OUT &H61,StatusReg%
                delay .001
              NEXT J

              END

              `






























Яндекс цитирования