Video: Ravioli pesce gatto e taccole, tagliatelle tonno e melanzane "Ep.2/3 Menù di Natale #chefnunzio 2024
Recursion este un cuvânt mare, înfricoșător pe care îl auziți frecvent despre programare, în special despre felul de programare frustrant pe care îl predau la universitate. Deși este un concept ușor de descris, este într-adevăr un suflet minte atunci când vine vorba de înțelegerea modului în care funcționează recursiunea. Cei mai mulți oameni acceptă și continuă. Nu aici!
Recurgerea este în esență procesul unei funcții care se numește ea însăși. De exemplu:
void funct (int x) {funct (x);}
În această bucată de cod, vedeți un exemplu teribil de funcție recursivă, (). Asta e recursiunea. Acum, ceea ce se întâmplă în acest exemplu este, practic, o buclă fără sfârșit și, datorită unui lucru tehnic sau altul, numit stack pointe r , , computerul se prăbușește în cele din urmă. Dar este doar o ilustrare.
Pentru recursul la muncă, funcția trebuie să aibă o condiție de salvare, la fel ca o buclă. De aceea, fie valoarea trecută la funcția recursivă, fie valoarea returnată trebuie să fie testată. Iată un exemplu mai bun al unei funcții recursive:
recursion void (int x) {if (x == 0) întoarcere; altfel {puts ("Boop!"); recursion (- x);}}
Funcția recursion () acceptă valoarea x . Dacă x este egal cu zero, funcția se înmulțește. În caz contrar, funcția este chemată din nou, dar valoarea x este redusă. Operatorul de prefix decrement este folosit astfel încât valoarea x este redusă înainte de apelul este efectuat.
Funcția recursion () a probelor scutește textul Boop! de un anumit număr de ori. Deci, dacă se numește recursion () cu valoarea 10, se vede că textul este afișat de zece ori.
Partea nebună despre recursivitate este că funcția continuă să se numească ea însăși, înfășurându-se mai strânsă și mai strânsă, ca și cum ar fi într-o spirală. În exemplul precedent, condiția x == 1 în cele din urmă se desprinde că mizeria twisty, tragerea din ce în ce mai înapoi până când funcția este terminată.
Următorul cod afișează un program complet utilizând funcția recursion sample ().
#include recursion void (int x); int principal () {recursiv (10); retur (0);} recursiune voidă (int x) {if (x == 0) întoarcere; altfel {puts ("Boop!"); recursiunea (- x);}}
O demonstrație comună a recursivității este o funcție factorială. Factorul este rezultatul înmulțirii unei valori cu fiecare dintre numerele sale pozitive. De exemplu:
4! = 4 × 3 × 2 × 1
Rezultatul acestui factorial este 24. Calculatorul poate face acest calcul, fie prin implementarea unei buclă, fie prin crearea unei funcții recursive.Iată o astfel de funcție:
int factorial (int x) {if (x == 1) retur (x); altul returnează (x * factorial (x-1));}
Ca și în cazul celorlalte funcții recursive, funcția factorial () conține o condiție de ieșire: x == 1. În caz contrar, funcția este chemată din nou cu o valoare mai mică decât valoarea curentă de x . Dar toată acțiunea are loc cu valorile returnate.