Κεφάλαιο 2 Βασ ικέςέννοιες αλγορίθμων Στοκεφάλαιοαυτόθακάνουμεμιαεισ αγωγήσ τουςαλγόριθμουςκαιθαπαρουσ ιάσ ουμεδιαφορετικούςτρόπουςμετουςοποίουςμπορούμενααναπαρασ τήσ ουμε αλγόριθμουςόπως:ελεύθερηγλώσ σ α,ψευδοκώδικα,διαγράμματαροήςκτλ. 2.1 Βασ ικέςέννοιες 2.1.1 Ορισ μοί Οτανθέλουμεναεπιλύσ ουμεέναπρόβλημαμπορούμενατοκάνουμεμεδύοτρόπους: είτεμετοναδόμητοτρόποείτεμετονδομημένο. Στοναδόμητοτρόπο καταφεύγουμεότανηεπίλυσ ηενόςπροβλήματοςείναισ χετικάαπλήκαιδεναπαιτείπολλάβήματαγιαναγίνει. Ωσ τόσ οότανηκατάσ τασ ηδυσ κολεύει(όπωςπχ σ τηνεύρεσ ηπρώτωναριθμών),τότεκαταφεύγουμεσ τονδομημένοτρόποκαιτην χρήσ ηαλγορίθμων. Ορισ μός: Αλγόριθμοςείναιμιαπεπερασ μένησ ειράβημάτων,αυσ τηράκαθορισ μένωνκαιεκτελέσ ιμωνσ επεπερασ μένοχρόνο,πουέχουνσ ανσ τόχοτουςτην επίλυσ ηενόςπροβλήματος. Κάθε αλγόριθμος πρέπει να ικανοποιεί τα ακόλουθα κριτήρια: 1.Είσ οδος. Οαλγόριθμοςπρέπειναδιαθέτειμιασ ειράαπόγνωσ τάσ τοιχείαταοποίαθααποκαλούμεείσ οδοςτουαλγορίθμου.στοπαράδειγματης απόφασ ηςγιαπρώτουςαριθμούςείσ οδοςθεωρείταιοακέραιοςαριθμόςν. 2. Εξοδος.Οαλγόριθμοςγιαναέχεινόημασ ανδιαδικασ ίαπρέπειναβγάζει κάποιοαποτέλεσ μαμεκάποιαμορφή,πχνατοεμφανίζεισ τηνοθόνηήσ ε κάποιοαρχείο.αυτότοαποτέλεσ μαθεωρείταιέξοδοςτουαλγορίθμου.στο παράδειγμαμετονπρώτοαριθμόέξοδοςθαείναιέναναιήοχι,γιατοαν ο αριθμός μπορεί να θεωρηθεί πρώτος. 7
ΚΕΦ ΑΛΑΙΟ2. ΒΑΣ ΙΚ Ε ΕΝΝΟΙΕ ΑΛΓΟΡ ΙΘΜΩΝ 8 3.Καθορισ τικότητα. Ταβήματατουαλγορίθμουθαπρέπειναορίζονται σ εκάθεπερίπτωσ η. Γιαπαράδειγμαανχρειασ τείσ εκάποιοβήμαναγίνει κάποιαδιαίρεσ ηοαλγόριθμοςθαπρέπειναλαμβάνειυπόψητουκαιτην περίπτωσ ηπουγίνεταιδιαίρεσ ημετο0. 4.Περατότητα. Οαλγόριθμοςθαπρέπεινατελειώνειμετάτηνεκτέλεσ η τωνβημάτωντουκαιναμηνοδηγείταισ εαορισ τίαήατέρμονεςβρόγχους. 5.Αποτελεσ ματικότητα.κάθεεντολήτουαλγόριθμουθαπρέπειναείναι κατάτοδυνατόναπλούσ τερηκαιναμηνχρειάζεταιπεραιτέρωανάλυσ ηγια ναεκτελεσ τεί. 2.1.2 Μεταβλητές Είναιοντότητεςτωναλγορίθμωνπουαπαιτούνχώροσ τηνμνήμηκαιδιαθέτουντις ακόλουθεςβασ ικέςιδιότητες: 1. Ονομα. Είναιέναόνομαμετοοποίοαναφερόμασ τεσ τηνθέσ ημνήμης, χωρίςναγνωρίζουμετηνσ υγκεκριμένηδιεύθυνσ η. 2. Τύπο. Κάθε μεταβλητή μπορεί να λαμβάνει τιμές διαφόρων ειδών, όπως ακέραιους αριθμούς, δεκαδικούς, λογικές τιμές κτλ. Για αυτό τον λόγο είναι μέλος μια μεγαλύτερης ομάδας μεταβλητών που ονομάζεται τύπος. 3.Τιμή. Είναιτοπεριεχόμενοτηςθέσ ηςμνήμηςόπουκαιβρίσ κεταιημεταβλητή. 2.1.3 Ανάγνωσ η Ανσ εέναναλγόριθμοδεναλλάζουνοιτιμέςτωνμεταβλητώντότετιςονομάζουμε σ ταθερές.οισ ταθερέςμπορούνναείναιείναιχρήσ ιμεςσ εδιάφορεςπεριπτώσ εις, όπωςγιαπαράδειγμαοσ υντελεσ τήςφπα,τοπλήθοςτωνμαθημάτωνανάεξάμηνο φοίτησ ηςκτλ.στιςπερισ σ ότερεςτωνπεριπτώσ εωνόμωςθαπρέπειαυτέςοιτιμές νααλλάζουν,προκειμένουοαλγόριθμοςναμπορείνακαλύψειόσ οτοδυνατόν περισ σ ότερεςπεριπτώσ εις. Γιαπαράδειγμαανέχουμεέναπρόγραμματοοποίο εμφανίζειτονμέσ οόροτηςβαθμολογίαςενόςμαθητή,αυτότοπρόγραμμαθα πρέπειναδιαβάζειτιςαντίσ τοιχεςβαθμολογίεςπροκειμένουνναπροσ αρμοσ τεί σ τονεκάσ τοτεμαθητή. Επομένωςαυτόπουαπαιτείταιείναιναεκτελούμεκάθε φοράτηνπράξητηςανάγνωσ ηςπροκειμένουναγίνειτοπρόγραμμαπιοχρήσ ιμο. 2.1.4 Εμφάνισ η Γιαναμπορέσ ουμενααντιληφθούμετηναπόδοσ ηενόςαλγορίθμουχρειάζεταινα εμφανίζουμεσ τονχρήσ τητοαποτέλεσ ματωνεκφράσ εωνπουυπολογίζουμεμέσ α σ τοναλγόριθμο. Αυτόπραγματοποιείταιμετηνχρήσ ητωνεντολώνεμφάνισ ης. Αυτέςοιεντολέςμπορούνείτεναεμφανίζουντοαποτέλεσ μασ τηνκαθιερωμένη έξοδο(οθόνη)είτεσ εκάποιοαρχείοσ τονσ κληρόδίσ κοτουυπολογισ τή.
ΚΕΦ ΑΛΑΙΟ2. ΒΑΣ ΙΚ Ε ΕΝΝΟΙΕ ΑΛΓΟΡ ΙΘΜΩΝ 9 2.2 Παρουσ ίασ ηαλγορίθμων Γιαναμπορέσ ουμεναεμφανίσ ουμεοπτικάέναναλγόριθμομπορούμενακαταφύγουμεσ εδιάφοραεργαλεία,όπωςαυτάείναι:ηελεύθερηγλώσ σ α,οψευδοκώδικας και τα διαγράμματα ροής. 2.2.1 Ελεύθερηγλώσ σ α Είναιοσ υνήθηςτρόποςμετονοποίοπαρουσ ιάζονταιταπροβλήματασ εβιβλία προγραμματισ μού. Ωσ τόσ οαυτόςοτρόποςεμπεριέχειτονκίνδυνοτηςασ άφειας καιτουαποπροσ ανατολισ μούτουπρογραμματισ τή.χρησ ιμοποιείταισ υνήθωςσ αν οπρώτοςτρόποςναπαρουσ ιάσ εικάποιοςέναπρόβλημακαισ τηνσ υνέχειαχρησ ιμοποιείταικάποιαάλλητεχνική,όπωςδιάγραμμαροήςήψευδοκώδικαςγιατην καλύτερηαναπαράσ τασ ητουπροβλήματος.γιαπαράδειγμαέσ τωτοεξήςπρόβλημα: να γραφεί αλγόριθμος ο οποίος θα διαβάζει αριθμούς από το πληκτρολόγιο μέχρι ναλάβειαρνητικόαριθμόκαισ τοτέλοςθαεμφανίζειτοάθροισ ματωναριιθμών πουδιάβασ ε.σεελεύθερηγλώσ σ αθαγράφαμε:θέσ εσσ ε0,διάβασ ενκαιανο αριθμόςείναιαρνητικόςσ ταμάτα,αλλιώς:πρόσ θεσ ετοννσ τοσκαιδιάβασ ετον επόμενονμέχριαυτόςναγίνειαρνητικός.στοτέλοςοαλγόριθμοςθαεμφανίσ ει τονσ. 2.2.2 Διαγράμματα ροής Είναιέναςδιαγραμματικόςτρόποςπαρουσ ίασ ηςτουαλγορίθμου,όπουδιάφορα μπλοκςσ υνδέονταιμεταξύτουςμεβέληπουδείχνουντηνπορείαεκτέλεσ ηςτου αλγορίθμου.τασ ημαντικότερασ τοιχείατωνδιαγραμμάτωνροήςπαρουσ ιάζονται σ τοσ χήμα2.1. Τοσ ύμβολοτηςαρχησμπαίνεισ τηνεκκίνησ ηενόςδιαγράμματοςροήςκαιτοσ ύμβολοτουτελουσφυσ ικάόταντελειώνειοαλγόριθμος. Κάθεάλλοσ ύμβολοθαμπειανάμεσ ακαιόλατασ ύμβολασ υνδέονταιμεταξύτους μεβέλητωνοποίωνοιακμέςδείχνουντηνπορείαεκτέλεσ ηςτουαλγορίθμου.το σ χήμαεισοδοσ/εξοδοσχρησ ιμοποιείταιγιατηνείσ οδοήγιατηνεμφάνισ η μεταβλητής. Ενα ολοκληρωμένο παράδειγμα είναι αυτό του προβλήματος της ά- θροισ ηςαριθμώνπουείδαμεσ τηνπροηγούμενηυποενόητα. Τοπαράδειγμααυτό παρουσ ιάζεταισ τοσ χήμα2.2. 2.2.3 Ψευδοκώδικας Οτελευταίοςτρόποςεμφάνισ ηςαλγορίθμωνκαιαπότουςπιοκοινάχρησ ιμοποιούμενουςείναιοψευδοκώδικας. Είναιπιοκοντάσ εμιατυπικήγλώσ σ απρογραμματισ μούαπόάλλουςτρόπουςαναπαράσ τασ ης,καθώςδιαθέτει: απλέςεντολές, επιλογείς,ανακυκλώσ εις,σ υναρτήσ ειςκτλ. 2.2.3.1 Απλές πράξεις Εναςαλγόριθμοςμετηνχρήσ ηψευδοκώδικαοριοθετείταιπάντασ τομπλοκ Αλγόριθμος ΟΝΟΜΑ
ΚΕΦ ΑΛΑΙΟ2. ΒΑΣ ΙΚ Ε ΕΝΝΟΙΕ ΑΛΓΟΡ ΙΘΜΩΝ 10 Σχήμα2.1:Τασ ημαντικοτερασ υμβολατωνδιαγραμματωνροης Αλγόριθμος2.1Υπολογισ μόςαθροίσ ματος ΑλγόριθμοςΆθροισ μα Διάβασ εχ Διάβασ ευ Ζ Χ+Υ Τύπωσ εζ ΤέλοςΆθροισ μα Τέλος ΟΝΟΜΑ Οπου ΟΝΟΜΑ ένα όνομα για τον αλγόριθμο της επιλογής μας, πχ ΜΙΣΘΟΔΟ- ΣΙΑ.Γιαναδιαβάσ ουμεμεταβλητέςπροφανώςυπάρχειηεντολή Δίαβασ εονομαμεταβλητησ καιανθέλουμεναεμφανίσ ουμεμιαμεταβλητήυπάρχειτοαντίσ τοιχο Τύπωσ εονομαμεταβλητησ Ενααπλόπαράδειγμαμετηνχρήσ ηψευδοκώδικαπαρουσ ιάζεταισ τοναλγόριθμο 2.1. 2.2.3.2 Επιλογή Μετηνχρήσ ητηςεπιλογήςμπορούμεναελέγξουμετηντιμήμιαςσ υνθήκηςκαι ανάλογαμετηνισ χήτηςσ υνθήκηςναεκτελεσ τούνμιασ ειράαπόεντολές. Το γενικόσ χήματηςεντολήςπαρουσ ιαονταισ τοναλγόριθμο2.2.σεαυτότοσ χήμα ανησ υνθήκησ τοανισ χύει,τότεεκτελείταιτομπλοκεντολώνεντολές-1,διαφορετικάεκτελείταιτομπλοκεντολώνεντολές-2. Εναπαράδειγμαχρήσ ηςτης επιλογήςέχουμεσ τοναλγόριθμο2.3,όπουδεδομένηςμιαςηλικίαςενόςατόμου αποφασ ίζουμεανείναιενήλικοςήανήλικος. 2.2.3.3 Δομέςανακύκλωσ ης Μετονόροανακύκλωσ ηεννοούμετηνεπαναληπτικήεκτέλεσ ηεντολώνόσ οισ χύει ήμέχριναισ χύσ ειμιασ υνθήκη.ηπρώτηδομήεπανάληψηςπουθαπαρουσ ιάσ ουμ
ΚΕΦ ΑΛΑΙΟ2. ΒΑΣ ΙΚ Ε ΕΝΝΟΙΕ ΑΛΓΟΡ ΙΘΜΩΝ 11 Σχήμα2.2:Τοπρόγραμμαάθροισ ηςαριθμώνμεδιάγραμμαροής. Αλγόριθμος2.2Τογενικόσ χήματηςεπιλογής Ανσ υνθήκητότε Εντολές-1 Αλλιώς Εντολές-2 Τέλος Αν
ΚΕΦ ΑΛΑΙΟ2. ΒΑΣ ΙΚ Ε ΕΝΝΟΙΕ ΑΛΓΟΡ ΙΘΜΩΝ 12 Αλγόριθμος2.3Πρόγραμμαγιατηναπόφασ ηενηλικίωσ ης ΑλγόριθμοςΕνηλικίωσ η Διάβασ εηλικία Αν Ηλικία>=18 Τότε Τύπωσ ε Είσ αιενήλικος Αλλιώς Τύπωσ ε Είσ αιανήλικος Τέλος Αν ΤέλοςΕνηλικίωσ η Αλγόριθμος2.4Τογενικόσ χήματηςεντολήςοσο Οσ οσ υνθήκηεπανέλαβε Εντολές είναιηδομή Οσ οπουεμφανίζεταισ τοναλγόριθμο2.4.σεαυτότοσ χήμαόσ οη σ υνθήκηείναιαληθήςεκτελούνταιοιεντολές. Προφανώςκαιπρέπειναυπάρχει κάποιοςτρόποςνααλλάζειησ υνθήκηπροκειμένουηανακύκλωσ ηναμηνεκτελείταιγιαπάντα(ατέρμωναςβρόγχος). Εναπαράδειγματηςχρήσ εωςαυτούτου σ χήματοςέχουμεσ τοναλγόριθμο2.5όπουπαρουσ ιάζεταιτοπρόβληματηςάθροισ ηςαριθμώναυτήτηνφοράμετηνχρήσ ητηςψευδογλώσ σ ας. Μιαδεύτερη μορφήανακύκλωσ ηςπαρουσ ιάζεταισ τοναλγόριθμο2.6όπουοιεντολέςεπαναλαμβάνονταιμέχριναισ χύσ ειμιασ υνθήκη.τοτελευταίοσ χήμαεπανάληψηςπου θαεξετάσ ουμεείναιαυτότηςεντολήςγιαόπουοιεντολέςπραγματοποιούνταιγια ένασ υγκεκριμένοαριθμόφορώνπουκαθορίζεταιαπόένανμετρητή. Τογενικό σ χήματηςεντολήςγιαπαρουσ ιάζεταισ τοναλγόριθμο2.7. Εναπαράδειγμαχρήσ ηςτηςεντολήςγιαέχουμεσ τοναλγόριθμο2.8όπουμετηνχρήσ ητηςεντολής αθροίζουμεόλουςτουςαριθμούςαπότο10μέχρικαιτο20. Αλγόριθμος2.5Άθροισ ηαριθμώνμετηνχρήσ ηψευδογλώσ σ ας ΑλγόριθμοςΆθροισ η Διάβασ εχ Σ 0 Οσ οχ>0επανέλαβε Σ Σ+Χ Διάβασ εχ Εμφάνισ εσ ΤέλοςΆθροισ η
ΚΕΦ ΑΛΑΙΟ2. ΒΑΣ ΙΚ Ε ΕΝΝΟΙΕ ΑΛΓΟΡ ΙΘΜΩΝ 13 Αλγόριθμος2.6Γενικόσ χήματηςεντολήςμέχρι Επανέλαβε Εντολές Μέχρις Οτου Συνθήκη Αλγόριθμος2.7Τογενικόσ χήματηςεντολήςγια ΓΙΑ μετρητής από ΤΙΜΗ1 μέχρι ΤΙΜΗ2 Εντολές 2.3 Ασ κήσ εις 1.Παρουσ ιάσ τεσ τηντάξημιασ ειράαπόπροβλήματακαιδώσ τετιςεισ όδους και εξόδους που διαθέτει ο καθένας από αυτούς. 2.Παρουσ ιάσ τεσ τηντάξημιασ ειράαπόπροβλήμαόπουαπαιτείταιηχρήσ η σ ταθερών. 3.Παρουσ ιάσ τεσ τηντάξηέναπρόβληματηςαρεσ κείαςσ αςμετηνχρήσ ηδιαγράμματος ροής. 4.Παρουσ ιάσ τεσ τηντάξητοπροηγούμενοπρόβλημαμετηνχρήσ ηψευδογλώσ σ ας. Αλγόριθμος2.8Άθροισ ηαριθμώναπότο10μέχρικαιτο20μετηνεντολή ΓΙΑ Αλγόριθμος ΑΘΡΟΙΣΗ ÙÑ 0 Γιαιαπό10μέχρι20 ÙÑ ÙÑ+ι Εμφάνισ ε ÙÑ Τέλος ΑΘΡΟΙΣΗ