Basic вводный курс


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



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

Иногда в определенных местах программы приходится выполнять практически одни и те же последовательности действий с разными исходными данными. Такие последовательности действий можно оформить в виде так называемых подпрограмм (от англ. "subroutine"). Подпрограммы сокращают текст программы, существенно уменьшают время их исполнения, облегчают жизнь программистам, которые могут создавать программы модульно, т. е. собирая сложную программу из законченных кусочков более простых составляющих. Это позволяет создавать большие программы группой программистов, разрабатывать и реализовать группе школьников какие-либо глобальные проекты.
Для примера использования процедуры приведем программу вычисления следующего выражения:

Z=N!/M!*(N-M)!

Переменные N и М, а также выражение (N—М) снабжены восклицательным знаком, который в математике означает не что иное, как факториал (например, N-факториал). Факториал — это произведение натуральных чисел от 1 до N включительно. Например, 3!=1х2хЗ=6, а, например, 6! — это уже 1x2x3x4x5x6=720.
В выражении нам три раза придется вычислять факториал, производя при этом одни и те же действия с разными числами. Нам облегчит работу подпрофамма, которую мы разместим в конце основной профаммы и назовем, например, fact. В подпрофам-ме мы опишем, как вычислить факториал вообще, а затем из основной программы обратимся к подпрофамме три раза с различными параметрами. Вот как будет выглядеть проuhамма:

CLS
1 : INPUT "Введите значения N и М"; N, М
K=N
GOSUB FACT
Х1=Р
К=М
GOSUB FACT
Х2=Р
K=(N-M)
GOSUB FACT
Z=X1/(X2*P)
PRINT "Искомое выражение равно"; Z
PRINT "Еще одно выражение?(Y/N): INPUT а$
IF UCASE$(a$)="Y" THEN 1 ELSE PRINT "До новых встреч
у монитора..." END
' Описание подпрограммы FACT для вычисления факториала
FACT:
Р=1
FOR i=l TO К
P=P*i NEXT i RETURN

Рассмотрим работу программы. Начало стандартное: очистка экрана, запрос с клавиатуры исходных данных. Самое интересное начинается потом. Подпрограмма fact описана после слова end основной профаммы, что обусловлено простым желанием, чтобы профамма все же не зациклилась, а когда-нибудь все-
таки завершилась. Параметром подпрограммы является переменная к, для которой и вычисляется факториал.
В основной программе мы присваиваем переменной к значение переменной n, для которой мы хотим вычислить первый факториал из трех. После чего необходимо обратиться к подпрограмме. Для этого существует специальное слово gosub, после которого указывается имя подпрограммы (в нашем случае fact). Управление переходит на первый оператор, содержащийся в подпрограмме, затем выполняются все операторы подпрограммы, вплоть до ключевого слова return. Это означает, что подпрограмма закончилась, и управление передается в основную программу.









Начало  Назад  Вперед