Использование подпрограмм при изучении языка программирования Basic

Применение подпрограмм
при изучении языка программирования Basic

Группа операторов, выполняющая решение некоторой подзадачи, может быть оформлена в стандартном виде. В таком случае к ней можно обращаться из разных мест программ, не переписывая каждый раз операторы этой группы. Выделенную группу операторов, оформленную в стандартном виде, называют подпрограммой.
Использование подпрограмм уменьшает общее количество операторов в программе. Для размещения программы требуется меньше памяти, Кроме того, улучшается структура программы и облегчается ее отладка, так как работа каждой подпрограммы может быть проверена по отдельности.
Для вызова подпрограммы используется оператор GOSUB. В операторе GOSUB указывают номер первой строки подпрограммы. В конце подпрограммы должен стоять оператор RETURN (возврат). Этот оператор приказывает перейти обратно к оператору, записанному сразу после оператора GOSUB.
В конце основной программы ставится оператор END. Чтобы подпрограмма при обращении к ней выполнялась каждый раз с новыми данными, ее надо составлять в общем виде, а исходные данные для работы передавать в переменные подпрограммы перед обращением к ней. Например, если в программе требуется решить три квадратных уравнения с различными коэффициентами, то алгоритм нахождения корней квадратного уравнения целесообразно оформить в виде подпрограммы, используя для обозначения переменные. Перед каждым обращением к подпрограмме надо задать этим переменным числовые значения, соответствующие коэффициентам решаемых уравнений.
При применении подпрограмм надо придерживаться следующих правил:
- четко обозначать начало и конец каждой подпрограммы;
- следить за тем, чтобы перед обращением к подпрограмме ее переменные получили нужное значение;
- подпрограмма не должна выполняться без обращения к ней, это вызывает ошибку.

Общая схема программы с использованием подпрограммы
Начало основной программы
Операторы основной программы
Операторы основной программы, служащие для присвоения значений переменным, используемым в подпрограмме
Вызов подпрограммы (GOSUB)
Операторы основной программы
Операторы основной программы, служащие для присвоения новых значений переменным, используемым в подпрограмме
Вызов подпрограммы(GOSUB)
Конец основной программы (END)
Начало подпрограммы
Операторы подпрограммы
Оператор возврата в основную программу (RETURN)

Пример оформления подпрограммой изображения разноцветного кружка с различными координатами центра и радиусом:
10 CLS
20 INPUT A
30 X=30
35 Y=40
40 R=20
50 C=14
60 GOSUB 250
65 X=35
70 Y=50
80 R=25
85 C=2
90 GOSUB 250
100 END
250 SCREEN 7
260 CIRCLE(X,Y),R,C
270 RETURN

Еще один пример:
Составить программу преобразования милей в километры.
100 INPUT «Введите расстояние в милях»; М
105 GOSUB 200
110 PRINT “ Pасстояние в милях= “;М, “ Расстояние в км= “;К
120 END
200 REM подпрограмма перевода милей в км
210 К=М*1.609
220 RETURN

Самостоятельно
Нарисовать флаг олимпиады, используя программу для рисования окружности. Для получения рисунка следует 5 раз записать оператор вызова подпрограммы, каждый раз задавая координаты центра окружности и цвет.

Составить программу печати поздравительных открыток. Стандартную часть открытки ( поздравляю, желаю без указания конкретного имени) оформить в виде подпрограммы.

Используя готовые подпрограммы для изображения крыши домика и стены с окном, составить программу для построения:
а) трех одноэтажных, рядом стоящих домиков;
б) пятиэтажной разноцветной башни.
Подпрограмма для изображения стены с окном:
200 SCREEN 7
210 LINE (X,Y)-(X+L,Y+H),C,B
220 LINE (X+3*L/5,Y+H/4)-(X+4*L/5,Y+H/2),C,B
230 RETURN
Подпрограмма для изображения крыши:
300 SCREEN 7
310 LINE (X,Y)-(X+L,Y),C
320 LINE (X,Y)-(X+L/2,Y-H),C
330 LINE (X+L/2,Y-H)-(X+L,Y),C
340 RETURN