ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 ·...
TRANSCRIPT
![Page 1: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/1.jpg)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
Ι. Κ. Δημητρίου
5η Διάλεξη
![Page 2: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/2.jpg)
Μια δυναμική και θεμελιώδης δυνατότητα
όλων των γλωσσών προγραμματισμού
είναι η ικανότητα να συγκρίνουν ποσότητες
ώστε να αποφασίζουν για τον τρόπο
υπολογισμού. Μ’ άλλα λόγια, ένα είδος
διακλάδωσης μπορεί να διευθετηθεί να
λάβει χώρα μόνον αν κάποιες συνθήκες
ικανοποιούνται.
Συνδυαζόμενη η διακλάδωση με μια επανάληψη,
είναι πιθανώς η πλέον σπουδαία και μοναδική
πρόοδος εφ’ όλων των μαθημάτων και αξίζει
σημαντική προσπάθεια.
![Page 3: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/3.jpg)
6
ΣΧΕΔΙΑΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ
(Software engineering)
Γενική προσέγγιση
![Page 4: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/4.jpg)
7
Πώς σχεδιάζεται ένα πρόγραμμα
![Page 5: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/5.jpg)
8
Σχεδιασμός Προγράμματος
1. Προσδιορισμός προβλήματος
2. Ανάλυση προβλήματος
3. Σχεδιασμός μεθόδου επίλυσης (ανάπτυξη αλγόριθμου) του προβλήματος
4. Κωδικοποίηση του αλγόριθμου σε μια γλώσσα προγραμματισμού (υλοποίηση προγράμματος)
5. Δοκιμή του προγράμματος
![Page 6: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/6.jpg)
9
Πώς αναπτύσσεται ένα πρόγραμμα
![Page 7: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/7.jpg)
10
Στη συνέχεια αναπτύσσομε τα
προγράμματα με συγκεκριμένες τεχνικές
που υλοποιούνται από όλες τις γλώσσες
προγραμματισμού, αλλά με μικρές
διαφοροποιήσεις.
Μια δομικά άρτια τεχνική είναι ο
«δομημένος προγραμματισμός» →
Ανάπτυξη Προγράμματος
![Page 8: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/8.jpg)
11
Δομημένος (structured) προγραμματισμός
Είναι ένα προγραμματιστικό στυλ που
χρησιμοποιεί τρεις κανόνες – δομές ή
βασικά στοιχεία ελέγχου βάσει των οποίων
θα πρέπει να φτιάχνονται τα προγράμματα
(Dijkstra) →:
• Εντολή επεξεργασίας (processing) →
• Έλεγχος συνθήκης if-then-else →
• Ελεγχόμενη επανάληψη εντολών (While,
Repeat-Until, for-next) →
![Page 9: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/9.jpg)
12
Born 11 May 1930
Rotterdam, Netherlands
Died 6 August 2002 (aged 72)
Nuenen, Netherlands
Fields
Computing science
Theoretical computer science
Institutions
Mathematisch Centrum
Eindhoven University of Technology
Burroughs Corporation
The University of Texas at Austin
Alma mater
Leiden University
(B.S., M.S.)
University of Amsterdam
(Ph.D.) Thesis Communication with an
Automatic Computer (1959)
Doctoral advisor Adriaan van Wijngaarden
![Page 10: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/10.jpg)
13
Εντολή επεξεργασίας
Πρόκειται για Black box εντολή,
είτε απλή (πχ τετραγώνισε τον X)
είτε σύνθετη (πχ υπολόγισε τον τόκο από την αποταμίευση κεφαλαίου)
![Page 11: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/11.jpg)
14
Δομή απόφασης
Αποφάσεις λαμβάνονται επί των τρεχουσών
τιμών των δεδομένων:
1. If (συνθήκη αληθής) then …
If «ο λογαριασμός του πελάτη είναι
αρνητικός» then «ενημέρωσε το
διευθυντή».
2. If (συνθήκη αληθής) then … else …
If «ο καιρός είναι καλός» then «πάμε
παραλία» else «πάμε σινεμά»
![Page 12: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/12.jpg)
15
Δομές επανάληψης (looping, loop)
Οι λύσεις πολλών προβλημάτων απαιτούν την επανάληψη μιας διαδικασίας για κάποιο αριθμό φορών:
• For k=1 to 100
…εντολές
endFor k
• While (συνθήκη αληθής)
…εντολές
endWhile
• Repeat
…εντολές
Until (συνθήκη αληθής)
![Page 13: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/13.jpg)
ΔΟΜΗ if-then-else
• Εντολή if – then – else με παραδείγματα και
• Επίλυση ασκήσεων
• Σχεσιακοί τελεστές (relational operators)
• Λογικοί τελεστές (λογική άλγεβρα)
• Συναρτήσεις αποφάσεων στην Python
![Page 14: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/14.jpg)
Λαμβάνοντας ΑΠΟΦΑΣΕΙΣ
Ισχυρή δυνατότητα των γλωσσών προγραμματισμού: ΣΥΓΚΡΙΣΕΙΣ
Αριθμητική έκφραση «είναι» παράσταση με αριθμούς, μεταβλητές και τελεστές +, , *, /, **
Πχ x2 – y–2 + 3*log(x4) – sin(y/3)
Οι συγκρίσεις γίνονται μεταξύ αριθμητικών εκφράσεων
Μια σύγκριση δημιουργεί μια σχεσιακή έκφραση(relational expression)
![Page 15: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/15.jpg)
Σχεσιακή έκφραση ή συνθήκη:
Α**2 > 10*Β
Είναι είτε Αληθής (True) είτε Ψευδής (False)
Γενική μορφή σχεσιακής έκφρασης
Αριθμητική
έκφραση
Σχεσιακός
τελεστής →
Αριθμητική
έκφραση
![Page 16: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/16.jpg)
Σχεσιακοί τελεστές
Τελεστής σε Python Μαθηματικός ισοδύναμος
< <
> >
== =
!=
<=
>=
![Page 17: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/17.jpg)
Σχεσιακές εκφράσεις (συγκρίσεις)
Έκφραση Μαθηματική ισοδύναμη
b*b < 4*a*c b2 < 4ac
K == J k = j
Temp >= 32.0 Temp 32.0
A >= 0 a 0
(I+j) != 3 (I+j) 3
X*X-Y*Y <= 3 x2-y2 3
Το αποτέλεσμα μιας σχεσιακής έκφρασης
είναι είτε True είτε False.
![Page 18: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/18.jpg)
Παραδείγματα
Έκφραση είναι
10 < 10 False
10 == 10 True
6 >= 5 True
A == B True αν Α ισούται με Β,
ειδάλλως False
b2 - 4ac < 0
b2 - 4ac == 0 True είναι μόνο μία εξ αυτών
b2 - 4ac > 0
![Page 19: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/19.jpg)
Ορισμός
If συνθήκη αληθής then
εκτελούνται εντολές
Endif
Αν δεν ισχύει η συνθήκη, αγνοούνται οι
εντολές (μετά το then).
1. Η δομή if-then
![Page 20: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/20.jpg)
Ορισμός
if συνθήκη αληθής:
εκτελούνται εντολές
εντολές
Endif
Αν δεν ισχύει η συνθήκη, αγνοούνται οι
εντολές (μετά το then).
1. Η δομή if-then στην Python
Στοίχιση εντολών
![Page 21: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/21.jpg)
Α=8
Β=5
C=3
if Β^2-4*Α*C < 0:
print (“migadikes rizes”) #εντολή
Πράγματι Β^2-4*Α*C = 5^2-4*8*3=25-
96=-71 άρα τυπώνει «migadikes rizes»
Παράδειγμα 1
![Page 22: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/22.jpg)
Παράδειγμα 2
Δίνεται ακέραιος ariQmos: 1 ariQmos 99.
Ελέγχομε αν η μεταβλητή ariQmos έχει
μονοψήφια ή διψήφια τιμή:
If ariQmos < 10:
print (“Μονοψήφιος”)
If ariQmos > 9:
print (“Διψήφιος”)
Αυτά τα if μπορούν να
γραφούν σε μία
σύνθετη εντολή if με
χρήση του else →
![Page 23: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/23.jpg)
Παράδειγμα 3, συνέχεια του Παραδείγματος 2
Έστω 1 ariQmos 99.
Ελέγχομε αν η μεταβλητή ariQmos έχει
μονοψήφια ή διψήφια τιμή:
if ariQmos < 10:
print (“Μονοψήφιος”)
else:
print (“Διψήφιος”)
![Page 24: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/24.jpg)
Ορισμός
If (συνθήκη αληθής) then
‘ εκτελούνται εντολές
else ‘ άρα η ανωτέρω συνθήκη είναι ψευδής
‘ εκτελούνται εντολές
Endif
2. Η δομή if-then-else
![Page 25: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/25.jpg)
Παράδειγμα 4: Πρόγραμμα 3Ο χρήστης εισάγει δύο αριθμούς από το
πληκτρολόγιο και το πρόγραμμα τυπώνει την
ανισότητα που ικανοποιούν.
Δίνονται αριθμοί a και b
If a > b Then
Print a; " > "; b
Else
Print a; " <= "; b
End If
Python ?
if a > b:
print (a, " > “, b)
else:
print (a, " <= “, b)
![Page 26: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/26.jpg)
Ορισμός
If (συνθήκη 1 αληθής) then
‘ εκτελούνται εντολές
Εlse
If (συνθήκη 2 αληθής) then
‘ εκτελούνται εντολές
Εlse
‘ εκτελούνται εντολές
Endif
Endif
3. Η ένθετη δομή if-then-else
![Page 27: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/27.jpg)
Ορισμός
If (συνθήκη 1 αληθής) then
‘ εκτελούνται εντολές
ΕlseIf (συνθήκη 2 αληθής) then
‘ εκτελούνται εντολές
Εlse
‘ εκτελούνται εντολές
Endif
4. Η ένθετη δομή ElseIf
![Page 28: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/28.jpg)
Ορισμός
if συνθήκη 1 αληθής:
‘ εντολές
elif συνθήκη 2 αληθής:
‘ εντολές
else:
‘ εντολές
4. Η ένθετη δομή ElseIf σε Python
![Page 29: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/29.jpg)
Το γράψιμο με ένθετα if-then-elseif απαιτεί
εμπειρία, αλλά θεωρείται δείγμα υψηλής
τεχνικής.
![Page 30: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/30.jpg)
![Page 31: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/31.jpg)
Παράδειγμα 5:
Ζητείται η επίλυση της εξίσωσης αx+b=0
Αλγόριθμος:
αν a0 τότε x = -b/a
αν a=0 τότε
αν b=0, αόριστη
διαφορετικά (b 0), αδύνατη
![Page 32: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/32.jpg)
Αλγόριθμος – διάγραμμα ροής
Τέλος
a 0
x = - b/a
αόριστη
αδύνατη
b 0
Αρχή
NAI
OXI
NAI
OXI
![Page 33: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/33.jpg)
Υλοποίηση σε Python:
Το πρόγραμμα χρησιμοποιεί την ένθετη(εγκλωβισμένη) if-then-elseif -…- endif
If a != 0:
x=-b/a
elif b != 0:
print (“adynati”)
else:
print (“aoristi”)
![Page 34: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/34.jpg)
Κι άλλα παραδείγματα με if-then-else
.
![Page 35: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/35.jpg)
Παράδειγμα: άρτιος ή περιττός
Έλεγχος αν o 6 είναι άρτιος
int(6 / 2) * 2 = 3 * 2 = 6, άρα ο 6 είναι
άρτιος
Έλεγχος αν o 5 είναι περιττός
int(5 / 2) * 2 = 2 * 2 = 4 διάφορος 5, άρα 5
περιττός
>>> x=3
>>> if x%2 == 0:
... print ('x is even')
... else:
... print ('x is odd')
...
x is odd
![Page 36: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/36.jpg)
άρτιος ή περιττός
Έλεγχος αν o i είναι άρτιος ή περιττός
if i == int(i/2)*2:
print (“Άρτιος”)
else:
print (“Περιττός”)
>>> x=3
>>> if x%2 == 0:
... print ('x is even')
... else:
... print ('x is odd')
...
x is odd
![Page 37: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/37.jpg)
Επειδή οι πραγματικοί αριθμοί δεν κρατώνται με πλήρη ακρίβεια στον υπολογιστή, ΠΡΟΣΟΧΗ να μην χρησιμοποιούνται οι σχεσιακοί τελεστές = και ≠ σε αριθμητικές συγκρίσεις που εμπλέκουν μη ακέραιους αριθμούς.
Για να εξετάσομε αν οι πραγματικοί αριθμοί Χ1 και Χ2 είναι (προσεγγιστικά) ίσοι, συνιστάται η χρήση μιας συνθήκης ή έκφρασης της μορφής
abs(X1-X2) < tol
όπου, πχ. tol = 0.5Ε-4 δηλ. tol = 0.510-4
Σύγκριση πραγματικών αριθμών
![Page 38: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/38.jpg)
Παράδειγμα: Έλεγχος ισότητας
πραγματικών αριθμών (με ποια ακρίβεια;)
Α = 1 / 82 [A=0.01219512]
Β = Α * 82 [B=0.01219512*82=0.99999984]
if B == 1:
print (“ισότητα”)
else:
print (“ανισότητα”, Β)
RUN (δίνει)
ανισότητα 0.9999999
![Page 39: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/39.jpg)
Παράδειγμα: Έλεγχος ισότητας
πραγματικών αριθμών
Α = 1 / 82
Β = Α * 82
if abs (B – 1) < 0.00001:
print (“ισότητα”)
else:
print (“ανισότητα”, Β)
RUN
ισότητα
![Page 40: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/40.jpg)
default tolerance (εσωτερική συνάρτηση)
rel_tol = 1e-09
Υποθέτει ότι δύο αριθμοί είναι περίπου ίδιοι σε
9 δεκαδικά ψηφία.
![Page 41: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/41.jpg)
Ορισμός της συνάρτησης προσήμου
Αναπτύξτε πρόγραμμα.
→
| | / , 0sign( )
0, 0
x x xx
x
![Page 42: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/42.jpg)
Ορισμός της συνάρτησης προσήμου
Έστω signx η μεταβλητή που κρατά το πρόσημο:
if x != 0:
signx = abs(x)/x
else:
signx = 0
| | / , 0sign( )
0, 0
x x xx
x
![Page 43: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/43.jpg)
Λογικές εκφράσεις
![Page 44: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/44.jpg)
Λογικές σταθερές και μεταβλητές
Λογικές σταθερές: Είναι True, False
Πχ 5>3, 6<4 είναι λογικές σταθερές
print True δίνει True
print 5>3 δίνει True
print 6<4 δίνει False
Τιμές μιας Λογικής μεταβλητής είναι: True, False
Πχ blnLogic = True
blnFound = False
![Page 45: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/45.jpg)
Λογικές εκφράσεις και λογικοί τελεστές
Λογική έκφραση είναι μια ακολουθία
σχεσιακών εκφράσεων που συνδέονται
με τους λογικούς τελεστές
NOT
AND
OR, XOR
ορισμός →
b*b < 4*a*c
![Page 46: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/46.jpg)
Παραδείγματος χάριν,
![Page 47: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/47.jpg)
Λογική έκφραση ή συνθήκη = Παράσταση
λογικών σταθερών, μεταβλητών και
τελεστών.
Πχ k = 0, x < 3, y > x
X < 3 or Y > 5, -1 < x and x < 1
abs(a+b-c) <= 0.5E-5
not (k=0) σημαίνει k±0
Το αποτέλεσμα μιας λογικής έκφρασης είναι
αποκλειστικά είτε True είτε False.
![Page 48: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/48.jpg)
!!!
The three standard input streams -
standard input (STDIN), standard
output (STDOUT) and standard
error (STDERR) - are not original
or unique to the Python
programming language. They’re
language agnostic concepts.
![Page 49: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/49.jpg)
![Page 50: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/50.jpg)
59
•Γέννηση: 22 Φεβρουαρίου
1903, Κέιμπριτζ, Ηνωμένο Βασίλειο
•Απεβίωσε: 19 Ιανουαρίου 1930, Guy's
Hospital, Λονδίνο, Ηνωμένο Βασίλειο
•Σύζυγος: Λετίς Ράμσεϊ (νύμφ. 1925–
1930)
•Επιρροές: Λούντβιχ
Βίτγκενσταϊν, Μπέρτραντ Ράσελ, Τσαρλς
Περς, Τσάρλς Κέι Όγκντεν
•Εκπαίδευση: Κολέγιο του
Γουίντσεστερ, Κολέγιο Τρίνιτι στο
Κέμπριτζ, Μώντλιν Κόλετζ
![Page 51: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/51.jpg)
Τι σημαίνουν οι λογικοί τελεστές
![Page 52: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/52.jpg)
Λογικοί τελεστές – ορισμός
NOT Άρνηση, αναιρεί συνθήκη
If NOT(X <= 0) then print X; “θετικός”
AND Σύζευξη, ισχύουν αμφότερες οι συνθήκες:
If X>0 AND X<5 Then print “ανάμεσα”
OR Διάξευξη, ισχύει η μία συνθήκη ή και οι δύο
If (L=“N”) OR (L=“n”) then print “No”
XOR Αποκλειστική διάζευξη, αν ισχύει η μία
συνθήκη, όχι όμως και οι δύο, ισχύει η πράξη
If Χ > 3 ΧΟR Μ = 5 then …
![Page 53: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/53.jpg)
Τελεστής σε VB Λογικός ισοδύναμος
Not not - άρνηση
And and - σύζευξη
Or or - διάζευξη
Λογικοί τελεστές και ιεραρχία
![Page 54: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/54.jpg)
Πίνακας αληθείας Not
Έκφραση Not Έκφραση Αποτέλεσμα
Αληθής Not Αληθής Ψευδής
Ψευδής Not Ψευδής Αληθής
![Page 55: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/55.jpg)
Πίνακας αληθείας And
Έκφραση 1 Έκφραση 2 Ε1 And E2 Αποτέλεσμα
Ψ Ψ Ψ And Ψ Ψ
Ψ A Ψ And A Ψ
Α Ψ A And Ψ Ψ
Α A A And A A
![Page 56: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/56.jpg)
Πίνακας αληθείας Or
Έκφραση 1 Έκφραση 2 Ε1 Or E2 Αποτέλεσμα
Ψ Ψ Ψ Or Ψ Ψ
Ψ A Ψ Or A A
Α Ψ A Or Ψ A
Α A A Or A A
![Page 57: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/57.jpg)
Εκτίμηση λογικής έκφρασης:
Το αποτέλεσμα μιας λογικής έκφρασης είναι
είτε True είτε False.
Κανόνας:
1. Πρώτα οι αριθμητικές πράξεις (αποτίμηση εκφράσεων)
2. Έπειτα οι σχεσιακές εκφράσεις (>,<,== …)
3. Τέλος οι λογικοί τελεστές (not / and / or, xor)
Πχ E1 or E2 and E3
Σημαίνει:
E1 or (E2 and E3) και όχι (E1 or E2) and E3
![Page 58: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/58.jpg)
Παράδειγμα
a x b, η διπλή ανισότητα γράφεται
a <= x AND x <= b
Παράδειγμα
Το συμπλήρωμα του
x > 0
είναι
x <= 0
και γράφεται
ΝΟΤ ( x > 0 )
![Page 59: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/59.jpg)
Παράδειγμα
5 <= a And a <= 25
γράφεται ισοδύναμα ως
Not (5 > a Or a > 25)
![Page 60: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/60.jpg)
Παράδειγμα Να βρεθεί η τιμή της λογικής έκφρασης
Α< 0 OR B=2 AND X>7 XOR Y>9
όταν A=-1, B=2, X=1, Y=12
Απάντηση
Πρώτα εκτιμούμε τις σχεσιακές εκφράσεις (σύγκριση αριθμών):
Α< 0 είναι True, B=2 είναι True, X>7 είναι False, Y>9 είναι True
Έπειτα εκτιμούμε τις λογικές εκφράσεις με ιεραρχία (not, and, or):
B=2 AND X>7 True AND False είναι False
Στη συνέχεια:
Προσοχή:
Τrue XOR True είναι False
true OR false XOR true
true XOR true
![Page 61: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/61.jpg)
Παράδειγμα Να βρεθεί η τιμή της λογικής έκφρασης
A<0 OR B=2 AND (X>7 XOR Y>9)
όταν A=-1, B=2, X=1, Y=12
Απάντηση
Πρώτα η παρένθεση (X>7 XOR Y>9)
Έπειτα το AND
Έπειτα το OR
![Page 62: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ · 2020-04-13 · Λογικές εκφράσεις και λογικοί τελεστές Λογική έκφραη](https://reader035.vdocuments.pub/reader035/viewer/2022081402/5f09e9ce7e708231d4291ae4/html5/thumbnails/62.jpg)
ΤΕΛΟΣ