Ανάπτυξη εφαρμογών κεφ. 2 βασικές έννοιες αλγορίθμων

Post on 04-Jul-2015

914 views 1 download

description

Εισαγωγή στους αλγόριθμους και ασκησούλες

Transcript of Ανάπτυξη εφαρμογών κεφ. 2 βασικές έννοιες αλγορίθμων

Βασικές Έννοιες Αλγορίθμων

Κεφϊλαιο 2

Τι είναι αλγόριθμοσ

Αλγόριθμοσ εύναι

μια πεπεραςμϋνη ςειρϊ ενεργειών,

αυςτηρϊ καθοριςμϋνων και

εκτελϋςιμων ςε πεπεραςμϋνο χρόνο, που

ςτοχεύουν ςτην επύλυςη ενόσ προβλόματοσ

Βαζικές Έννοιες Αλγορίθμων

Για να είναι αλγόριθμοσ …

Εύςοδοσ Καμύα, μύα ό περιςςότερεσ τιμϋσ δεδομϋνων για εύςοδο

Έξοδοσ Σουλϊχιςτον ϋνα αποτϋλεςμα

Καθοριςτικότητα αφώσ καθοριςμϋνεσ εντολϋσ

Περατότητα Να τελειώνει μετϊ από πεπεραςμϋνο αριθμό βημϊτων

Αποτελεςματικότητα Απλϋσ και εκτελϋςιμεσ εντολϋσ

Βαζικές Έννοιες Αλγορίθμων

Καθοριςτικότητα

Κϊθε βόμα να εύναι διατυπωμϋνο με ςαφόνεια

Δεν υπϊρχουν αμφιβολύεσ για το τι πρϋπει να κϊνουμε. Διαύρεςη: Πρϋπει ο αλγόριθμοσ τησ διαύρεςησ να

προβλϋπει την περύπτωςη διαύρεςησ με το O

ε μια ςυνταγό, η ϋκφραςη «Βϊλε λύγο αλϊτι» δεν εύναι ςαφώσ καθοριςμϋνη. Σι πϊει να πει «λύγο»;

Βαζικές Έννοιες Αλγορίθμων

Αποτελεςματικότητα

Κϊθε εντολό εύναι αρκετϊ απλό ϋτςι ώςτε να μπορεύ να εκτελεςτεύ από τον υπολογιςτό.

Για κϊθε βόμα του αλγορύθμου θα πρϋπει να υπϊρχει αντύςτοιχη εντολό ςτη γλώςςα προγραμματιςμού ϋτςι ώςτε να μπορεύ ο αλγόριθμοσ να μετατραπεύ ςε εκτελϋςιμο πρόγραμμα.

Η εντολό «Βρεσ το μεγαλύτερο από 100 αριθμούσ» δεν υπϊρχει. Πρϋπει να αναλυθεύ ςε πολλϋσ απλούςτερεσ εντολϋσ

Βαζικές Έννοιες Αλγορίθμων

Σχετικά με Καθοριςτικότητα &Αποτελεςματικότητα

Η παραβύαςη οποιουδόποτε από τα δύο κριτόρια οδηγεύ ςε μη εκτελϋςιμουσαλγορύθμουσ

Παραβύαςη τησ καθοριςτικότητασ ςημαύνει ϋλλειψη ςαφόνειασ

Παραβύαςη τησ αποτελεςματικότητασςημαύνει πολύπλοκεσ εντολϋσ που δεν υπϊρχουν ςτη γλώςςα προγραμματιςμού

Βαζικές Έννοιες Αλγορίθμων

Κριτήρια αλγορίθμων

Εύςοδοσ (δεδομϋνα)

Έξοδοσ (αποτελϋςματα)

Καθοριςτικότητα (όχι αςϊφεια, όχι αμφιβολύα)

Περατότητα (δεν εκτελεύται επ’ϊπειρον)

Αποτελεςματικότητα (απλϋσ & εφικτϋσ εντολϋσ)

Βαζικές Έννοιες Αλγορίθμων

Περιγραφή και αναπαράςταςηαλγορίθμων Ελεύθερο κεύμενο Ανεπεξϋργαςτοσ και αδόμητοσ τρόποσ, ενδϋχεται να

παραβιϊζει το κριτόριο τησ αποτελεςματικότητασ. Διαγραμματικϋσ τεχνικϋσ Γραφικόσ τρόποσ (π.χ. διϊγραμμα ροόσ).

Υυςικό γλώςςα Περιγραφό με φυςικό γλώςςα κατϊ βόματα.

Ενδϋχεται να παραβιϊζει το κριτόριο τησ καθοριςτικότητασ

Κωδικοπούηςη Πρόγραμμα γραμμϋνο ςε ψευδογλώςςα ό ςε κϊποια

γλώςςα προγραμματιςμού . Σο πρόγραμμα δύνει τα ύδια αποτελϋςματα με τον αλγόριθμο

Βαζικές Έννοιες Αλγορίθμων

Διάγραμμα ροήσ

υμβολικό γλώςςα

Φρηςιμοποιούνται γεωμετρικϊ ςχόματα

Σα γεωμετρικϊ ςχόματα εύναι ςύμβολα

Κϊθε ςύμβολο δηλώνει μια ενϋργεια ό μια λειτουργύα

Σα ςύμβολα ϋχουν περιεχόμενο όταν αυτό απαιτεύται για να αποκτόςουν νόημα

Βαζικές Έννοιες Αλγορίθμων

Α 5

Διάγραμμα ροήσ

Βαζικές Έννοιες Αλγορίθμων

Αρχό

Τϋλοσ

Έξοδοσ

Εύςοδοσ

Διάγραμμα ροήσ

Βαζικές Έννοιες Αλγορίθμων

Αρχό

Διϊβαςε …..

Σϋλοσ

Γρϊψε …….

υνθόκη Πρϊξεισ

Διάγραμμα ροήσ

Βαζικές Έννοιες Αλγορίθμων

Αρχό

Διϊβαςε …..

Σϋλοσ

Γρϊψε …

Γρϊψε …….

υνθόκη Πρϊξεισ

Διάγραμμα ροήσ

Βαζικές Έννοιες Αλγορίθμων

Αρχό

ΔιϊβαςεΦ

Χ<0

Χ>0

Σϋλοσ

Χ<-0

Γρϊψε Φ

Γρϊψε Φ

Βαςικέσ ςυνιςτώςεσ/ εντολέσ αλγορίθμου

Δομϋσ ελϋγχου

Δομό Ακολουθύασ

Δομό Επιλογόσ

Δομό Επανϊληψησ

Βαζικές Έννοιες Αλγορίθμων

Βαςικέσ ςυνιςτώςεσ/ εντολέσ αλγορίθμου

Δομϋσ ελϋγχου

Δομό Ακολουθύασ

Δομό Επιλογόσ

Δομό Επανϊληψησ

Βαζικές Έννοιες Αλγορίθμων

Δομή ακολουθίασ

Ακολουθιακό δομό εντολών (ςειριακό εκτϋλεςη εντολών)

Δεδομϋνη η ςειρϊ εκτϋλεςησ

υνόθωσ απλϊ προβλόματα

Βαζικές Έννοιες Αλγορίθμων

Πράξεισ : μεταξύ ποιών αντικειμένωνΜαθηματικϊ: Αλγόριθμοσ:

Α= 3+5

Β=-5

Γ=Α+Β

Αλγόριθμοσ Παρϊδειγμα _1

Α3+5

Β -5

ΓΑ+Β

Εμφϊνιςε Γ

Σϋλοσ Παρϊδειγμα _1

Βαζικές Έννοιες Αλγορίθμων

Διάγραμμα ροήσ

Αλγόριθμοσ Παρϊδειγμα _1

Α3+5

Β -5

ΓΑ+Β

Εμφϊνιςε Γ

Σϋλοσ Παρϊδειγμα _1

Βαζικές Έννοιες Αλγορίθμων

Αρχό

Τϋλοσ

Α3+5Β -5

ΓΑ+Β

Εμφϊνιςε Γ

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμος Παράδειγμα _1

Α3+5

Β -5

ΓΑ+ΒΔμθάνιζε Γ

Τέλος Παράδειγμα _1

Αλγόριθμος Παράδειγμα _1

Γιάβαζε Α

Β -5

ΓΑ+ΒΔμθάνιζε Γ

Τέλος Παράδειγμα _1

Αλγόριθμος Παράδειγμα _1

Γιάβαζε Α

Γιάβαζε Β

ΓΑ+ΒΔμθάνιζε Γ

Τέλος Παράδειγμα _1

Σταθερέσ

Προκαθοριςμϋνεσ τιμϋσ που μϋνουν ςταθερϋσ ςε όλη τη διϊρκεια εκτϋλεςησ του αλγορύθμου

Εύδη ταθερών

Αριθμητικϋσ 123 , 3,14, -1,2

Αλφαριθμητικϋσ «Ονομα», « Επώνυμο» «2004»

Λογικϋσ Αληθόσ , Χευδόσ

Βαζικές Έννοιες Αλγορίθμων

Μεταβλητέσ

Γλωςςικό αντικεύμενο που χρηςιμοποιεύται να παραςτόςει ϋνα ςτοιχεύο δεδομϋνου

Μπορεύ να μεταβϊλλεται κατϊ τη διϊρκεια εκτϋλεςησ του αλγορύθμου

Εύδη Μεταβλητών

Ακϋραιεσ

Πραγματικϋσ

Αλφαριθμητικϋσ

Λογικϋσ

Βαζικές Έννοιες Αλγορίθμων

Τελεςτέσ ύμβολα που χρηςιμοποιούνται για να δηλώνουν πρϊξεισ

Αριθμητικού + , - , * , / ^ Div Mod

Συγκριτικού <=, >=, =, <>, >, <

Λογικού και ό όχι

Βαζικές Έννοιες Αλγορίθμων

Εκφράςεισ

Διαμορφώνονται από ταθερϋσ, μεταβλητϋσ

Σελεςτϋσ

υναρτόςεισ

Παρενθϋςεισ () ΌΧΙ αγκύλες

Δύνω τιμϋσ ςε μεταβλητϋσ

Εκτελούνται πρϊξεισ Πχ

ΑΒ (οι Α και Β ύδιου τύπου δεδομϋνων)

Α3

Α3+5

Α Β ό Γ

Α Β>3Βαζικές Έννοιες Αλγορίθμων

Υτιϊξε ϋναν απλό αλγόριθμο που να εμφανύζει τη φρϊςη «Απλόσ Αλγόριθμοσ»

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμος Παράδειγμα _2

Δμθάνιζε ‘’Απλός Αλγόριθμος’’

Τέλος Παράδειγμα _2

Υτιϊξε ϋναν απλό αλγόριθμο που να διαβϊζει δύο αριθμούσ α και β και να εμφανύζει το ϊθροιςμϊ τουσ

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμος Παράδειγμα _3

Γιαβαζε α

Γιαβαζε β

γ α+β

Δμθάνιζε γ

Τέλος Παράδειγμα _2

Υτιϊξε ϋναν απλό αλγόριθμο που να διαβϊζει δύο αριθμούσ α και β και να εμφανύζει το ϊθροιςμϊ τουσ

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμος Παράδειγμα _3

Γιαβαζε α

Γιαβαζε β

γ α+β

Δμθάνιζε γ

Τέλος Παράδειγμα _3

Σι εμφανύζει ο Αλγόριθμοσ που ακολουθεύ

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμος Παράδειγμα _4

α 2

β 1

γ α+β

Δμθάνιζε γ

Τέλος Παράδειγμα _4

Σι εμφανύζεται όταν εκτελεςτούν οι παρακϊτω εντολϋσ

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμος Παράδειγμα _5

α 2

Δμθάνιζε α

β 1

Δμθάνιζε β

γ α+β

Δμθάνιζε γ

Τέλος Παράδειγμα _5

Σι εμφανύζεται όταν εκτελεςτούν οι παρακϊτω εντολϋσ

Βαζικές Έννοιες Αλγορίθμων

α 2

Δμθάνιζε α, γ

β 1

Δμθάνιζε β,γ

γ α+β

Δμθάνιζε γ

Ιεραρχία πράξεων

^

*, /, div, mod

+, -

Οι πρϊξεισ ύδιασ προτεραιότητασ εκτελούνται από αριςτερϊ προσ δεξιϊ

Βαζικές Έννοιες Αλγορίθμων

DIV & MOD & Χρήςιμα ….για Αςκήςεισ

Αdiv B : To πηλίκο της ακεραίας διαίρεσης του

Α δια Β

Αmod B: To υπόλοιπο της ακεραίας διαίρεσης του

Α δια Β

ΑmodΒ = 0

Tο Α είναι πολλαπλάσιο του Β

Αmod2 = 1

To A είναι περιττός

Amod2 = 0

To A είναι άρτιος

Βαζικές Έννοιες Αλγορίθμων

(από το 2006)

Βαζικές Έννοιες Αλγορίθμων

Να γράψετε τοσς αριθμούς της Σηήλης Α και δίπλα ηο

γράμμα ηης Σηήλης Β ποσ ανηιζηοιτεί ζωζηά. Σηη

Σηήλη Β σπάρτει ένα επιπλέον ζηοιτείο.

Σηήλη Α Σηήλη Β

1. “ΑΛΗΘΗΣ” α. λογικός ηελεζηής

2. ΚΑΙ β. μεηαβληηή

3. α > 12 γ. αλθαριθμηηική ζηαθερά

4. αριθμός_παιδιών δ. λογική ζηαθερά

5. ≤ ε. ζσγκριηικός ηελεζηής

ζη. ζσνθήκη

1γ, 2 α, 3 ζη, 4 β, 5 ε

Λογικέσ εκφράςεισ

Α Β Α ό Β Α ΚΑΙ Β Όχι Α Όχι Β

Αληθόσ Αληθόσ

Αληθόσ Χευδόσ

Χευδόσ Αληθόσ

Χευδόσ Χευδόσ

Βαζικές Έννοιες Αλγορίθμων

A ό Β Αληθϋσ αν Ένα από τα δύο εύναι ΑληθϋσΑ και Β Αληθϋσ όταν ΚΑΙ τα δύο εύναι ΑληθόΌχι Α Εύναι το λογικό αντύςτροφο του Α

Λογικέσ εκφράςεισ

Α Β Α ό Β Α ΚΑΙ Β Όχι Α Όχι Β

Αληθόσ Αληθόσ T T F F

Αληθόσ Χευδόσ T F F T

Χευδόσ Αληθόσ T F. T F

Χευδόσ Χευδόσ F F T T

Βαζικές Έννοιες Αλγορίθμων

Έςτω Φ ψευδόσ και Τ Αληθόσ . Προςδιορύςτε τισ τιμϋσ των εκφρϊςεων:

Φ και Όχι Τ

Όχι Φ και Τ

Φ ό Τ

Όχι (Φ και Τ)

Όχι (Φ και Όχι Τ)

Βαζικές Έννοιες Αλγορίθμων

Έςτω Φ ψευδόσ και Τ Αληθόσ . Προςδιορύςτε τισ τιμϋσ των εκφρϊςεων:

Φ και Όχι Τ Χ

Όχι Φ και Τ Α

Φ ό Τ Α

Όχι (Φ και Τ) Α

Όχι (Φ και Όχι Τ) Α

Βαζικές Έννοιες Αλγορίθμων

Έςτω Φ ψευδόσ και Τ Αληθόσ και το Ζ ϋχει τιμό αλλϊ δεν την γνωρύζω. Προςδιορύςτε τισ τιμϋσ των εκφρϊςεων:

Φ και Τ και Ζ

Φ ό Τ ό Ζ

Όχι Ζ

Όχι Ζ ό Ζ

Όχι Φ ό (Τ και Ζ)

Βαζικές Έννοιες Αλγορίθμων

Έςτω Φ ψευδόσ και Τ Αληθόσ και το Ζ ϋχει τιμό αλλϊ δεν την γνωρύζω. Προςδιορύςτε τισ τιμϋσ των εκφρϊςεων:

Φ και Τ και Ζ Χ

Φ ό Τ ό Ζ Α

Όχι Ζ απρ

Όχι Ζ ό Ζ Α

Όχι Φ ό (Τ και Ζ) Α

Βαζικές Έννοιες Αλγορίθμων

Αντιςτοιχήςτε τη ςτήλη Α που περιέχει τιμέσ μεταβλητών με τη ςτήλη Β που περιέχει τύπουσ μεταβλητών :

Στόλη Α Στόλη Β

1 15 Α Ακϋραιοσ

2 ‘15’ Β Αλφαριθμητικό

3 ‘15+15’ C Πραγματικόσ

4 -15 D Λογικό

Βαζικές Έννοιες Αλγορίθμων

1 Α, 2 Β, 3 Β, 4Α

Βαζικές Έννοιες Αλγορίθμων

Στόλη Α Στόλη Β

1 A*B/A^2 Α Πραγματικόσ

2 T_Ρ(Α_Σ(Α-Β) ) Β Ακϋραιοσ

3 ΒDivΑ C Λογικό μεταβλητό

4 ( T_Ρ(Α_Σ(Α-Β) )) > (A*B)/A^2 D Αλφαριθμητικό

Αντιςτοιχήςτε τη ςτήλη Α που περιέχει εκφράςεισ με τη ςτήλη Β που περιέχει τύπουσ μεταβλητών :

1 Α, 2 Α, 3 Β, 4C

Βαςικέσ ςυνιςτώςεσ/ εντολέσ αλγορίθμου

Δομϋσ ελϋγχου

Δομό Ακολουθύασ

Δομό Επιλογόσ

Δομό Επανϊληψησ

Βαζικές Έννοιες Αλγορίθμων

Η εντολή αν Απλή α

1. Αν <ςυνθόκη> τότε

2. <ομϊδα _εντολών_1 >

3. Σϋλοσ_αν

Βαζικές Έννοιες Αλγορίθμων

Η εντολή αν Απλή β

1. Αν <ςυνθόκη> τότε

2. <ομϊδα _εντολών_1 >

3. αλλιώσ

4. <ομϊδα _εντολών_2>

5. Σϋλοσ_αν

Βαζικές Έννοιες Αλγορίθμων

Η εντολή αν Εμφωλευμένη

Αν <ςυνθόκη1> τότε

<ομϊδα _εντολών_1 >

αλλιώσΑν <ςυνθόκη2> τότε

<ομϊδα _εντολών_3αλλιώσ

<ομϊδα _εντολών_4>Σϋλοσ_αν

Σϋλοσ_αν

Βαζικές Έννοιες Αλγορίθμων

Η εντολή αν Εμφωλευμένη

Αν <ςυνθόκη1> τότε

<ομϊδα _εντολών_1 >

αλλιώσΑν <ςυνθόκη2> τότε

<ομϊδα _εντολών_3αλλιώσ

<ομϊδα _εντολών_4>Σϋλοσ_αν

<ομϊδα _εντολών_2>

Σϋλοσ_αν

Βαζικές Έννοιες Αλγορίθμων

Η εντολή αν Πολλαπλή

Αν <ςυνθόκη1> τότε <ομϊδα _εντολών_1 >

αλλιώσ _αν <ςυνθόκη2> τότε<ομϊδα _εντολών_2

….αλλιώσ _αν <ςυνθόκην> τότε

<ομϊδα _εντολών_ναλλιώσ <ομϊδα _εντολών_ν+1>

Σϋλοσ_αν

Βαζικές Έννοιες Αλγορίθμων

Η εντολή αν

1. Αλγόριθμοσ απλη_επιλογη2. διαβαςε α,β

3. Αν α>β τότε 4. μεγιςτο ← α5. αλλιώσ6. μεγιςτο ← β7. Σϋλοσ_αν8. Εκτυπωςε μεγιςτο9. Σϋλοσ απλη_επιλογη

Βαζικές Έννοιες Αλγορίθμων

Οι αλγόριθμοι έχουν το ίδιο αποτέλεςμα;

1. Αλγόριθμοσ επιλογη

2. διαβαςε α,β

3. Αν α>β τότε

4. μεγιςτο ← α

5. αλλιώσ_αν α<β τοτε

6. μεγιςτο ← β

7. Σϋλοσ_αν

8. Εκτυπωςε μεγιςτο

9. Σϋλοσ επιλογη

Βαζικές Έννοιες Αλγορίθμων

1. Αλγόριθμοσ απλη_επιλογη

2. διαβαςε α,β

3. Αν α>β τότε

4. μεγιςτο ← α

5. αλλιώσ

6. μεγιςτο ← β

7. Σϋλοσ_αν

8. Εκτυπωςε μεγιςτο

9. Σϋλοσ απλη_επιλογη

Βαζικές Έννοιες Αλγορίθμων

Βαζικές Έννοιες Αλγορίθμων

Διαβϊςτε τρεισ αριθμούσ και υπολογύςτε και εκτυπώςτε

Α)το μϋςο όρο

Β) το μϋγιςτο

Και

Γ) εκτυπώςτε μόνυμα αν δυο από αυτούσ εύναι ύςοι

Βαζικές Έννοιες Αλγορίθμων

Βαζικές Έννοιες Αλγορίθμων

Αλγόριθμοσ μεςοσ_οροσ_επιλογη

διαβαςε α,β,γ

μεγιςτο ← α

Αν α>β τότε

μεγιςτο ← α

Αν γ>α τότε

μεγιςτο ←γ

τελοσ_αν

αλλιώσ_αν β>=α τοτε

μεγιςτο ← β

Αν γ>β τοτε

μεγιςτο ←γ

τελοσ_αν

Σϋλοσ_αν

Εκτυπωςε 'Μεγιςτο:', μεγιςτο

Μεςοσ_όροσ←(α+β+γ)/3

Εκτύπωςε ' μεςοσ όροσ: ', Μεςοσ_όροσ

Αν α=β ό α= γ ό β=γ τοτε

εκτυπωςε 'οι δυο εύναι ύςοι'

Σϋλοσ_αν

Σϋλοσ μεςοσ_οροσ_επιλογη

Βαζικές Έννοιες Αλγορίθμων