Η εντολή Για με βήμα 0 (Ασάφεια διδακτικού πακέτου)

Ξεκίνησε από gpapargi, 09 Φεβ 2010, 01:27:57 ΜΜ

« προηγούμενο - επόμενο »

Στη δομή Για ... από ... μέχρι

Η αποτίμηση του βήματος, της αρχικής τιμής και της τελικής γίνεται μια φορά στην αρχή. Ο μετρητής της επανάληψης δεν μπορεί να αλλάξει κατά την διάρκεια της εκτέλεσης των επαναλήψεων
Δεν υπάρχει τέτοιος περιορισμός. Τα παραπάνω αποτελούν κακή πρακτική αλλά δεν είναι λάθος.

Νίκος Αδαμόπουλος

Παράθεση από: gpapargi στις 11 Φεβ 2010, 03:02:25 ΜΜ
Δεν είναι αξίωμα ότι η Για με βήμα 0 είναι ατέρμων βρόχος. Είναι κάτι που προκύπτει από τη μετατροπή. Είναι... ας πούμε θεώρημα.

Αυτό ουσιαστικά εννοώ κι εγώ με το παραπάνω: "...οι άπειρες επαναλήψεις δεν μπορεί να είναι επιδιωκόμενο αποτέλεσμα του ορισμού λειτουργίας μιας εντολής επανάληψης, αλλά μάλλον είναι το αναπόφευκτο αποτέλεσμα του πραγματικού τρόπου λειτουργίας της".

Μήπως να φέρουμε στο τραπέζι και την εκδοχή: αν το βήμα είναι 0 να μην κάνει καθόλου επαναλήψεις! (εικασία 2 από τις παραπάνω). Ή να μην επιτρέπεται καν, οπότε αν τελικά προκύψει κάτι τέτοιο τότε να βγάζει run time error, όπως π.χ. όταν έχουμε διαίρεση με το 0; Ή μήπως έτσι απομακρυνόμαστε πολύ από το βιβλίο - δηλαδή πάει μακριά η βαλίτσα!

Νίκος Αδαμόπουλος

Να εκφράσω και τον εξής προβληματισμό μου: Μήπως οι πολλές ελευθερίες στη λειτουργία της Για αντί για καλύτερα αποτελέσματα μας οδηγήσουν σε αντίθετη κατεύθυνση; Δηλαδή μήπως μετά βλέπουμε όλο και πιο συχνά μέσα σε αλγορίθμους περίεργες λύσεις οι οποίες δεν θα χαρακτηρίζονταν ως σωστές πρακτικές αποτύπωσης της αλγοριθμικής σκέψης (τόσο από συναδέλφους όσο και από μαθητές); Μήπως δηλαδή η πλάστιγγα γύρει προς την εκμάθηση προγραμματιστικών τεχνικών; Πόσο ανεξέλεγκτο θα το αφήσουμε; Ποιος είναι ο σκοπός ύπαρξης της εντολής Για;  Π.χ. η goto δεν είναι η εντολή που πραγματικά μας δίνει την ελευθερία να πηγαίνουμε όπου θέλουμε; Είναι όμως επιθυμητό τελικά να μπορούμε να πηγαίνουμε όπου θέλουμε;

sstergou

Συμφωνώ με αυτά Νίκο. Το θέμα όμως είναι να υπάρχει η goto και εσύ να επιλέγεις να μην τη χρησιμοποιήσεις. Έτσι και με την Για και με όλες τις δομές.