Δεν το υπέβαλλα προσωπικά σε σένα φίλε, αλλά στην άποψη που θέλει να είναι αντι-επιστημονική η παρουσίαση σημέων στην ΑΕΠΠ όπως αυτή.
Εντάξει, δεν το κατάλαβα απλά φαίνεται σαν να απευθύνεσαι σε μένα και για μια στιγμή ανησύχησα για τη μνήμη μου (γεράματα)
Συμφωνώ με την προσέγγισή σου, αλλά δε νομίζω ότι το παράδειγμα είναι ισομορφικό. Όσα χρόνια διδάσκω το μάθημα (σαφώς λιγότερα από τους περισσότερους εδώ μέσα), μου έχει δημιουργηθεί η εντύπωση πως η παρουσίαση πολλών θεμάτων στο βιβλίο δεν είναι ούτε με επιστημονικό αλλά ούτε και με διδακτικό τρόπο, τουλάχιστον όσο μπορώ να δω με τις γνώσεις που έχω. Δηλαδή αν για κάποιον διδακτικό σκοπό αποκρύψουμε κάποια πράγματα, τότε οκ δεν έχω κανένα πρόβλημα. Αλλά εδώ και ειδικά στα υποπρογράμματα γίνεται χαμός. Αφού η ΓΛΩΣΣΑ είναι κατά το μεγαλύτερο κομμάτι της μια μετάφραση της Pascal γιατί δεν υιοθέτησαν και αυτά που ισχύουν στα υποπρογράμματα; Δεν είπα να κάνουν τα παιδιά C, αλλά η φιλοσοφία της Pascal μια χαρά είναι. Δεν θα ήταν καλύτερο να είχαν μια κωδική λέξη ας πούμε όπως το var για να ξεχωρίζουν οι παράμετροι εισόδου/εξόδου ή το in/out της Ada ας πούμε;
Ειδικά στο τρόπο μεταβίβασης παραμέτρων δεν βλέπω ούτε επιστημονικό ούτε διδακτικό σχεδιασμό να κρύβεται από πίσω. Το ίδιο ισχύει με το Διάβασε σε Συνάρτηση. Γιατί να θεωρείται λάθος? Δεν θα ήταν πιο λογικό να πούμε στα ότι παιδιά είναι κακός σχεδιασμός? (που ούτε αυτό είναι, μια χαρά δούλευε η readkey στην Pascal).
Συνεπώς θεωρώ απόλυτα αξιοπρεπή τον τρόπο που η ΓΛΩΣΣΑ χειρίζεται τον τμηματικό προγραμματισμό και μου αρκούν τα εργαλεία που μου διαθέτει για να παρουσιάσω αυτό το κεφάλαιο στους μαθητές.
Δε λέω ότι με τα εργαλεία αυτά δεν μπορείς να παρουσιάσεις τον τμηματικό προγραμματισμό αξιοπρεπώς. Θα μπορούσε όμως να είναι πολύ καλύτερος χωρίς να δυσκολέψει. Για παράδειγμα θα μπορούσαν να αντιμετωπιστούν τα παρακάτω θέματα που θίγεις
- Όχι ΔΙΑΒΑΣΕ/ΓΡΑΨΕ στη συνάρτηση.
Δεν υπάρχει σοβαρός λόγος ώστε να απαγορεύεσεις κάτι τέτοιο στον προγραμματισμό. Αν σου πουν να κάνεις ένα υποπρόγραμμα που να διαβάζει έναν αριθμό ή και να κάνει έλεγχο εγκυρότητας καλύτερα γίνεται με συνάρτηση παρά με διαδικασία. βλέπε readkey() στην Pascal, getchar() στη C κλπ. Στο Γράψε φυσικά υπάρχει πρόβλημα γιατί εκεί η συνάρτηση θα είχε 2 εξόδους οπότε αυτό σηκώνει πολύ κριτική. Και πάλι όμως δεν μπορεί να θεωρηθεί
λάθος αλλά κακός σχεδιασμός.
- Όχι ΣΤΑΘΕΡΕΣ ως παράμετροι στη διαδικασία, ναι στη συνάρτηση
Αν είχαμε το var της Pascal ή το in/out της Ada τότε δεν θα υπήρχε αυτό το πρόβλημα
- Υποχρεωτικά παράμετροι στη συνάρτηση, προαιρετικά στη διαδικασία
αν επιτρέπεις σε μια συνάρτηση να διαβάζει τότε μπορεί και να μην έχει παραμέτρους. Αλλά και πάλι αν κάνεις μια συνάρτηση που να υπολογίζει το e για παράδειγμα, που είναι το κακό? Απλά είναι κακός σχεδιασμός, οκ, αλλά πάλι δεν μπορεί να χαρακτηριστεί ως λάθος