Подпрограммы.

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

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

При работе с подпрограммой необходимо помнить:

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

В качестве оператора обращения к подпрограмме используется 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 "результат"; rez

END

m1: p = 1

FOR i = 1 TO f p = p * i

NEXT i