Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό Βαγγζλθσ Οικονόμου
Περιεχόμενα Πλθροφορίεσ Μακιματοσ Δομθμζνοσ Προγραμματιςμόσ (Οριςμοί, Γενικζσ Ζννοιεσ) Αλγόρικμοι και Ψευδοκϊδικασ Γλϊςςα προγραμματιςμοφ C
Πλθροφορίεσ Διδάςκων: Βαγγζλθσ Οικονόμου τοιχεία Επικοινωνίασ: viknmu@gmail.com ελίδα μακιματοσ: e-class Μακθςιακοί τόχοι κοπόσ μακιματοσ: Να κατανοιςουμε τισ αρχζσ και λειτουργίεσ του δομθμζνου προγραμματιςμοφ μζςω τθσ γλϊςςασ προγραμματιςμοφ C
Προαπαιτοφμενεσ Γνϊςεισ «Ανάπτυξθ Εφαρμογϊν ςε Προγραμματιςτικό Περιβάλλον» Γ Σάξθσ Σεχνολογικισ Κατεφκυνςθσ Ενιαίου Λυκείου? Αγγλικά? Ιντερνετ?
Δομθμζνοσ Προγραμματιςμόσ τθν επιςτιμθ των υπολογιςτϊν δομημένοσ ή διαδικαςτικόσ προγραμματιςμόσ είναι μια προςζγγιςθ ςτον προγραμματιςμό που βαςίηεται ςτθν ζννοια τθσ κλήσης διαδικασίας. Η διαδικαςία είναι ζνα αυτοτελζσ ςφνολο εντολϊν. Η διαδικαςία είναι, επίςθσ γνωςτι ωσ ρουτίνα, υπορουτίνα, μζκοδοσ ι ςυνάρτθςθ (δε ςχετίηεται άμεςα με τθν μακθματικι ζννοια τθσ ςυνάρτθςθσ) Πρόγραμμα : φνολο εντολϊν, κατανοθτϊν από τον υπολογιςτι, για τθν επίλυςθ ενόσ προβλιματοσ.
Δομθμζνοσ Προγραμματιςμόσ Ανάλυςθ προβλιματοσ: Κατανόθςθ Δομι Κακοριςμόσ απαιτιςεων Παράδειγμα: Δθμιουργιςτε ζνα πρόγραμμα που κα διαβάηει δφο αρικμοφσ από το πλθκτρολόγιο και κα εκτυπϊνει ςτθν οκόνθ του υπολογιςτι το άκροιςμα τουσ. ε ποιά γλϊςςα προγραμματιςμοφ; Σί είναι μια γλϊςςα προγραμματιςμοφ; Σι ςθμαίνει «εκτυπϊνει ςτθν οκόνθ». Η πρόταςθ αυτι δζχεται πολλζσ ερμθνείεσ. Γενικά κα πρζπει να απαντιςουμε ςε πολλζσ ερωτιςεισ αυτοφ του είδουσ για να κατανοιςουμε το πρόβλθμα αλλά και τθ δομι του. Κακοριςμόσ απαιτιςεων: εφρεςθ υπολογιςτι, γλϊςςασ προγραμματιςμοφ κτλ.
Δομθμζνοσ Προγραμματιςμόσ Ο Δομθμζνοσ Προγραμματιςμόσ είναι μία μεκοδολογία ςφνταξθσ προγραμμάτων που ζχει ςκοπό να βοθκιςει τον προγραμματιςτι ςτθν ανάπτυξθ ςφνκετων προγραμμάτων να μειϊςει τα λάκθ να εξαςφαλίςει τθν εφκολθ κατανόθςθ των προγραμμάτων να διευκολφνει τισ διορκϊςεισ και τισ αλλαγζσ ςε αυτά Όλα τα παραπάνω επιτυχγάνονται με τθν τακτικι του «διαίρε και βαςίλευε». «πάμε» το μεγάλο πρόγραμμα (πρόβλθμα) ςε μικρότερα προγράμματα (προβλιματα), τα οποία επιλφονται εφκολα
Αλγόρικμοι Οριςμόσ: Αλγόριθμοσ είναι μια πεπεραςμζνθ ςειρά ενεργειϊν, αυςτθρά κακοριςμζνων, και εκτελζςιμων ςε πεπεραςμζνο χρόνο, που ςτοχεφουν ςτθν επίλυςθ ενόσ προβλιματοσ. Αλγόρικμουσ κα κάνουμε ι δομθμζνο προγραμματιςμό;
Περιγραφι και αναπαράςταςθ με ελζυκερο κείμενο αλγορίκμων με διαγραμματικζσ τεχνικζσ (διάγραμμα ροισ flow chart) με φυςικι γλϊςςα κατά βιματα με κωδικοποίθςθ (πρόγραμμα ςε μια γλϊςςα προγραμματιςμοφ)
Διαγράμματα Ρόθσ Ζνα διάγραμμα ροήσ αποτελζιται από ζνα ςφνολο γεωμετρικϊν ςχθμάτων, όπου το κακζνα δθλϊνει μια ςυγκεκριμζνθ ενζργεια ι λειτουργία. Σα γεωμετρικά ςχιματα ενϊνονται μεταξφ τουσ με βζλθ, που δθλϊνουν τθ ςειρά εκτζλεςθσ των ενεργειϊν αυτϊν. Βαςικά χιματα
Διαγράμματα Ρόθσ - Παράδειγμα Εκφώνηςη Προγράμματοσ (ή Άςκηςησ): Να διαβαςκοφν δφο αρικμοί, να υπολογιςκεί και να εκτυπωκεί το άκροιςμα τουσ. Ψευδοκϊδικασ: Διάγραμμα Ροισ:
Μζρθ πρόγραμματοσ/αλγορίκμου τακερζσ, ζχουν προκακοριςμζνθ τιμι ςε όλο το πρόγραμμα Μεταβλθτζσ, χρθςιμοποιοφνται για να παραςτθςουν δεδομζνα και μπορεί να αλλάηουν τιμι κατά τθ διάρκεια του προγράμματοσ Σελεςτζσ, χρθςιμοποιοφνται για αρικμθτικζσ και λογικζσ πράξεισ Εκφράςεισ, χρθςιμοποιεί όλα τα παραπάνω και θ τελικι τθσ τιμι εξαρτάται από τθν ιεραρχία των πράξεων
Κφκλοσ ηωισ ενόσ προγράμματοσ κεφτείτε μια ιδεά για ζνα πρόγραμμα Χριςθ ενόσ κειμενογράφου για να γράψουμε τον πθγαίο κϊδικα (source code) Μεταγλϊττιςθ του προγράμματοσ με χριςθ ενόσ μεταγλωτιςτι μια γλϊςςασ προγραμματιςμοφ (compile and link) Διόρκωςθ λακϊν, αν υπάρχουν (errors) Εκτζλεςθ του προγράμματοσ (run)
Γλϊςςα προγραμματιςμοφ Γλώςςα προγραμματιςμού λζγεται μια τεχνθτι γλϊςςα που μπορεί να χρθςιμοποιθκεί για τον ζλεγχο μιασ μθχανισ, ςυνικωσ ενόσ υπολογιςτι. Οι γλϊςςεσ προγραμματιςμοφ (όπωσ άλλωςτε και οι ανκρϊπινεσ γλϊςςεσ) ορίηονται από ζνα ςφνολο ςυντακτικϊν και εννοιολογικϊν κανόνων. Οι γλϊςςεσ προγραμματιςμοφ χρθςιμοποιοφνται για να διευκολφνουν τθν οργάνωςθ και διαχείριςθ πλθροφοριϊν, αλλά και για τθν ακριβι διατφπωςθ αλγορίκμων.
Γλϊςςα προγραμματιςμοφ C Γενικά Ιδιαίτερα δθμοφιλθσ Χαρακτθριςτικά Ζχει χρθςιμοποιθκεί για τον προγραμματιςμό ευρζωσ φάςματοσ ςυςτθμάτων και εφαρμογων Γλϊςςα «μετρίου» επιπζδου
Hello World!!! #include #include <stdio.h> mylib.h int main() { printf( Hello World.\n ); return 0; }
Μεταγλϊττιςθ και Εκτζλεςθ προγράμματοσ
Μεταγλϊττιςθ και Εκτζλεςθ προγράμματοσ Μεταγλωττιςτζσ (compilers) Μεταφράηουν ζνα αρχείο πθγαίου κϊδικα ςε γλϊςςα μθχανισ (0 και 1) Σο αρχείο πθγαίου κϊδικα (source file) μεταφραηεται ςε ζνα αντικειμενικό αρχειο (object file), ςυνδζεται με άλλα αντικειμενικά αρχεία ι βιβλιοκικεσ, και τζλοσ, δθμιουργείται το εκτελζςιμο αρχείο
Αποςφαλμάτωςθ Κάκε γλϊςςα προγραμματιςμοφ διζπεται από ςυντακτικοφσ κανόνεσ Όταν παραβαίνουμε κάποιον κανόνα δθμιουργείται ζνα λάκοσ ςτον κϊδικά μασ Η διαδικαςία διόρκωςθσ των λακϊν λζγεται αποςφαλμάτωςθ (debugging) Σα λάκθ εκτόσ από ςυντακτικά, μπορεί να είναι και λογικά
Βιβλιοκικεσ το προθγοφμενο παράδειγμα είχαμε τισ γραμμζσ κϊδικα: #include <stdio.h> - Βιβλιοκικθ ςυςτιματοσ #include mylib.h - Βιβλιοκικθ χριςτθ (εμείσ)
Main function int main() {/*αρχι main*/ printf( Hello world.\n ); return 0; }/*τζλοσ main*/ Όλα τα προγράμματα μασ πρζπει να ζχουν τθν main ςυνάρτθςθ Απλι εντολι ςε C. Πϊσ ξζρει ο υπολογιςτισ για τθν printf? Όλεσ οι εντολζσ ςτθν C πρζπει να τελειϊνουν με το ερωτθματικό (;)
Πρόγραμμα και Διάγραμμα Ροισ Πρόγραμμα ςε C #include <stdio.h> #include mylib.h int main() { printf( Hello World.\n ); return 0; } Διάγραμμα Ροισ Αρχι Εκτφπωςε Hello, world Σζλοσ