Αν...λογική μεταβλητή?

Ξεκίνησε από john81, 08 Δεκ 2009, 10:00:23 ΠΜ

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

john81

Καλημέρα, είναι η πρώτη φορά που γράφω στο στέκι. Η σύνταξη της Αν είναι "Αν συνθήκη τότε". Γράφοντας τον παρακάτω αλγόριθμο -παρόλο που δεν όρισα συνθήκη -εμφάνισε έξοδο(σε γλώσσες όπως την C κάτι τέτοιο επιτρέπεται). Εδώ όμως γιατί;

ΠΡΟΓΡΑΜΜΑ Απορία
ΜΕΤΑΒΛΗΤΕΣ
  ΛΟΓΙΚΕΣ: χ

ΑΡΧΗ
  χ <- ΨΕΥΔΗΣ

  ΑΝ χ ΤΟΤΕ
    ΓΡΑΨΕ 'Η χ είναι αληθής'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Η χ είναι ψευδής'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Σας ευχαριστώ εκ των προτέρων

sstergou

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

Μία μεταβλητή αποτελεί από μόνη της έκφραση. Μία λογική μεταβλητή λοιπόν είναι έγκυρη συνθήκη.




P.Tsiotakis

δε θα την έγραφα ποτέ έτσι στα παιδιά, προσωπικά...

gthal

Γιατί Παναγιώτη; Με ενδιαφέρει από παιδαγωγικής σκοπιάς.
Φιλικά,
Γιώργος Θαλασσινός

pgrontas

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

gthal

Κι εμένα μ' αρέσει, και με λίγη εξήγηση το καταλαβαίνουν οι μαθητές και τους αρέσει.
Επίσης είναι ένα από τα επιχειρήματά μου γιατί να προτιμούν τις λογικές μεταβλητές αντί
αριθμητικών ή αλφαριθμητικών ('ΝΑΙ' / 'ΟΧΙ') flags που προτείνουν διαισθητικά κάποιοι μαθητές
Φιλικά,
Γιώργος Θαλασσινός

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

Και εγώ έχω τοποθετηθεί υπέρ μιας τέτοιας χρήσης των λογικών μεταβλητών (https://alkisg.mysch.gr/steki/index.php?topic=2373.msg19393#msg19393)... Όμως απλά το αναφέρω μια-δυο φορές στους μαθητές και δεν επιμένω πολύ αφού και το σχολικό βιβλίο δεν ακολουθεί αυτήν τακτική (βλ. αλγόριθμο σειριακής αναζήτησης) ούτε και εμβαθύνει στη χρήση των λογικών μεταβλητών (κακώς κατά τη γνώμη μου!). Οπότε τελικά ίσως και να προκαλεί σύγχυση! Αλήθεια, είναι σίγουρο ότι όλοι οι βαθμολογητές θα το λάβουν ως σωστό;  :o

evry


Κατά τη γνώμη μου όχι μόνο πρέπει να το παίρνουμ σωστό αλλά θα έτσι θα έπρεπε να ήταν από την αρχή!!!
Δυστυχώς δεν έχουμε κάποια ένδειξη από το διδακτικό πακέτο που να μας λέει ότι μπορούμε να το χρησιμοποιούμε (αν και δεν είμαι και από τους καλύτερους γνώστες του ΔΠ, Ο Τσιωτάκης θα μπορεί να απαντήσει εδώ), οπότε προσωπικά δεν θα πρότεινα στους μαθητές μου κάτι τέτοιο, γιατί ποτέ δεν ξέρεις σε τι βαθμολογητή/τρια θα πέσεις
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

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

Ακόμη:
Ο κώδικας
Κώδικας: "Αλγόριθμος"
Αν α > 3 τότε

είναι ο ίδιος με
Κώδικας: "Αλγόριθμος"
Αν α > 3 = Αληθής

αλλά κανείς δεν το γράφει έτσι και δεν υπάρχει πρόβλημα.

Γιατί να υπάρχει πρόβλημα με αυτό ;
Κώδικας: "Αλγόριθμος"
μεγαλύτερος_του_3 <- α > 3
Αν μεγαλύτερος_του_3 τότε


Καρκαμάνης Γεώργιος

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

Οι μαθητές έχουν ταυτίσει την εντολη Αν με την ύπαρξη συνθηκών και αν εμείς τους γράφουμε μια εντολη Αν χωρίς την προφανή ύπαρξη συνθήκης νόμιζω θα τους μπεδρέψουμε.

Ναι στην χρήση  λογικών μεταβλητών αλλά πάντα με την χρήση συνθηκών
Αν χ=αληθής τότε
είναι πιο απλο και κατανοητή

Επίσης οι βαθμολογητές θα πρέπει να   δεχτούν την σύνταξη των παραπάνω και να μην κόψουν μονάδες

sstergou

Μία λογική μεταβλητή είναι συνθήκη.
Αν δεν μπορούμε να την γράψουμε αυτούσια σε μία εντολή αν τότε στην ουσία καταργούμε και τον λόγο ύπαρξής της αφού το ίδιο πράγμα μπορούμε να το κάνουμε χρησιμοποιώντας αριθμητικές ή αλφαριθμητικές μεταβλητές.
π.χ.
Κώδικας: Αλγόριθμος
Όσο i<=N και θέση=0


gpapargi

Ίσως μπορούμε να το πούμε ως εξής:
Η συνθήκη αποτιμάται και παίρνει μια τιμή αληθής ή ψευδής. Αν βάλεις στη θέση της κατευθείαν το αληθής ή ψευδής απλά γλιτώνεις ένα βήμα. Είναι σαν να βάζεις κατευθείαν το αποτέλεσμα. Από αυτό το σημείο θα περάσει και η συνθήκη μετά την αποτίμησή της. 

Καρκαμάνης Γεώργιος

Παράθεση από: gpapargi στις 09 Δεκ 2009, 12:36:12 ΜΜ
Ίσως μπορούμε να το πούμε ως εξής:
Η συνθήκη αποτιμάται και παίρνει μια τιμή αληθής ή ψευδής. Αν βάλεις στη θέση της κατευθείαν το αληθής ή ψευδής απλά γλιτώνεις ένα βήμα. Είναι σαν να βάζεις κατευθείαν το αποτέλεσμα. Από αυτό το σημείο θα περάσει και η συνθήκη μετά την αποτίμησή της.
Συμφωνώ , απλώς εκτιμώ πως σε πολλά παιδιά θα φαίνεται δυσνόητο

sstergou

Σίγουρα.Σε πολλά παιδιά φαίνεται δυσνόητο, κάποια όμως το καταλαβαίνουν.
Άλλο όμως το δυσνόητο και άλλο το λάθος ή το "μπορεί να το πάρουν λάθος".

Μόνο κάποιος διορθωτής ο οποίος δεν έχει κατανοήσει σωστά τις λογικές μεταβλητές μπορεί να το πάρει λάθος. Και σε αυτή την περίπτωση φαντάζομαι δεν θα είναι το μοναδικό που θα έχει "παρεξηγήσει". Δεν νομίζω όμως ότι πρέπει να τρομοκρατούμε τα παιδιά υποβιβάζοντας το γνωστικό υπόβαθρο των διορθωτών. Αυτό μόνο εις βάρος του μαθήματος και των μαθητών μπορεί να ενεργήσει. Είναι σαν να φοβάσαι να λύσεις μια άσκηση μαθηματικών με δικό σου τρόπο επειδή φοβάσαι ότι ο διορθωτής μπορεί να μην την καταλάβει...

P.Tsiotakis

Συμφωνώ με το Γιώργο, δε συζητάμε για σωστό και λάθος εδώ, αλλά για το κρίνουμε σωστότερο για το μαθητή


Παράθεση από: Καρκαμάνης Γεώργιος στις 09 Δεκ 2009, 09:47:10 ΠΜ
Είμαι κάτα της χρήσης μιας μόνο μεταβλητής στην συνθήκη και δεντο διδάσκω ποτέ στα παιδιά.

Οι μαθητές έχουν ταυτίσει την εντολη Αν με την ύπαρξη συνθηκών και αν εμείς τους γράφουμε μια εντολη Αν χωρίς την προφανή ύπαρξη συνθήκης νόμιζω θα τους μπεδρέψουμε.

Ναι στην χρήση  λογικών μεταβλητών αλλά πάντα με την χρήση συνθηκών
Αν χ=αληθής τότε
είναι πιο απλο και κατανοητή

Επίσης οι βαθμολογητές θα πρέπει να   δεχτούν την σύνταξη των παραπάνω και να μην κόψουν μονάδες