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?
Ką reiškia rekursija programuojant?
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
- Jame yra pirminis specialus mazgas, kuris vadinamas viso medžio šaknimi.
- 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?
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.