Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

2.10.3. Задание функции ‑ Function

Функция задается в виде:

[Private|Public]Function<имя>[(<параметры>)] [Static]

[As <тип результата> [( )]] ‘( ) ‑ возвращается массив значений

... <имя>=<выражение> ‘возвращаемое функцией значение

... [Exit Function] ‘досрочный выход из функции

... ‘операторы функции

End Function ‘конец функции

Команда аналогична команде Sub. По умолчанию тип результата Variant. Если возвращаемое функцией значение не указано, то возвра­щает­ся пус­тое значение: 0, пус­тая строка,False, 00.00.00 - для числовой, сим­воль­ной (универсальной), логической и датной функций соответственно.

2.10.4. Вызов процедуры, функции ‑ Call

Имеются несколько способов вызова процедур и функций:

Call <имя процедуры>([<аргументы>]) ‘вызов процедуры со словом Call

<имя процедуры>[<аргументы>] ‘вызов процедуры без слова Сall

<имя функции>[(<аргументы>)] ‘вызов функции

<аргументы> ‑ список аргументов через запятую.

Массив указы­вает­ся име­нем с пустыми скобками. Аргументы про­це­дур не заключаются в круг­лые скобки.

При вызове подпрограммы можно использовать именован­ные аргу­мен­­ты в виде:<имя аргумента>:=<значение>.

Эти ар­гу­менты при вызове подпрограммы указываются последними и в любом порядке (VB). Для проверки наличия необязательного аргу­мен­та используется функцияIsMissing(п. 3.5).

Вопросы для самопроверки и контроля

Вопросы для самопроверки

  1. Могут ли функции использоваться в выражениях?

  2. Каким образом передается информация из программы в процедуру и обратно?

Контрольные вопросы

  1. В чем разница между процедурой и функцией?

  2. В чем разница между процедурой и внутренней подпрограммой?

2.11. Управление обработкой

2.11.1. Выполнение командной строки DOS ‑ Shell (QB)

Команда имеет вид: Shell <текст командной строки DOS>

2.11.2. Приостановка выполнения программы ‑ Sleep (QB)

Командой Sleep [<длина паузы (сек.) >]приостановливается выпол­не­ние программы до окончания паузы или нажатия любой клавиши (ка­кое событие произойдет раньше). Нулевое значение означает ожидание нажатия клавиши.

2.11.3. Остановка выполнения программы ‑ Stop

Командой Stopосуществляется временная остановка выполнения прог­­раммы в среде разработки прог­­раммы и переход в режим от­лад­ки (п. 13.1.1). ВEXE‑файлах он завершает работу прог­рам­мы аналогично опера­торуEnd(п.2.11.5).

2.11.4. Управление трассировкой ‑ Tron/Troff (QB)

Командой Tron/Troffвключается/выключается трассировка.

2.11.5. Завершение работы программы - End

Командой Endработа всей программы немедленно завершается.

2.12. Установка среды обработки ошибок и событий

2.12.1. Установка среды обработки ошибок ‑ On Error

Командой On Error Goto <метка>при возникновении ошибки управ­­ле­­ние передается на блок команд (процедуру) обработки ошибки, начи­нающийся с ука­занной метки. Код ошибки возвра­ща­ет­ся функциейErr. Последней ко­ман­дой блока является командаResum(п. 13.1.2).

2.12.2. Формирование кода ошибки ‑ Error

Командой Error <код ошибки 1-255>моделируется ошибка с ука­зан­ным кодом. Используется при отладке программ обработки ошибок.

2.12.3. Установка среды обработки нажатия клавиш ‑ On Key (QB)

Команда имеет вид: On Key(n) Gosub <метка>

n ‑ номер клавиши: 1-10 (функциональные клавиши F1-F10), 11 (стрелоч­ка вверх), 12 (стрелочка влево), 13 (стрелочка вправо), 14 (стрелочка вниз), 15-25 (клавиши, определяемые пользователем), 30-31 (функциональные клавиши F11-F12).

Командой передается управление на внутреннюю подпрограмму, которая начинается с указанной метки при нажатии клавиши Fn.

Для задания комбинации клавиш пользователя используется команда: Key n,Chr$(<флаг клавиатуры>)+CHR$(<код сканирования>)

<флаг клавиатуры>: &H00 (отсутствие флага), &H01 (Shift), &H04 (Ctrl), &H08 (Alt), &H20 (NumLock), &H40 (CapsLock).

<код сканирования> - число, идентифицирующее клавишу: 1 (Esc), 2 (1),..., 1C (Enter), ... .

Следующий вариант команды управляет прерываниями от клавиш.

Key(n) {On | Off | Stop}‑ On, Off, Stop‑ разрешает, запрещает, приостанав­ли­вает обработку прерываний до следующего оператора On Key(n).