Η τεχνική της αναδρομής είναι εκτός ύλης ΑΕΠΠ (αν και τα πρώτα χρόνια ήταν εντός).
Ουσιαστικά πρόκειται για τις περιπτώσεις που κάποιο υποπρόγραμμα καλεί τον εαυτό του.
Με το παρακάτω παράδειγμα μπορείτε να δείτε με πολύ εποπτικό τρόπο τη "στοίβα κλήσεων", δηλαδή τις συνεχόμενες εμφωλευμένες εκτελέσεις της συνάρτησης Παραγοντικό.
Απλά βάλτε ένα σημείο διακοπής στη γραμμή 24 ("Παραγοντικό <-- 1") και εκτελέστε δίνοντας για είσοδο π.χ. 5.
Έτσι η εκτέλεση θα παγώσει κατά την τελευταία κλήση της συνάρτησης (δηλ. όταν α=1) και θα μπορείτε να παρατηρήσετε τη στοίβα κλήσεων με τη συνεχώς μειούμενη παράμετρο α.
Μετά το σημείο διακοπής οι εκτελέσεις της Παραγοντικό θα ολοκληρώνονται η μία μετά την άλλη και η στοίβα κλήσεων θα συρρικνωθεί στην αρχική της μορφή.
(Εναλλακτικά μπορείτε να μειώσετε λίγο την ταχύτητα εκτέλεσης.)
Νομίζω ότι είναι αρκετά εντυπωσιακό όταν το βλέπεις τόσο παραστατικά...
ΠΡΟΓΡΑΜΜΑ Επίδειξη_Αναδρομικής_Τεχνικής_στην_Έκδοση_Διερμηνευτή
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε έναν αριθμό:'
ΔΙΑΒΑΣΕ χ
ΓΡΑΨΕ 'Το παραγοντικό του είναι:', Παραγοντικό(χ)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Επίδειξη_Αναδρομικής_Τεχνικής_στην_Έκδοση_Διερμηνευτή
!-----------------------------------------------------------------------
ΣΥΝΑΡΤΗΣΗ Παραγοντικό(α): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α
ΑΡΧΗ
ΑΝ α=1 ΤΟΤΕ
Παραγοντικό <-- 1
ΑΛΛΙΩΣ
Παραγοντικό <-- Παραγοντικό(α-1) * α
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ