funcţii recursive

În cazul în care corpul funcției întâlnește provocare în sine această funcție, atunci avem de-a face cu așa-numitele recursivitate. În Pascal de programare recursiv poate avea ambele funcții și proceduri.

În acest exemplu, procedura afișează numerele Reveniț trecut ca un număr de parametru real, în ordine inversă. Ie Dacă vom trece numărul 35, atunci procedura se va afișa numărul 53. Să vedem cum o face:

  1. Trecem numărul 3096.
  2. Procedură Reveniț afișează restul împărțirii cu 10. Acest număr este 6.
  3. Începe o nouă linie este cruțat scrie second-hand.
  4. Controale pentru o boala care 3096 atunci când diviziunea întreg de 10 este mai mare decât zero.
  5. Se numește Reveniț cu parametrul efectiv setat la 309.
  6. A doua procedură este lansată afișează numărul 9 și începe a treia procedura cu 30 de parametri.
  7. A treia procedură ieșiri 0 și cauzează a patra Reveniț 3 ca parametru.
  8. A patra procedură durează 3 pe ecran, și nimic altceva este, pentru că condiție (3 div 10) <> 0 este falsă.
  9. A patra procedură este finalizată și transmite o treime de control.
  10. Al treilea proces este finalizat și transmite al doilea control.
  11. Al doilea proces este finalizat și transmite primul control.
  12. Prima procedură este finalizată, și transferă controlul programului mainline.

În final, procedura Reveniț a fost numit de patru ori, cu toate că programul principal a fost singurul tratament.

Prezența corpului în ceea ce privește funcțiile recursive (sau proceduri), în care aceasta nu se mai nu va provoca, este foarte important. In caz contrar, la fel ca în situația poate apărea așa-numita buclă cicluri.