Підпрограма
Підпрограма (англ. subroutine) — частина програми, яка реалізує певний алгоритм і дозволяє звернення до неї з різних частин загальної (головної) програми. В термінах мов програмування: функції (С), процедури (Pascal), методи (в термінології об'єктно-орієнтованого програмування в мовах C++, Java, С# та ін.).
Підпрограма часто використовується для скорочення розмірів програм в тих задачах, в процесі розв'язання яких необхідно виконати декілька разів однаковий алгоритм при різних значеннях параметрів. Інструкції (оператори, команди), які реалізують відповідну підпрограму, записують один раз, а в необхідних місцях розміщують інструкцію виклику підпрограми.
Набір найвживаніших підпрограм утворює бібліотеку стандартних підпрограм.
В більшості мов програмування високого рівня, підпрограми називаються процедурами та функціями. В залежності від мови програмування, терміни «процедура» та «функція» можуть розрізнятися (як правило, процедурою називають підпрограму, що не повертає результату, тоді як функція має результат і може використовуватись як частина виразу) чи розглядатись як синоніми (зокрема, в мові C, де в початковому варіанті всі підпрограми могли повертати результат, їх здебільшого називають функціями). У об'єктно-орієнтованому програмуванні функції-члени класів називають методами.
Використання процедур
ред.Використання кожної процедури пов'язане з її описанням та викликом. Описання процедури складається, як правило із заголовка процедури, та тіла процедури. Заголовок містить ідентифікатор процедури, та сукупність формальних параметрів, і, можливо, деякі їхні характеристики. Тіло процедури складається з деякої послідовності операторів. Виклик процедури відбувається із відповідних точок програми вказанням ідентифікатора процедури, її фактичних параметрів, і, можливо, входу в її тіло.
Типи процедур
ред.Процедури та функції
ред.Розрізняють два способи використання процедур в програмах: як процедур-операторів, виклик яких представляє завершену одиницю дій мови програмування, та процедур-функцій, виклик яких здійснюється через відповідні вказівники функцій, які використовуються лише як складові елементи виразів мови програмування. Завжди, при виклику процедури, формальні параметри в тілі цієї процедури замінюються на фактичні (передача параметрів за посиланням), або їхніми значеннями (передача параметрів по значенню) і виконується перетворене таким чином тіло процедури.
Відкриті та замкнені процедури
ред.Відповідно до способу зв'язування з основною програмою процедури ділять на відкриті та замкнені.
Відкриті процедури складаються з малої кількості команд, їх вставляють в тіло програми кожен раз, коли зустрічається їхній виклик.[джерело?]
Замкнені процедури розміщуються окремо від основної програми, при кожному виклику замкненої процедури, організовується відповідна передача управління та повертання в точку виклику. Як правило, стандартні процедури замкнені.
Особливий випадок представляє рекурсивна процедура та процедура без параметрів, виклик якої містить лише її ідентифікатор.
Приклади підпрограм (функцій)
ред.JavaScript
ред.function name(text, element)
{
document.getElementById(element).innerHTML = text;
}
ActionScript
ред.public function name(text: string)
{
var textfield: TextField = new TextField();
textfield.text = text;
}
С++
ред.void name(string text)
{
cout << text;
}
C#
ред.public void name(string text)
{
System.Console.WriteLine(text);
}
Pascal
ред.procedure name(var text: string)
begin
write(text);
end;
PHP
ред.function name($text)
{
echo $text;
}
Standard ML
ред.fun name t = print t
або, теж саме (див. Функція першого класу и лямбда-функція):
val name = fn t => print t
Visual Basic
ред.Sub Name(text)
Console.WriteLine(text)
End Sub
PureBasic
ред.Procedure.l Name(text.s)
PrintN(text)
EndProcedure
Python
ред.def func(text):
print(text)
Див. також
ред.- Комп'ютерна програма
- Рекурсія (програмування)
- Співпрограма
- Замикання — один із різновидів підпрограм.
Джерела
ред.- Енциклопедія кібернетики : у 2 т. / за ред. В. М. Глушкова. — Київ : Гол. ред. Української радянської енциклопедії, 1973., с. 177, 251.
- Дональд Кнут. Fundamental Algorithms // The Art of Computer Programming. — 3rd. — Massachusetts : Addison–Wesley, 1997. — Т. 1. — 650 с. — ISBN 0-201-89683-4.(англ.)
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |