Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή επιλογής => Μήνυμα ξεκίνησε από: Γιαννούλης Γιώργος στις 25 Μάρ 2020, 05:43:27 μμ

Τίτλος: Αντιστροφή Λογικής Έκφρασης
Αποστολή από: Γιαννούλης Γιώργος στις 25 Μάρ 2020, 05:43:27 μμ
Για την αντιστροφή μιας έκφρασης μπορούμε είτε να βάλουμε όλη τη συνθήκη σε ένα ΟΧΙ, ή να αντιστρέψουμε τους συγκριτικούς τελεστές και να μετατρέψουμε τα ΚΑΙ σε Η και αντίστροφα και όπου συναντάμε ΟΧΙ απλά δεν γράφουμε το ΟΧΙ και το εσωτερικό του παραμένει ίδιο.
Το παραπάνω αναφέρεται σε όλα τα βοηθητικά βιβλία για την ΑΕΠΠ (στο σχολικό βιβλίο δεν αναφέρεται). Μετά την αλλαγή της ιεραρχίας των λογικών τελεστών με προτεραιότητα ΟΧΙ, ΚΑΙ, Η από πριν το 2019 που ήταν όλες στο ίδιο επίπεδο, και απλά υπολογίζονταν από αριστερά προς τα δεξια (προσεταιριστικότητα).

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

Πάρτε το απλό παράδειγμα της έκφρασης :  χ < 0 ΚΑΙ χ > 5 Η χ > 10 το οποίο είναι λάθος να αντιστραφει ως : χ >= 0 Η χ <= 0 ΚΑΙ χ <= 10 όπως φαίνεται και στο παρακάτω πρόγραμμα.
Κώδικας: [Επιλογή]
ΠΡΟΓΡΑΜΜΑ δοκιμή         
ΜΕΤΑΒΛΗΤΕΣ               
  ΑΚΕΡΑΙΕΣ: χ           
ΑΡΧΗ         
!Αν δώσουμε π.χ. το 100               
  Διάβασε χ 
  ΓΡΑΨΕ χ < 0 ΚΑΙ χ > 5 Η χ > 10   !ΑΛΗΘΗΣ
!Η άρνηση της παραπάνω έκφρασης είναι:
  ΓΡΑΨΕ ΟΧΙ( χ < 0 ΚΑΙ χ > 5 Η χ > 10)  !ΨΕΥΔΗΣ
!Η άρνηση της παραπάνω έκφρασης με αντιστροφή συγκριτικών και λογικών τελεστών
  ΓΡΑΨΕ χ >= 0 Η χ <= 5 ΚΑΙ χ <= 10 !ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ δοκιμή


Οπότε ο μόνος σίγουρος τρόπος να αντιστρέψουμε μια έκφραση είναι με χρήση ΟΧΙ.
Και η αντιστροφή χρειάζεται σε πολλές μετατροπές που διδάσκουμε όπως, π.χ. ΌΣΟ σε ΜΕΧΡΙΣ_ΟΤΟΥ, ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ ...

Το παραπάνω συμβαίνει γιατί πλέον βρίσκει το αντίστροφο από μια άλλη έκφραση, αφού εκτελεί με άλλη σειρά τις πράξεις, μιας και υπολογίζονται το ΚΑΙ πριν το Η. Αν έχει γύρω από όλους τους λογικούς τελεστές παρένθεση με τη σειρά που πραγματικά θα εκτελεστούν, τότε υπολογίζεται το αποτέλεσμα σωστά!

Ο τρόπος της αντιστροφής είναι σωστός (αλλάγη συγκριτικών και λογικών) εάν περιέχεται μόνο ενός είδους τελεστής, π.χ. το χ>=0 ΚΑΙ ψ<5 ΚΑΙ ζ<=15.