Βασικές έννοιες αλγορίθμων Γιακουμόγλου Βαγγέλης
Κάτι ποιο κατανοητό;;; 2.1 Τι ονομάζουμε αλγόριθμο; Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Κάτι ποιο κατανοητό;;;
Κανένα παραδειγματάκι? Ο αλγόριθμος είναι μια σειρά από ενέργειες οι οποίες έχουν σκοπό να επιλύσουν κάποιο πρόβλημα… Κάπως καλύτερα τώρα! Κανένα παραδειγματάκι?
Και πώς πρέπει να είναι ένας αλγόριθμος, στη πληροφορική ειδικότερα; Παραδείγματα αλγορίθμων: 1. Οι ενέργειες που κάνουμε για να φτιάξουμε ένα καφέ… 2. …ή για να κλείσουμε κάποια εισιτήρια… 3. … η να κανονίσουμε μια συνάντηση! Και πώς πρέπει να είναι ένας αλγόριθμος, στη πληροφορική ειδικότερα;
Ο αλγόριθμος πρέπει να ικανοποιεί 5 κριτήρια : Τα πέντε κριτήρια τα οποία οφείλει να ικανοποιεί ένας αλγόριθμος είναι τα εξής: 1) Είσοδος: το σύνολο των τιμών που δέχεται ο αλγόριθμος ως δεδομένα για την επίλυση ενός προβλήματος.(μπορεί να είναι και το κενό σύνολο) 2) Έξοδος: Είναι το σύνολο των τιμών εκείνων που ο αλγόριθμος μας δίνει ως αποτέλεσμα.(Δεν μπορεί να είναι κενό αυτό το σύνολο) 3) Καθοριστικότητα: Οι εντολές ενός αλγόριθμου θα πρέπει να είναι αυστηρώς και επακριβώς καθορισμένες. Αυτό είναι αναγκαίο για να μπορεί η εκτέλεσή τους να γίνεται χωρίς καμία αμφιβολία και να μην απαιτούνται πρόσθετες επεξηγήσεις. 4) Περατότητα: Θα πρέπει ο αλγόριθμος μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του να τερματίζεται. Αν δεν τερματίζεται δεν έχουμε αλγόριθμο αλλά μια υπολογιστική διαδικασία. 5) Αποτελεσματικότητα: Κάθε μεμονωμένη εντολή ενός αλγόριθμου θα πρέπει να είναι απλή. Δεν αρκεί να έχει ορισθεί η εντολή αλλά πρέπει να είναι και εκτελέσιμη.
2.3 Ποιοι είναι οι τρόποι με τους οποίους η επιστήμη μελετά τους αλγόριθμους; Οι τρόποι με τους οποίους η επιστήμη μελετά τους αλγόριθμους είναι οι εξής: Α. Υλικού: Εξετάζει την ταχύτητα εκτέλεσης ενός αλγορίθμου σε σχέση με τον τρόπο που τα διάφορα συστατικά του υπολογιστή είναι δομημένα σε μια ενιαία αρχιτεκτονική. Β. Γλωσσών προγραμματισμού: Εξετάζει τη δομή και τον αριθμό των εντολών ενός αλγόριθμου αναλόγως της γλώσσας προγραμματισμού την οποία χρησιμοποιεί. Γ. Θεωρητική: Μελετάται η ύπαρξη ή όχι κάποιου αποδοτικού αλγορίθμου για την επίλυση ενός προβλήματος. Μια τέτοια μελέτη είναι ιδιαίτερα σημαντική διότι προσδιορίζει τα όρια της λύσης που θα βρεθεί σε σχέση με ένα συγκεκριμένο πρόβλημα. Δ. Αναλυτική: Εξετάζει τις ανάγκες σε υπολογιστικούς πόρους που απαιτεί η εκτέλεση ενός αλγορίθμου (μέγεθος μνήμης, χρόνος λειτουργίας της cpu ) κτλ
2.4 Ποιοι είναι οι τρόποι αναπαράστασης και περιγραφής ενός αλγορίθμου; Οι τρόποι με τους οποίους μπορούμε να περιγράψουμε-αναπαραστήσουμε- έναν αλγόριθμο είναι οι εξής: 1. Ελεύθερο κείμενο, 2. Φυσική γλώσσα κατά βήματα, 3. Διαγραμματικές τεχνικές, 4. Κωδικοποίηση
Διάγραμμα Ροής (Flow chart) Το διάγραμμα ροής είναι ένας γραφικός τρόπος παρουσίασης αλγορίθμων. Αποτελείτε από τα εξής γεωμετρικά σύμβολα: 1. Έλλειψη: Δηλώνει την αρχή και το τέλος του αλγορίθμου 2. Πλάγιο παραλληλόγραμμο: Δηλώνει εισαγωγή δεδομένων ή εξαγωγή αποτελεσμάτων. Αρχή ή τέλος Δεδομένα ή αποτελεσματα
3. Ορθογώνιο Παραλληλόγραμμο: Δηλώνει επεξεργασία. 4 3. Ορθογώνιο Παραλληλόγραμμο: Δηλώνει επεξεργασία. 4. Ρόμβος: Δηλώνει λογική συνθήκη. Ναι όχι Επεξεργασία Λογική συνθήκη
2. 5 Ποιες λέξεις ονομάζονται δεσμευμένες σε έναν αλγόριθμο; 2.5 Ποιες λέξεις ονομάζονται δεσμευμένες σε έναν αλγόριθμο; Δεσμευμένες λέξεις σε έναν αλγόριθμο ονομάζονται οι λέξεις εκείνες οι οποίες έχουν αυστηρά προκαθορισμένη σημασία και χρησιμεύουν είτε για την περιγραφή των εντολών της ψευδογλώσσας ,είτε για κάνουν πιο ομοιόμορφη τη γλώσσα του κώδικα.( πχ: αρχή, τέλος, γράψε, διάβασε ).
2.6 Ποιες είναι οι σταθερές και ποιες οι μεταβλητές σε έναν αλγόριθμο; Με τον όρο Σταθερά εννοούμε το μέγεθος εκείνο του οποίου η τιμή παραμένει αμετάβλητη (σταθερή) σε όλη την διάρκεια εκτέλεσης του αλγορίθμου. Αντίθετα με τον όρο Μεταβλητή ονομάζουμε το μέγεθος εκείνο του οποίου η τιμή μπορεί να αλλάξει κατά τη διάρκεια της εκτέλεσης του αλγορίθμου. Μια μεταβλητή μπορεί να πάρει μια τιμή είτε με εντολή εκχώρησης είτε με εντολές εισόδου.
2.7 Πως διακρίνονται οι σταθερές και οι μεταβλητές ανάλογα με το είδος της τιμής που παίρνουν; Οι μεταβλητές και οι σταθερές ανάλογα με το είδος των τιμών που παίρνουν μπορούν να διακριθούν στους εξής τύπους: 1. Ακέραιες: 4, 5, 200, -20, 0, -5 2. Πραγματικές: 0,5 , 15,24 , -5,21 3. Χαρακτήρες: οι τιμές τους είναι χαρακτήρες (ένας ή περισσότεροι σε σειρά) και πάντα περικλείονται σε μονά εισαγωγικά ‘….’ Πχ ‘μέγιστο’ , ‘Ι’ , 4. Λογικές: Όταν παίρνουν 2 τιμές ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ
2.8 Σε ποιες ομάδες διαχωρίζονται οι μεταβλητές ανάλογα με το ρόλο τους στην εκτέλεση ενός αλγορίθμου; Ανάλογα με το ρόλο τους στην εκτέλεση ενός αλγόριθμου οι μεταβλητές χωρίζονται σε: Α. Μεταβλητές δεδομένων: Εκείνες των οποίων οι τιμές αποτελούν τα δεδομένα που χρειάζεται ένας αλγόριθμος για την εκτέλεση του Β. Μεταβλητές αποτελεσμάτων: Εκείνες στις οποίες καταχωρούνται τα αποτελέσματα που προκύπτουν κατά τη διάρκεια εκτέλεσης του αλγορίθμου Γ. Βοηθητικές Μεταβλητές: δηλ μεταβλητές που χρησιμοποιούνται για την αποθήκευση των ενδιάμεσων αποτελεσμάτων του αλγορίθμου
2.9 Ποιες είναι οι επιτρεπτές αριθμητικές πράξεις που μπορούν να χρησιμοποιηθούν σε έναν αλγόριθμο; Οι επιτρεπτές αριθμητικές πράξεις που μπορούν να χρησιμοποιηθούν σε έναν αλγόριθμο είναι: 1. Πρόσθεση :+ 2. Αφαίρεση: – 3. Πολλαπλασιασμός: * 4. Διαίρεση: / 5. Ύψωση σε δύναμη: ^ 6 Πηλίκο ακέραιας διαίρεσης :div 7. Υπόλοιπο ακέραιης διαίρεσης :mod
Διευκρινήσεις σχετικά με τις πράξεις. DIV και MOD. 1 Διευκρινήσεις σχετικά με τις πράξεις DIV και MOD 1. DIV υπολογίζει το ακέραιο πηλίκο της διαίρεσης δυο αριθμών, δηλ: 8 div 3=2 , 15 div 5=3 , 7 div 2 = 3 , 0 div 5=0 2. MOD υπολογίζει το ακέραιο υπόλοιπο δύο αριθμών, Δηλ: 8 mod 2=0 , 15 mod 3=0 , 7 mod 2= 1, 0 mod 7=0
2.10 Ποια είναι η εντολή εκχώρησης και πώς χρησιμοποιείται; Η εντολή εκχώρησης είναι η εντολή εκείνη η οποία μας επιτρέπει να καταχωρήσουμε μια τιμή σε μια μεταβλητή. Η εκχώρηση συντάσσεται με το σύμβολο και διαβάζεται με το ρήμα: τοποθέτησε, καταχώρησε, ή εκχώρησε. Αριστερά της εκχώρησης υπάρχει πάντα μια μεταβλητή, ενώ στο δεξί της μέρος μπορεί να υπάρχει ένας αριθμός, μία μεταβλητή , μια συμβολοσειρά ή σε αρκετές περιπτώσεις μια ολόκληρη μαθηματική παράσταση… Η εκχώρηση ΔΕΝ είναι ισότητα, στη μεταβλητή που βρίσκεται στο αριστερό της μέρος αποθηκεύεται το αποτέλεσμα του υπολογισμού που έχει γίνει στο δεξί της μέρος (αν υπάρχει υπολογισμός) Μερικά παραδείγματα εκχώρησης είναι τα παρακάτω: Α 3 (το Α παίρνει την τιμή 3) Χ β ( στο Χ καταχωρείται το περιεχόμενο της μεταβλητής β) Κ ‘Νίκος’ (στη μεταβλητή Κ καταχωρούμε την λέξη Νίκος) Σ Σ+1 (το άθροισμα της μεταβλητής Σ με την μονάδα, καταχωρείτε στην μεταβλητή Σ)
ΠΡΟΣΟΧΗ ! ! ! Δεν είναι σωστό να γράψουμε: 5 α (αριστερά πρέπει να υπάρχει μεταβλητή) β=3 (η εκχώρηση ΔΕΝ είναι ισότητα) α+γ8 (αριστερά πρέπει να υπάρχει μόνο μεταβλητή και όχι αριθμητική παράσταση) α4γ (έπρεπε να γράψουμε 4*γ)
2.11 Ποια είναι η εντολή εισαγωγής δεδομένων σε έναν αλγόριθμο; Η εντολή με την οποία γίνεται εισαγωγή δεδομένων σε έναν αλγόριθμο είναι η εντολή: ΔΙΑΒΑΣΕ. Η σύνταξή της είναι ως εξής: ΔΙΑΒΑΣΕ Χ1,Χ2,…,Χν
2.12 Ποια είναι η εντολή εξόδου αποτελεσμάτων σε έναν αλγόριθμο; Η εντολή με την οποία πραγματοποιείται η έξοδος των αποτελεσμάτων σε έναν αλγόριθμο είναι η εντολή: ΓΡΑΨΕ. Η σύναξη της εντολής αυτής είναι η εξής: ΓΡΑΨΕ αποτέλεσμα Ως αποτέλεσμα σε έναν αλγόριθμο μπορούμε να έχουμε: το περιεχόμενο μιας μεταβλητής, μια μαθηματική παράσταση ή μια συμβολοσειρά.