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

72
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΓΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Η έννοια ΑΛΓΟΡΙΘΜΟΣ

description

Παρουσίαση της θεωρίας των βασικών εννοιών αλγορίθμου.

Transcript of Bασικές έννοιες αλγορίθμων

Page 1: Bασικές έννοιες αλγορίθμων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΓΜΟΓΩΝ ΣΕ

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Η έννοια ΑΛΓΟΡΙΘΜΟΣ

Page 2: Bασικές έννοιες αλγορίθμων

Η έννοια Αλγόριθμος

Συναντήσαμε τον όρο «αλγόριθμος» ως ένα κοινό παρονομαστή των γλωσσών προγραμματισμού. Επίσης, τον συνδέσαμε με την έννοια του προβλήματος.

Ο «αλγόριθμος» χρησιμοποιείται για να

δηλώσει μεθόδους που εφαρμόζονται για την επίλυση προβλημάτων. Πώς ορίζεται όμως ως έννοια;

Page 3: Bασικές έννοιες αλγορίθμων

Η έννοια Αλγόριθμος

• Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.

Page 4: Bασικές έννοιες αλγορίθμων

Η έννοια Αλγόριθμος

• «...πεπερασμένη σειρά ενεργειών...»: ο αλγόριθμος να μην έχει άπειρο πλήθος ενεργειών, να τελειώνει έπειτα από μετρήσιμα βήματα εκτέλεσης των εντολών του ( περατότητα ).

• «...αυστηρά καθορισμένων...»: κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της ( καθοριστικότητα ).

Page 5: Bασικές έννοιες αλγορίθμων

Η έννοια Αλγόριθμος• «...και εκτελέσιμων...»: κάθε εντολή να είναι

απλή και να μπορεί να εκτελεστεί, λαμβάνοντας υπ όψιν όλες τις δυνατότητες και τους περιορισμούς του φορέα εκτέλεσης του αλγορίθμου ( αποτελεσματικότητα ).

• «...σε πεπερασμένο χρόνο...»: κάθε εντολή ξεχωριστά να μην εκτελείται επ άπειρον και σε συνδυασμό με το πεπερασμένο πλήθος τους να οδηγούν στο τέλος του αλγορίθμου ( περατότητα ).

Page 6: Bασικές έννοιες αλγορίθμων

Η έννοια Αλγόριθμος

• «...που στοχεύουν στην επίλυση ενός προβλήματος.»: ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μια τιμή δεδομένων ως αποτέλεσμα ώστε να επιλυθεί του προβλήματος, δηλαδή να παράγει τουλάχιστον μία έξοδο, έχοντας λάβει ή παράξει κατά την εκκίνησή του κάποια δεδομένα ως είσοδο.

Page 7: Bασικές έννοιες αλγορίθμων

Κριτήρια Αλγορίθμου

• Επομένως κάθε υπολογιστική διαδικασία, για να θεωρείται αλγόριθμος θα πρέπει να ικανοποιεί τα παρακάτω κριτήρια, όπως περιγράφηκαν προηγουμένως:– Είσοδος

– Έξοδος

– Καθοριστικότητα

– Περατότητα

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

Page 8: Bασικές έννοιες αλγορίθμων

Περιγραφή και Αναπαράσταση Αλγορίθμων

• Οι αλγόριθμοι μπορεί να αναπαρασταθούν με διάφορους τρόπους:– Με ελεύθερο κείμενο

– Με διαγραμματικές τεχνικές

– Με φυσική γλώσσα κατά βήματα

– Με κωδικοποίηση

Page 9: Bασικές έννοιες αλγορίθμων

Ελεύθερο Κείμενο

• Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Έτσι εγκυμονεί τον κίνδυνο ότι μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση, παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων, δηλαδή την αποτελεσματικότητα.

Page 10: Bασικές έννοιες αλγορίθμων

Διαγραμματικές Τεχνικές

• Συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγορίθμου. Από αυτές που έχουν επινοηθεί, η πιο παλιά και η πιο γνωστή ίσως είναι το διάγραμμα ροής. Ωστόσο, η χρήση των διαγραμμάτων ροής για την παρουσίαση αλγορίθμων δεν αποτελεί την καλύτερη λύση, γι’ αυτό και εμφανίζονται όλο και σπανιότερα στη βιβλιογραφία και στην πράξη.

Page 11: Bασικές έννοιες αλγορίθμων

Διάγ

ραμμ

α Ρο

ής

Page 12: Bασικές έννοιες αλγορίθμων

Φυσική Γλώσσα κατά βήματα

• Εδώ χρειάζεται προσοχή, γιατί μπορεί να παραβιαστεί το τρίτο βασικό χαρακτηριστικό ενός αλγορίθμου, δηλαδή το κριτήριο του καθορισμού.

Page 13: Bασικές έννοιες αλγορίθμων

Κωδικοποίηση

• Η κωδικοποίηση αφορά ένα πρόγραμμα σε κάποια γλώσσα προγραμματισμού, που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

Page 14: Bασικές έννοιες αλγορίθμων

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

• Κάθε αλγόριθμος αποτελεί συνισταμένη τριών βασικών δομών, της δομής ακολουθίας, της δομής επιλογής και της δομής επανάληψης.

• Αυτές 3 βασικές δομές υλοποιούνται μέσω κάποιων πρωτογενών στοιχείων, όπως αυτά παρουσιάζονται στον παρακάτω πίνακα.

Page 15: Bασικές έννοιες αλγορίθμων

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

Page 16: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας

• Σε προηγούμενο βίντεο περιγράφηκε ο αλγόριθμος για την επίλυση του προβλήματος μετάβασης στο χώρο εργασίας. Ο αλγόριθμος αυτός στηρήχθηκε στη δομή της ακολουθίας, δηλαδή οι εντολές του ήταν τοποθετημένες και εκτελούνταν κατά τέτοια σειρά, ώστε ο αλγόριθμος να οδηγηθεί στο τέλος του, παράγοντας το επιθυμητό αποτέλεσμα.

Page 17: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας, παράδειγμα 1

• Άρα, η δομή ακολουθίας αφορά την ορθώς σειριακή εκτέλεση των εντολών του αλγορίθμου.

• Ας δούμε ένα απλούστερο παράδειγμα:– «Να διαβαστούν 2 αριθμοί, να υπολογιστεί και να

εκτυπωθεί το άθροισμά τους»

Page 18: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας, παράδειγμα 1

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

• Διάβασε a

• Διάβασε b

• c a + b

• Εκτύπωσε c

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

Page 19: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας, παράδειγμα 1

• Ο παραπάνω αλγόριθμος είναι γραμμένος σε μία υποθετική δομημένη ψευδογλώσσα, έτσι ώστε να μοιάζει με γλώσσα προγραμματισμού.

• Στην ψευδογλώσσα, οι αλγόριθμοι αρχίζουν και τελειώνουν πάντα με τις λέξεις Αλγόριθμος και Τέλος αντίστοιχα, συνοδευόμενες από το όνομα του αλγορίθμου.

Page 20: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας, παράδειγμα 1

• «Διάβασε...»: με τη χρήση του ρήματος διαβάζω σε προστακτική, συνοδευόμενου από μία ή περισσότερες μεταβλητές, επιτυγχάνεται η εισαγωγή των δεδομένων, δηλαδή η λήψη τιμών από τις μεταβλητές αυτές.

Page 21: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας, παράδειγμα 1

• «c a + b»: με αυτή την εντολή γίνεται ο υπολογισμός του αθροίσματος. Αυτή η εντολή καλείται εντολή εκχώρησης τιμής. Η γενική μορφή της είναι:

Μεταβλητή Έκφραση

Αυτό σημαίνει ότι εκτελούνται οι πράξεις στην «Έκφραση» και το αποτέλεσμα αυτών εκχωρείται στη «Μεταβλητή»

Page 22: Bασικές έννοιες αλγορίθμων

Δομή Ακολουθίας, παράδειγμα 1

• «Εκτύπωσε...»: Η εντολή αυτή αποδίδει το τελικό αποτέλεσμα σε μια συσκευή εξόδου ( οθόνη, εκτυπωτής κ.α. )

Page 23: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής

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

• Ο αλγόριθμος θα πρέπει να προσφέρει όλες τις δυνατές επιλογές – διαδρομές, ανάλογα με τις συνθήκες που διαμορφώνονται από τα δεδομένα, ώστε να καλυφθεί κάθε πιθανή περίπτωση μορφής ενός προβλήματος.

Page 24: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής

• Η Δομή Επιλογής αφορά τον έλεγχο κάποιας δίτιμης συνθήκης και ακολουθεί η φάση εκτέλεσης κάποιας ενέργειας, αναλόγως της τιμής της συνθήκης.

Page 25: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής, παράδειγμα 2

• «Να διαβαστεί ένας αριθμός και να εκτυπωθεί η απόλυτη τιμή του»– Γνωρίζουμε ότι η απόλυτη τιμή ενός αριθμού

είναι ο ίδιος ο αριθμός, αν είναι θετικός ή μηδέν. Ο αλγόριθμος όμως πρέπει να καλύψει και το ενδεχόμενο της απόλυτης τιμής αρνητικού αριθμού.

– Επομένως δεν αρκεί μια ανάγνωση του αριθμού και εκτύπωσή του, σύμφωνα με τη δομή ακολουθίας που έχουμε δει μέχρι τώρα.

Page 26: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής, παράδειγμα 2

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

• Διάβασε a

• Αν a < 0 τότε a a * ( -1 )

• Εκτύπωσε a

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

Page 27: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής, παράδειγμα 2Σε αυτό το παράδειγμα, αν η μεταβλητή a έχει λάβει θετική τιμή ή το μηδέν, τότε δεν ισχύει η συνθήκη μετά το «Αν», οπότε δεν εκτελείται η πράξη που ακολουθεί. Ο αλγόριθμος συνεχίζει με την εκτύπωση της τιμής του a.

Στην αντίθετη περίπτωση έχουμε a a * ( -1)

Δηλαδή εκχωρείται στo a μια νέα τιμή, που ισοδυναμεί με το γινόμενο της παλαιάς τιμής του a επί το -1. Δεδομένου ότι το a είναι αρνητικός, τότε πολλαπλασιάζοντάς το με το -1 έχουμε την απόλυτη τιμή του.

Page 28: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής, παράδειγμα 2

Page 29: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής

• «Αν “συνθήκη” τότε “εντολή”» :

Η εντολή που ακολουθεί τη συνθήκη εκτελείται μόνο εάν ισχύει η συνθήκη, αν είναι, όπως λέγεται, αληθής. Σε αντίθετη περίπτωση, η εντολή αυτή παραβλέπεται και ο αλγόριθμος συνεχίζει να εκτελείται από την αμέσως επόμενη εντολή.

Page 30: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής

• Στην εντολή «αν… τότε…» είναι πιθανό να απαιτείται η εκτέλεση περισσότερων από μία εντολές, όταν ισχύει η συνθήκη, και αντίστοιχα να αποφεύγεται η εκτέλεση περισσότερων της μιας εντολών, αν δεν ισχύει η συνθήκη.

• Σε αυτή την περίπτωση οι εντολές, στις οποίες επιθυμούμε την παραπάνω συμπεριφορά, «πακετάρονται» με τον παρακάτω τρόπο:

Page 31: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής

• Αν συνθήκη τότεεντολή_1

εντολή_2

….

εντολή_ν

Τέλος_αν

Page 32: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής

• Στη γενική της μορφή, η δομή επιλογής εκφράζεται ως εξής:

Αν συνθήκη τότε

εντολή ή εντολές

αλλιώς

εντολή ή εντολές

Τέλος_αν

Όπου με τη λέξη «αλλιώς» δίνεται η δυνατότητα εκτέλεσης εντολών και στην περίπτωση που η συνθήκη είναι ψευδής. Αυτή η δυνατότητα θα φανεί στο επόμενο παράδειγμα.

Page 33: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής, παράδειγμα 3• «Να διαβαστούν 2 αριθμοί. Αν ο 1ος είναι μικρότερος του 2ου ,

να υπολογιστεί και να εκτυπωθεί το άθροισμά τους, αλλιώς να υπολογιστεί και να εκτυπωθεί το γινόμενό τους.»

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

Διάβασε a, b

Αν a < b τότε

c a + b

αλλιώς

c a * b

Τέλος_αν

Εκτύπωσε c

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

Page 34: Bασικές έννοιες αλγορίθμων

Δομή Επιλογής, παράδειγμα 3

Page 35: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών

• Σε κάποιες περιπτώσεις καλούμαστε να επιλέξουμε μια διαδρομή ανάμεσα σε περισσότερες των 2.

• Οπότε η Δομή Επιλογής επεκτείνεται ώστε να προσφέρει πολλαπλές επιλογές, ανάλογα με την τιμή μιας μεταβλητής.

Page 36: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών, παράδειγμα 4

• Να διαβαστεί ένας ακέραιος και να εκτυπωθεί το αντίστοιχο γράμμα της αλφαβήτου, αν ο ακέραιος έχει την τιμή 1, 2 ή 3, διαφορετικά να τυπωθεί η λέξη «άγνωστος»

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

Διάβασε a

Aν a = 1 τότε

εκτύπωσε ‘Α’

αλλιώς_αν a = 2 τότε

εκτύπωσε ‘Β’

Page 37: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών, παράδειγμα 4

αλλιώς_αν a = 3 τότε

εκτύπωσε ‘Γ’

αλλιώς

εκτύπωσε ‘άγνωστος’

Τέλος_αν

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

Page 38: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών, παράδειγμα 4

Page 39: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών

• Αν οι διαφορετικές επιλογές είναι πολλές, τότε είναι προτιμότερο να χρησιμοποιηθεί το σχήμα πολλαπλής επιλογής «Επέλεξε… Τέλος επιλογών», όπως στο παράδειγμα που ακολουθεί:

Page 40: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών, παράδειγμα 5

• «Να εισαχθεί ένας ακέραιος που αντιστοιχεί σε μια ηλικία και να βρεθεί σε ποια όρια εντάσσεται η δεδομένη ηλικία εμφανίζοντας σχετικό μήνυμα.»

Page 41: Bασικές έννοιες αλγορίθμων

Διαδικασίες Πολλαπλών Επιλογών, παράδειγμα 5

Page 42: Bασικές έννοιες αλγορίθμων

Εμφωλευμένες Διαδικασίες

• Είναι οι διαδικασίες που αφορούν δομές επιλογής οι οποίες περιέχονται μέσα σε άλλες δομές επιλογής.

• «Να διαβάζονται 2 αριθμοί που αντιστοιχούν στο ύψος και το βάρος ενός άνδρα. Να εκτυπώνεται ότι ο άνδρας είναι “ελαφρύς”, αν το βάρος του είναι κάτω από 80 κιλά και “βαρύς” στην αντίθετη περίπτωση. Επίσης να εκτυπώνεται “κοντός” αν το ύψος του είναι κάτω από 1.70, αλλιώς να εκτυπώνεται “ψηλός”.»

Page 43: Bασικές έννοιες αλγορίθμων

Εμφωλευμένες Διαδικασίες, παράδειγμα 6

Page 44: Bασικές έννοιες αλγορίθμων

Εμφωλευμένες Διαδικασίες, παράδειγμα 6

Page 45: Bασικές έννοιες αλγορίθμων

Σύνθετες Συνθήκες Επιλογής

• Σε αρκετές περιπτώσεις η συνθήκη σε μία δομή επιλογής δεν είναι απλή.

• Δηλαδή δεν εξαρτάται μόνο από έναν παράγοντα, αλλά από περισσότερους.

Παραδείγματα:

«αν βρέχει ή αν χιονίζει, θα πάρω ομπρέλα»

«αν έχει ήλιο και αν έχει ζέστη θα πάρω καπέλο»

«αν δεν έχει ήλιο, θα πάρω ομπρέλα»

Page 46: Bασικές έννοιες αλγορίθμων

Σύνθετες Συνθήκες Επιλογής

• Οι παραπάνω προτάσεις περιγράφουν τις τρεις λογικές πράξεις που μπορεί να ισχύουν μεταξύ διαφορετικών συνθηκών

• Η λογική πράξη «ή» είναι αληθής όταν τουλάχιστον μία από τις 2 προτάσεις είναι αληθής.

• Η λογική πράξη «και» είναι αληθής όταν και οι 2 προτάσεις είναι αληθείς

• Η λογική πράξη «όχι» ( «δεν» στο παράδειγμα ) είναι αληθής όταν η πρόταση που ακολουθεί είναι ψευδής.

Page 47: Bασικές έννοιες αλγορίθμων

Σύνθετες Συνθήκες Επιλογής

• Ο παρακάτω πίνακας δίνει τις τιμές των τριών λογικών πράξεων για όλους τους συνδυασμούς τιμών.

Page 48: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης

• Πολλές φορές χρειάζεται να εκτελεστεί μια εντολή ή μια δέσμη εντολών κατ επανάληψη

• Για παράδειγμα, όλες οι τράπεζες κάθε εξάμηνο αποδίδουν τόκους των καταθέσεων ταμιευτηρίου. Οπότε για όλους τους λογαριασμούς της τράπεζας θα πρέπει να εκτελεστεί η πράξη

τόκος = ποσό *επιτόκιο

Page 49: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης

• Οι επαναληπτικές διαδικασίες μπορεί να έχουν διάφορες μορφές και συνήθως εμπεριέχουν και συνθήκες επιλογών ( όπως αυτές παρουσιάστηκαν προηγουμένως )

Page 50: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 7

• «Να γραφτεί αλγόριθμος που να εμφανίζει τους αριθμούς από το 1 έως το 100»

• Ο συγκεκριμένος αλγόριθμος μπορεί να επιλυθεί με διαδοχικές εντολές εκτύπωσης ( εκτύπωσε 1, εκτύπωσε 2, κ.ο.κ. ) κάτι τέτοιο όμως είναι κουραστικό και για μεγαλύτερες τάξεις μεγέθους αριθμών, σχεδόν αδύνατο.

Page 51: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 7

• Για την επίλυση του συγκεκριμένου προβλήματος λοιπόν, θα εκμεταλευτούμε τη δομή της επανάληψης, η οποία είναι η εξής:

Όσο συνθήκη επανέλαβε

εντολές

Τέλος_επανάληψης

Page 52: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 7

• Πρακτικά σημαίνει ότι όσο ισχύει η συνθήκη της 1ης γραμμής, εκτελούνται οι εντολές που περιέχονται στον βρόχο επανάληψης ( οι εντολές μεταξύ της γραμμής αρχής της επανάληψης και της γραμμής τέλους επανάληψης ).

• Όταν σταματήσει να ισχύει η συνθήκη, ο αλγόριθμος συνεχίζεται με τις εντολές κάτω από τη γραμμή τέλους επανάληψης.

Page 53: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 7• Εμείς θέλουμε να σταματήσει να ισχύει η συνθήκη όταν

τυπωθεί και ο αριθμός 100 αρχής γενομένης από τον αριθμό 1

• Οπότε

1. Αρχικοποιούμε μια μεταβλητή,έστω i, με την τιμή 1

2. Ελέγχουμε αν η i έχει ξεπεράσει την τιμή 100

3. Τυπώνουμε την i

4. Αυξάνουμε την i κατά μια μονάδα

5. Επαναλαμβάνουμε τα βήματα 2 έως 4. Αν η i ξεπεράσει το 100, ο βρόχος τερματίζεται.

Page 54: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 7

Page 55: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 8

• «Να γραφτεί αλγόριθμος που να διαβάζει ένα άγνωστο πλήθος αριθμών και να εμφανίζει τον κάθε αριθμό.»

• «...άγνωστο πλήθος αριθμών...»: Αυτή η φράση μας οδηγεί στη σκέψη ότι ο αλγόριθμος θα εκτελείται επ άπειρον, άρα παραβιάζεται το κριτήριο της περατότητας του αλγορίθμου.

• Πράγματι, με μία πρώτη κατασκευή του αντίστοιχου αλγορίθμου με βήματα, έχουμε:

Page 56: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 8

• Βήμα 1: Διάβασε έναν αριθμό

• Βήμα 2: Τύπωσε τον αριθμό

• Βήμα 3: Επανέλαβε τη διαδικασία από το βήμα 1

Η παραπάνω διαδικασία δεν αποτελεί αλγόριθμο. Αυτός ο βρόχος επανάληψης δε διαθέτει κάποια συνθήκη τερματισμού και θα εκτελείται επ άπειρον ( ατέρμων βρόχος ), οπότε παραβιάζει το κριτήριο της περατότητας των αλγορίθμων.

Page 57: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 8

• Με μια μικρή διόρθωση στο βήμα 3, αποκτάει συνθήκη τερματισμού, γίνεται αλγόριθμος και επιλύει το πρόβλημα

• Βήμα 3: Αν υπάρχουν άλλοι αριθμοί, επανέλαβε τη διαδικασία από το βήμα 1, αλλιώς τερμάτισε το βρόχο.

Με αυτή την προσθήκη ο αλγόριθμος καλεί το χρήστη να δώσει είτε έναν επόμενο αριθμό είτε τη προσυμφωνημένη συνθήκη τερματισμού του βρόχου.

Page 58: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 8

• Η συνθήκη τερματισμού του βρόχου δίνεται ως γνωστόν στην 1η γραμμή του. Οπότε ένας αλγόριθμος επίλυσης του προβλήματος αυτού μπορεί να είναι ο εξής:

Page 59: Bασικές έννοιες αλγορίθμων

Δομή Επανάληψης, παράδειγμα 8

• «όσο x > 0 επανέλαβε»:

Με αυτή τη συνθήκη ο βρόχος τερματίζεται στην περίπτωση που ο χρήστης εισάγει αρνητικό αριθμό ή το μηδέν.

Page 60: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης

• Υπάρχουν άλλες 2 εναλλακτικές μορφές της δομής επανάληψης, οι εξής:

• Αρχή_ επανάληψης

εντολές

Μέχρις_ότου συνθήκη

• Για μεταβλητή από τιμή_1 έως τιμή_2

εντολές

Τέλος_επανάληψης

Page 61: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης

• Όπως φαίνεται από την πρώτη μορφή, αυτή θα εκτελεστεί τουλάχιστον μία φορά, αφού η εντολή ελέγχου της συνθήκης έπεται των εντολών της επανάληψης.

• Στο προηγούμενο παράδειγμα, όπου ο έλεγχος της συνθήκης προηγείται, υπάρχει το ενδεχόμενο να μην εκτελεστεί ο βρόχος επανάληψης, εάν ο χρήστης δώσει μη θετική αρχική τιμή.

Page 62: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης, παράδειγμα 9

Page 63: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης

• Η μορφή «για... από ... μέχρι ...» χρησιμοποιείται όταν ο αριθμός των φορών που θα εκτελεστεί μια επανάληψη είναι γνωστός εκ των προτέρων.

• Η εντολή αυτή συγκεντρώνει όλα τα απαιτούμενα στοιχεία για την επανάληψη.– Την αρχική τιμή της μεταβλητής

– Την τελική τιμή της

– Το βήμα μεταβολής της μεταβλητής. Σε περίπτωση που δεν αναφέρεται, εννοείται το 1. Σε αντίθετη περίπτωση η εντολή γράφεται :

Για μεταβλητή από τιμή_1 έως τιμή_2 με βήμα τιμή_3

Page 64: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης, παράδειγμα 10

• «Να βρεθεί και να εκτυπωθεί το άθροισμα των 100 ακεραίων από το 1 έως το 100»

Page 65: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης, παράδειγμα 10

Page 66: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης, παράδειγμα 11

• «Να γραφτεί και να εκτυπωθεί το άθροισμα των άρτιων αριθμών από το 1 μέχρι το 100»

• Το πρόβλημα αυτό επιδέχεται παρόμοια λύση με το προηγούμενο, με τη διαφορά ότι εδώ θα πρέπει να αλλάξουμε

– την αρχική τιμή της μεταβλητής από 1 σε 2

– το βήμα μεταβολής από 1 σε 2

ώστε να συμπεριλάβουμε μόνο τους άρτιους στο άθροισμα.

Page 67: Bασικές έννοιες αλγορίθμων

Εναλλακτικές Μορφές Δομής Επανάληψης, παράδειγμα 11

Page 68: Bασικές έννοιες αλγορίθμων

Στοιχεία Ψευδογλώσσας

Page 69: Bασικές έννοιες αλγορίθμων

Στοιχεία Ψευδογλώσσας

Page 70: Bασικές έννοιες αλγορίθμων

Στοιχεία Ψευδογλώσσας

Page 71: Bασικές έννοιες αλγορίθμων

Στοιχεία Ψευδογλώσσας

Page 72: Bασικές έννοιες αλγορίθμων

ΒΙΒΛΙΟΓΡΑΦΙΑ

• Βάκαλη Αθηνά, Γιαννόπουλος Ηλίας, Ιωαννίδης Νέστωρ, Κοίλιας Χρήστος, Μάλαμας Κων/νος, Μανωλόπουλος Ιωάννης, Πολίτης Παναγιώτης ( 2000 ):«Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον» ( 2η έκδοση ), εκδοτικός οργανισμός Λιβάνη