Операторы GOSUB, return

Последовательность повторяющихся в программе операторов может быть оформлена в виде подпрограммы.

Подпрограмма - это фрагмент программы, которая реализует операции, часто повторяющиеся в нескольких точках программы. Подпрограммы обычно размещаются в конце программы перед операторами DATA (если они имеются), и всегда перед оператором END.

Для обращения к подпрограмме используется оператор GOSUB.

Формат оператора

[метка] GOSUB [метка1],

где [метка1] метка некоторой строки, с которой начинается подпрограмма - точка входа в подпрограмму.

При выполнении GOSUB управление передается строке подпрограммы, метка которой указана в операторе GOSUB (напр., оператор GOSUB N010 передает управление подпрограмме, которая начинает выполняться со строки с меткой N010).

Подпрограмма может содержать любые операторы языка QB, но последним выполняемым оператором подпрограммы должен быть оператор RETURN, формат которого должен быть [метка] RETURN.

Оператор RETURN обеспечивает возврат управления на оператор, следующий за оператором GOSUB, осуществившим переход на подпрограмму.

Пример 4:

........................

GOSUB 1000

PRINT 'A='A,'B='B

........................

REM Подпрограмма 4

........................

RETURN

Оператор RETURN передает управление строке PRINT 'A='A,'B='B. QBASIC допускает использование в одной программе нескольких подпро-

грамм. Они могут помещаться одна после другой в конце программы в порядке возрастания номеров строк.

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

Для работы операторов RETURN среда программирования QBASIC организует таблицу адресов возврата. Каждый раз, когда в программе выполняется оператор GOSUB, QB помещает в таблицу адрес строки, следующей за оператором GOSUB. Таблица вмещает не более 20 адресов строк.

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

Для условной передачи управления одной из нескольких подпрограмм или к одной из нескольких входных точек одной подпрограммы может быть использован оператор ON GOSUB.

Формат оператора:

[метка] ON [арифм.выражение] GOSUB [список],

где [список] - список меток или номеров строк, являющихся точками входов в подпрограмму.

Результат вычисления выражения может принимать значения от 0 до 255, в противном случае печатается сообщение об ошибке. В результате выполнения этого оператора происходит передача управления в зависимости от значения арифметического выражения. Если его значение равно единице, передается управление строке, номер которой в списке стоит первым Если значение арифметического выражения равно двум то строке, номер которой в списке стоит вторым, и т.д.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: