Понятие подпрограммы. Два типа подпрограмм языка QBASIC. Вызов подпрограммы.
При повторении определённых алгоритмов и действий можно воспользоваться структурой, которая называется подпрограммой, т.е. можно сказать что подпрограммой является набор операторов который обслуживает повторение определённых операций и действий.
Два типа:
1. Подпрограмма без параметров COSUB...RETURN
2. Подпрограмма с параметрами SUB
В первом типе к подпрограмме можно обратиться с помощью оператора GOSUB из любой строки основной программы. Когда операторы подпрограммы исполнены и достигнут оператор RETURN, управление автоматически передаётся обратно, к оператору в строке, непосредственно следующий за GOSUB.
Формат записи:
GOSUB метка
……..
END
метка: REM начало
………
RETURN
Второй тип иногда называют процедурами, т.е. это последовательность строк программы, расположенная между операторами SUB и END SUB выполняемая при обращении к ней при помощи оператора CALL.
Формат записи:
SUB имя ( список параметров)
описание переменных
операторы
[EXIT SUB]
END SUB
Имя может содержать до 31 символа. Список параметров(не более 16) может содержать имена переменных и массивов.
Отличия типов:
1. Процедура не обязана возвращать значения, она не имеет типа.
3. Вызывается оператором CALL, а не из выражения отдельные переменные используемые в процедуре могут быть объявлены
а) локальными, т.е. действующими только в данной программе (оператор LOCAL)
б) общими, т.е. действующими как в подпрограмме, так и в основной программе (оператор SHARED)
в) статическими, т.е. действующими в данной подпрограмме, как LOCAL , но сохраняющими полученные значения до следующего обращения (оператор STATIC).
Для описания процедуры используется оператор DECLERE SUB имя (параметры), который выполняет проверку аргументов на соответствие типу данных. Оператор необходим при вызове процедур SUB без использования CALL.
BASIC автоматически добавляет DECLARE при сохранении программы.