Πληροφορική ΙΙ Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Πληροφορική ΙΙ», 2015-2016
Μάθημα 1: Εισαγωγή στους Αλγόριθμους
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Κριτήρια που πρέπει να πληρούνται: 1. ΕΙΣΟΔΟΣ: Κάθε Αλγόριθμος έχει καμία, μία ή περισσότερες εισόδους (τιμές δεδομένων) 2. ΕΞΟΔΟΣ: Κάθε Αλγόριθμος πρέπει να έχει τουλάχιστον μία έξοδο-αποτέλεσμα 3. ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ (definiteness): Κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο και τη δυνατότητα εκτέλεσής της. 4. ΠΕΡΑΤΟΤΗΤΑ (finiteness): Ο αλγόριθμος πρέπει να τελειώνει μετά την εκτέλεση πεπερασμένων βημάτων εκτέλεσης των εντολών του (η εκτέλεση δε μπορεί να γίνεται επ άπειρο : υπολογιστική διαδικασία 5. ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ (effectiveness): Κάθε μεμονωμένη εντολή πρέπει να είναι απλή. Μια εντολή δεν είναι αρκετό να έχει ορισθεί αλλά πρέπει να είναι και εκτελέσιμη
Πληροφορική: Η επιστήμη που μελετά τους αλγόριθμους από τις εξής πλευρές: Υλικού (hardware) Γλωσσών Προγραμματισμού (programming languages) Θεωρητική (theoretical) Αναλυτική (analytical) Τρόποι Αναπαράστασης Αλγορίθμων: Ελεύθερο Κείμενο: Ανεπεξέργαστος και Αδόμητος τρόπος που μπορεί να οδηγήσει σε μη εκτελέσιμη παρουσίαση (παραβίαση αποτελεσματικότητας) Διαγραμματικές Τεχνικές: Ο Αλγόριθμος παρουσιάζεται με γραφικό τρόπο. Ο πιο παλιός και γνωστός τύπος διαγραμματικής αναπαράστασης είναι το διάγραμμα ροής (flow chart) Με φυσική γλώσσα κατά βήματα: Χρειάζεται προσοχή γιατί μπορεί να παραβιαστεί το κριτήριο του καθορισμού. Κωδικοποίηση (coding): Πρόγραμμα γραμμένο σε ψευδο-γλώσσα ή σε γλώσσα προγραμματισμού που όταν εκτελεστεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο
Παράδειγμα αναπαράστασης Αλγόριθμου 1. Ελεύθερο Κείμενο: Αυξάνουμε την τιμή της μεταβλητής «α»,ξεκινώντας από το 0, κατά μια μονάδα μέχρι να πάρει την τιμή 100. 2. Διαγραμματικές Τεχνικές: Αρχή α=0 α=α+1 α=100? ΟΧΙ Τέλος ΝΑΙ
Παράδειγμα αναπαράστασης Αλγόριθμου 3. Φυσική Γλώσσα Κατά Βήματα: Βήμα 1: Το α ισούται αρχικά με 0 Βήμα 2: Αυξάνουμε το α κατά 1 Βήμα 3: Εάν το α έχει τιμή 100 συνέχισε στο επόμενο βήμα, διαφορετικά επανέλαβε το βήμα 2 Βήμα 4: Τέλος Αλγορίθμου 4. Κωδικοποίηση (ψευδοκώδικας) : Αλγόριθμος Παράδειγμα 1 Α 0 Όσο Α<100 επανέλαβε Α Α+1 Τέλος_επανάληψης Τέλος Παράδειγμα 1
Σύμβολα Διαγραμμάτων Ροής Αρχή Τέλος Εκτέλεση Πράξεων Ψευδής Συνθήκη Αληθής Είσοδος Έξοδος
Σε αλγόριθμους συναντάμε: Σταθερές: Προκαθορισμένες τιμές που παραμένουν αμετάβλητες σε όλη τη διάρκεια του αλγόριθμου Π.χ. Pi = 3.14 Μεταβλητές: Παριστάνουν ένα στοιχείο δεδομένου. Παίρνουν τιμές που μπορούν να μεταβληθούν κατά την εκτέλεση. Π.χ. A 10 ; A A+5; Τελεστές (operators): Τα σύμβολα των πράξεων: αριθμητικοί: +, -, *, /,^ λογικοί: AND, OR, NOT Συγκριτικοί: <, >, <=, >=, = Εκφράσεις (expressions): Σχηματίζονται από τους τελεστέους (operands) σταθερές ή μεταβλητές, και τελεστές (operators). Π.χ. α = β + (2*γ) - 3
Δομή Ακολουθίας Σε αυτή τη δομή οι εντολές εκτελούνται σειριακά, η μία μετά την άλλη. Η σειρά εκτέλεσης των εντολών είναι δηλαδή δεδομένη Αλγόριθμος Παράδειγμα 1 Αρχή Διάβασε a Διάβασε b c a + b (εκχώρηση τιμής, μεταβλητή έκφραση ) Διάβασε a,b c a + b Εκτύπωσε c Εκτύπωσε c Τέλος Παράδειγμα 1 Τέλος
Δομή Επιλογής Σε αυτή τη δομή, μία ή περισσότερες εντολές εκτελούνται ΜΟΝΟ αν ισχύει μια συγκεκριμένη συνθήκη Αρχή Αλγόριθμος Απόλυτη Τιμή Διάβασε a Αν a<0 τότε a (-1) * a Τέλος_αν Εκτύπωσε a Διάβασε a NAI a (-1) * a a < 0 OXI Εκτύπωσε a Τέλος
Δομή Σύνθετης Επιλογής Η δομή είναι παρόμοια με τη δομή επιλογής με τη διαφορά ότι ορίζονται ενέργειες που πρέπει να εκτελεστούν ΚΑΙ όταν δεν ισχύει η συνθήκη Αρχή Διάβασε a, b c a + b NAI a < b OXI c a * b Εκτύπωσε c Τέλος
Δομή Πολλαπλών Επιλογών Η δομή χρησιμοποιείται όταν πρέπει να εξεταστούν πολλές εκφράσεις και ανάλογα με το ποια ισχύει να εκτελεστούν οι αντίστοιχες εντολές Αρχή Διάβασε a Αλγόριθμος Παράδειγμα_4 Διάβασε a Αν a=1 τότε εκτύπωσε «Α» αλλιώς_αν a=2 τότε εκτύπωσε «Β» αλλιώς_αν a=3 τότε εκτύπωσε «Γ» Αλλιώς εκτύπωσε «Άγνωστος» Τέλος_αν Τέλος Παράδειγμα_4 a = 1 OXI OXI a = 2 a = 3 OXI Εκτύπωσε «Άγνωστος» NAI NAI NAI Εκτύπωσε «Α» Εκτύπωσε «Β» Εκτύπωσε «Γ» Τέλος
Παράδειγμα 1 Να γραφεί αλγόριθμος που θα μετατρέπει βαθμούς Φαρεναϊτ σε Κελσίου με βάση τον τύπο C = 5*(F-32) / 9 Αρχή Διάβασε F C 5*(F-32)/9 Αλγόριθμος Μετατροπή Θερμοκρασίας Διάβασε F C 5*(F-32)/9 Εκτύπωσε Βαθμοί Κελσίου:,C Τέλος Μετατροπή Θερμοκρασίας Εκτύπωσε Βαθμοί Κελσίου:, C Τέλος
Παράδειγμα 2 Να γραφεί αλγόριθμος που θα διαβάζει την ακτίνα ενός κύκλου και θα υπολογίζει το εμβαδόν και την περίμετρό του. Αρχή Αλγόριθμος κύκλος Διάβασε r Διάβασε r E π * r ^2 Περ 2*π*r E π * r ^2 Περ 2*π*r Εκτύπωσε Εμβαδό:, Ε Εκτύπωσε: Περίμετρος:»,Περ Εκτύπωσε Εμβαδό:, Ε Εκτύπωσε: Περίμετρος:», Περ Τέλος Τέλος κύκλος
Παράδειγμα 3 Να γραφεί αλγόριθμος που θα επιλύει τη 2βάθμια εξίσωση Ax2 + Bx + Γ = 0 Αλγόριθμος Επίλυση_2θμιας_εξίσωσης Διάβασε A,B,Γ Αν a<>0 τότε d Β*Β-4*Α*Γ Αν d>=0 τότε solution1 (-Β + Ρίζα(d))/(2*Α) solution2 (-Β - Ρίζα(d))/(2*Α) Εκτύπωσε Λύση 1:, solution1 Εκτύπωσε Λύση 2:, solution 2 Αλλιώς Eκτύπωσε «Δεν Επιλύεται» Τέλος_αν Αλλιώς Eκτύπωσε «Πρέπει Α<>0» Τέλος_αν Τέλος Επίλυση_2θμιας_εξίσωσης
Ασκήσεις 1. Να γραφεί αλγόριθμος που θα επιλύει την 1βάθμια εξίσωση Ax + B = 0 2. Ποια θα είναι η τιμή της μεταβλητής Α μετά την εκτέλεση των ακόλουθων εντολών: Α 5 Β 10 Α Α+Β Α Α+5 3. Θεωρούμε ότι ο μισθός ενός υπαλλήλου προσαυξάνεται κατά 4% επί του βασικού μισθού για κάθε χρόνο υπηρεσίας. Επίσης λαμβάνει μηνιαίο επίδομα 30 για κάθε παιδί που έχει. Να γραφεί αλγόριθμος που θα διαβάζει το βασικό μισθό, τα χρόνια υπηρεσίας και τον αριθμό παιδιών και να υπολογίζει και εκτυπώνει τον τελικό μηνιαίο μισθό. 4. Δύο τρένα ξεκινούν ταυτόχρονα από δύο πόλεις Α,Β και κινούνται με σταθερές ταχύτητες κινούμενα το ένα προς το άλλο. Να γραφεί αλγόριθμος που θα διαβάζει την απόσταση των δύο πόλεων σε km, την ταχύτητα κάθε τραίνου σε km/h και θα υπολογίζει και εμφανίζει σε πόσες ώρες τα δύο τραίνα θα συναντηθούν. 5. Να γραφεί αλγόριθμος που θα διαβάζει την αρχική τιμή ενός προϊόντος και τον συντελεστή ΦΠΑ που του αντιστοιχεί (π.χ. 8%, 19% κλπ) και θα υπολογίζει και εκτυπώνει την αρχική τιμή, τον ΦΠΑ που αντιστοιχεί, και την τελική τιμή (με τον ΦΠΑ)
6. Για τον αλγόριθμο που ακολουθεί να συμπληρωθεί ο πίνακας τιμών των μεταβλητών όταν οι τιμές για το Α είναι α) Α=1 και β) Α=10 1. X 5 2. Y 2*X + 5 3. Διάβασε Α 4. Χ 10*Α / Χ 5. Υ Χ/2 Α*Α 6. Α (Χ-Υ)*Α Βήμα Χ Υ Α 1 2 3 4 5 6 Α=1 Βήμα Χ Υ Α 1 2 3 4 5 6 Α=10
Δομή Επανάληψης Πολλές φορές πρέπει ένα τμήμα του αλγόριθμου να εκτελεστεί περισσότερες από 1 φορές. Τότε χρησιμοποιούμε τις δομές επανάληψης. Δομή Επανάληψης 1: Έλεγχος στην αρχή της επανάληψης Αυτός ο τύπος επανάληψης εκτελείται για όσο διάστημα ισχύει η «συνθήκη». ΠΡΟΣΟΧΗ: Οι εντολές μέσα στο βρόγχο μπορεί να ΜΗΝ εκτελεστούν ούτε μια φορά ΑΝ ΕΞΑΡΧΗΣ ΔΕΝ ΙΣΧΥΕΙ Η ΣΥΝΘΗΚΗ Όσο συνθήκη επανέλαβε εντολές Τέλος_επανάληψης Συνθήκη αληθής Εντολές
Δομή Επανάληψης 2: Έλεγχος στο τέλος της επανάληψης Αυτός ο τύπος επανάληψης εκτελείται τουλάχιστον μία φορά και για όσο ΔΕΝ ισχύει η συνθήκη στο τέλος ΠΡΟΣΟΧΗ: Οι εντολές μέσα στο βρόγχο εκτελούνται ΤΟΥΛΑΧΙΣΤΟΝ ΜΙΑ ΦΟΡΑ Εντολές Αρχή_επανάληψης εντολές Μέχρις_ότου συνθήκη Συνθήκη ψευδής αληθής
Δομή Επανάληψης 3: Καθορισμένος αριθμός επαναλήψεων Αυτός ο τύπος επανάληψης χρησιμοποιείται όταν ξέρουμε από την αρχή πόσες φορές θα γίνει η επανάληψη i 0 Για i από 0 μέχρι 100 με_βήμα 1 εντολές Τέλος_επανάληψης εντολές i i+1 ψευδής i>100 αληθής
Δομές Επανάληψης αληθής Εντολές i 0 Συνθήκη Εντολές ψευδής εντολές ψευδής Όσο συνθήκη επανέλαβε εντολές Τέλος_επανάληψης Συνθήκη αληθής Αρχή_επανάληψης εντολές Μέχρις_ότου συνθήκη i i+1 i>100 αληθής ψευδής Για i από 0 μέχρι 100 με_βήμα 1 εντολές Τέλος_επανάληψης
Πηγές: 1. «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον», Α. ΒΑΚΑΛΗ, Η. ΓΙΑΝΝΟΠΟΥΛΟΣ, Ν. ΙΩΑΝΝΙΔΗΣ, Χ. ΚΟΙΛΙΑΣ, Κ. ΜΑΛΑΜΑΣ, Ι. ΜΑΝΩΛΟΠΟΥΛΟΣ, Π. ΠΟΛΙΤΗΣ, Ινστιτούτο Τεχνολογίας Υπολογιστών και Εκδόσεων «Διόφαντος» 2. «ΑΛΓΟΡΙΘΜΟΙ ΣΕ C, ΜΕΡΗ 1-4: ΘΕΜΕΛΙΩΔΕΙΣ ΕΝΝΟΙΕΣ, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ, ΤΑΞΙΝΟΜΗΣΗ, ΑΝΑΖΗΤΗΣΗ», ROBERT SEDGEWICK, ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ