Σχεδίαση αλγορίθμων (2ο μέρος)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κεφάλαιο Τμηματικός προγραμματισμός
Advertisements

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
264 δευτερόλεπτα, δηλ χιλιετίες
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Κ. Χαλάτσης, Εισαγωγή στην Επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών 1 ΑΛΓΟΡΙΘΜΟΙ- ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Εισαγωγή στους Η/Υ Πίνακες.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Γλώσσα Προγραμματισμού
Εισαγωγή στο MATLAB.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Γενική μορφή προγράμματος Pascal
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
Ενότητα Η Δομή Επανάληψης
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ» Β΄ τάξης Γενικού Λυκείου
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Recursion - Αναδρομή.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
ΣΥΝΑΡΤΗΣΕΙΣ.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Κ. Χαλάτσης, Εισαγωγή στην Επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών 1 ΑΛΓΟΡΙΘΜΟΙ- ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Σχεδίαση Αλγορίθμων. Διεργασίες (1/2) Μία διεργασία αλληλεπιδρά με το περιβάλλον της δεχόμενη είσοδο και παράγοντας έξοδο.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ. ΥΠΟΛΟΓΙΣΤΗΣ Μηχανή που μπορεί να φέρει σε πέρας πνευματικές εργασίες ρουτίνας με μεγάλη ταχύτητα.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
Δημιουργία προγράμματος ερωτηματολογίου Πολλαπλής Επιλογής Α. Σχεδίαση Φόρμας.
Οι εντολές επανάληψης Σε πολλά προβλήματα απαιτείται η επανάληψη ενός συνόλου ενεργειών προκειμένου να λυθεί το πρόβλημα. Θα αναφέρουμε δύο χαρακτηριστικά.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
1 Προγραμματισμός Ι Ενότητα 6 : Υποπρογράμματα III Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Όνομα: Μνημονική ακολουθία χαρακτήρων που χρησιμοποιείται για να παραστήσει κάτι άλλο. Αφαίρεση –Αφαίρεση ελέγχου –Αφαίρεση δεδομένων Δέσμευση: Σύνδεση.
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Τι μαθαίνει αυτός που μαθαίνει προγραμματισμό;
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
MIPS: Σύνολο εντολών, γλώσσα μηχανής & μεθοδολογία σχεδίασης
ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ Η εντολή if if ( παράσταση) εντολή επόμενη εντολή.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΣΥΝΑΡΤΗΣΕΙΣ (Functions)
Η Γλώσσα Pascal Υποπρογράμματα
Εισαγωγή στη VHDL 5/8/2018 Εισαγωγή στη VHDL.
Επιβλέπων: Καθηγητής Εφαρμογών Δρ. Δημήτριος Βαρσάμης
Τελεστές και ή όχι Για την εκτέλεση αριθμητικών πράξεων
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΑΛΓΟΡΙΘΜΟΣ.
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Δυναμικός Κατακερματισμός
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

Σχεδίαση αλγορίθμων (2ο μέρος)

Στοιχειοποίηση (Modularity) Στοιχείο: Αυτοτελής αλγόριθμος που μπορεί να σχεδιαστεί ανεξάρτητα από το περιβάλλον στο οποίο θα χρησιμοποιηθεί Στις γλώσσες προγραμματισμού το συναντάμε σαν διαδικασία, ρουτίνα, υπορουτίνα ή συνάρτηση.

Στοιχειοποίηση (Modularity) Κλήση στοιχείου: Αν ένας αλγόριθμος χρησιμοποιεί το στοιχείο λέμε ότι το καλεί (call). Τυπικές παράμετροι: Χρησιμοποιούνται στο σώμα του στοιχείου και αποτελούνται από μεταβλητές στις οποίες δίνονται πραγματικές τιμές κατά την κλήση του στοιχείου.

Στοιχειοποίηση (Modularity) Πραγματικές παράμετροι: Οι πραγματικές παράμετροι που δίνονται κατά την κλήση του στοιχείου Ένα στοιχείο το γράφουμε ως εξής: module όνομα_στοιχείου (τυπικές παράμετροι) σώμα_στοιχείου

Στοιχειοποίηση (Modularity) Ένα στοιχείο το καλούμε ως εξής: όνομα_στοιχείου (πραγματικές παράμετροι) Στοιχειακός αλγόριθμος: Αλγόριθμος που φτιάχνεται από σύνολο στοιχείων.

Αναδρομή (Recursion) Αναδρομικός αλγόριθμος: Ο αλγόριθμος που καλεί τον εαυτό του Αναδρομή: Ο τρόπος εκτέλεσης ενός αναδρομικού αλγορίθμου

Αναδρομή (Recursion) Παράδειγμα: Υπολογισμός παραγοντικού: παραγοντικό(Ν)=Ν•παραγοντικό(Ν-1)

Παράδειγμα αναδρομικού αλγορίθμου module παραγοντικό(Ν) if N=1 then 1 else πολλαπλασιασμός Ν•παραγοντικό(Ν-1)

Λειτουργία αναδρομής Έστω ότι θέλουμε να υπολογίσουμε το παραγοντικό(3). Η λειτουργία του αλγορίθμου περιγράφεται στο επόμενο σχήμα.

Λειτουργία αναδρομής

Λειτουργία αναδρομής Αυτό που πρέπει να εξασφαλίσουμε σε έναν αναδρομικό αλγόριθμο είναι η ύπαρξη μίας οριακής συνθήκης για την οποία να μην απαιτείται η κλήση της αναδρομικής συνάρτησης (π.χ if N=1 then 1) H οριακή συνθήκη εξασφαλίζει ότι η εκτέλεση του αλγορίθμου θα σταματήσει

Σχέση αναδρομής και επανάληψης Για κάθε αναδρομικό αλγόριθμο υπάρχει και ένας ισοδύναμος που χρησιμοποιεί επανάληψη Η αναδρομή είναι μία επανάληψη με διαφορετική μορφή

Διαδικασία δημιουργίας αναδρομικού αλγορίθμου Βήμα 1: Έκφραση διαδικασίας με αναδρομικό τρόπο, δηλαδή έκφραση με παρόμοιο τρόπο με το αρχικό πρόβλημα με πιο «απλά» δεδομένα παραγοντικό(Ν)→ αρχικό πρόβλημα Ν•παραγοντικό(Ν-1) → έκφραση με πιο μικρό αριθμό (Ν-1)

Διαδικασία δημιουργίας αναδρομικού αλγορίθμου Βήμα 2: Προσδιορισμός οριακής συνθήκης (δρόμος διαφυγής) if N=1 then 1

Παραλληλία (Parallelism) Σειριακός αλγόριθμος: Χρησιμοποιείται ένας επεξεργαστής Παράλληλος αλγόριθμος: Πολλοί επεξεργαστές χρησιμοποιούνται ταυτόχρονα

Παραλληλία (Parallelism) Παραλληλία / Ταυτοχρονισμός: Διαίρεση της διεργασίας σε έναν αριθμό υπο-διεργασιών, καθεμία από τις οποίες εκτελείται από έναν επεξεργαστή

Παραλληλία (Parallelism)

Παραλληλία (Parallelism) Ένας παράλληλος αλγόριθμος αυξάνει την ταχύτητα εκτέλεσης με κόστος την αύξηση των επεξεργαστών. Για Ν-φορές αύξηση της ταχύτητας απαιτείται Ν-φορές αύξηση του αριθμού των επεξεργαστών Πολλές φορές απαιτείται συγχρονισμός των επεξεργαστών (π.χ κάποιοι επεξεργαστές να περιμένουν τους άλλους πριν ξεκινήσουν ή λειτουργούν με την ίδια ταχύτητα)