Βαγγέλη σου απαντάω για τα παραδείγματα μέσα από το βιβλίο που παραθέτεις.
Σε όλα τα παραδείγματα θεωρούνται γνωστά (δεδομένα) τα στοιχεία προς επεξεργασία. Όταν λέμε Δεδομένα //α, β// εννοούμε ότι με κάποιο τρόπο (που δε μας ενδιαφέρει ποιος είναι αυτός), τα στοιχεία μας είναι γνωστά δηλαδή έχουν γνωστές τιμές και γι αυτό δεν ασχολούμαστε με το πώς ξέρουμε τις τιμές αλλά μόνο με το επεξεργαστικό κομμάτι του αλγορίθμου. Δε σημαίνει ότι σώνει καλά ήρθαν μέσα από εντολή Διάβασε. Θα μπορούσαν να έρθουν και έτσι αλλά όχι όταν πρόκειται για μεγέθη πινάκων. Σημαίνει «είναι γνωστοί αριθμοί, θεωρήστε τους δεδομένους πχ 5, 10 ή 20 κλπ και προχωρήστε στην επεξεργασία. »
Ξαναλέω ότι ο λόγος ύπαρξης ΓΛΩΣΣΑΣ και όχι μόνο ψευδογλώσσας είναι ότι δεν είναι δυνατόν να λύνεις προβλήματα πάνω σε αφηρημένες δομές δεδομένων. Δεν είναι δυνατόν να λύνεις ένα πρόβλημα σε ψευδογλώσσα και όταν έρθει η ώρα να κάνεις εργαστήριο να πούμε στο παιδί «ο αλγόριθμος σου δε μεταφέρεται σε ΓΛΩΣΣΑ». Δεν είναι παιδαγωγικά σωστό αυτό. Όπως και είναι εντελώς λάθος από επιστημονική άποψη το να ορίζουμε τεράστιους πίνακες ενώ δεν είναι αναγκαίοι. Δεν μαθαίνουμε τα παιδιά σωστά.
Γράφω και μερικά πράγματα πιο συγκεκριμένα για κάθε ένα από τα συγκεκριμένα θέματα.
Στη σελίδα 90 του σχολικού βιβλίου γίνεται υπολογισμός δύναμη αριθμού με άλλο αλγόριθμο (χρησιμοποιεί δυναμικό προγραμματισμό) και αποθηκεύει κάποιες δυνάμεις του αριθμού (όχι όλες) σε πίνακα έτσι ώστε στη συνέχεια να τις χρησιμοποιήσει για να υπολογίσει γρηγορότερα τη δύναμη. Στο συγκεκριμένο αλγόριθμο η χρήση πίνακα είναι αναγκαία γιατί θα ξαναπεράσει από τα στοιχεία που υπολόγισε πριν. Δεν είναι δυνατόν ο συγκεκριμένος αλγόριθμος να υλοποιηθεί χωρίς πίνακα γιατί δεν ξέρεις εκ των προτέρων ποιες από τις δυνάμεις θα χρησιμοποιηθούν τελικά στην άθροιση. Η χρήση πίνακα είναι λοιπόν επιβεβλημένη.
Προφανώς γίνεται υπόθεση για μέγιστο μέγεθος αριθμών. Δεν γίνεται ο αλγόριθμος να λειτουργήσει για αυθαίρετα μεγάλους αριθμούς. Ωστόσο δείτε πόσο γρήγορα ανεβαίνει η δύναμη που αποθηκεύεται. Σε κάθε κελί μπαίνει το τετράγωνο του προηγούμενο κελιού. Αν μιλάμε για το 3, στο κελί 4 αποθηκεύεται ο αριθμός 6561. Στο κελί 5 αποθηκεύεται ο αριθμός 43046721. Σε ελάχιστα κελιά ο αριθμός εκτοξεύεται. Πόσα κελιά λες να χρειαστούν για κάποιους αριθμούς που χωράνε στον υπολογιστή;
Στο συγκεκριμένο παράδειγμα γίνεται χρήση πινάκων προκειμένου να αυξηθεί πάρα πολύ η ταχύτητα υπολογισμού. Υπάρχει η σιωπηλή παραδοχή για μέγιστο μέγεθος αριθμών προφανώς αφού κάνει χρήση πίνακα. Είναι ο τρόπος με τον οποίο οι υπολογιστές υπολογίζουν δυνάμεις.
Εννοείται ότι σε καμία περίπτωση δεν χρησιμοποιεί πίνακα για πρόβλημα που λύνεται χωρίς πίνακα και σε καμία περίπτωση ο πίνακας αυτός δεν είναι αυθαίρετα μεγάλος. Τέλος όπως είπα και πριν οι αριθμοί θεωρούνται δεδομένοι.
Στη σελίδα 32 του τετραδίου μαθητή, το πλήθος των στοιχείων που θα αποθηκευτούν (τα μη μηδενικά στοιχεία) είναι n. Ξέρουμε ότι το πλήθος των στοιχείων του πίνακα είναι 3n. Το ξέρουμε εκ των προτέρων.
Στο τετράδιο μαθητή σελ. 35, κεφάλαιο 3 το μέγεθος της συλλογής είναι γνωστό και χρησιμοποιεί πίνακα μεγαλύτερο. Δεν τίθεται θέμα περιττής χρήσης πίνακα αφού μιλάμε για ταξινόμηση.