/ / Rekursija yra kas? Režimas į programavimą (pavyzdžiai)

Kas yra rekursija? Režimas į programavimą (pavyzdžiai)

Rekordai yra įdomūs renginiaipatys, bet programuojant jie yra ypač svarbūs atskirais atvejais. Pirmą kartą susidūrus su jais, gana daug žmonių susiduria su jų supratimu. Tai yra dėl to, kad yra didžiulis galimo termino taikymo sritis, priklausomai nuo konteksto, kuriame naudojama "recursion". Tačiau galima tikėtis, kad šis straipsnis padės išvengti galimų nesusipratimų ar nesusipratimų.

Kas yra "rekursija" apskritai?

rekursija yra
Žodis "rekursija" turi daugybę reikšmių,kurios priklauso nuo vietos, kurioje jis taikomas. Tai visuotinis žymėjimas: rekursijos yra apibrėžimai, vaizdai, objektų ar procesų aprašymai pačiame objekte. Jos yra įmanomos tik tais atvejais, kai objektas yra jo dalis. Savo ruožtu matematika, fizika, programavimas ir daugybė kitų mokslo disciplinų apibrėžia rekursiją. Praktiškai ji rasta informacinių sistemų ir fizinių eksperimentų darbe.

Ką reiškia rekursija programuojant?

paskalio rekursija
Rekursinės situacijos arba rekursijaprogramavimas, yra vadinamos momentais, kai programos procedūra ar funkcija pats skamba. Kaip keista, kaip gali atrodyti tiems, kurie pradėjo mokytis programavimo, tai nėra skamba keistai. Atminkite, kad rekursija nėra sudėtinga ir kai kuriais atvejais jie pakeičia ciklus. Jei kompiuteris teisingai priskiria procedūrą ar funkcijos skambutį, jis tiesiog pradeda jį vykdyti.

Rekursija gali būti baigta ar begalybė. Norint, kad pirmasis sustotųsi pats, taip pat turi būti nutrauktos sąlygos. Tai gali būti kintamojo vertės sumažėjimas, ir kai tam tikra vertė pasiekiama, skambučio sustabdymas ir programos užbaigimas / perėjimas į vėlesnį kodą priklauso nuo tam tikrų tikslų poreikio. Begaline rekursija reiškia, kad ji bus vadinama tuo metu, kai veikia kompiuteris ar programa, kurioje jis veikia.

Taip pat galima organizuoti kompleksinę rekursiją sunaudojant dvi funkcijas. Tarkime, kad yra A ir B. Funkcija turi skambutį savo kodu B, o B, savo ruožtu, nurodo kompiuteriui atlikti A. Kompleksinės rekursijos yra kelias iš sudėtingų logiškų kompiuterinės logikos situacijų.

Jei skaitytojas skaito programąjis tikriausiai jau pastebėjo jų panašumą ir rekursiją. Apskritai jie iš tiesų gali atlikti panašias arba identiškas užduotis. Naudojant rekursiją, patartina imituoti ciklo darbą. Tai ypač naudinga tais atvejais, kai patys ciklai nėra labai patogu. Programinės įrangos įdiegimo schema labai nesiskiria nuo skirtingų aukšto lygio programavimo kalbų. Bet vis tiek "Paskalio" rekursija ir C arba kitos kalbos rekursija turi savo ypatumus. Tai gali būti sėkmingai įgyvendinta žemo lygio kalbose, pvz., "Assembler", tačiau tai yra daug problemiškesnių ir daug laiko reikalaujančių.

Rekursijos medžiai

programavimo rekursija
Kas yra "medis" programavimo metu? Tai baigtinis rinkinys, susidedantis iš bent vieno mazgo, kuris:

  1. Jame yra pirminis specialus mazgas, kuris vadinamas viso medžio šaknimi.
  2. Likusieji mazgai skiriasi nuo nulio, poromis nesuderinami pogrupiai, ir jie taip pat yra medis. Visos tokios organizacijos formos vadinamos pagrindinio medžio pogrindėmis.

Kitaip tariant: Medžiams yra subrūkus, kuriuose yra medžių, tačiau mažesniu nei ankstesnio medžio kiekiu. Tai tęsiasi, kol vienas iš mazgų turi galimybę judėti į priekį, o tai parodys pabaigos rekursiją. Yra dar vienas niuansas apie scheminį vaizdą: iš apačios į viršų auga įprasti medžiai, o programavimo procese - atgal. Komponentai, neturintys pratęsimo, vadinami galutiniais mazgai. Nurodymo patogumui ir patogumui naudojama genealoginė terminologija (protėviai, vaikai).

Kodėl jis naudojamas programuojant?

rekursinė funkcija
Nustatyta, kad jis naudojasi programavimo rekursijasprendžiant daugybę sudėtingų problemų. Jei jums reikia atlikti tik vieną skambutį, lengviau naudoti integracijos ciklą, tačiau su dviem ar daugiau pakartojimų, kad būtų išvengta grandinės kūrimo ir jų vykdymo kaip medžio, ir taikomos rekursinės situacijos. Dėl plačios klasės problemų skaičiavimo proceso organizavimas tokiu būdu yra optimaliausias išteklių suvartojimo požiūriu. Taigi, "Pascal" ar bet kurios kitos aukšto lygio programavimo kalbos rekursija yra funkcija arba procedūros pokalbis, kol sąlygos bus įvykdytos, nepriklausomai nuo išorinių skambučių skaičiaus. Kitaip tariant, programoje gali būti tik viena prieiga prie paprogramės, tačiau ji įvyks iki tam tikros momento iš anksto. Tam tikra prasme tai yra ciklo analogas su savo konkrečiu naudojimu.

Skirtumai tarp skirtingų programavimo kalbų

Nepaisant bendros įgyvendinimo schemos ir specifinėsKiekvienu atveju taikant programą, programavimo rekursija turi savo ypatybes. Tai gali sukelti sunkumų ieškant reikiamos medžiagos. Bet mes visada turėtume prisiminti: jei programavimo kalba skambina funkcijomis ar procedūromis, tada rekursinis skambutis yra realus dalykas. Tačiau didžiausi skirtumai atsiranda naudojant mažas ir aukštas programavimo kalbas. Ypač tai susiję su programinės įrangos įdiegimo galimybėmis. Vykdymas galiausiai priklauso nuo to, kuris uždavinys yra nustatytas, pagal tai yra parašyta rekursija. Funkcijos ir procedūros naudojamos skirtingai, tačiau jų tikslas visada tas pats - priversti save pašaukti save.

Rekursija yra lengva. Kaip tik prisiminti straipsnio turinį?

rekursijos pavyzdžiai
Pradedantiesiems tai suprasti, galbūt iš pradžiųTodėl sunku, mums reikia rekursijos pavyzdžių ar bent vieno. Todėl turėtume pateikti nedidelį kasdienio gyvenimo pavyzdį, kuris padėtų suvokti šios programinės įrangos tikslų įgyvendinimo esmę. Paimkite du ar daugiau veidrodžių, nustatykite juos taip, kad visi kiti būtų rodomi viename. Galite matyti, kad veidrodžiai atsiranda pakartotinai, sukuriant begalybės efektą. Čia rekordijos, vaizdine prasme, atspindys (jų bus daug). Kaip matote, lengva suprasti, būtų noras. Ir studijuodami programavimo medžiagą, galite dar suprasti, kad rekursija taip pat yra labai lengva užduotis.

Skaityti daugiau: