Λογική συνθήκη για τερματισμό επανάληψης

Ξεκίνησε από nikolasmer, Σήμερα στις 10:10:08 ΠΜ

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

nikolasmer

Θα ήθελα να ρωτήσω αν είναι παιδαγωγικά πιο εύπεπτο στους μαθητές η χρήση λογικής μεταβλητής για τερματισμό επανάληψης. Και σε περιπτώσεις με τιμή φρουρό και σε περιπτώσεις με όριο και γενικότερα. 
Μερεντίτης Νικόλαος
Πληροφορικός

pgrontas

Εννοείς αντί να γράψουν π.χ. ΜΕΧΡΙΣ_ΟΤΟΥ βρεθηκε=ΑΛΗΘΗΣ να γράψουν ΜΕΧΡΙΣ_ΟΤΟΥ βρεθηκε σκέτο;

Δεν τους είναι πιο εύπεπτο. Προσωπικά αν και τους εξηγώ τον πλεονασμό, δεν φαίνεται να τους κάθεται καλά. Ίσως το συνηθίζουν από τα φροντιστήρια και μετά πρέπει να το ξεσυνηθίσουν.
Φέτος, μάλιστα ένας καλός μαθητής που έχω, όταν τους το ανέφερα, είχε μια στιγμή 'ίδωμεν το φώς το αληθινο' :angel: :angel: :angel: .
Ίσως πρέπει να μπει κάποιο θέμα πανελληνίων σχετικό  >:D >:D >:D

Πάντως γενικά οι μαθητές δεν συμπαθούν τις λογικές μεταβλητές. Προτιμούν πλήθος = 0 κτλ.
Αν κατάλαβα καλά τι εννοείς.


Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

George Eco

Παράθεση από: pgrontas στις Σήμερα στις 10:37:27 ΠΜΔεν τους είναι πιο εύπεπτο. Προσωπικά αν και τους εξηγώ τον πλεονασμό, δεν φαίνεται να τους κάθεται καλά. Ίσως το συνηθίζουν από τα φροντιστήρια και μετά πρέπει να το ξεσυνηθίσουν.

Πάντως γενικά οι μαθητές δεν συμπαθούν τις λογικές μεταβλητές. Προτιμούν πλήθος = 0 κτλ.
Αν κατάλαβα καλά τι εννοείς.

Όλα έχουν να κάνουν εδώ με το διδάσκοντα. Θα πρέπει, κατά τη γνώμη μου πάντα, να εξηγεί το πλεονασμό ΜΕΧΡΙΣ_ΟΤΟΥ χ = ΑΛΗΘΗΣ ( ο οποίος είναι safe ) κι επίσης θα πρέπει να δείχνει και τις εναλλακτικές δυνατές λύσεις ώστε τα παιδιά να βλέπουν διάφορες προσεγγίσεις. Δε ξέρουν τι θα αντικρύσουν στις Πανελλήνιες και δε ξέρουν τι θα απαιτείται. Όσο πιο ευρύ το φάσμα των λύσεων που συζητείται τόσο το καλύτερο.
Όντως οι μαθητές αποφεύγουν τις λογικές μεταβλητές.
Στην αναζήτηση το κάνω εγώ αυτό.
Μπορείς να βάλεις μια λογική μεταβλητή found.
Εναλλακτικά όμως, επειδή τη θέση που βρέθηκε τη θέλουμε συνήθως ( i βρεθηκε το συμβολίζω ιβ)  κάνω και το εξής:
Αρχικοποιώ τη ιβ  <-  -1 που είναι απαράδεκτη τιμή για δείκτη πίνακα.
Αν το ιβ  <>  -1 σημαίνει πως βρέθηκε και δε χρησιμοποιούν λογική μεταβλητή. Είναι πλεονασμός λογική μεταβλητή. ΑΛΛΑ ΣΤΟ ΒΙΒΛΙΟ ΕΤΣΙ ΤΟ ΥΛΟΠΟΙΕΙ.
Άρα; Κάνω και τα δύο.
 
Καθένα παιδί, αν ΞΕΡΕΙ και τα δύο, ας κάνει ό,τι θέλει.



pgrontas

Για μένα είναι πολύ σημαντικά τα ονόματα των μεταβλητών.
Όπως λέει και το quote μου 'Οι αλγόριθμοι πρέπει να μπορούν να διαβάζονται'.

Με αυτή την έννοια δεν μου αρέσει καθόλου η πρακτική του βιβλίου που στην αναζήτηση αλλά και σε άλλα σημεία (found, flag, top κλπ.) κάνει ανάμιξη εντολών στα ελληνικά, μεταβλητών στα αγγλικά κλπ.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

petrosp13

Παράθεση από: pgrontas στις Σήμερα στις 10:37:27 ΠΜ Ίσως το συνηθίζουν από τα φροντιστήρια και μετά πρέπει να το ξεσυνηθίσουν.

Εγώ πάλι έτσι το διδάσκω στο φροντιστήριο και το μαθαίνουν στο σχολείο αλλιώς
Αν και είμαι υπέρ της πλήρους γραφής της συνθήκης γιατί δεν είμαι ασφαλής με την επάρκεια του εκάστοτε βαθμολογητή

Όντως τους χαλάει η χρήση λογικής μεταβλητής και προτιμούν λύση με πλήθος
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

nikolasmer

Δεν εννοούσα το παραπάνω. (Το αν θα βάλουμε και σχεσιακό τελεστή εννοώ).

Αυτό που ήθελα να δω είναι αν γίνεται πιο κατανοητή η λύση άσκησης με λογική μεταβλητή ως έξοδο από επανάληψη και η τιμή της να αλλάζει μέσα σε Αν. Είμαι με κινητό και δε μπορώ να γράψω κώδικα τώρα να το δείξω. Αλλά αυτό που λέω είναι μια παραλλαγή της break όπου θα βγαίνει από επανάληψη κλπ ο χρήστης, αλλαζοντας την τιμή της λογικής μεταβλητής. 
Το παρατηρώ σε λύσεις που δίνουν τα εργαλεία ai ως ενδεδειγμένη λύση και προβληματίζομαι αν είναι παιδαγωγικά πιο καλό και εύπεπτο για τους μαθητές μας. 
Μερεντίτης Νικόλαος
Πληροφορικός

pgrontas

Δηλαδή αυτό;

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                ...
                ΑΝ ... τότε
                      ΒΓΕΣ<- ΑΛΗΘΗΣ
                ΤΕΛΟΣ_ΑΝ
                ... 
ΜΕΧΡΙΣ_ΟΤΟΥ ΒΓΕΣ(=ΑΛΗΘΗΣ)

Αν και μου φαίνεται ότι είναι γενικά και υπό προϋποθέσεις καλύτερη πρακτική, λόγω της αρχής της τοπικότητας (αποφασίζω να βγω όταν παραβιάζεται η συνθήκη και όχι πιο κάτω), νομίζω ότι όχι δεν θα το καταλάβαιναν καλύτερα τα παιδιά, λόγω αφενός της αποστροφής τους προς τις λογικές μεταβλητές και αφετέρου του καθιερωμένου τρόπου διδασκαλίας (συνήθεια).
Βέβαια αυτά μπορούν να αλλάξουν - μιλάω για την παρούσα κατάσταση.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

nikolasmer

Για το δεύτερο που λες Παναγιώτη με ενδιαφέρει . Αξίζει να το προσπαθήσουμε ή διδακτικά θα δυσκολέψει το μαθητή. Έχουμε κάτι σχετικό καμία έρευνα κάτι , που να θέλει αυτό τον τρόπο να είναι καλύτερος ;
Μερεντίτης Νικόλαος
Πληροφορικός

pgrontas

Νικο, δεν ξέρω κάτι.
Αυτό που με προβληματίζει είναι ότι δε σε πετάει κατευθείαν έξω όπως η break, αλλά περιμένεις να φτάσεις στη συνθήκη. Ανάλογα με τις ενδιάμεσες εντολές ενδεχομένως να υπάρχει κίνδυνος να εκτεθείς σε λογικά λάθη.
Αυτό που θα πρέπει να καλλιεργήσουμε είναι το να γράφουν τις εντολές που επηρεάζουν τη συνθήκη, όσο πιο κοντά σε αυτή γίνεται. Και τότε δε θα έχει τόσο σημασία η χρήση της λογικής μεταβλητής.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson