Κι εγώ πιστεύω πως δεν είναι καλύτερη από παιδαγωγική άποψη η αυτόματη αρχικοποίηση των μεταβλητών. Κατ' αρχάς αυτό σχετίζεται περισσότερο με το στάδιο του προγραμματισμού και όχι αυτό της αλγοριθμικής σχεδίασης. Κι αφού προκρίνουμε την αλγοριθμική σκέψη σε σχέση με τις προγραμματιστικές τεχνικές, τότε οι μεταβλητές θα πρέπει να θεωρούνται στην αρχή απροσδιόριστες ώστε αυτός που φτιάχνει τον αλγόριθμο να φροντίσει για την κατάλληλη αρχικοποίησή τους.
1ο παράδειγμα:
Για το άθροισμα και γινόμενο 10 αριθμών που θα διαβαστούν έχουμε τον αλγόριθμο:
Αλγόριθμος άθροισμα_γινόμενο
Αθρ<-0
Γιν<-1
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ+α
Γιν<-Γιν*α
Τέλος_επανάληψης
Αποτελέσματα // Αθρ, Γιν //
Τέλος άθροισμα_γινόμενο
Αν θεωρήσουμε εξ ορισμού αρχική τιμή το 0 στις αριθμητικές μεταβλητές, τότε θα μπορούσαμε να γράφουμε:
Αλγόριθμος άθροισμα_γινόμενο
Γιν<-1
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ+α
Γιν<-Γιν*α
Τέλος_επανάληψης
Αποτελέσματα // Αθρ, Γιν //
Τέλος άθροισμα_γινόμενο
Ποιο όμως είναι το όφελος από παιδαγωγική άποψη; Έχουμε και αδικία: το Αθρ ευνοείται αλλά το Γιν πληρώνει κανονικά το μάρμαρο!
*******************************
2ο παράδειγμα:
Για να διαβαστούν 20 αριθμοί και να βρούμε το μέσο όρο των 10 αρχικών από αυτούς και το μέσο όρο όλων μαζί των αριθμών, έχουμε:
Αλγόριθμος Μέσοι_όροι
Αθρ<-0
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ + α
Τέλος_επανάληψης
ΜΟ1 <- Αθρ /10
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ + α
Τέλος_επανάληψης
ΜΟ2 <- Αθρ /20
Αποτελέσματα // ΜΟ1, ΜΟ2 //
Τέλος Μέσοι_όροι
Το παρακάτω θα ήταν λάθος και θα έδειχνε κάποια παρανόηση του μαθητή:
Αλγόριθμος Μέσοι_όροι
Αθρ<-0
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ + α
Τέλος_επανάληψης
ΜΟ1 <- Αθρ /10
Αθρ<-0
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ + α
Τέλος_επανάληψης
ΜΟ2 <- Αθρ /20
Αποτελέσματα // ΜΟ1, ΜΟ2 //
Τέλος Μέσοι_όροι
... εκτός κι αν γραφόταν έτσι:
Αλγόριθμος Μέσοι_όροι
Αθρ1<-0
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ1 <- Αθρ1 + α
Τέλος_επανάληψης
ΜΟ1 <- Αθρ1 /10
Αθρ2<-0
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ2 <- Αθρ2 + α
Τέλος_επανάληψης
ΜΟ2 <- (Αθρ1+Αθρ2) /20
Αποτελέσματα // ΜΟ1, ΜΟ2 //
Τέλος Μέσοι_όροι
Αν θεωρήσουμε εξ ορισμού αρχική τιμή το 0 στις αριθμητικές μεταβλητές, τότε θα μπορούσαμε να γράφουμε:
Αλγόριθμος Μέσοι_όροι
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ + α
Τέλος_επανάληψης
ΜΟ1 <- Αθρ /10
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ <- Αθρ + α
Τέλος_επανάληψης
ΜΟ2 <- Αθρ /20
Αποτελέσματα // ΜΟ1, ΜΟ2 //
Τέλος Μέσοι_όροι
... ή και έτσι:
Αλγόριθμος Μέσοι_όροι
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ1 <- Αθρ1 + α
Τέλος_επανάληψης
ΜΟ1 <- Αθρ1 /10
Για ι από 1 μέχρι 10
Διάβασε α
Αθρ2 <- Αθρ2 + α
Τέλος_επανάληψης
ΜΟ2 <- (Αθρ1+Αθρ2) /20
Αποτελέσματα // ΜΟ1, ΜΟ2 //
Τέλος Μέσοι_όροι
Ποιο όμως είναι το όφελος από παιδαγωγική άποψη;