Εξγαζηήξην Πιεξνθνξηθήο «Λογικές παραστάσεις (Boolean expressions)» Τμήμα Εκπαιδεςηικών Πολιηικών Δομικών Έπγυν (Α4) Ραούλησ Δημήτριοσ Αθήνα, 16 Ιανουαρίου 2013 1
ΠΕΡΙΕΧΟΜΕΝΑ ΕΝΟΤΗΤΑ 5... 2 Λογικζσ παραςτάςεισ (Boolean expressions)... 2 5.1 Eιςαγωγή... 2 5.2 Συγκρίςεισ... 3 5.3 Λογικοί τελεςτζσ(and,or,not)... 4 Βιβλιογραφία... 6 ΕΝΟΤΗΤΑ 5 Λογικέσ παραςτάςεισ (Boolean expressions) 5.1 Eισαγωγή Αλ κηα γιώζζα πξνγξακκαηηζκνύ επέηξεπε κόλν ηελ επεμεξγαζία αξηζκεηηθώλ ηηκώλ, ηόηε ν ξόινο ησλ ππνινγηζηώλ ζα ήηαλ παξόκνηνο κε απηόλ ησλ απιώλ ππνινγηζηώλ ηζέπεο. Χξεηάδεηαη λα είκαζηε ηθαλνί λα εθθξάδνπκε ζπλζήθεο (conditions) ζηα πξνγξάκκαηά καο, ώζηε λα κπνξνύκε λα επαλαιακβάλνπκε νξηζκέλα απνζπάζκαηα ηνπο ή λα δηαιέγνπκε δπλακηθά ηελ εθηέιεζε θάπνησλ άιισλ. Οι πεπιζζόηεπερ ζςνθήκερ πος σπηζιμοποιούνηαι ζηον ππογπαμμαηιζμό είναι πολύ απλέρ: είηε ιζσύοςν είηε δεν ιζσύοςν. Αν μια ζςνθήκη δεν ιζσύει, ηόηε 2
λέμε όηι είναι τεςδήρ ή όηι έσει ηην ηιμή false. Σηην ανηίθεηη πεπίπηυζη, λέμε όηι η ζςνθήκη είναι αληθήρ ή όηι έσει ηην ηιμή true. Οη παξαζηάζεηο ηύπνπ boolean κπνξνύλ λα πάξνπλ δύν ηηκέο κόλν, ηηο false θαη true. Η νλνκαζία ηνπ ηύπνπ απηνύ έρεη δνζεί πξνο ηηκήλ ηνπ George Boole (1815-1864), πνπ πξώηνο έζεζε ηηο βάζεηο ηεο καζεκαηηθήο ινγηθήο. Τν βηβιίν ηνπ The Laws of Thought (Οη Νόκνη ηεο Σθέςεο) πεξηέγξαςε κηα άιγεβξα ινγηθώλ ηηκώλ πνπ ζήκεξα έρεη επηθξαηήζεη λα νλνκάδεηαη άιγεβξα Boole. Η άιγεβξα Boole πεξηγξάθεη αμησκαηηθά ηελ επεμεξγαζία ησλ ινγηθώλ ηηκώλ, όπσο αθξηβώο ε θνηλή άιγεβξα πεξηγξάθεη αμησκαηηθά ηελ επεμεξγαζία ησλ αθεξαίσλ (αμηώκαηα ηνπ Peano). 5.2 Συγκρίσεις Ο πην ζπλεζηζκέλνο ηξόπνο ππνινγηζκνύ κηαο παξάζηαζεο ηύπνπ boolean είλαη κέζσ κηαο ζύγθξηζεο.σηε QBASIC νη ζπγθξίζεηο γξάθνληαη ζπλήζσο όπσο θαη ζηα καζεκαηηθά κε ηε ρξήζε ησλ ηειεζηώλ ζύγθξηζεο : Σελεςτήσ ςύγκριςησ QBASIC ημαςία = Κςο με <> Διάφορο > Μεγαλύτερο >= Μεγαλύτερο ή ίςο με < Μκρότερο από <= Μικρότερο ή ίςο με Στον πίνακα παρακάτω φαίνονται μερικά παραδείγματα λογικϊν παραςτάςεων που χρηςιμοποιοφν τουσ τελεςτζσ ςφγκριςησ. 3
ΤΝΘΗΚΗ ( ΤΓΚΡΙΗ) ΑΠΟΣΕΛΕΜΑ 4 > 8 Ψευδήσ (false) 10 < 15 Αληθήσ ( true ) Sum% > 22 Aληθήσ (true) εάν η τιμή τησ μεταβλητήσ Sum είναι μεγαλφτερη του 22,αλλιϊσ ψευδήσ (false) X% = Y% Aληθήσ (true) εάν η τιμή τησ μεταβλητήσ X είναι ίςη με την τιμή τησ Υ,αλλιϊσ ψευδήσ (false) 5.3 Λογικοί τελεστές(and,or,not) Γηα λα κπνξνύκε λα ρξεζηκνπνηνύκε παξαζηάζεηο ηύπνπ boolean πνπ λα πεξηέρνπλ πεξηζζόηεξεο από κία ζπλζήθεο ή ζπγθξίζεηο, ε QBASIC παξέρεη ηξεηο ηειεζηέο (logical operators). Απηνί είλαη νη: Ο λογικόρ ηελεζηήρ AND (και,λογική ζύζεςξη,λογικό γινόμενο) Τν απνηέιεζκα έρεη ηελ ηηκή true αλ θαη κόλν αλ θαη νη δύν ηειεζηένη έρνπλ ηελ ηηκή true. Σε θάζε άιιε πεξίπησζε, ν ηειεζηήο AND δίλεη ηελ ηηκή false. Ο πίλαθαο αιεζείαο ηνπ ηειεζηή AND είλαη: x y x AND y false false false false true false true false false true true true 4
Ο λογικόρ ηελεζηήρ OR (ή διαζεςκηικό,λογική διάζεςξη,λογικό άθποιζμα) Τν απνηέιεζκα έρεη ηελ ηηκή true αλ θαη κόλν αλ ηνπιάρηζηνλ έλαο από ηνπο ηειεζηένπο έρεη ηελ ηηκή true. Όηαλ θαη νη δύν ηειεζηένη έρνπλ ηελ ηηκή false, ν ηειεζηήο OR δίλεη ηελ ηηκή false. Ο πίλαθαο αιεζείαο ηνπ ηειεζηή OR είλαη: x y x OR y false false false false true true true false true true true true O λογικόρ ηελεζηήρ NOT (δεν,λογική άπνηζη) x false true ΝΟΣx true false Αςκήςεισ 1) Αν i = 4 και j = 4, ςπολογίζηε ηιρ ηιμέρ ηυν : (i) i > j (ii) NOT (j > i ) 2) Εκθπάζηε ηιρ παπακάηυ παπαζηάζειρ ζε QBASIC : (i) a > b > c (ii) i = j = k 5
3) Γπάτηε μία παπάζηαζη πος να παπιζηάνει ηην ημέπα ηυν Χπιζηοςγέννυν αν ειζάγοςμε δύο ακεπαίοςρ πος να παπιζηάνοςν ηην ημέπα και ηο μήνα ζε ένα ππόγπαμμα QBASIC. Λύςεισ 1) (i) false, (ii) true, (iii) true 2) (i) ( a> b ) AND ( b > c), (ii) (i = j ) AND ( j = k) 3) ( day % = 25 ) AND ( month % = 12) Βιβλιογραφία 1. Προγραμματιςμόσ με JAVA, Ιωάννησ Κάβουρασ, 2003, Εκδόςεισ «Κλειδάριθμοσ» 2. Ειςαγωγή ςτον προγραμματιςμό με την QBASIC, Σπφροσ Πανζτςοσ, 2002, Εκδόςεισ «ΙΩΝ» 3. Πξνζσπηθέο ζεκεηώζεηο θαη παξαδείγκαηα κε ιύζεηο ηνπ δηδάζθνληα 6