ΚΕΦΑΛΑΙΟ 2 2.1 Τι είναι αλγόριθμος Αλγόριθμοι υπάρχουν εδώ και πολλά χρόνια π.χ. ο αλγόριθμος του Ευκλείδη για την εύρεση Μ.Κ.Δ. Η λέξη προέρχεται από τον Πέρση μαθηματικό al Khowarizmi Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Κάθε αλγόριθμος απαραίτητα ικανοποιεί τα παρακάτω κριτήρια: Είσοδος. Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι σε έναν αλγόριθμο Έξοδος. Κάθε αλγόριθμος δημιουργεί μία τιμή δεδομένων ως αποτέλεσμα προς τον χρήστη ή άλλον αλγόριθμο. Καθοριστικότητα. Κάθε εντολή πρέπει να καθορίζεται χωρίς αμφιβολία ως προς τον τρόπο εκτέλεσής της. Περατότητα. Ο αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Αποτελεσματικότητα. Κάθε εντολή πρέπει να είναι αρκετά απλή ώστε να μπορεί να εκτελεστεί. Οι αλγόριθμοι δεν χρησιμοποιούνται μόνο για την επίλυση προβλημάτων της Πληροφορικής
ΚΕΦΑΛΑΙΟ 2 2.2 Σπουδαιότητα αλγορίθμων Η έννοια των αλγορίθμων είναι θεμελιώδης για την Πληροφορική Η Πληροφορική μπορεί να ορισθεί ως η επιστήμη που μελετά τους αλγορίθμούς από τις ακόλουθες σκοπιές: Υλικού. Η ταχύτητα εκτέλεσης ενός αλγορίθμου επηρεάζεται από την τεχνολογία υλικού Γλωσσών Προγραμματισμού. Το είδος της γλώσσας προγραμματισμού αλλάζει το είδος και τον αριθμό των εντολών του αλγορίθμου. Γλώσσες χαμηλότερου επιπέδου ( assembly, C ) είναι πιο γρήγορες από γλώσσες υψηλού επιπέδου. Θεωρητική. Ερευνά κατά πόσο ή όχι υπάρχει αποδοτικός αλγόριθμος για την επίλυση ενός προβλήματος Αναλυτική. Μελετώνται οι υπολογιστικοί πόροι ( μέγεθος κύριας και δευτερεύουσας μνήμης, χρόνος λειτουργίας CPU, λειτουργίες εισόδου/εξόδου ) που απαιτεί ένας αλγόριθμος
ΚΕΦΑΛΑΙΟ 2 2.3 Περιγραφή και αναπαράσταση αλγορίθμων Ένας αλγόριθμος μπορεί να αναπαρασταθεί με έναν από τους παρακάτω τρόπους. Ελεύθερο κείμενο. Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο. Υπάρχει κίνδυνος να παραβιαστεί η αποτελεσματικότητα του αλγορίθμου Διαγραμματικές τεχνικές. Είναι ένας γραφικός τρόπος παρουσίασης του αλγορίθμου. Ένας τέτοιος τρόπος είναι και τα διαγράμματα ροής, τα οποία χρησιμοποιούν γεωμετρικά σχήματα για να δηλώσουν συγκεκριμένες ενέργειες ή λειτουργίες. Τα σημαντικότερα είναι τα εξής: Έλλειψη. Δηλώνει την αρχή και το τέλος του αλγορίθμου Ρόμβος. Δηλώνει μια ερώτηση με δύο ή περισσότερες εξόδους για απάντηση Ορθογώνιο. Δηλώνει την εκτέλεση πράξεων Πλάγιο παραλληλόγραμμο. Δηλώνει είσοδο ή έξοδο Εκτέλεση πράξεων Αρχή Συνθήκη Είσοδος Έξοδος Τέλος Φυσική γλώσσα κατά βήματα. Υπάρχει κίνδυνος να παραβιαστεί το κριτήριο του καθορισμού ενός αλγόριθμο Κωδικοποίηση. Είναι ένα πρόγραμμα γραμμένο σε ψευδογλώσσα ή κάποια άλλη γλώσσα προγραμματισμού
ΚΕΦΑΛΑΙΟ 2 c a + b 2.4.1 Δομή ακολουθίας Είναι μια σειρά βημάτων – εντολών που πρέπει να εκτελεστούν με τη σειρά για να λυθεί ένα πρόβλημα. Χρησιμοποιείται πρακτικά για την αντιμετώπιση απλών προβλημάτων. Παράδειγμα 1 Να διαβαστούν δύο αριθμοί, να υπολογιστεί και να εκτυπωθεί το άθροισμά τους Αλγόριθμος Παράδειγμα_1 Αρχή Δηλωτικές εντολές Εκτελεστέες εντολές Μεταβλητές. Αριθμητικές, λογικές, αλφαριθμητικές Σταθερές. Αριθμητικές(123), αλφαριθμητικές(“Γιώργος”), λογικές( Αληθής,Ψευδής ) Διάβασε a Διάβασε a, b Διάβασε b Εντολή εκχώρησης τιμής Μεταβλητή Έκφραση Τελεστές. Αριθμητικοί(+), λογικοί( και ), συγκριτικοί( > ) Τελεστέοι. Σταθερές, μεταβλητές c a + b c a + b Εναλλακτικά Εμφάνισε c Εκτύπωσε c Εκτύπωσε c Τέλος Παράδειγμα_1 Τέλος
ΚΕΦΑΛΑΙΟ 2 2.4.2 Δομή επιλογής Γίνεται έλεγχος μιας συνθήκης και ανάλογα με την τιμή της ( αληθής ή ψευδής ) εκτελείται ή όχι ένα σύνολο εντολών Παράδειγμα 2 Να διαβαστεί ένας αριθμός και να εκτυπωθεί η απόλυτη τιμή του Αλγόριθμος Παράδειγμα_2 Διάβασε α Αν α < 0 τότε α α * (-1) Εκτύπωσε α Τέλος Παράδειγμα_2 Η επιλογή στην ψευδογλώσσα υλοποιείται με την εντολή : Αν συνθήκη τότε εντολή Αν συνθήκη τότε εντολή 1 εντολή 2 ……….. εντολή ν Τέλος_αν Εκτελείται ΜΟΝΟ όταν η συνθήκη ( α < 0 ) είναι αληθής Το * είναι πολλαπλασιασμός
ΚΕΦΑΛΑΙΟ 2 2.4.2 Δομή επιλογής Παράδειγμα 3 Να διαβαστούν δύο αριθμοί και σε περίπτωση που ο πρώτος αριθμός είναι μικρότερος του δεύτερου, να υπολογιστεί και να εκτυπωθεί το άθροισμά τους, διαφορετικά να υπολογιστεί και να εκτυπωθεί το γινόμενό τους. Αλγόριθμος Παράδειγμα_3 Διάβασε a, b Αν a < b τότε c a + b αλλιώς c a * b Τέλος_αν Εκτύπωσε c Τέλος Παράδειγμα_3 Γενική μορφή της εντολής επιλογής: Αν συνθήκη τότε εντολή ή εντολές αλλιώς Τέλος_αν Εκτελείται αν η συνθήκη ( a < b ) είναι αληθής Εκτελείται αν η συνθήκη ( a < b ) είναι ψευδής
ΚΕΦΑΛΑΙΟ 2 Επιπλέον παραδείγματα Παράδειγμα 5 Να γραφεί αλγόριθμος που να μετατρέπει βαθμούς Φαρενάιτ σε βαθμούς Κελσίου Αλγόριθμος Μετατροπή_σε_Κελσίου Διάβασε farenheit Celsius ( farenheit – 32 ) * 5 / 9 Εκτύπωσε Celsius Τέλος Μετατροπή_σε_Κελσίου Παράδειγμα 6 Δεδομένου της ακτίνας ενός κύκλου, θέλουμε να υπολογίσουμε το εμβαδόν του κύκλου, το εμβαδόν του τετραγώνου που είναι περιγεγραμμένο στο δεδομένο κύκλο και το μήκος της διαγωνίου του τετραγώνου αυτού. Αλγόριθμος Εμβαδά Διάβασε aktina embadon 3.14 * aktina * aktina plevra 2 * aktina tetragvno plevra * plevra diagvnios Ρίζα( 2 * tetragvno ) Εκτύπωσε embadon, tetragvno, diagvnios Τέλος Εμβαδά Καλεί τον αλγόριθμο Ρίζα που υπολογίζει την τετραγωνική ρίζα ενός αριθμού
ΚΕΦΑΛΑΙΟ 2 Επιπλέον παραδείγματα Παράδειγμα 4 Δίνονται οι αριθμοί α, β, γ, δ. Να βρεθεί η τιμή της παράστασης α( β + γ )/δ Ένας αλγόριθμος πρέπει να εκτελείται πάντα. Τι γίνεται με την περίπτωση που δ = 0; Αλγόριθμος Παράδειγμα_4α Δεδομένα // α, β, γ, δ // χ α * ( β + γ ) Αν δ ≠ 0 τότε y χ / δ Αποτελέσματα // y // Τέλος Παράδειγμα_4 Εναλλακτικός τρόπος δήλωσης των δεδομένων ( αντί για εντολές Διάβασε ) Εναλλακτικός τρόπος δήλωσης αποτελεσμάτων ( αντί για την εντολή Εκτύπωσε ) Ποιο είναι όμως το αποτέλεσμα όταν δ = 0; Αλγόριθμος Παράδειγμα_4β Δεδομένα // α, β, γ, δ // χ α * ( β + γ ) Αν δ ≠ 0 τότε y χ / δ αλλιώς Εκτύπωσε "Aδύνατο“ Τέλος_αν Αποτελέσματα // y // Τέλος Παράδειγμα_4 Αλγόριθμος Παράδειγμα_4γ Δεδομένα // α, β, γ, δ // flag Αληθής χ α * ( β + γ ) Αν δ ≠ 0 τότε y χ / δ αλλιώς flag Ψευδής Τέλος_αν Αποτελέσματα // y, flag // Τέλος Παράδειγμα_4 Καλύτερος τρόπος γιατί δεν έχει εντολές Εισόδου - Εξόδου