В БЕЙСИКЕ ГБОУ СОШ 840
Понятие « подпрограмма » - одно из важнейших в программировании. Использование подпрограмм - наиболее мощное средство повышения эффективности применения ЭВМ и снижения затрат на разработку программ. Подпрограммой (п/п ) называется участок программы, оформленный определенным образом, к которому можно обращаться из разных точек программы любое число раз. При этом п/п может решать каждый раз одну и ту же задачу с _ разными значениями исходных данных. Программу, в которой используется п/п, называют рабочей ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ ГБОУ СОШ 840
Целесообразно использовать п/п тогда, когда в процессе решения задачи многократно встречается некоторая подзадача. При этом возможны два случая: 1) Указанная подзадача является типовой, часто встречающейся задачей - математической, технической и т. д. Пример подобной задачи - вычисление определенного интеграла, решение уравнения с одним неизвестным и т. д. В настоящее время для большинства подобных задач составлены программы (оформленные обычно, как п/п). Они публикуются в весьма многочисленных сборниках программ. журналах. В этом случае задача программиста - найти нужную п/п и включить ее в текст рабочей программы. ГБОУ СОШ 840
2) Для упомянутой подзадачи не существует (не удалось найти) готовой программы (п /п). В этом случае программист должен: - составить программу решения подзадачи; - оформить ее, как п /п; - включить п/п в текст рабочей программы. Использование п/п позволяет существенно уменьшить объем рабочей программы. С термином «подпрограмма» тесно связано еще одно понятие: оператор вызова п/ п - оператор, обеспечивающий исполнение п/п. Он помещается в той точке рабочей программы, где необходимо выполнить п/п, ГБОУ СОШ 840
Пример: Покажем, как будет выглядеть на языке БЕЙСИК п /п (назовем ее «Функция»), вычисляющая функцию У=АХ 2 +В. Для этой п/п исходные данные: А, Х, В ; результат: У. Подпрограмма «Функция»: 100 RЕМ SUB FUNK 110 Y=A*X^2+B 120 RETURN ГБОУ СОШ 840
Приведем теперь пример рабочей программы (с п/п «FUNK»), вычисляющей значение функции z: z=3 sin 2 R+5. Для этой программы исходные данные: R ; результат: z. Очевидно, для вычисления Z можно использовать нашу п/п, если принять: А=3, В=5, X=sinR Именно эти операции и реализует в первую очередь Рабочая программа, после чего выполняет п /п, в этом ее суть: 10 RЕМ РАБОЧАЯ ПРО ГРАММА 20 RЕМ ВВОДИМ ДАННЫЕ ДЛЯ РАБОЧЕЙ ПРОГРАММЫ 30 INPUT R 40 RЕМ ВЫЧИСЛЯЕМ ДАННЫЕ ДЛЯ П/П 50 А=3 : B=5: X=SIN(R) 60 REM ПЕРЕХОДИМ К П/П 70 GOSUB Z=Y 100 PRINT "Z=";Z 110 END 130 REM SUB ФУНК (НАЧАЛО П/П) 140 Y=A*X^2+B 150 REM ВОЗВРАЩАЕНСЯ К СТРОКЕ RETURN ГБОУ СОШ 840
ПОДПРОГРАММА ИМЕЕТ СТРУКТУРУ, ИЗОБРАЖЕННУЮ НА СХЕМЕ N REM SUB заголовок п/п Операторы п/п M RETURN Текст п/п N(M) –номер 1-й(последней строки) п/п SUB-признак п/п, REM-комментарий -любой текст Операторы п/п-любые операторы языка RETURN-оператор без аргументов, обеспечивает возврат в рабочую программу после выполнения п/п ГБОУ СОШ 840
Общий вид оператора: k GOSUB n где k - номер строки; GOSUB - имя оператора (означает «перейти к п/п»); n - номер строки- заголовка п/п, Пример: 50 GOSUB 200 Р а б о т а о пер а т о р а: оператор запоминает номер строки программы, следующей за ним по тексту, и переходит к выполнению п/п, начиная с n-й строки. Оператор RETURN. Он обеспечивает возврат из п/п в рабочую про грамму непосредственно к строке, следующей за оператором GOSUB. ОПЕРАТОР ВЫЗОВА П/П. ГБОУ СОШ 840
L REM Операторы…. Вычисление исходных величин для п/п Оператор вызова п/п (GOSUB…) Запоминание результатов п/п Операторы Описание п/п STOP P END РАБОЧАЯ ПРОГРАММА Общий вид структуры. Стрелками показан порядок выполнения п/п и операторов рабочей программы. В рабочей программе необходимо определить значения всех исходных данных к п/п (до операторов GOSUB ), а после него запомнить результаты и тем избежать их уничтожения в случае повторного обращения к п/п. ГБОУ СОШ 840
РЕШЕНИЕ
ГБОУ СОШ 840