Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник (бейсик).doc
Скачиваний:
4
Добавлен:
03.11.2018
Размер:
347.65 Кб
Скачать

Собственные процедуры.

В процедурах, как и в функциях, под одним именем процедуры объединяются логически самостоятельные фрагменты программы. Для начала рассмотрим пример:

'Программа, иллюстрирующая понятие процедуры PRINT "A"

PRINT "В"

PRINT "B1"

PRINT "B2"

PRINT "С"

PRINT "В"

PRINT "B1"

PRINT "B2"

PRINT "erf"

PRINT "B"

PRINT "B1"

PRINT "B2"

PRINT "ugh"

'Конец программы

Программа носит чисто иллюстративный характер, однако полезна для внесения ясности в представление о процедурах. Можно заметить, что некоторые фрагменты программы часто повторяются.

Такие повторения необоснованно удлиняют программу и затрудняют работу с ней. Процедуры позволяют объединять под одним именем повторяющиеся фрагменты программы. Процедуру, как и функцию, можно вызвать из главной программы. Задайте в программе команду "SUB beispiel" и получите пустой шаблон процедуры:

SUB beispiel

END SUB

Внесите туда операторы, которые повторяются в главной программе.

SUB beispiel

PRINT "В"

PRINT "B1"

PRINT "B2"

END SUB

Теперь достаточно из главной программы вызвать процедуру там, где это требуется. Таким образом, получаем новый вариант программы в таком виде:

beispiel

PRINT "C"

beispiel

PRINT "erf"

beispiel

PRINT "ugh"

Другие операторы.

Обработка даты компьютера.

С помощью функции DATE$ можно определить текущую системную дату или изменить ее.

Пример:

DIM datS

PRINT DATE$

dat$ = DATE$

DATE$="17-02-1992"

PRINT "Предшествующая дата: "; datS:

'последующая дата: ";DATES

Обработка компьютерного времени.

С помощью функции ТIМЕ$ можно определить текущее системное время или изменить его.

Пример:

DIMtlmS

PRINT TIME$

Tim$=TIME$

TIME$-"12:12:00""

PRINT "Предшествующее время:"; tlm$;последующее время: ";TIME$

Обмен значениями.

Оператор SWAP позволяет выполнить обмен значениями между двумя переменными одного типа.

Пример:

'Программа для демонстрации SWAP

DIMa%,b%,aS,bS

а%=1

b%=4

a$= "А"

b$="B"

SWAPa%,b%

SWAP aS, bS

PRINT "a%-"; a%, "b%-"; b%, "aS-"; aS, "bS"; bS

Опрос клавиатуры.

С помощью функции INKEY$ во время выполнения программы можно узнать, какая клавиша была только что нажата. Эта функция возвращает строковое значение, которое может быть пустой строкой (") либо состоять из одного или двух символов. Если значение функции — пустая строка, то это означает, что никакие клавиши не нажимались; если возвращается один символ, то это символ, только что набранный на клавиатуре.

Пример 1:

'INKEY$ для программных прерываний

CLS

PRINT "Для продолжения нажать любую клавишу"

DO WHILE INKEY$-""

LOOP

PRINT "Спасибо!"

'Конец программы

Пример 2: Функция INKEY$ интересна тем, что она может опрашивать специальные и функциональные клавиши. Коды клавиатуры можно узнать либо в справочной системе QBASIC, либо использовать следующую программу:

'Коды клавиш

DIM taste$

DO

CLS

PRINT "Нажать любую клавишу"

DO

TASTE$=INKEY$

LOOPWHILEtaste$=""

PRINT "Код клавиши: "; taste$

PRINT "Длина кода клавиши: "; LEN(taste$)

PRINT

PRINT "Опросить еще одну клавишу? (Y)"

DO

Taste$-INKEY$

LOOP WHILEtaste$-"" LOOP UNTIL UCASTS(taste$)< > "Y"

Из этого примера видно, что специальные клавиши отличаются тем, что их коды состоят из двух символов.