Στο σχολικό βιβλίο στη σελίδα 184 αναφέρει τους διδακτικούς στόχους σχετικά με τους πίνακες και ένας από αυτούς είναι:
Να είναι σε θέση ο μαθητής να αποφασίζει αν είναι απαραίτητη η χρήση πίνακα.Υποθέτω ότι όλοι κάνουμε μάθημα βάσει των διδακτικών στόχων που θέτει το βιβλίο ή όχι?
Αλήθεια γιατί θεωρούμε τόσο κακή την αλλαγή του μετρητή της Για μέσα στην επανάληψη και όχι την περιττή χρήση πινάκων? αφού και τα δύο είναι κακή πρακτική. Ποια είναι η διαφορά?
επίσης όταν το μέγεθος των δεδομένων δεν είναι γνωστό
δεν μπορούμε να χρησιμοποιήσουμε πίνακα. Αν κάποιος διαφωνεί ας προσπαθήσει να χρησιμοποιήσει πίνακα στο θέμα Γ των επαναληπτικών του 2011 με το βενζινάδικο.
Γενικότερα υπάρχουν και πραγματικά προβλήματα όπου δεν μπορούμε να έχουμε όλα τα δεδομένα στη μνήμη, π.χ. όταν έχουμε συνεχείς ροές δεδομένων (streams) ,
http://en.wikipedia.org/wiki/Streaming_algorithmhttp://en.wikipedia.org/wiki/Online_algorithmΠέρα δηλαδή από το γεγονός ότι οι πίνακες που ορίζει το βιβλίο είναι στατικοί, δηλαδή το μέγεθός τους πρέπει να είναι γνωστό ακριβώς πριν ξεκινήσει η εκτέλεση του αλγορίθμου/προγράμματος, η περιορισμένη χρήση μνήμης έχει νόημα ακόμα και σήμερα σε πραγματικά προβλήματα
Από την άλλη μονάδες για την περιττή χρήση πινάκων δεν κόβονται σε καμία περίπτωση στο μάθημά μας, καλώς ή κακώς. Για να γίνει κάτι τέτοιο θα πρέπει να υπάρχει σχετική πρόβλεψη στην εκφώνηση του προβλήματος, π.χ. να απαγορεύει τη χρήση πινάκων ή να θέτει κάποιο όριο. Δεν έχουμε δει τέτοιο θέμα μέχρι στιγμής πάντως.
Ας δώσω και το παρακάτω πρόβλημα για συζήτηση:
Πρόβλημα Να γραφτεί αλγόριθμος ο οποίος να διαβάζει 100000000 αριθμούς και να εμφανίζει τον μεγαλύτερο.
Λύση 1Χρησιμοποιεί μια μεταβλητή για κάθε επανάληψη και μια για το max, ο κλασικός αλγόριθμος χωρίς πίνακα
Λύση 2Τα αποθηκεύει όλα σε πίνακα και στη συνέχεια κάνει ταξινόμηση και εμφανίζει το 1ο στοιχείο
Ερώτηση: Οι δυο παραπάνω λύσεις πρέπει να βαθμολογηθούν το ίδιο κατά τη γνώμη σας;