Αποστολέας Θέμα: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;  (Αναγνώστηκε 2180 φορές)

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Καλημέρα,
βλέπω, σε προτεινόμενα διαγωνίσματα, μια λογική συνθήκη να περίεχει μόνο λογική μεταβλητή χωρίς συγκριτικό τελεστή.
π.χ. με δεδομένο ότι η Χ είναι λογική μεταβλητή
       Αν Χ Τότε
Η εντολή αυτή είναι έγκυρη στις περισσότερες γλώσσες προγραμματισμού. Στην ΓΛΩΣΣΑ, σύμφωνα με το σχολικό βιβλίο : "Η συνθήκη είναι μια λογική έκφραση", σελ 39 και "Μια έκφραση μπορεί να αποτελείται από μια μόνο μεταβλητή ή σταθερά", σελ.37 (ΟΧΙ ΛΟΓΙΚΗ ΕΚΦΡΑΣΗ) Από αυτά συμπεραίνεται ότι και στην ΓΛΩΣΣΑ μάλλον ισχύει το ίδιο. Όμως στην σελ. 139 το βιβλίο αναφέρει "Στις λογικές εκφράσεις γίνεται σύγκριση της τιμής μίας έκφρασης, που βρίσκεται αριστερά από το συγκριτικό τελεστή με την τιμή μιας άλλης έκφρασης που βρίσκεται δεξιά".. ...
Κατά την γνώμη μου θα πρέπει να αποφεύγεται. Είναι πιο απλό και "καθαρό" να χρησιμοποιείται συγκριτικός τελεστής στις συνθήκες :
Αν Χ=ΑΛΗΘΗΣ τότε 


« Τελευταία τροποποίηση: 18 Μαΐ 2019, 11:07:18 πμ από wmaster »

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1437
  • There are always possibilities...
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #1 στις: 18 Μαΐ 2019, 11:40:17 πμ »
Διαφωνώ κάθετα.

Ο όρος έκφραση είναι γενικότερος του λογική έκφραση. Άρα και η λογική έκφραση εφόσον είναι έκφραση μπορεί να αποτελείται από μόνο μεταβλητή. Τώρα αν ερμηνεύσουμε το παράδειγμα στην σελίδα 139 που αναφέρεις, ως κάτι που πρέπει να ισχύει υποχρεωτικά, τότε το ίδιο θα πρέπει να ισχύσει και για το κομμάτι αμέσως πριν δηλαδή το:
Παράθεση
Για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης χρησιμοποιούνται σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικοί και λογικοί τελεστές, καθώς και παρενθέσεις.
Αυτό θα σήμαινε ότι οι λογικές εκφράσεις πρέπει να περιέχουν όλα τα παραπάνω. Οπότε καλύτερα να το ερμηνεύσουμε ως δυνατότητα και όχι ως κάτι υποχρεωτικό.


Στην ουσία τώρα:
Το "Αν Χ=ΑΛΗΘΗΣ" είναι πλεονασμός. Ελέγχεται ότι το "Χ=ΑΛΗΘΗΣ" είναι αληθής, ενώ μπορεί να ελεγχθεί αν το Χ είναι αληθής. Σαφώς απλούστερο είναι το δεύτερο.
Αυτό έχει αρνητικές συνέπειες στην ανάγνωσιμότητα του κώδικα, όπου με κατάλληλα ονόματα μεταβλητών (ένα επιπλέον κίνητρο) ο μαθητής μπορεί να καταλαβαίνει άμεσα τι κάνει ο αλγόριθμος (πχ. αν βρέθηκε, αν είναι_ταξινομημένος κλπ.)

Τέλος ειδικά στο μάθημά πρέπει να στοχεύουμε στο: Programs must be written for people to read, and only incidentally for machines to execute (Harold Abelson).
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #2 στις: 18 Μαΐ 2019, 03:03:39 μμ »
Στην σελίδα 139 δεν αναφέρομε σε κάποιο παράδειγμα αλλά στην παράγραφο "Για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης χρησιμοποιούνται σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικοί και λογικοί τελεστές, καθώς και παρενθέσεις. Στις λογικές εκφράσεις γίνεται σύγκριση της τιμής μίας έκφρασης, που βρίσκεται αριστερά από το συγκριτικό
τελεστή με την τιμή μιας άλλης έκφρασης που βρίσκεται δεξιά.
Το αποτέλεσμα είναι μία λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
Αμέσως παρακάτω, στον πίνακα, στα παραδείγματα που δίνονται, δεν υπάρχει κάτι τέτοιο παράδειγμα που αναφέρεις.

Δεν λέω ότι δεν γίνεται στις γλώσσες προγραμματισμού, αλλά στην ΓΛΩΣΣΑ υπάρχει τουλάχιστον ασάφεια.

Προφανώς το Χ=ΑΛΗΘΗΣ είναι σίγουρα σωστό, δεν νομίζω ότι αμφιβάλλει κανείς.
Δεν έχει πέσει στην αντίληψή μου, σε θέματα εξετάσεων, κάτι διαφορετικό από αυτό που λέω.

Ο καθένας κάνει τις επιλογές του.

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 565
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #3 στις: 18 Μαΐ 2019, 04:11:52 μμ »
To θέμα της έκφρασης στη ΓΛΩΣΣΑ έχει ένα σκοτεινό σημείο. Αν καλέσουμε ένα υποπρόγραμμα και δώσουμε μια έκφραση λογική ως όρισμα, τότε η τυπική παράμετρος θα πάρει την τιμή της. Αν δώσουμε μόνο μια λογική μεταβλητή τότε η τυπική παράμετρος θα είναι η μεταβλητή που δώσαμε. Για να το αποφύγουμε αυτό πρέπει να περάσουμε την λογική μεταβλητή με παρενθέσεις, ώστε ο διερμηνευτής να περάσει μόνο την τιμή.
Σε όποια εντολή η ΓΛΩΣΣΑ ζητάει συνθήκη αυτή θα περαστεί με τιμή, έτσι ακόμα και για μια λογική μεταβλητή οι παρενθέσεις δεν χρειάζονται.
Αν έχουμε όμως μια αριθμητική μεταβλητή, έστω ακέραια, δεν μπορούμε να την βάλουμε μόνη της όπως μια λογική μεταβλητή γιατί η ΓΛΩΣΣΑ δεν έχει κανόνα μετατροπής. Αναγκαστικά πρέπει να βάλουμε τελεστή. Αν για παράδειγμα το Χ έχει τιμή 1 τότε μια Χ<>0 ή Χ!=0 κάνει την μετατροπή σε λογική, ώστε η μη μηδενική τιμή να είναι αληθής, και η μηδενική να είναι ψευδής. Μπορούμε να φτιάξουμε μια συνάρτηση που θα μετατρέπει μια λογική έκφραση σε 0 για ψευδής και -1 για αληθής (γενικά το -1 παίζει για αληθής, το συμπληρωματικό του -1 είναι το 0, όταν χρησιμοποιούμε αρνητικούς με δυαδική απεικόνιση το συμπλήρωμα του δύο).

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1437
  • There are always possibilities...
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #4 στις: 18 Μαΐ 2019, 05:11:37 μμ »
@wmaster Δεν ισχυρίστηκα ότι το Χ = ΑΛΗΘΗΣ είναι λάθος, αλλά ότι το να θεωρήσουμε το μια λογική μεταβλητή ως λογική έκφραση και να το βάζουμε σκέτο στις συνθήκες έχει κάποια πλεονεκτήματα.

Όταν αναφέρθηκα σε παράδειγμα στην σελίδα 139, εννοούσα την παράγραφο  που έφερες ως παράδειγμα:
Παράθεση
Για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης χρησιμοποιούνται σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικοί και λογικοί τελεστές, καθώς και παρενθέσεις. Στις λογικές εκφράσεις γίνεται σύγκριση της τιμής μίας έκφρασης, που βρίσκεται αριστερά από το συγκριτικό
τελεστή με την τιμή μιας άλλης έκφρασης που βρίσκεται δεξιά.
Το αποτέλεσμα είναι μία λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ.
Αν ερμηνεύσουμε την πρώτη πρόταση με τον τρόπο που ερμηνεύεις τη δευτερη, μάλλον θα πρέπει να οδηγηθούμε στο συμπέρασμα ότι οι λογικές συνθήκες πρέπει να περιέχουν σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικους και λογικους τελεστές, καθώς και παρενθέσεις. Έτσι δεν είναι;

Δηλαδή αν έπεφτε Σ-Λ στις εξετάσεις: Σε μια λογική εκφράση πρέπει να υπάρχει οπωσδήποτε συγκριτικός τελεστής και κάποιος απαντούσε Λ δεν θα το έπιανες σωστό. Αυτό εννοείς; Κατά συνέπεια και λογική έκφραση μόνο με λογικούς τελεστές και λογικές μεταβλητές γίνεται αποδεκτή;
« Τελευταία τροποποίηση: 18 Μαΐ 2019, 05:36:33 μμ από pgrontas »
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #5 στις: 18 Μαΐ 2019, 07:22:01 μμ »
Η έκφραση Βρέθηκε = Αληθής αποτιμάται σε Αληθής ή Ψευδής, άρα είναι λογικού τύπου.
Το ίδιο δεν ισχύει για την Βρέθηκε? Δεν είναι και αυτή Αληθής ή Ψευδής άρα λογικού τύπου?
Για αυτό άλλωστε και μπορούμε να γράψουμε
Βρέθηκε <--  Χ > 2
Άρα μια λογική μεταβλητή μπορεί να μπει οπουδήποτε μπορεί να μπει και μια λογική έκφραση

Η ερώτηση που κάνω εγώ τώρα είναι η εξής:
Ο μαθητής Α γράφει :
      Αν Βρέθηκε τότε
και ο μαθητής Β γράφει:
     Αν Βρέθηκε = Αληθής τότε

Ποιος από τους δυο έχει βαθύτερη κατανόηση των λογικών μεταβλητών και εκφράσεων? Ο Α ή ο Β?
Πρέπει να πάρουν τον ίδιο βαθμό?
Διότι αν δεχθούμε ότι ο τρόπος του Β είναι οκ θα πρέπει να γράφουμε στη ΓΛΩΣΣΑ

Αν  (Χ<10 και Υ>0) = Αληθής Τότε

και όχι

Αν  (Χ<10 και Υ>0) Τότε

Επίσης το βιβλίο δεν είναι ευαγγέλιο. Έχει αρκετές ασάφειες και λάθη ακόμα. Για παράδειγμα όλο το κεφάλαιο με τα υποπρογράμματα είναι απίστευτα κακογραμμένο και ο διαχωρισμός συναρτήσεων διαδικασιών εισάγει τεράστιο συντακτικό και εννοιολογικό θόρυβο χωρίς κανένα λόγο. Να μην μιλήσουμε για τον μηχανισμό μεταβίβασης παραμέτρων που συναντάται στην ... Ada.
Θυμάμαι πριν κάποια χρόνια αρκετοί συνάδελφοι στο βαθμολογικό έλεγαν ότι η έκφραση:
    k <-  x>1
είναι λάθος με επιχείρημα ότι ..... δεν υπάρχει στο βιβλίο.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #6 στις: 18 Μαΐ 2019, 08:14:09 μμ »
evry:
Η έκφραση Βρέθηκε = Αληθής αποτιμάται σε Αληθής ή Ψευδής, άρα είναι λογικού τύπου.
Η Βρέθηκε όμως είναι μεταβλητή λογικού τύπου (με τιμή ΑΛΗΘΗΣ ή  ΨΕΥΔΗΣ) όχι έκφραση.

Οι μαθητές, στο παράδειγμα που αναφέρεις, προφανώς πρέπει να πάρουν τον ίδιο βαθμό, όταν λύνουν με αποδεκτό τρόπο το πρόβλημα.
Η έκφραση  Χ<10 και Υ>0 είναι λογική έκφραση καθώς έχει συγκριτικό τελεστή. Επομένως δεν χρειάζεται να συγκρίνεις (Χ<10 και Υ>0) = Αληθής
Το βιβλίο δεν είναι ευαγγέλιο, αλλά με τα δεδομένα του εξετάζονται οι μαθητές.
Η έκφραση   k <-  x>1 είναι Οκ, γιατί το λέει το βιβλίο : αποτιμάται η έκφραση χ>1 και το αποτέλεσμα εκχωρείται στην κ (λειτουργία της εντολής εκχώρησης τιμής)

pgrontas:
οι λογικές συνθήκες μπορούν να περιέχουν σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικους και λογικους τελεστές, καθώς και παρενθέσεις.

Αυτό που έγραψα είναι ότι πρέπει να αποφύγουμε το Αν χ ΤΟΤΕ γιατί υπάρχει ασάφεια, σύμφωνα με τις αναφορές του βιβλίου που ανέφερα σε προηγούμενο μήνυμα. ΣΙΓΟΥΡΑ όμως μια λογική έκφραση μόνο με λογικούς τελεστές και λογικές μεταβλητές είναι αποδεκτή (είναι λογική έκφραση) όπως ΣΙΓΟΥΡΑ και μια έκφραση με συγκριτικό τελεστή είναι λογική έκφραση.

Σε κάθε άσκηση που έχει μπει στις πανελλήνιες (π.χ 2016) και στο βιβλίο (πχ. αλγόριθμος αναζήτησης) η λογική συνθήκη έχει συγκριτικό τελεστή. π.χ. flag=ΑΛΗΘΗΣ

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #7 στις: 18 Μαΐ 2019, 10:20:27 μμ »
evry:
Η έκφραση Βρέθηκε = Αληθής αποτιμάται σε Αληθής ή Ψευδής, άρα είναι λογικού τύπου.
Η Βρέθηκε όμως είναι μεταβλητή λογικού τύπου (με τιμή ΑΛΗΘΗΣ ή  ΨΕΥΔΗΣ) όχι έκφραση.
Πες μου σε παρακαλώ το λάθος στον παρακάτω συλλογισμό:
Η έκφραση Βρέθηκε = Αληθής αποτιμάται σε Αληθής ή Ψευδής, άρα είναι λογικού τύπου.
Η μεταβλητή Βρέθηκε είναι λογικού τύπου άρα αποτιμάται σε Αληθής ή Ψευδής.

Άρα όπου μπορεί να μπει μια έκφραση μπορεί να μπει και μια μεταβλητή αφού έχουν ακριβώς το ίδιο πεδίο τιμών!

Παράθεση
Η έκφραση  Χ<10 και Υ>0 είναι λογική έκφραση καθώς έχει συγκριτικό τελεστή. Επομένως δεν χρειάζεται να συγκρίνεις (Χ<10 και Υ>0) = Αληθής
Ωραία. Αφού λοιπόν μπορείς να γράψεις:
Βρέθηκε <- (Χ<10 και Υ>0)
τότε και το Βρέθηκε δεν χρειάζεται να συγκριθεί

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


Παράθεση
Σε κάθε άσκηση που έχει μπει στις πανελλήνιες (π.χ 2016) και στο βιβλίο (πχ. αλγόριθμος αναζήτησης) η λογική συνθήκη έχει συγκριτικό τελεστή. π.χ. flag=ΑΛΗΘΗΣ
Αυτό που αναφέρεις δεν είναι επιχείρημα γιατί.
Πουθενά στο κεφάλαιο 10 δεν έχει πέρασμα πίνακα ως παράμετρο σε υποπρόγραμμα. Εμείς γιατί το χρησιμοποιούμε τότε?
Επίσης οι θεματοδότες δεν έχουν χρησιμοποιήσει ποτέ πίνακα δυο διαστάσεων με λογικές τιμές. Αυτό δε σημαίνει ότι είναι εκτός ύλης!
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #8 στις: 18 Μαΐ 2019, 10:37:48 μμ »
Η μεταβλητή δεν αποτιμάται λέμε έχει τιμή Αληθής ή Ψευδής.
Μια έκφραση και μια μεταβηλητή (ίδιου τύπου) δεν μπορούν να μπουν οπουδήποτε, π.χ.
 μεταβλητή <-- έκφραση και όχι το αντίθετο

Αληθής, Ψευδής είναι τιμές!

Δεν γράφει πουθενά στο βιβλίο ότι σε υποπρόγραμμα δεν μπορούμε να περάσουμε πίνακα. Γράφει ακριβώς το αντίθετο. Παράμετρος είναι μεταβλητή άρα και πίνακας.
Αυτό με τους θεματοδότες δεν το καταλαβαίνω, προφανώς δεν είναι εκτός ύλης.
Έγραψα ότι όταν θέλησαν οι θεματοδότες και οι συγγραφείς του βιβλίου να γράψουν συνθήκη έγραψαν συνθήκη με συγκριτικό τελεστή.
Είναι ένα ακόμη + στο να μην γράφουμε συνθήκες που δεν έχουν συγκριτικό τελεστή, το αντίθετο πρέπει να κάνουμε, αφού έχει ξαναγραφεί και μάλιστα πολλές φορές.
Δεν υπάρχει κανένας λόγος να χρησιμοποιείται συνθήκη χωρίς συγκριτικό τελεστή. Ακόμη και στην περίπτωση που πιστεύουμε ότι είναι Οκ, η σύγκριση σε συνθήκη είναι έγκυρη και επομένως προτιμότερη

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #9 στις: 18 Μαΐ 2019, 10:55:21 μμ »
Η μεταβλητή δεν αποτιμάται λέμε έχει τιμή Αληθής ή Ψευδής.
Προφανώς και μια μεταβλητή αποτιμάται όπως συμβαίνει σε όλες τις γλώσσες προγραμματισμού.
Τι θα πει "λέμε έχει τιμή"
Πως λειτουργεί ο compiler όταν βλέπει μεταβλητή σε μια έκφραση?

Παράθεση
Μια έκφραση και μια μεταβλητή (ίδιου τύπου) δεν μπορούν να μπουν οπουδήποτε, π.χ.
 μεταβλητή <-- έκφραση και όχι το αντίθετο
Δεν είπα αυτό!
Είπα : Μια μεταβλητή μπορεί να μπει οπουδήποτε μπορεί να μπει μια έκφραση του ίδιου τύπου
Ισχύει ή δεν ισχύει? Είναι σωστό ή λάθος? Δεν απάντησες σε αυτό!

Παράθεση
Αληθής, Ψευδής είναι τιμές!
Δηλαδή οι τιμές Αληθής, Ψευδής δεν αποτελούν εκφράσεις?

Παράθεση
Δεν γράφει πουθενά στο βιβλίο ότι σε υποπρόγραμμα δεν μπορούμε να περάσουμε πίνακα. Γράφει ακριβώς το αντίθετο.
οκ. Που το γράφει στο σχολικό βιβλίο αυτό?
Και το σημαντικότερο: Που δείχνει τον τρόπο?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Κατερίνα Μ

  • Θαμώνας
  • ***
  • Μηνύματα: 37
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #10 στις: 18 Μαΐ 2019, 11:09:16 μμ »
Η αλήθεια είναι πως κι εμένα με είχε απασχολήσει στο παρελθόν αν κάτι τέτοιο θα ήταν αποδεχτό στη ΓΛΩΣΣΑ, και με αυτό κυρίως εννοώ αν κάτι τέτοιο θα ήταν αποδεχτό από τους διορθωτές. Έχοντας κάτι τέτοιες περιπτώσεις στο μυαλό μου:

Παράθεση
Θυμάμαι πριν κάποια χρόνια αρκετοί συνάδελφοι στο βαθμολογικό έλεγαν ότι η έκφραση:
    k <-  x>1
είναι λάθος με επιχείρημα ότι ..... δεν υπάρχει στο βιβλίο.

Οπότε σε μαθητές που ενδιαφέρονταν για προγραμματισμό το ανέφερα. Με μεγάλη μου χαρά τα τελευταία χρόνια κάποιοι με προλαβαίνουν και το θίγουν πρώτοι. Όπως και να 'χει τους συμβούλευα για καλό και για κακό στις εξετάσεις να γράφουν  "βρέθηκε = αληθής".

Παράθεση
Έγραψα ότι όταν θέλησαν οι θεματοδότες και οι συγγραφείς του βιβλίου να γράψουν συνθήκη έγραψαν συνθήκη με συγκριτικό τελεστή.

Η αλήθεια είναι πως στις επαναληπτικές εξετάσεις του 2017 το θέμα Α4 ήταν το εξής:

Να γράψετε στο τετράδιό σας:
α. Έναν αριθμητικό τελεστή
β. Έναν συγκριτικό τελεστή
γ. Έναν λογικό τελεστή
δ. Μια αριθμητική σταθερά
ε. Μια λογική μεταβλητή
στ. Μια απλή λογική έκφραση
ζ. Μια σύνθετη λογική έκφραση
από το παρακάτω τμήμα αλγορίθμου:
   Α ←1
   Β ←Ψευδής
   Σ ←10
   Αρχή_επανάληψης
      Σ ←Σ+Α
      Αν Σ MOD 3 = 1 τότε
         Β ←Όχι Β
         Α ← Α+2
      Αλλιώς
         Α ← Α+3
      Τέλος_αν
   Μέχρις_ότου Β ή Σ>100

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #11 στις: 18 Μαΐ 2019, 11:28:30 μμ »
Κατερίνα θυμόμουν ότι κάποια στιγμή είχε πέσει σε επαναληπτικές αλλά δεν θυμόμουν πότε.
Με γλίτωσες από το ψάξιμο  :)

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1437
  • There are always possibilities...
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #12 στις: 18 Μαΐ 2019, 11:29:24 μμ »
Επί της ουσίας, τα πλεονεκτήματα της χρήσης συνθηκών που περιέχουν μόνο λογικές μεταβλητές είναι ότι κάνουν τον αλγόριθμο ευανάγνωστο και κατανοητό ενώ ωθούν τους μαθητές στην αναζήτηση ονομάτων μεταβλητών με νόημα. Τα πλεονεκτήματα της χρήσης συγκριτικού τελεστή οπωσδήποτε ποια είναι;
Φυσικά η απάντηση πρέπει να περιέχει επιχειρήματα που να αιτιολογούν γιατί είναι πιο απλό (ειδικά εφόσον υπάρχεουν επιχειρήματα ότι δεν είναι όπως για παράδειγμα ότι η αποτίμηση γίνεται σε 2 βήματα).

Επιπλέον είναι λάθος να ψάχνουμε στις πανελλήνιες παραδείγματα που επιβεβαιώνουν μια υπόθεση γιατί είναι μη πλήρη (κοιτάμε ότι έχει συμβεί μέχρι τώρα). Αντίθετα έχει νόημα να ψάχνουμε παραδείγματα που την καταρρίπτουν. Τότε είμαστε σίγουροι.
Για παράδειγμα, μέχρι κάποια χρονιά κάποιοι έλεγαν ότι τα προγράμματα έπρεπε να γράφονται με κεφαλαία, επειδή υπάρχει στο βιβλίο και μέχρι τότε δεν είχε τεθεί θέμα με μικρά. Κάποια χρονιά μπήκαν μικρά (αντιπαράδειγμα), οπότε πλέον δεν υπάρχει αμφιβολία. Το ίδιο με τα εισαγωγικά και άλλα. Μπορεί οι συγγραφείς ή/και οι θεματοδότες να μην το είχαν σκεφτεί ή να είναι το προγραμματιστικό ή τυπογραφικό στυλ που προτιμούν. Κατά συνέπεια δεν αποτελεί απόδειξη ότι δεν έχει χρησιμοποιηθεί μέχρι τώρα παράδειγμα με σκέτη μεταβλητή σε συνθήκη.

wmaster:
Δεν μου απάντησες στο παρακάτω που νομίζω ότι είναι η ουσία του θέματος:
Δηλαδή αν έπεφτε Σ-Λ στις εξετάσεις: Σε μια λογική εκφράση πρέπει να υπάρχει οπωσδήποτε συγκριτικός τελεστής και κάποιος απαντούσε Λ δεν θα το έπιανες σωστό;


οι λογικές συνθήκες μπορούν να περιέχουν σταθερές, μεταβλητές, αριθμητικές παραστάσεις, συγκριτικους και λογικους τελεστές, καθώς και παρενθέσεις.
Αυτό σωστό είναι αλλά δεν κατάλαβα το επιχείρημα. Είναι κάπου από το βιβλίο; Γιατί η ερμηνεία που θέτεις στην σελίδα 139 υπονοεί το αντίθετο.

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

ApoAntonis

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 137
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #13 στις: 18 Μαΐ 2019, 11:43:18 μμ »
Για να πω του στραβού το δίκιο οποτεδήποτε <<παίζει>> λογική μεταβλητή συντάσσω με "μεταβλητή" ή "όχι μεταβλητή",
γίνομαι μάλιστα και επικριτικός όταν χρησιμοποιείται σχεσιακός τελεστής που είναι περιττός.

Τώρα όμως προβληματίστηκα. Οι οδηγίες διδασκαλίας ξεκινώντας από τις παραγράφους 2.1 & 2.3 αναφέρουν
ότι δεν υπάρχουν αντιθέσεις σε σχέσεις με τους ορισμούς ή τη χρήση των εννοιών στα βιβλία των τάξεων Β' και Γ'. (προφανώς αναφέρεται στις συγκεκριμένες παραγράφους)

Αν κατεβούμε λίγο πιο κάτω στην παράγραφο 2.2.7.3 του βιβλίου της Β' και κάνουμε αντιγραφή:
"ως συνθήκη εννοείται μια λογική έκφραση στην οποία υπάρχει τουλάχιστον ένας σχεσιακός τελεστής (δηλαδή η συνθήκη δεν μπορεί να απαρτίζεται από μόνο μια μεταβλητή ή μια σταθερά ή μια αριθμητική παράσταση)."

Οι οδηγίες για την δομή επιλογής (παρ. 2.4.2, 2.4.3, 8.1, 8.1.1) αναφέρουν να διδαχθούν επαναληπτικά οι λογικές πράξεις και η δομή επιλογής. Οπότε, τα προηγούμενα <<διδαχθέντα>> -προφανής ο λόγος χρήσης παρενθέσεων-
ισχύουν;

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #14 στις: 18 Μαΐ 2019, 11:48:12 μμ »
Αν κατεβούμε λίγο πιο κάτω στην παράγραφο 2.2.7.3 του βιβλίου της Β' και κάνουμε αντιγραφή:
"ως συνθήκη εννοείται μια λογική έκφραση στην οποία υπάρχει τουλάχιστον ένας σχεσιακός τελεστής (δηλαδή η συνθήκη δεν μπορεί να απαρτίζεται από μόνο μια μεταβλητή ή μια σταθερά ή μια αριθμητική παράσταση)."
Λέει συνθήκη όχι λογική έκφραση.
Η λογική έκφραση είναι γενικότερη έννοια, περιλαμβάνει τις συνθήκες.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

ApoAntonis

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 137
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #15 στις: 18 Μαΐ 2019, 11:59:36 μμ »
Ναι αλλά το συμπέρασμα δεν αλλάζει,
οι συνθήκες σε δομή επιλογής (και μετέπειτα σε δομή επανάληψης)
θα πρέπει να περιέχουν σχεσιακό τελεστή.

Καταλαβαίνω κάτι λάθος ως προς τις οδηγίες;

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3534
  • to Iterate is human to Recurse divine
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #16 στις: 19 Μαΐ 2019, 12:15:39 πμ »
Δεν καταλαβαίνω τι σχέση έχει το μάθημα της Β που είναι γενικής παιδείας με αυτό της Γ.
1) Αυτό είναι σε ψευδογλώσσα ενώ εμείς κάνουμε πλέον ΓΛΩΣΣΑ, άρα δεν ισχύει τίποτα από όσα αναφέρονται εκεί στη ΓΛΩΣΣΑ
2) Η ψευδογλώσσα της Β είναι διαφορετική, π.χ. Η Μέχρις_ότου συντάσσεται διαφορετικά, άρα αν προσπαθήσουμε να εξηγήσουμε έννοιες του βιβλίου της Γ που γράφτηκε το 1998 με παραδείγματα από αυτό της Β που γράφτηκε 15 χρόνια μετά δεν θα βγάλουμε άκρη.

Και κάτι άλλο. Ένα παράδειγμα που δείχνει ότι δεν μπορούμε να παίρνουμε το βιβλίο σαν ευαγγέλιο και να μην το αμφισβητούμε.
Στο βιβλίο της Β λέει ότι η quicksort έχει πολυπλοκότητα Ο(nlogn). Αυτό είναι λάθος αφού η quicksort έχει Ο(n2) και Ο(nlogn) στη μέση περίπτωση. Εμείς τι θα κάνουμε?
Θα το λέμε λάθος στα παιδιά επειδή το έχει έτσι το βιβλίο?

Επίσης είναι προφανές ότι αυτό με τους σχεσιακούς τελεστές είναι λάθος. Με το σκεπτικό αυτό δεν μπορείς να γράψεις:

Αν Αληθής και Ψευδής Τότε

Για να μην αναφέρω το απίστευτα κουφό ότι με βάση αυτά δεν μπορούμε να γράψουμε:

Αν Αληθής  Τότε     αλλά      Αν Αληθής = Αληθής Τότε

Φοβάμαι ότι προσπαθούμε να ερμηνεύσουμε τα βιβλία ως δικηγόροι και όχι ως επιστήμονες πληροφορικής!
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 565
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #17 στις: 19 Μαΐ 2019, 12:43:59 πμ »
Δεν υπάρχουν δυο Αν πχ μια για λογική μεταβλητή και μια για λογική έκφραση (με τελεστές δηλαδή), αλλά μια και μοναδική, η οποία περιμένει από μια έκφραση που ακολουθεί μια λογική τιμή. Αυτό που έχει σημασία είναι να έχουμε μια έκφραση που επιστρέφει λογική τιμή. Το σκέτο ΑΛΗΘΗΣ είναι μια λογική τιμή, το Α=ΑΛΗΘΗΣ αν η Α είναι λογική τιμή επιστρέφει λογική τιμή, αλλά είναι πλεονασμός,ενώ το αντίθετο πχ Α=ΨΕΥΔΗΣ θα μπορούσε να γραφτεί ΟΧΙ Α, αλλά και έτσι καλά είναι. Αν έχουμε compiler θα βγει το λάθος πριν την εκτέλεση γιατί στη ΓΛΩΣΣΑ ορίζονται οι τύποι από την αρχή και επιπλέον δεν υπάρχει αυτόματη μετατροπή αριθμητικής τιμής σε λογική. Αν η Α οριστεί λογική και δεν πάρει αρχική τιμή τότε είτε ως Α είτε ως Α=ΑΛΗΘΗΣ θα βγει λάθος κατά την εκτέλεση (ή αν ο compiler είναι καλός θα το βρει πριν την εκτέλεση).
Σε διαγώνισμα αν κάποιος γράψει ένα πρόγραμμα και βάλει το Α=ΑΛΗΘΗΣ αντί για το Α δεν πειράζει, δεν είναι σφάλμα προγράμματος, ούτε συντακτικό, ούτε λογικό. Κάποιος μπορεί να ισχυριστεί ότι το διαβάζει καλύτερα, δηλαδή κάνει το κώδικα πιο ευανάγνωστο, αφού δείχνει με μια ματιά που περιμένουμε την Α ως ΑΛΗΘΗΣ.

wmaster

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #18 στις: 19 Μαΐ 2019, 07:07:56 πμ »
Από την συζήτηση φαίνεται ακριβώς το πρόβλημα της διαφορετικής ερμηνείας που μπορεί να τύχει μια λογική έκφραση, όπως και στο βιβλίο υπάρχουν 2 διαφορετικές προσεγγίσεις.
Για την προετοιμασία των μαθητών για τις εξετάσεις προσωπικά επιλέγω τον "ασφαλή" τρόπο. Διδάσκω όμως και τις 2 περιπτώσεις ως σωστές. Όπως και στην αρχική μου τοποθέτηση δεν θεωρώ λάθος το Αν χ Τότε ,
προτείνω όμως να γράφουν Αν Χ=ΑΛΗΘΗΣ τότε



petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2321
Απ: Μια λογική μεταβλητή αποτελεί λογική συνθήκη;
« Απάντηση #19 στις: 19 Μαΐ 2019, 12:57:26 μμ »
Θέμα που να περιέχει την έκφραση "Μέχρις_ότου Β" έχει ζητηθεί
Το γνωρίζει ο κάθε βαθμολογητής που θα πιάσει γραπτό στο χέρι του ή το μάθημα μας βαθμολογείται όπως η Έκφραση-Έκθεση;
...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής