Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_лекции_Саладаев.doc
Скачиваний:
55
Добавлен:
03.05.2015
Размер:
15.75 Mб
Скачать

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

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

Для начала рассмотрим пример:'Программа, иллюстрирующая понятие процедуры

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

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

beispielPRINT"C"beispielPRINT"erf"beispielPRINT"ugh"

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

 

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

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

 

Пример: DIM datS PRINT DATE$ dat$ = DATE$ DATE$="17-02-1992" PRINT "Предшествующая дата: "; datS: 'последующая дата: ";DATES

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

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

Пример: DIMtlmS PRINT TIME$ Tim$=TIME$ TIME$-"12:12:00"" PRINT "Предшествующее время:"; tlm$;последующее время: ";TIME$

 

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

Оператор 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

 

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

С помощью функции 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" Из этого примера видно, что специальные клавиши отличаются тем, что их коды состоят из двух символов.