Основной алгоритм и алгоритм вычисления значения факториала представим в виде основной программы и подпрограммы. Вызов подпро-
граммы из основной программы осуществляется с помощью оператора GOSUB. Возвращение из подпрограммы в основную программу осуществляется оператором RETURN. Перед каждым обращением к подпрограмме пользователя параметр факториала n (его конечное значение) вычисляется по формуле, которая используется в данной ветви вычислений.
CLS
REM Программа с подпрограммой пользователя
INPUT "a=";a, "b=";b, "x=";x
IF a=b THEN m1
IF a>b THEN m2
REM Вычисление при b>a
n=b
GOSUB m3
Z=X*SIN(X)/F:GOTO m4
m1: REM Вычисление при a=b
n=a*x+2
GOSUB m3
Z=F: GOTO m4
m2: REM Вычисление при a>b
n=a
GOSUB m3
Z=F*b*x^2/(a^2+b^2)
m4: PRINT"Z="Z,"F="F
STOP
m3: REM Подпрограмма вычисления факториала
F=1
FOR i=2 TO n
F=F*i
NEXT i
RETURN
END
Процедуры. Операторы SUB и END SUB
Процедура – это несколько повторяющихся операторов, имеющих имя и список формальных параметров. Процедура и подпрограмма в принципе похожи, взаимозаменяемы, т.к. обе являются последовательностью операторов, т.е. фрагментом программы. Однако подпрограмма составляется для вычисления часто повторяющихся в основной программе
выражений - перевод градусной меры углов в радианную, чисел из одной системы счисления в другую, вычисление факториала и т.д. Процедура предназначена для выполнения какой-либо служебной последовательности операторов - рисование рамки таблицы, вызов программы на Ассемблере и др,, хотя своими операторами также может вычислять функции, как и подпрограмма или функция пользователя.
Формат процедуры:
[метка] SUB имя (список формальных параметров)
Операторы
[метка] END SUB
или
SUB имя (список формальных параметров)
(LOCAL список переменных)
(STATIC список переменных)
(SHARED список переменных)
Операторы
(EXIT SUB)