Ця стаття не містить . (грудень 2019) |
Підпрограма (англ. subroutine) — частина програми, яка реалізує певний алгоритм і дозволяє звернення до неї з різних частин загальної (головної) програми. В термінах мов програмування: функції (С), процедури (Pascal), методи (в термінології об'єктно-орієнтованого програмування в мовах , 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, с. 177, 251.
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про мови програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno gruden 2019 Pidprograma angl subroutine chastina programi yaka realizuye pevnij algoritm i dozvolyaye zvernennya do neyi z riznih chastin zagalnoyi golovnoyi programi V terminah mov programuvannya funkciyi S proceduri Pascal metodi v terminologiyi ob yektno oriyentovanogo programuvannya v movah C Java S ta in Pidprograma chasto vikoristovuyetsya dlya skorochennya rozmiriv program v tih zadachah v procesi rozv yazannya yakih neobhidno vikonati dekilka raziv odnakovij algoritm pri riznih znachennyah parametriv Instrukciyi operatori komandi yaki realizuyut vidpovidnu pidprogramu zapisuyut odin raz a v neobhidnih miscyah rozmishuyut instrukciyu vikliku pidprogrami Nabir najvzhivanishih pidprogram utvoryuye biblioteku standartnih pidprogram V bilshosti mov programuvannya visokogo rivnya pidprogrami nazivayutsya procedurami ta funkciyami V zalezhnosti vid movi programuvannya termini procedura ta funkciya mozhut rozriznyatisya yak pravilo proceduroyu nazivayut pidprogramu sho ne povertaye rezultatu todi yak funkciya maye rezultat i mozhe vikoristovuvatis yak chastina virazu chi rozglyadatis yak sinonimi zokrema v movi C de v pochatkovomu varianti vsi pidprogrami mogli povertati rezultat yih zdebilshogo nazivayut funkciyami U ob yektno oriyentovanomu programuvanni funkciyi chleni klasiv nazivayut metodami Vikoristannya procedurVikoristannya kozhnoyi proceduri pov yazane z yiyi opisannyam ta viklikom Opisannya proceduri skladayetsya yak pravilo iz zagolovka proceduri ta tila proceduri Zagolovok mistit identifikator proceduri ta sukupnist formalnih parametriv i mozhlivo deyaki yihni harakteristiki Tilo proceduri skladayetsya z deyakoyi poslidovnosti operatoriv Viklik proceduri vidbuvayetsya iz vidpovidnih tochok programi vkazannyam identifikatora proceduri yiyi faktichnih parametriv i mozhlivo vhodu v yiyi tilo Tipi procedurProceduri ta funkciyi Rozriznyayut dva sposobi vikoristannya procedur v programah yak procedur operatoriv viklik yakih predstavlyaye zavershenu odinicyu dij movi programuvannya ta procedur funkcij viklik yakih zdijsnyuyetsya cherez vidpovidni vkazivniki funkcij yaki vikoristovuyutsya lishe yak skladovi elementi viraziv movi programuvannya Zavzhdi pri vikliku proceduri formalni parametri v tili ciyeyi proceduri zaminyuyutsya na faktichni peredacha parametriv za posilannyam abo yihnimi znachennyami peredacha parametriv po znachennyu i vikonuyetsya peretvorene takim chinom tilo proceduri Vidkriti ta zamkneni proceduri Vidpovidno do sposobu zv yazuvannya z osnovnoyu programoyu proceduri dilyat na vidkriti ta zamkneni Vidkriti proceduri skladayutsya z maloyi kilkosti komand yih vstavlyayut v tilo programi kozhen raz koli zustrichayetsya yihnij viklik dzherelo Zamkneni proceduri rozmishuyutsya okremo vid osnovnoyi programi pri kozhnomu vikliku zamknenoyi proceduri organizovuyetsya vidpovidna peredacha upravlinnya ta povertannya v tochku vikliku Yak pravilo standartni proceduri zamkneni Osoblivij vipadok predstavlyaye rekursivna procedura ta procedura bez parametriv viklik yakoyi mistit lishe yiyi identifikator Prikladi pidprogram funkcij JavaScript function name text element document getElementById element innerHTML text ActionScript public function name text string var textfield TextField new TextField textfield text text S void name string text cout lt lt 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 abo tezh same div Funkciya pershogo klasu i val name fn t gt 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 Div takozhKomp yuterna programa Rekursiya programuvannya Spivprograma Zamikannya odin iz riznovidiv pidprogram DzherelaEnciklopediya kibernetiki t 2 s 177 251 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi