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

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

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

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

Προγραμματισμός I (Θ)

print( x is positive ) Στο διερμηνευτή Python, προσοχή στη στοίχιση, διότι γίνεται από το χρήστη:

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

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

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

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

Κεφάλαιο 4ο: Εντολές επιλογής

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

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

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

Μορφοποίηση εξόδου. Σημειώσεις

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

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

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

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

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

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Εντολές επιλογής Επαναλήψεις (if, switch, while)

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

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

οµές Επιλογής Εντολές if και switch

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4)

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

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

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

Υπολογισμός - Εντολές Ελέγχου

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

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

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

Πληροφορική 2. Αλγόριθμοι

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

a = 10; a = k; int a,b,c; a = b = c = 10;

Στοιχειώδης προγραμματισμός σε C++

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

for for for for( . */

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

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

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

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

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

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

Επικοινωνία:

Ηλεκτρονικοί Υπολογιστές

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

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

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

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

β. Ποιοι λόγοι θα μας οδηγούσαν στο να αναθέσουμε την επίλυση προβλημάτων στον υπολογιστή; (μονάδες 4) (Μονάδες 6)

Μεθόδων Επίλυσης Προβλημάτων

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

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

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

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

Εντολές ελέγχου ροής if, for, while, do-while

Transcript:

Προηγούμενο Σημειώσεις Επόμενο Λογικές εκφράσεις και μεταβλητές Μπορούμε να γράψουμε μία λογική έκφραση η οποία θα είναι είτε αληθής είτε ψευδής. Μία συνηθισμένη λογική έκφραση είναι αυτή που ελέγχει αν μία ισότητα ή μία ανισότητα ισχύει ή όχι. Παραδείγματα. (Λογικές εκφράσεις.) >>> x = 5 # assign a value to the variable x >>> y = 7 # assign a value to the variable y >>> x == y # check if x is equal to y False >>> x < y # check if x is smaller than y, etc True >>> x <= y True >>> x > y False >>> x >= y False >>> x!= y # check if x is not equal to y True Παράδειγμα. (Λογικές μεταβλητές.) Η μεταβλητή cond είναι μία λογική μεταβλητή (bool) και περιέχει το αποτέλεσμα μίας λογικής έκφρασης. Η cond μπορεί να πάρει τις τιμές True ή False. >>> cond = (x == y) >>> cond False >>> type(cond) <class 'bool'> http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 1/9

Παράδειγμα. Είναι το φετινό έτος δίσεκτο; >>> year = 2017 >>> isleap = year%4 == 0 >>> print(isleap) Σημείωση: η παραπάνω συνθήκη χρειάζεται βελτίωση για να είναι πλήρως σωστή (θα το δούμε αργότερα). Εντολές ελέγχου Εκτέλεση υπό συνθήκη (εντολή if) Η εντολή if ακολουθείται από μία λογική έκφραση και το σύμβολο : (άνω-κάτω τελεία). Εάν η λογική έκφραση είναι True τότε εκτελούνται όλες οι εντολές οι οποίες ακολουθούν την if και βρίσκονται σε μία εσοχή ως προς την if. Παράδειγμα. >>> x = 5 >>> if x>0: print("x is positive") print("x =",x) Παρατήρηση: Προσέξτε τη σημασία της εσοχής στην if (και γενικότερα στην python). Όλες οι εντολές που ακολουθούν την if και εξαρτώνται από αυτήν ξεκινούν από την ίδια ακριβώς στήλη (είναι ευθυγραμμισμένες στα αριστερά). if - Εάν η λογική έκφραση η οποία ακολουθεί την if έχει τιμή False τότε δεν εκτελούνται οι εντολές που ακολουθούν (εντός της εσοχής) την if. Έχουμε όμως τη δυνατότητα να εκτελέσουμε κάποιες εντολές, εκείνες που ακολουθούν (εντός εσοχής) την νέα εντολή else. Παράδειγμα. >>> x = 5 http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 2/9

>>> if x%2==0: print(x,'is even') print(x,'is odd') Για τις εντολές if - else η γενική μορφή της σύνταξης είναι if expression: statements_true statements_false Εδώ, expression δηλώνει οποιαδήποτε έκφραση η οποία η τιμή της οποίας είναι True ή False, ενώ statements_true και statements_false δηλώνουν μία ή περισσότερες εντολές Python. Παρατηρήστε την άνω και κάτω τελεία που ακολουθεί τόσο την έκφραση expression όσο και τη λέξη else. Προσέξτε και πάλι ότι οι εντολές statements_true και statements_false έχουν μετακινηθεί (κατά μια εσοχή) προς τα δεξιά. if - elif - Μπορεί να συμβαίνει να θέλουμε να ελέγξουμε διαφορετικές περιπτώσεις, δηλαδή, το αποτέλεσμα διαφορετικών λογικών εκφράσεων. Είναι δυνατόν να ισχύουν ταυτοχρόνως περισσότερες από μία λογικές εκφράσεις (δηλαδή να έχουν την τιμή True), να ισχύει μόνο η μία ή να μην ισχύει καμμία. Παράδειγμα. >>> x = 5 >>> y = 7 >>> if x>y: print(x,'is greater than',y) elif x<y: print(x,'is less than',y) print(x,'and',y,'are equal') Παράδειγμα. Είναι το φετινό έτος δίσεκτο; http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 3/9

>>> year = 2017 >>> isleap = year%4 == 0 >>> if isleap: print("year",year,"is leap year") print("year",year,"is not leap year") Η συνθήκη που χρησιμοποιήσαμε στο παραπάνω παράδειγμα χρειάζεται βελτίωση: >>> year = 2017 >>> isleap = (year%4 == 0) and (year%100!= 0) >>> print(isleap) Έχουμε χρησιμοποιείσει δύο λογικές εκφράσεις και τις έχουμε ενώσει με την λέξη and. Η λογική έκφραση που προκύπτει είναι αληθής μόνο στην περίπτωση που και οι δύο επιμέρους λογικές εκφράσεις είναι αληθείς. Η συνθήκη που χρησιμοποιήσαμε στο παραπάνω παράδειγμα χρειάζεται επιπλέον βελτίωση: >>> year = 2017 >>> isleap = (year%4 == 0) and (year%100!= 0) or (year%400 == 0) >>> print(isleap) Τελεστές για λογικές μεταβλητές b, c (κατά σειρά χαμηλότερης προτεραιότητας) b or c (είναι αληθής εάν η a ή η b είναι αληθής) b and c (είναι αληθής εάν η a και η b είναι αληθής) not b (είναι αληθής εάν η a είναι ψευδής) Παράδειγμα. Η παραπάνω εντολή if για τα δίσεκτα έτη είναι ισοδύναμη με την >>> isleap = (year%4 == 0 and year%100!= 0) or (year%400 == 0) http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 4/9

Άσκηση. Υπάρχει κάποιο λάθος στις παρακάτω εντολές; Τι νομίζετε ότι προσπαθούσε να γράψει ο προγραμματιστής; a == 1 if a = 1: print('a is one') Φωλιασμένες εντολές if Εντολές ελέγχου if-elif-else μπορούν να είναι μέρος εντολών οι οποίες εκτελούνται υπό μία συνθήκη. Παράδειγμα. Οι παρακάτω εντολές επιλέγουν τον μέγιστο μεταξύ των τριών αριθμών x, y, z : if x >= y: if x >= z: print('x is largest') print('z is largest') if y >= z: print('y is largest') print('z is largest') Μια κομψότερη, ίσως, λύση (η οποία μπορεί εύκολα να γενικευθεί σε μεγαλύτερο πλήθος αριθμών) είναι η ακόλουθη: maxnum = x if y > maxnum: maxnum = y if z > maxnum: maxnum = z print('largest number is', maxnum) http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 5/9

Παράδειγμα. Εισάγετε τρεις πραγματικούς αριθμούς x, y, z και τυπώστε τους κατά αύξουσα σειρά. x = float(input("give a number: ")) y = float(input("give a number: ")) z = float(input("give a number: ")) if y > z: a = z; z = y; y = a if x > z: a = z; z = x; x = a if x > y: a = y; y = x; x = a print("{} {} {}".format(x,y,z)) Παρατηρήστε ότι μπορούμε να γράψουμε σε μία γραμμή περισσότερες από μία εντολές, τις οποίες χωρίζουμε με το semicolon (;). Παρατηρήστε ότι για να εναλλάξουμε τις τιμές δύο μεταβλητών χρησιμοποιήσαμε μία βοηθητική μεταβλητή (a). Παράδειγμα. Θα βρούμε τις ρίζες του τριωνύμου. 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) x1 = (-b-sqd)/(2*a) # έχουμε δύο ρίζες: x1,x2 x2 = (-b+sqd)/(2*a) print("οι ρίζες είναι η {} και η {}".format(x1, x2)) # τυπώνουμε http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 6/9

το αποτέλεσμα το τριώνυμο έχει μια διπλή ρίζα x = -b/(2*a) print("διπλή ρίζα {}".format(x)) # Η διακρίνουσα είναι 0, άρα Αλγόριθμοι Παράδειγμα. (Εύρεση κυβικής ρίζας τέλειου κύβου.) Η κυβική ρίζα κάποιων αριθμών είναι ακέραιος. Μπορούμε να βρούμε την κυβική ρίζα του (και άλλων τελείων κύβων) χρησιμοποιώντας το παρακάτω πρόγραμμα. Θα πρέπει να το τρέξουμε πολλές φορές δοκιμάζοντας διαδοχικούς ακεραίους. Η μέθοδος ονομάζεται εξαντλητική απαρίθμηση. perfect_cube = 216 # this is a perfect cube print("try to guess the cubic root of",perfect_cube) x = input("give an integer: ") x = int(x) if x**3 == perfect_cube: print("yes, indeed!", x,"is the cubic root of",perfect_cube) elif x**3 < perfect_cube: print("you need a larger number") elif x**3 > perfect_cube: print("you need a smaller number") Παράδειγμα. (Εύρεση ρίζας θετικού αριθμού.) Ο Ήρων ο Αλεξανδρεύς πρότεινε την εύρεση ρίζας του x ως εξής Θεωρούμε μία εκτίμηση της ρίζας, έστω, g. Αν το είναι αρκετά κοντά στο x, τότε έχουμε τη ρίζα. Αλλιώς, κατασκευάζουμε το μέσο όρο των και, δηλ., και αυτό είναι μία καλύτερη προσέγγιση της ρίζας. Ονομάζουμε το αποτέλεσμα πάλι και επαναλαμβάνουμε τη διαδικασία έως ότου το είναι κοντά στο. Ο αλγόριθμος του Ήρωνα υλοποιείται με τον κώδικα: http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 7/9

x = 2.0 prompt = "Give a number close to the root of "+str(x)+": " g = input(prompt) g = float(g) print("the square of",g,"is:",g*g) g = (g+x/g)/2.0 print("g =",g,"is a better approximation: g*g =",g*g) Παράδειγμα. (Εύρεση ρίζας εξίσωσης με διχοτόμηση διαστήματος.) Θεωρούμε ένα κυβικό πολυώνυμο. Θα πρέπει αρχικά να γνωρίζουμε έαν διάστημα εντοπισμού της ρίζας. Ακολούθως, να τρέξουμε το πρόγραμμα πολλές φορές ελέγχοντας στο κέντρο του διαστήματος και διχοτομόντας το διάστημα. Η μέθοδος ονομάζεται μέθοδος διχοτόμησης. # coefficients of cubic polynomial a0 = 1.0; a1 = 2.0; a2 = 0.0; a3 = 3.0 # input x and find f(x), at two points x=x1, x=x2 x1 = float(input("give x1: ")) fx1 = a0 + a1*x1 + a2*x1**2 + a3*x1**3 x2 = float(input("give x2: ")) fx2 = a0 + a1*x2 + a2*x2**2 + a3*x2**3 print("f(x1) =",fx1,"\nf(x2) =",fx2) # Check if a root of the polynomial is in the interval [x1,x2]. # Try to go closer to the root. if fx1*fx2 <= 0: print("a root is between",x1,"and",x2) x = (x1+x2)/2.0 fx = a0 + a1*x + a2*x**2 + a3*x**3 print("it may be close to",x,"where f =",fx) print("i cannot locate a root of the polynomial") http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 8/9

Άσκηση. Εφαρμόστε την παραπάνω μέθοδο (διχοτόμησης) για τη συνάρτηση (όπου είναι σταθερές). Πληροφορία. Μπορεί να μας δωθεί υπό τη μορφή μίας πρότασης. Π.χ., η τετραγωνική ρίζα αριθμού x είναι ένας y τέτοιος ώστε y*y=x. Μπορεί να προκύπτει στο τέλος μίας διαδικασίας. Δηλαδή, μπορεί να μας δωθεί μία ακολουθία οδηγιών στο τέλος των οποίων προκύπτει η πληροφορία. Ένα παράδειγμα είναι η μέθοδος εύρεσης τετραγωνικής ρίζας αριθμού του Ήρωνα. Ένας αλγόριθμος αποτελείται από βήματα υπολογισμών τα οποία εφαρμόζονται σε κάποια αρχικά δεδομένα και, αφού εξελιχθούν μέσω διαφόρων καταστάσεων, δίνουν κάποια τελικά δεδομένα (δηλαδή, ένα αποτέλεσμα). Για να εφαρμόσουμε έναν αλγόριθμο χρειαζόμαστε μία γλώσσα προγραμματισμού. Μία γλώσσα προγραμματισμού δίνει εντολές στον υπολογιστή ώστε να πραγματοποιηθούν οι πράξεις, οι οποίες αποτελούν τα βήματα οποιουδήποτε αλγορίθμου. Μελέτη Βιβλιογραφία 1. Δ. Καρολίδης, Μαθαίνετε εύκολα python. 2. Κ. Μαγκούτης, Χ. Νικολάου, Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python, (Αποθετήριο "Κάλλιπος", 2016) - Κεφάλαιο 4. Συναρτήσεις και εκτέλεση υπό συνθήκη. 3. J.V. Guttag, Υπολογισμοί και προγραμματισμός με την python (Παράγραφοι 2.2, 3.1). Προηγούμενο Επόμενο http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/03_lecture.html 9/9