Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Σχετικά έγγραφα
Σημειωματάριο Τετάρτης 11 Οκτ. 2017

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Λογικές εκφράσεις και μεταβλητές

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

Σημειωματάριο Τετάρτης 4 Οκτ. 2017

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Παίρνοντας Αποφάσεις 1

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Θέματα Προγραμματισμού Η/Υ

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι χρειάζεται η εντολή if ; Εντολή if. Παράδειγμα #1. Παράδειγμα #1

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΗΥ-150. Προγραμματισμός

Εισαγωγή στον Προγραμματισμό

Η γλώσσα προγραμματισμού C

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εισαγωγή στον Προγ/μό Υπολογιστών

Πληρουορική Γ Γσμμασίοσ

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

ΚΕΝΤΡΙΚΗ ΟΡΓΑΝΩΤΙΚΗ ΕΠΙΤΡΟΠΗ 8 ου ΠΑΝΕΛΛΗΝΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ 1996 ΠΡΟΚΑΤΑΡΚΤΙΚΗ ΦΑΣΗ ΠΑΝΕΛΛΗΝΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΘΕΜΑΤΑ ΓΥΜΝΑΣΙΟΥ

ΗΥ-150. Προγραμματισμός

ΕΠΑΝΑΛΗΨΗ ΧΩΡΙΣ ΠΡΟΚΑΘΟΡΙΣΜΕΝΑ ΒΗΜΑΤΑ,ΜΕΤΡΗΤΕΣ,ΜΕΓΙΣΤΟΣ,ΜΕΓΙΣΤΟ ΟΝΟΜΑ Χαμηλόμισθος

Σημειωματάριο μαθήματος 1ης Νοε. 2017

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Η γλώσσα προγραμματισμού C

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Πληροφορική ΙΙ Θεματική Ενότητα 6

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Σημειωματάριο Δευτέρας 23 Οκτ. 2017

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΘΕΜΑ : «Από την ΜicroWorlds Pro στην Python. Μια Βιωματική Διδακτική Πρόταση.»

Κεφάλαιο ΙII : Εργαστηριακές ασκήσεις που αφορούν εντολές ελέγχου της ροής ενός προγράµµατος.

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Διαδικασιακός Προγραμματισμός

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Γλώσσα Προγραμματισμού C

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Θέματα Προγραμματισμού Η/Υ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ Γ ΓΥΜΝΑΣΙΟΥ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στους Η/Υ και τις Εφαρμογές Ενότητα 5: Επεξεργασία δεδομένων με τη γλώσσα προγραμματισμού python Υπο-ενότητα 5.2: Συμβολοσειρές-Έλεγχος Ροής

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Μάντεψε τον Αριθμό. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Οδηγίες

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

2.1. Εντολές Σχόλια Τύποι Δεδομένων


Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

ττιαογή και επανάληψη

Γλώσσα προγραμματισμού python

Κεφάλαιο 4: Μεταβλητές και εκφράσεις

Προγραμματισμός Ι (HY120)

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

Transcript:

Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Η δομή ελέγχου if... else... elif Βλέπουμε τώρα πώς μπορούμε να γράψουμε προγράμματα που η εκτέλεσή τους ακολουθεί διαφορετική πορεία ανάλογα με τα δεδομένα. Χωρίς τέτοιες δομές ελέγχουν μόνο πολύ απλά και όχι πολύ χρήσιμα προγράμματα μπορεί να γράψει κανείς, σε οποιαδήποτε γλώσσα προγραμματισμού και αν δουλεύει. Η βασική δομή ελέγχουν είναι το if με τις παραλλαγές του: if (συνθήκη): εντολή 1 εντολή 2... εντολή N Ο παραπάνω κώδικάς (εντολές 1 έως Ν) θα εκτελεστεί μόνο αν ισχύει η συνθήκη που εμφανίζεται δίπλα στο if ισχύει όταν η ροή του προγράμματος φτάσει εκεί. Προσέξτε ότι οι εντολές που υπάγονται στο if είναι γραμμένες πιο δεξιά από το ίδιο το if και είναι μεταξύ τους στοιχισμένες. Αυτό είναι υποχρεωτικό στην python και δεν το κάνουμε για αισθητικούς λόγους (όπως γίνεται σε πολλές άλλες γλώσσες, ανάλογα πάντα με τα γούστα του προγραμματιστή). Είναι η τρόπος που έχει η γλώσσα python να δηλώνει ότι κάποιες εντολές υπάγονται σε μια άλλη. Για να δούμε καλύτερα πώς δουλεύει το if ας λύσουμε το εξής πρόβλημα. Έχουμε δύο διαστήματα [a,b] και [c,d] στην πραγματική ευθεία (με b < c) και θέλουμε δοθέντος ενός αριθμού x στη μεταβλητή result να μπαίνει η τιμή 0, 1 ή 2 ανάλογα με το αν το x αντίστοιχα δεν ανήκει σε κανένα από τα δύο διαστήματα, ανήκει στο αριστερό διάστημα [a,b] ή ανήκει στο δεξί διάστημα [c,d]. Για να το πετύχουμε αυτό χρησιμοποιούμε το if. Προσέξτε ότι σε αυτό το πρόγραμμα ακριβώς ένα από τα if θα δουλέψει (ισχύει δηλ. η συνθήκη του και άρα θα εκτελεστούν οι εντολές του). http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 1/11

In [1]: a = 1 # Εδώ δίνουμε τιμές στα άκρα των διαστημάτων b = 2.1 c = 3.5 d = 8 x = 2.5 # Εδώ δίνουμε τιμή στο x if x < a: # Αν το x είναι αριστερά του a τότε result γίνεται 0 if x > d: # Ομοίως αν το x είναι δεξιά του d if b < x and x < c: # Ομοίως αν το x είναι ανάμεσα στο b και στο c if a <= x and x <=b: # Αν το x είναι ανάμεσα στο a και στο b τότε result γίνεται 1 result = 1 if c <= x and x <= d: # Αν το x είναι ανάμεσα στο c και στο d τότε result γίνετα ι 2 result = 2 print("για x={} το αποτέλεσμα είναι {}".format(x, result)) # Τυπώνουμε το αποτέλ εσμα Για x=2.5 το αποτέλεσμα είναι 0 Εδώ βλέπουμε τη δομή if... else. if (συνθήκη): εντολή 1... εντολή Ν εντολή Α... εντολή Ω Αν η συνθήκη του if ισχύει τότε εκτελούνται οι εντολές που υπάγονται στο if. Αν όχι τότε εκτελούνται οι εντολές που υπάγονται στο else. Έτσι ξαναγράφουμε το προηγούμενο πρόγραμμα ώστε να είναι πιο σύντομο. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 2/11

In [2]: a = 1 b = 2.1 c = 3.5 d = 8 x = 2.5 # Μέχρι εδώ, όπως πριν if x < a or x > d or (b < x and x < c): # εδώ ελέγχουμε την ακριβή συνθήκη που π ρέπει να ισχύει για result=0 # στο else μέσα μπαίνει το πρόγραμμα μόνο αν το x δεν είναι εκτός των δύο διαστημάτων if a <= x and x <=b: # αν το x είναι στο αριστερό διάστημα τότε result γίνετ αι 1 result = 1 # αλλιώς το result γίνεται 2 result = 2 print("για x={} το αποτέλεσμα είναι {}".format(x, result)) # τυπώνουμε όπως πριν Για x=2.5 το αποτέλεσμα είναι 0 Στο επόμενο βλέπουμε το ίδιο πρόγραμμα αλλά τώρα αντί να δίνουμε τιμή στο x μέσα στο πρόγραμμα ζητάμε από το χρήστη να μας δώσει το x με την εντολή x = float(input("δώστε ένα πραγματικό αριθμό x: ")) Η συνάρτηση input(s) τυπώνει το string s και μας επιστρέφει το string το οποίο έδωσε ο χρήστης στο πληκτρολόγιο. Επειδή στην περίπτωση αυτή ζητάμε από το χρήστη ένα πραγματικό αριθμό (floating point number, και ο αντίστοιχος τύπος δεδομένω στην python είναι ο float) το αποτέλεσμα της input το δίνουμε στη συνάρτηση float(w) η οποία μετατρέπει το string w σε πραγματικό αριθμό (αν αυτό γίνεται, αλλιώς προκύπτει σφάλμα). Θα μπορούσαμε να είχαμε το ίδιο αποτέλεσμα αν αντί για την παραπάνω εντολή δίναμε s = input("δώστε ένα πραγματικό αριθμό x: ") x = float(s) αλλά με το να δώσουμε κατ' ευθείαν το output της input στη συνάρτηση float κάνουμε το πρόγραμμά μας και συντομότερο και πιο κατανοητό. Αν θέλαμε να διαβάσουμε από το χρήστη ένα άλλο τύπο δεδομένων τότε θα δίναμε άλλη συνάρτηση μετατροπής. Αν θέλαμε π.χ. να διαβάσουμε ένα ακέραιο τότε θα δίναμε int(input("μπλα μπλα")) ενώ αν θέλαμε να διαβάσουμε απλά ένα string τότε δε θα κάναμε καμιά μετατροπή και θα δίναμε μόνο τη συνάρτηση input. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 3/11

In [12]: a = 1 b = 2.1 c = 3.5 d = 8 x = float(input("δώστε ένα πραγματικό αριθμό x: ")) if x < a or x > d or (b < x and x < c): if a <= x and x <=b: result = 1 result = 2 print("για x={} το αποτέλεσμα είναι {}".format(x, result)) Δώστε ένα πραγματικό αριθμό x: 3.4 Για x=3.4 το αποτέλεσμα είναι 0 Αξιοσημείωτη είναι επίσης και η συνάρτηση eval(...) την οποία θα μπορούσαμε να είχαμε χρησιμοποιήσει στη θέση της float αλλά και της int στην περίπτωση που διαβάζαμε ακέραιο. H eval παίρνει ένα όρισμα τύπου string και το υπολογίζει σαν να είναι μια έκφραση python. Δείτε τα παρακάτω παραδείγματα. In [3]: Δώστε ένα αριθμό: 1.1 1.1 In [4]: Δώστε ένα αριθμό: -3-3 In [5]: Δώστε ένα αριθμό: 1+2.4 3.4 In [6]: Δώστε ένα αριθμό: 3/4 0.75 http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 4/11

In [7]: Δώστε ένα αριθμό: 5%3 2 In [8]: import math Δώστε ένα αριθμό: math.pi 3.141592653589793 In [9]: y = 3 Δώστε ένα αριθμό: y+4.2 7.2 Παρακάτω χρησιμοποιούμε το if... else και γράφουμε ένα πρόγραμμα για την επίλυση της εξίσωσης a x 2 + bx + c = 0. Το πρώτο πράγμα που κάνουμε είναι να υπολογίσουμε τη διακρίνουσα D = b 2 4ac και να διακρίνουμε περιπτώσεις ανάλογα με το αν η διακρίνουσα είναι αρνητική, θετική ή 0. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 5/11

In [10]: # Πρόγραμμα για επίλυση του τριωνύμου ax^2+bx+c=0 import math print("πρόγραμμα για επίλυση του τριωνύμου ax^2+bx+c=0") print("-----------------------------------------------") a = float(input("δώστε το συντελεστή a: ")) # Διαβάζουμε τους συντελεστές του τρ ιωνύμου b = float(input("δώστε το συντελεστή b: ")) c = float(input("δώστε το συντελεστή c: ")) D = b*b-4*a*c # Διακρίνουσα if D<0: print("αδύνατη εξίσωση.") if D>0: # Αν η διακρίνουσα είναι θετική τότε sqd = math.sqrt(d) # υπολογίζουμε την τετραγωνική της ρίζα στη μεταβλητή sqd x1 = (-b-sqd)/(2*a) # και τις δύο ρίζες. x1 είναι η μικρότερη από τις δύ ο x2 = (-b+sqd)/(2*a) print("οι ρίζες είναι η {} και η {}".format(x1, x2)) # τυπώνουμε το αποτ έλεσμα # αν φτάσουμε εδώ τότε η διακρίνουσα είναι 0, άρα το τριώνυμο έχει μια "διπλή" ρίζα x = -b/(2*a) print("διπλή ρίζα {}".format(x)) Πρόγραμμα για επίλυση του τριωνύμου ax^2+bx+c=0 ----------------------------------------------- Δώστε το συντελεστή a: 1 Δώστε το συντελεστή b: -5 Δώστε το συντελεστή c: 6 Οι ρίζες είναι η 2.0 και η 3.0 http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 6/11

Τώρα βλέπουμε την παραλλαγή του if.. else με το elif που είναι κατά κάποιο τρόπο συντομογραφία του else if. if συνθήκη 1: εντολές elif συνθήκη 2: εντολές' elif συνθήκη 3: εντολές''... εντολές ''' Αν ισχύσει η συνθήκη 1 τότε εκτελούνται οι εντολές που υπάγονται στο if, αλλιώς αν ισχύει η συνθήκη 2 εκτελούνται οι εντολές που υπάγονται στο πρώτο elif (εντολές'), αλλιώς (αν δηλ. δεν ισχύει ούτε η συνθήκη 1 ούτε η συνθήκη 2) αν ισχύει η συνθήκη 3 τότε εκτελούνται οι εντολές που υπάγονται στο δεύτερο elif (εντολές''), κλπ. Αν δεν ισχύσει καμία συνθήκη έως να φτάσουμε στο τελικό else (το οποίο μπορεί και να μην υπάρχει) τότε εκτελούνται οι εντολές που υπάγονται στο else (εντολές'''). To elif είναι πολύ χρήσιμο αν θέλουμε να ελέγξουμε σε ποια από πολλές αλληλοαποκλειόμενες συνθήκης βρισκόμαστε. Παρακάτω ξαναγράφουμε το πρώτο πρόγραμμα της ημέρας όπου αποφασίζουμε αν το result θα γίνει 0, 1 ή 2 ανάλογα με το πού είναι το x. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 7/11

In [18]: a = float(input("δώσε το a: ")) b = float(input("δώσε το b: ")) c = float(input("δώσε το c: ")) d = float(input("δώσε το d: ")) x = float(input("δώσε και το x: ")) # Έλεγχος του τι έδωσε ο χρήστης. Αν ο χρήστης δεν τήρησε την αύξουσα διάταξη γι α τα a, b, c, d τυπώνουμε # μήνυμα σφάλματος και δεν κάνουμε τίποτε άλλο. Προσέξτε ότι η συνθήκη στο `if` είναι η άρνηση αυτού που ΘΕΛΟΥΜΕ # να συμβαίνει. Αν δηλ. δε συμβαίνει το επιθυμητό τότε έχουμε σφάλμα εισόδου. if not(a<b and b<c and c<d): print("έκανες σφάλμα. Γεια.") # από δω και κάτω ελέγχουμε πού είναι το x για να υπολογίσουμε το result. # ξεκιναμε από αριστερά και προχωράμε προς τα δεξιά μέχρι να βρούμε που πε ριέχεται το x if x<a: elif x<=b: result = 1 elif x<c: elif x<=d: result = 2 print("για x={} το αποτέλεσμα είναι {}.".format(x, result)) Δώσε το a: 1 Δώσε το b: 2.1 Δώσε το c: 3.5 Δώσε το d: 8 Δώσε και το x: 1.5 Για x=1.5 το αποτέλεσμα είναι 1. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 8/11

Για το παραπάνω πρόγραμμα, αν θέλαμε να γράψουμε το if... elif... με if... else μόνο τότε θα το γράφαμε ως εξής: if x<a: if x<=b: result = 1 if x<c: if x<=d: result = 2 Το κομμάτι αυτό κώδικα είναι λειτουργικά το ίδιο με το κομμάτι που αντικατέστησε, αλλά είναι και πιο δύσκολο να το γράψει κανείς σωστά και πολύ πιο δύσκολο να το τροποποιήσει, λόγω του "φωλιάσματος" (nesting) του ενός if...else μέσα στο προηγούμενο. Το επόμενο πρόβλημα που λύνουμε είναι το εξής. Μας δίνεται ένα ορθογώνιο παραλληλόγραμμο στο επίπεδο R = [a, b] [c, d] = {(x, y) : a x b, c y d}. Αυτό είναι το ορθογώνιο που είναι παράλληλο με τους άξονες και προβάλλεται στο διάστημα [a, b] στον x- άξονα και στο διάστημα [c, d] στον y-άξονα. Για να ανήκει ένα σημείο P = ( p x, p y ) στο R πρέπει να ισχύει a p x b και c d. Στο πρόγραμμα ο χρήστης δίνει τα a, b, c, d, p x, p y και το πρόγραμμα μας λέει αν το σημείο (, ) ανήκει στο ορθογώνιο R ή όχι. p y p x p y http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 9/11

In [20]: a = float(input("δώσε το a: ")) b = float(input("δώσε το b: ")) c = float(input("δώσε το c: ")) d = float(input("δώσε το d: ")) px = float(input("δώσε το px: ")) py = float(input("δώσε και το py: ")) # Εδώ τελειώνει η εισαγωγή δεδομένων από τ ο χρήστη if not( a<b and c<d): # Ελέγχουμε αν υπάρχει σφάλμα στα δεδομένα. Αυτό που ΠΡΕΠΕ Ι να ισχύει είναι αυτό # είναι μέσα στο not. Αν υπάρχει σφάλμα τυπώνουμε μήνυμα κ αι δεν κάνουμε τίποτε άλλο. print("λάθος δεδομένα. Γεια.") # από δω και κάτω ελέγχουμε αν το σημείο είναι μέσα στο ορθογώνιο is_in = (a <= px and px <= b) and (c <= py and py <= d) # Η λογική μεταβλητή is_in γίνεται True αν ισχύει # η σωστή συνθήκη, αλλιώς είναι False. if is_in: print("το σημείο ({},{}) είναι μέσα.".format(px, py)) # Αν το σημείο δεν είναι μέσα print("το σημείο ({},{}) δεν είναι μέσα.".format(px, py)) Δώσε το a: 1 Δώσε το b: 2 Δώσε το c: 3 Δώσε το d: 5 Δώσε το px: 0.5 Δώσε και το py: 4 Το σημείο (0.5,4.0) δεν είναι μέσα. Στο επόμενο βλέπουμε μια παραλλαγή του προηγούμενου προγράμματος όπου χρησιμοποιούμε μόνο ένα print και τροποποιούμε το μήνυμα ανάλογα με το αν το σημείο είναι μέσα ή όχι. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 10/11

In [22]: a = float(input("δώσε το a: ")) b = float(input("δώσε το b: ")) c = float(input("δώσε το c: ")) d = float(input("δώσε το d: ")) px = float(input("δώσε το px: ")) py = float(input("δώσε και το py: ")) if not( a<b and c<d): print("λάθος δεδομένα. Γεια.") is_in = (a <= px and px <= b) and (c <= py and py <= d) word='' # αυτό θα παραμείνει κενό αν το σημείο είναι μέσα if not is_in: word = 'δεν ' # αλλιώς θα γίνει το string `δεν ` print("το σημείο ({},{}) {} είναι μέσα.".format(px, py, word)) Δώσε το a: 1 Δώσε το b: 2 Δώσε το c: 3 Δώσε το d: 5 Δώσε το px: 0.5 Δώσε και το py: 4 Το σημείο (0.5,4.0) δεν είναι μέσα. Στο τελευταίο κομμάτι του μαθήματος κάναμε μια μικρή εισαγωγή στις λίστες, που είναι ένας πολύ βασικός τύπος δεδομένων στην Python. Μοιάζουν πολύ με τα strings μόνο που αντί για γράμματα μπορούν στην κάθε θέση να έχουν οτιδήποτε, ακόμη και άλλες λίστες. Τα στοιχεία τους μπαίνουν μέσα σε αγκύλες διαχωρισμένα από κόμματα. http://fourier.math.uoc.gr/~mk/prog1718/files/notes/20171009.html 11/11