Подпрограммы.
При составлении программ иногда возникают ситуации, когда необходимо в различных точках программы выполнить ряд одинаковых действий. Для выполнения таких действий пишут подпрограммы.
Подпрограмма – это определенным образом оформленная группа, операторов, к которой можно обратится из разных точек подпрограммы. Подпрограмма может быть вызвана из основной программы неограниченное количество раз. По отношению к каждой подпрограмме все переменные программы условно разделяются на входные и выходные. Входные – это переменные которым присваиваются значения исходных данных, необходимые для решения задачи выполняемой основной программы. Выходные - это переменные в которых получаются результаты работы подпрограммы.
При работе с подпрограммой необходимо помнить:
- Перед обращением к подпрограмме всем его входным переменным необходимо присвоить входные значения
- В основной программе имя переменной не должно совпадать с именем переменной подпрограммы если она не должна быть изменена
- Подпрограмма не должна запускаться без обращения к ней.
- Следует избегать обращение из подпрограммы к самой себе.
В качестве оператора обращения к подпрограмме используется GOSUB, в качестве конца подпрограммы – RETURN.
Синтаксис:
GOSUB <метка>
...
...
...
RETURN
<метка> представляет собой метку строки подпрограммы.
Оператор (операторы) RETURN в подпрограмме вызывает переход на оператор, следующий за последним выполненным оператором GOSUB. Подпрограмма может содержать несколько операторов RETURN, каждый из которых будет осуществлять выход из подпрограммы в определенной точке. Подпрограммы могут располагаться в различных местах программы.
Пример:
GOSUB m1
PRINT "STOP"
END
m1:PRINT "1234567890"
RETURN
Найти значение
Значение факториала вычисляем через подпрограмму и приведем к виду:
INPUT "введите переменную"; a
INPUT "введите переменную"; b
INPUT "введите переменную"; c
INPUT "введите переменную"; e
f = a: GOSUB m1: m = p
f = b: GOSUB m1: n = p
f = c: GOSUB m1: d = p
f = c: GOSUB m1: g = p
rez = m / (d - g)
PRINT "результат"; re
zEND
m1: p = 1
FOR i = 1 TO f p = p * i
NEXT i