Ασάφεια #4: Προτεραιότητα τελεστή ΚΑΙ

Ξεκίνησε από alkisg, 18 Απρ 2007, 06:04:05 ΜΜ

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

Με ποια σειρά εκτελούνται οι λογικές πράξεις που περιέχουν ΚΑΙ και Η, όταν δεν υπάρχουν παρενθέσεις;

Από αριστερά προς τα δεξιά
Πρώτα τα ΚΑΙ και μετά τα Η

alkisg

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


Ο Διερμηνευτής καθώς και οι περισσότερες γλώσσες προγραμματισμού δίνουν μεγαλύτερη προτεραιότητα στο ΚΑΙ από το Η, σύμφωνα με την άλγεβρα Bool (τον κλάδο της επιστήμης μας που πραγματεύεται τις λογικές εκφράσεις :Ρ), όπου αν μεταφράσουμε το ΚΑΙ σε πολλαπλασιασμό και το Η σε πρόσθεση, το
  ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ
δίνει αποτέλεσμα ΑΛΗΘΗΣ.
ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ => ΑΛΗΘΗΣ Η (ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ) => ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ => ΑΛΗΘΗΣ.

Η Γλωσσομάθεια ορίζει την προτεραιότητα από αριστερά προς τα δεξιά και καταλήγει σε διαφορετικό αποτέλεσμα:
ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ => (ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ) ΚΑΙ ΨΕΥΔΗΣ => ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ => ΨΕΥΔΗΣ.

Σε παλιότερες συζητήσεις δεν είχαμε καταλήξει σε ενιαία άποψη, και αν θυμάμαι καλά δεν βρήκαμε κάτι στο βιβλίο που να ξεκαθαρίζει το ζήτημα. Το πιο κοντινό είναι στη σελίδα 78 τετραδίου μαθητή, ΔΤ1, ερωτήματα Α. και Β. όπου θα λυνόταν το ζήτημα αν είχε ανάποδα τα ΚΑΙ και Η.
Ένα επιχείρημα ήταν ότι αφού δεν ορίζεται, ισχύει το "από αριστερά προς τα δεξιά", αλλά το "από αριστερά προς τα δεξιά" αναφέρεται στο βιβλίο στους αριθμητικούς τελεστές, όχι στους λογικούς.

Μερικές σχετικές συζητήσεις:
https://alkisg.mysch.gr/steki/index.php?topic=112.0
https://alkisg.mysch.gr/steki/index.php?topic=727.0
https://alkisg.mysch.gr/steki/index.php?topic=183.msg1434#msg1434

gpapargi

Πρόκειται για ένα θέμα που είναι ασαφές. Δεν ξεκαθαρίζεται πουθενά η προτεραιότητα μεταξύ των 2 λογικών τελεστών. Και τα μαθηματικά (σύμφωνα με το βιβλίο του Mano) αφήνουν περιθώριο για να τα ορίσεις και με τους 2 τρόπους. Μόνο οι συγγραφείς μπορούνα να ξεκαθαρλισουν το ζήτημα.

Ψηφίσα το ΚΑΙ να έχει μεγαλύτερη προτεραιότητα από το Ή, επειδή έτσι συμβαίνει συνήθως και άρα έτσι θα ήθελα να ισχύει και εδώ και όχι επειδή προκύπτει από το σχολικό βιβλίο.

mmsoft

Στην Άλγεβρα Μπουλ δεν ορίζεται ιεραρχία για τις πράξεις πολλαπλασιασμού και πρόσθεσης.
Στην θεωρία συνόλων δεν ορίζεται ιεραρχία στις πράξεις τομής και ένωσης.
Στην προτασιακή λογική δεν ορίζεται ιεραρχία για το ΚΑΙ και το Ή.
Πρέπει να είναι από αριστερά προς τα δεξιά, και να μπαίνουν παρενθέσεις αν υπάρχει αμφιβολία.

gregv

Οι "αληθινές" γλώσσες προγραμματισμού που τυγχάνει να γνωρίζω, υπολογίζουν πρώτα το AND και μετά το OR (συγκεκριμένα: NOT > AND > OR).
Γιατί η "υποθετική" ΓΛΩΣΣΑ ή η Ψευδογλώσσα θα πρέπει να το κάνει με το δικό της τρόπο;

(Ίσως σε κάποια/ες γλώσσες να μην ισχύει το NOT > AND > OR, απλά δεν έχει τύχει να το συναντήσω ποτέ. Παρακαλώ αν κάποιος έχει δει κάτι τέτοιο να το αναφέρει.)
Γρηγόρης Βαλσαμάκης

manpoul

Θα έπρεπε το βιβλίο από τη στιγμή που ορίζει την προτεραιότητα των αριθμητικών τελεστών να ορίζει και τους λογικούς. Για την άλγεβρα Boole συμφωνώ, αλλά σε ένα μαθητικό βιβλίο σίγουρα θα έπρεπε να ορίζεται σαφώς η προτεραιότητα των λογικών τελεστών, άλλωστε θα μας ανταπαντούσε κάποιος ότι την προτεραιότητα των αριθμητικών τελεστών την γνωρίζουν ήδη τα παιδιά από τα μαθηματικά, οπότε γιατί παρουσιάζεται ρητά ενώ η προτεραιότητα των λογικών τελεστών καθόλου;
Επίσης, όσον αφορά στις γλώσσες προγραμματισμού, αν θυμάμαι καλά η SmallTalk δεν πρέπει να έχει καθόλου προτεραιότητες, αλλά ισχύει μόνο το αριστερά προς τα δεξιά για όλους τους τελεστές της (και τους λογικούς).
Γνώμη μου είναι ότι δεν έχει οριστεί η προτεραιότητα αυτή, οπότε εφόσον δεν υπάρχουν παρενθέσεις θα πρέπει να γίνονται από αριστερά προς τα δεξιά οι πράξεις.

spantoulis

Από τη στιγμή που δεν ορίζεται στο βιβλίο λογικά δεν πρόκειται να ζητηθεί ποτέ. Αλλά και να υπάρξει τέτοιο ζήτημα πιστεύω πως θα συμφωνήσουμε εύκολα  όσοι βαθμολογούμε να το εκλάβουμε ως σωστό και στις δύο περιπτώσεις.
Ας ελπίσουμε στο νέο Λύκειο η Επιστήμη Υπολογιστών να περιέχει άλγεβρα boole και στη συνέχεια εφαρμογή της σε όποια ψευδογλώσσα επιλεγεί για διδασκαλία.
Η χρήση υπολογιστών ΔΕΝ είναι πληροφορική

andreas_p

Άλκη, καλησπέρα.

Εξαιρετική δουλειά !

Τελικά όμως , στην προτεραιότητα  των Λ.Τ. , ποια ενιαία γραμμή θα ακολουθήσουμε ;

Α)   Α προς Δ
Β)  όχι - και - ή
Γ) Πόντιος πιλάτος ... ((((((((( ))))))))))))

Δίνω ένα παράδειγμα :

Αλγόριθμος α1
α ← 20
β ← 15
λ ← α ≠ β ή α > β και α - 2 = 0
Εμφάνισε λ
Τέλος α1

Έξοδος (by 1.5.1)   Αληθής .  Άρα  Β) !
Προτείνω την Α).

Οι υπόλοιποι ;

alkisg

#7
Αντρέα, το "από αριστερά προς τα δεξιά" αναφέρεται στο βιβλίο για τους αριθμητικούς τελεστές, όχι για τους λογικούς.
Μάλιστα ακόμα και στους αριθμητικούς τελεστές το βιβλίο έχει λάθος, αφού τα πρόσημα ως μοναδιαίοι τελεστές που είναι αποτιμώνται από δεξιά προς τα αριστερά, π.χ. το --1 αποτιμάται ως -(-1) και όχι ως (--)1 που θα ήταν συντακτικό σφάλμα.
Αντίστοιχα και το "ΟΧΙ" πρέπει υποχρεωτικά να έχει μεγαλύτερη προτεραιότητα και υποχρεωτικά να αποτιμάται από δεξιά προς τα αριστερά. Για παράδειγμα, "ΨΕΥΔΗΣ ΚΑΙ ΟΧΙ ΑΛΗΘΗΣ" => ποια θα ήταν η τιμή της έκφρασης "ΨΕΥΔΗΣ ΚΑΙ ΟΧΙ" αν η προτεραιότητα ήταν από αριστερά προς τα δεξιά; Προφανώς θα ήταν συντακτικό σφάλμα.
Τέλος το ότι διαβάζουμε από αριστερά προς τα δεξιά δεν μου λέει κάτι, υπάρχουν και έθνη που κάνουν το αντίθετο, και δε νομίζω ότι π.χ. η Pascal θα έπρεπε να ρωτάει το χρήστη "σε ποια χώρα είσαι;" πριν ξεκινήσει να κάνει αποτίμηση εκφράσεων.

Όπως λέει και ο gpapargi παραπάνω, είναι θέμα ορισμού και οριστική απόφαση μπορεί να πάρει μόνο το υπουργείο.
Στο μεταξύ ο Διερμηνευτής υλοποιεί αυτό που ψηφίζει η πλειοψηφία των συναδέλφων στην ψηφοφορία του παρόντος θέματος. Εάν ποτέ η πλειοψηφία αλλάξει γνώμη και θεωρήσει ότι το ΚΑΙ έχει ίση προτεραιότητα με το Ή, τότε προφανώς και θα αλλάξω την προεπιλεγμένη ρύθμιση της σχετικής επιλογής του Διερμηνευτή.

andreas_p

Άλκη, ευχαριστώ.

Προφανώς και θα ακολουθήσω (είναι και αυτό που μάθαμε στη σχολή) την πλειοψηφία !

Α

spantoulis

#9
Νομίζω πως ο τελεστής ΟΧΙ δεν θα έπρεπε να μας απασχολεί στη σειρά των πράξεων γιατι δεν πρόκειται για συγκριτικό τελεστή! Δεν συγκρίνει δύο προτάσεις. Δεν συνδέει λογικές προτάσεις. Εφαρμόζεται μόνο σε μια λογική πρόταση (απλή ή σύνθετη) και επομένως δεν τίθεται θέμα ιεραρχίας του ΟΧΙ σε σχέση με το ΚΑΙ και το Η. Τώρα για τους άλλους δύο τελεστές όπως έχω ξαναπεί για το συγκεκριμένο διδακτικό πακέτο δεν πιστεύω πως κάποιος βαθμολογητής θα θεωρούσε λάθος τη μία ή την άλλη περίπτωση.
Η χρήση υπολογιστών ΔΕΝ είναι πληροφορική

lsourtzo

Παράθεση από: mmsoft στις 02 Απρ 2008, 03:07:12 ΜΜ
Στην Άλγεβρα Μπουλ δεν ορίζεται ιεραρχία για τις πράξεις πολλαπλασιασμού και πρόσθεσης.
Στην θεωρία συνόλων δεν ορίζεται ιεραρχία στις πράξεις τομής και ένωσης.
Στην προτασιακή λογική δεν ορίζεται ιεραρχία για το ΚΑΙ και το Ή.
Πρέπει να είναι από αριστερά προς τα δεξιά, και να μπαίνουν παρενθέσεις αν υπάρχει αμφιβολία.
Συμφωνώ απόλυτα ...

George_Boole

#11
Από τη σελίδα 35 του βιβλίου "Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ" προκύπτει ότι
το ΚΑΙ έχει υψηλότερη προτεραιότητα από το Ή.
Σημειωτέον δε, ότι ένας εκ των συγγραφέων του εν λόγω βιβλίου - ο Χρήστος Κοίλιας -
ήταν μέλος και της συγγραφικής ομάδος του ΑΕΠΠ.
ΑΝ δε_γουστάρεις_Δομημένο_Προγραμματισμό ΤΟΤΕ GOTO Hell