Τι μεταβλητές δημιουργούνται στη μνήμη κατά την εκτέλεση της συνάρτησης;
Συγκεκριμένα... θα πρέπει να δημιουργείται στον πίνακα τιμών μεταβλητή με '...το όνομα της συνάρτησης...' κατά την εκτέλεση της συνάρτησης; ή όχι;
Το βιβλίο αναφέρει, γενικά, ότι '...η συνάρτηση υπολογίζει ..... και το αποτέλεσμα αυτό εκχωρείται στο όνομα της συνάρτησης...' (σελ.213 - τελευταία παράγραφος).
Κάποιοι συνάδελφοι (Ντζιός - Κοψίνης) το έχουν ερμηνεύσει αυτό (σωστά κατά τη γνώμη μου) σαν τη δημιουργία, στη μνήμη, μεταβλητής με όνομα το όνομα της συνάρτησης (η οποία απλά δε δηλώνεται στο τμήμα δηλώσεων της συνάρτησης αφού συσιθαστικά έχει δηλωθεί στην επικεφαλίδα της). Η τιμή της μεταβλητής αυτής εκχωρείται, μετά το τέλος της συνάρτησης, στη μεταβλητή που υπάρχει για την κλήση της συνάρτησης στο κυρίως πρόγραμμα. Αυτό επιτρέπει την υλοποίηση της συνάρτησης όπως δόθηκε πιό πάνω, όπου χρησιμοποιείται η ... μεταβλητή πλήθος σαν κοινή μεταβλητή.
Όμως το βιβλίο αναφέρει, '... Στις εντολές του σώματος της συνάρτησης θα πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης ...' Το υποχρεωτικά είναι ... παρεξηγήσιμο... :
- "υποχρεωτικά ... μία"

ή
- "θα πρέπει ... υποχρεωτικά" (επομένως ΤΟΥΛΑΧΙΣΤΟΝ μία)
Αν είναι το πρώτο, τότε ο κώδικας της συνάρτησης που υπολογίζει το πλήθος κάσποιας τιμής σε ένα πίνακα δεν θα μπορούσε να είναι:
ΣΥΝΑΡΤΗΣΗ Πλήθος(Π, Ζητούμενη_τιμή): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Π[100], Ζητούμενη_Τιμή
ΑΡΧΗ
Πλήθος <-- 0
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΝ Π[ι]=Ζητούμενη_Τιμή ΤΟΤΕ
Πλήθος <-- Πλήθος + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
αφού χρησιμοποιεί τη μεταβλητή πλήθος σαν κοινή μεταβλητή.... θα έπρεπε να γραφεί:
ΣΥΝΑΡΤΗΣΗ Πλήθος(Π, Ζητούμενη_τιμή): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: Π[100], Ζητούμενη_Τιμή
ΑΚΕΡΑΙΑ: Μετρητής
ΑΡΧΗ
Μετρητής <-- 0
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΝ Π[ι]=Ζητούμενη_Τιμή ΤΟΤΕ
Μετρητής <-- Μετρητής + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Πλήθος <-- Μετρητής
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Τι λέτε;