Поддерживать
www.wikidata.ru-ru.nina.az
Podprogramma angl subroutine poimenovannaya ili inym obrazom identificirovannaya chast kompyuternoj programmy soderzhashaya opisanie opredelyonnogo nabora dejstvij Podprogramma mozhet byt mnogokratno vyzvana iz raznyh chastej programmy V yazykah programmirovaniya dlya oformleniya i ispolzovaniya podprogramm sushestvuyut specialnye sintaksicheskie sredstva Naznachenie podprogrammPodprogrammy iznachalno poyavilis kak sredstvo optimizacii programm po obyomu zanimaemoj pamyati oni pozvolili ne povtoryat v programme identichnye bloki koda a opisyvat ih odnokratno i vyzyvat po mere neobhodimosti K nastoyashemu vremeni dannaya funkciya podprogramm PreimushestvaPreimushestva razbieniya programmy na podprogrammy vklyuchayut Dekompoziciya kompleksnoj programmnoj zadachi na prostye shagi eto odin iz dvuh osnovnyh instrumentov strukturirovannogo programmirovaniya i struktur dannyh Umenshenie dublirovannogo koda Vozmozhnost povtornogo ispolzovaniya koda v drugih programmah Razdelenie krupnoj programmnoj zadachi mezhdu razlichnymi programmistami ili razlichnymi stadiyami proekta Sokrytie detalej realizacii ot polzovatelej podprogrammy Uluchshenie proslezhivaniya bolshinstvo yazykov predostavlyayut sposob poluchit sled vyzova kotoryj vklyuchaet v sebya imena zadejstvovannyh podprogramm i vozmozhno dazhe bolshe takoj informacii kak imena fajlov i nomera strok Bez dekompozicii koda na podprogrammy otladka byla by serezno zatrudnena Mehanizm podprogramm ih opisanie i vyzovV prostejshem sluchae v assemblerah podprogramma predstavlyaet soboj posledovatelnost komand operatorov otdelnuyu ot osnovnoj chasti programmy i imeyushuyu v konce specialnuyu komandu vyhoda iz podprogrammy Obychno podprogramma takzhe imeet imya po kotoromu eyo mozhno vyzvat hotya ryad yazykov programmirovaniya dopuskaet ispolzovanie i neimenovannyh podprogramm V yazykah vysokogo urovnya opisanie podprogrammy obychno sostoit po menshej mere iz dvuh chastej zagolovka i tela Zagolovok podprogrammy opisyvaet eyo imya i vozmozhno parametry to est soderzhit informaciyu neobhodimuyu dlya vyzova podprogrammy Telo nabor operatorov kotoryj budet vypolnen vsyakij raz kogda podprogramma budet vyzvana Vyzov podprogrammy vypolnyaetsya s pomoshyu komandy vyzova vklyuchayushej v sebya imya podprogrammy V bolshinstve sovremennyh yazykov programmirovaniya komanda vyzova predstavlyaet soboj prosto imya vyzyvaemoj podprogrammy za kotorym mogut sledovat fakticheskie parametry sm nizhe V sleduyushem primere na yazyke Paskal podprogramma subprog vyzyvaetsya iz osnovnoj programmy trizhdy program SubProgExample Opisanie podprogrammy subprog procedure subprog Zagolovok vklyuchayushij imya podprogrammy begin nachalo tela podprogrammy WriteLn Bye end konec tela podprogrammy begin WriteLn Hello subprog 1 j vyzov subprog 2 j vyzov subprog 3 j vyzov end Rezultatom vypolneniya takoj programmy stanet vyvod stroki Hello i tryoh strok Bye Dlya sohraneniya i vosstanovleniya konteksta vypolneniya vyzyvayushej procedury s celyu isklyucheniya pobochnyh effektov svyazannyh s vozmozhnym nezhelatelnym izmeneniem ispolzuemyh mashinnyh registrov kompilyator formiruet dlya kazhdoj procedury specialnye posledovatelnosti komand nazyvaemye prologom i epilogom procedury Nekotorye yazyki programmirovaniya naprimer Paskal Ada Modula 2 dopuskayut opisanie vlozhennyh podprogramm to est pomeshenie podprogramm vnutr drugih podprogramm Takie vlozhennye podprogrammy mogut ispolzovatsya tolko v toj podprogramme v kotoroj oni opisany V inyh sluchayah naprimer v yazyke Si vlozhenie podprogramm ne dopuskaetsya Nikakih principialnyh preimushestv vlozhenie podprogramm ne dayot no mozhet byt udobno dlya bolee logichnoj strukturizacii programmy esli kakaya to podprogramma ispolzuetsya tolko v nekotoroj drugoj podprogramme logichno pomestit pervuyu vo vtoruyu Parametry podprogrammOsnovnaya statya Parametr programmirovanie Naznachenie parametrov Podprogrammy chasto ispolzuyutsya dlya mnogokratnogo vypolneniya stereotipnyh dejstvij nad razlichnymi dannymi Podprogramma obychno imeet dostup k obektam dannyh opisannym v osnovnoj programme po krajnej mere k nekotorym iz nih poetomu dlya togo chtoby peredat v podprogrammu obrabatyvaemye dannye ih dostatochno prisvoit naprimer globalnym peremennym No takoj put ne osobenno udoben i chrevat oshibkami Dlya obespecheniya kontroliruemoj peredachi parametrov v podprogrammu i vozvrata rezultatov iz neyo ispolzuetsya mehanizm parametrov Parametry opisyvayutsya pri opisanii podprogrammy v eyo zagolovke i mogut ispolzovatsya vnutri procedury analogichno peremennym opisannym v nej Pri vyzove procedury znacheniya kazhdogo iz parametrov ukazyvayutsya v komande vyzova obychno posle imeni vyzyvaemoj podprogrammy program SubProgExample2 Opisanie podprogrammy subprog procedure subprog Line String Zagolovok vklyuchayushij imya podprogrammy begin nachalo tela podprogrammy WriteLn Line end konec tela podprogrammy begin WriteLn Hello subprog Good bye 1 j vyzov subprog my love 2 j vyzov subprog good bye 3 j vyzov end V privedyonnom primere parametr Line podprogrammy subprog v kazhdom vyzove poluchaet razlichnoe znachenie blagodarya chemu vyvodyatsya ne odinakovye stroki a raznye Formalnye i fakticheskie parametry Chtoby otlichat parametry podprogrammy opisannye v eyo zagolovke i tele ot parametrov ukazyvaemyh pri vyzove podprogrammy ispolzuyutsya formalnye i fakticheskie parametry Formalnye parametry ukazyvayutsya pri obyavlenii ili opredelenii podprogrammy a fakticheskie neposredstvenno pri eyo vyzove Tak v poslednem primere parametr Line v zagolovke i tele podprogrammy subprog eto formalnyj parametr a stroka Good bye ispolzovannaya v pervom vyzove etoj podprogrammy fakticheskij parametr Pri vyzove podprogrammy fakticheskie parametry ukazannye v komande vyzova stanovyatsya znacheniyami sootvetstvuyushih formalnyh parametrov chem i obespechivaetsya peredacha dannyh v podprogrammu Sposob peredachi parametrov v podprogrammu Sushestvuet neskolko sposobov peredachi parametrov v podprogrammu Peredacha parametrov po znacheniyu Formalnomu parametru prisvaivaetsya znachenie fakticheskogo parametra V etom sluchae formalnyj parametr budet soderzhat kopiyu znacheniya imeyushegosya v fakticheskom i nikakoe vozdejstvie proizvodimoe vnutri podprogrammy na formalnye parametry ne otrazhaetsya na parametrah fakticheskih Tak esli v kachestve fakticheskogo parametra budet ispolzovana peremennaya i vnutri podprogrammy znachenie sootvetstvuyushego formalnogo parametra budet izmeneno to fakticheskij parametr ostanetsya bez izmenenij int func1 int x x x 2 return x Peredacha parametrov po ssylke V formalnyj parametr mozhet byt pomeshyon sam fakticheskij parametr obychno eto realizuetsya putyom pomesheniya v formalnyj parametr ssylki na fakticheskij Pri etom lyuboe izmenenie formalnogo parametra v podprogramme otrazitsya na fakticheskom parametre oba parametra vo vremya vyzova podprogrammy sut odno i to zhe Parametry peredavaemye po ssylke dayut vozmozhnost ne tolko peredavat parametry vnutr podprogrammy no i vozvrashat vychislennye znacheniya v tochku vyzova Dlya etogo parametru vnutri podprogrammy prosto prisvaivaetsya nuzhnoe znachenie i posle vozvrata iz podprogrammy peremennaya ispolzovannaya v kachestve fakticheskogo parametra poluchaet eto znachenie void func2 int amp x x x 2 Peredacha parametrov po imeni V formalnyj parametr mozhet byt pomesheno proizvolnoe vyrazhenie Pri etom vychislenie etogo vyrazheniya proizojdyot vnutri podprogrammy v tot moment kogda potrebuetsya ego znachenie Esli eto znachenie figuriruet neskolko raz to i vychislyatsya ono budet tozhe neskolko raz Parametry peredavaemye po imeni dayut vozmozhnost pisat dovolno universalnye podprogrammy Takoj sposob peredachi parametrov ispolzuetsya k primeru v yazykah Algol ili Algol 68 Peredacha parametrov cherez stek Eto fakticheski raznovidnost peredachi parametra po znacheniyu s ruchnym privodom v dannom sluchae otsutstvuet ponyatie formalnyh i fakticheskih parametrov Vse parametry lezhat na steke prichyom ih tipy kolichestvo i poryadok ne kontroliruyutsya kompilyatorom Dannyj podhod realizovan v yazyke Fort Yazyk programmirovaniya mozhet predostavlyat vozmozhnost peredavat parametry v podprogrammy libo tolko po znacheniyu libo po znacheniyu i po ssylke libo po imeni i znacheniyu V poslednih dvuh sluchayah dlya razlicheniya sposobov peredachi parametra ispolzuyutsya otdelnye sintaksicheskaya konstrukcii v Paskale eto klyuchevoe slovo var pri opisanii parametra V dejstvitelnosti esli yazyk soderzhit ponyatie ssylki ukazatelya to mozhno obojtis i bez peredachi parametra po ssylke eyo vsegda mozhno smodelirovat opisav parametr tipa ssylka no eta vozmozhnost udobna tak kak pozvolyaet rabotat s formalnym parametrom ssylkoj bez a takzhe povyshaet nadyozhnost i bezopasnost programmy Na parametry peredavaemye po ssylke nakladyvayutsya estestvennye ogranicheniya fakticheskij parametr podstavlyaemyj na mesto takogo parametra pri vyzove obyazan byt peremennoj to est imet adres a v yazykah so strogoj tipizaciej eshyo i imet v tochnosti takoj zhe tip dannyh Vidy podprogrammV yazykah programmirovaniya vysokogo urovnya ispolzuetsya dva tipa podprogramm procedury i funkcii Funkciya eto podprogramma specialnogo vida kotoraya krome polucheniya parametrov vypolneniya dejstvij i peredachi rezultatov raboty cherez parametry imeet eshyo odnu osobennost ona vsegda dolzhna vozvrashat rezultat Vyzov funkcii yavlyaetsya s tochki zreniya yazyka programmirovaniya vyrazheniem on mozhet ispolzovatsya v drugih vyrazheniyah ili v kachestve pravoj chasti prisvaivaniya Procedura eto nezavisimaya imenovannaya chast programmy kotoruyu posle odnokratnogo opisaniya mozhno mnogokratno vyzvat po imeni iz posleduyushih chastej programmy dlya vypolneniya opredelennyh dejstvij V C podobnyh yazykah podprogramma vsegda opisyvaetsya kak funkciya Procedura realizuetsya kak funkciya tipa void to est imeyushaya pustoj tip i sootvetstvenno ne vozvrashayushaya nikakogo znacheniya Podprogrammy vhodyashie v sostav klassov v obektnyh yazykah programmirovaniya obychno nazyvayutsya metodami Etim terminom nazyvayut lyubye podprogrammy chleny klassa kak funkcii tak i procedury kogda trebuetsya utochnenie govoryat o metodah procedurah ili metodah funkciyah Sm takzhePeredacha parametra Soglashenie o vyzoveV state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 16 noyabrya 2013
Вершина