Σχεδίαση Αλγορίθμων
Διεργασίες (1/2) Μία διεργασία αλληλεπιδρά με το περιβάλλον της δεχόμενη είσοδο και παράγοντας έξοδο
Διεργασίες (2/2) Ένα από τα κύρια χαρακτηριστικά μίας διεργασίας αποτελεί ο τερματισμός της Μεγάλη πηγή λαθών στη σχεδίαση ενός αλγορίθμου είναι ότι κάτω από ορισμένες συνθήκες η διεργασία μπορεί να μην τερματίζει
Γλώσσες Προγραμματισμού Διαθέτουν το δικό τους λεξιλόγιο και τους δικούς τους γραμματικούς κανόνες οι οποίοι υπαγορεύουν τη χρήση του λεξιλογίου π.χ sum=a+b
Συντακτικό – Σημασιολογία (1/7) Είδαμε ότι η διερμηνεία του αλγορίθμου συνίσταται στην –Κατανόηση τρόπου έκφρασης αλγορίθμου (1ο Στάδιο) –Εκτέλεση αντίστοιχης λειτουργίας (2ο Στάδιο)
Συντακτικό – Σημασιολογία (2/7) Η κατανόηση έκφρασης ενός αλγορίθμου αποτελείται από: –Ικανότητα αναγνώρισης – κατανόησης συμβόλων (1α Στάδιο) –Απόδοση σημασίας σε κάθε βήμα του αλγορίθμου (1β Στάδιο) –Τα στάδια 1α και 1β πραγματοποιούνται από ένα μεταφραστή
Συντακτικό – Σημασιολογία (3/7) Για την κατανόηση των συμβόλων ο επεξεργαστής πρέπει να γνωρίζει το λεξιλόγιο και τη γραμματική της γλώσσας με τα οποία είναι εκφρασμένος ο αλγόριθμος
Συντακτικό – Σημασιολογία (4/7) Συντακτικό: Σύνολο γραμματικών κανόνων που καθορίζουν τη νόμιμη χρήση των συμβόλων μίας γλώσσας Συντακτικά ορθό πρόγραμμα: Πρόγραμμα σύμφωνο με το συντακτικό της γλώσσας
Συντακτικό – Σημασιολογία (5/7) Συντακτικό λάθος: Απόκλιση από το συντακτικό της γλώσσας Η συντακτική ορθότητα αποτελεί αναγκαία προϋπόθεση για τη διερμήνευση ενός προγράμματος
Συντακτικό – Σημασιολογία (6/7) Σημασιολογία (semantics): Η σημασία συγκεκριμένων μορφών έκφρασης σε μία γλώσσα Ο εντοπισμός σημασιολογικών ασυνεπειών βασίζεται στη γνώση των γνωρισμάτων των αναφερομένων αντικειμένων και των μεταξύ τους σχέσεων
Συντακτικό – Σημασιολογία (7/7) Διερμηνεία αλγορίθμου όσον αφορά τον εντοπισμό λαθών: –Συντακτικά λάθη (1α στάδιο) –Σημασιολογικά λάθη (1β στάδιο και 2ο στάδιο)
Είδη Λαθών Συντακτικά Σημασιολογικά Λογικά (Ο επεξεργαστής δεν μπορεί να τα ανακαλύψει)
Κατά βήματα ανάλυση αλγορίθμων (1/3) Σχεδίαση αλγορίθμου δύσκολη για μη τετριμμένες διεργασίες Συχνό λάθος αποτελεί ότι η περιγραφόμενη διεργασία είναι σχεδόν αυτή που επιδιώκεται Άλλο λάθος αποτελεί το γεγονός ότι κάτω από ορισμένες συνθήκες η διεργασία να μην διεξάγεται
Κατά βήματα ανάλυση αλγορίθμων (2/3) Κατά βήμα ανάλυση αλγορίθμου: Διαίρεση της διεργασίας σε ένα αριθμό βημάτων κάθε ένα από τα οποία να μπορεί να περιγραφεί από έναν αλγόριθμο, ο οποίος είναι μικρότερος και απλούστερος
Κατά βήματα ανάλυση αλγορίθμων (3/3) Η ανάλυση του αλγορίθμου συνεχίζεται μέχρι το σημείο εκείνο όπου τα βήματα που τον περιγράφουν να είναι επαρκώς λεπτομερή για την εκτέλεση από τον επεξεργαστή Ο σχεδιαστής πρέπει να γνωρίζει που να σταματήσει την ανάλυση ενός συγκεκριμένου βήματος (προϋποθέτει την γνώση των διερμηνευτικών ικανοτήτων του επεξεργαστή
Βασικές Δομές Αλγορίθμου 1.Ακολουθία (Sequence): Δύσκαμπτος αλγόριθμος 2.Επιλογή (Selection): Δυνατότητα αλλαγής εκτέλεσης ανάλογα με τις περιστάσεις 3.Επανάληψη (Iteration): Αλγόριθμοι που το μήκος τους διαφέρει ανάλογα με την περίσταση
Ακολουθία 1.Εκτέλεση ενός βήματος κάθε φορά 2.Κάθε βήμα εκτελείται ακριβώς μία φορά (δεν επαναλαμβάνεται) 3.Η σειρά εκτέλεσης των βημάτων είναι η σειρά με την οποία είναι γραμμένα 4.Με το τέλος του τελευταίου βήματος τελειώνει και ο αλγόριθμος
Επιλογή 1.εάν συνθήκη τότε βήμα 2.εάν συνθήκη τότε βήμα 1 αλλιώς βήμα 2 3.εάν συνθήκη 1 τότε βήμα 1 αλλιώς εάν συνθήκη 2 τότε βήμα τότε βήμα ν
Επανάληψη 1.repeat σώμα ανακύκλωσης until συνθήκη (ακαθόριστη, μετα-ελεγχόμενη επανάληψη) 2.while συνθήκη do σώμα ανακύκλωσης (ακαθόριστη, προ- ελεγχόμενη επανάληψη) 3.repeat Ν φορές σώμα ανακύκλωσης (καθορισμένη επανάληψη)