Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Δομημένος Προγραμματισμός DR. Α Θ Α Ν Α Σ Ι Ο Σ Κ Α Κ Α Ρ Ο Υ Ν Τ Α Σ
Περιεχόμενα Γνώσεις και εργαλεία Δομημένος Προγραμματισμός Αλγόριθμος Η γλώσσα προγραμματισμού C
Προαπαιτούμενες Γνώσεις Βασικά μαθηματικά Βασική γνώση Αγγλικής γλώσσας Τυπική χρήση Η/Υ
Χρήσιμα εργαλεία Περιβάλλον ανάπτυξης κώδικα π.χ. Codeblocks Συμβολομεταφραστής (Compiler) π.χ. GCC Σύγγραμμα ή ιστοσελίδα αναφορά
Δομημένος Προγραμματισμός Στην επιστήμη των υπολογιστών δομημένος ή διαδικαστικός προγραμματισμός είναι μια προσέγγιση στον προγραμματισμό που βασίζεται στην έννοια της κλίσης διαδικασίας. Η διαδικασία είναι ένα αυτοτελές σύνολο εντολών.
Δομημένος Προγραμματισμός Η διαδικασία είναι επίσης γνωστή ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση Πρόγραμμα: Σύνολο εντολών, κατανοητών από τον υπολογιστή, για την επίλυση ενός προβλήματος.
Γιατί Προγραμματισμός; Πρέπει να επιλύσουμε ένα πρόβλημα, είτε απλό είτε σύνθετο Απαιτείται να επαναληφθεί μηχανικά μια διαδικασία Απαιτείται υψηλή ταχύτητα στην εκτέλεση διαδικασιών Ρητή η επίλυση προβλημάτων, ενώ προσφέρεται πλήθος εργαλείων για την ανάπτυξη λογισμικού
Τυπική διαδικασία επίλυσης προβλήματος Ανάλυση του προβλήματος Κατανόηση παραμέτρων Καθορισμός απαιτήσεων Επιλογή ή δημιουργία αλγορίθμου Συγγραφή κώδικα και αξιολόγηση Επανάληψη της διαδικασίας σε περίπτωση μη ικανοποίησης των απαιτήσεων
Πως συνεισφέρει ο Δομημένος Προγραμματισμός; Ο Δομημένος Προγραμματισμός είναι μια μεθοδολογία σύνταξης προγραμμάτων με στόχο να βοηθήσει τον προγραμματιστή στην ανάπτυξη σύνθετων προγραμμάτων να μειώσει τα λάθη να εξασφαλίσει την εύκολη κατανόηση των προγραμμάτων να διευκολύνει τις διορθώσεις και τις αλλαγές
Πως συνεισφέρει ο Δομημένος Προγραμματισμός; Ο Δομημένος Προγραμματισμός είναι μια μεθοδολογία σύνταξης προγραμμάτων με στόχο να βοηθήσει τον προγραμματιστή στην ανάπτυξη σύνθετων προγραμμάτων να μειώσει τα λάθη να εξασφαλίσει την εύκολη κατανόηση των προγραμμάτων να διευκολύνει τις διορθώσεις και τις αλλαγές
Ποιο το όφελος; Όλα τα παραπάνω επιτυγχάνονται με την τακτική του «διαίρει και βασίλευε». Αποδομούμε το μεγάλο πρόγραμμα (πρόβλημα) σε μικρότερα προγράμματα (προβλήματα),, τα οποία επιλύονται εύκολα
Αλγόριθμος Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων, και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.
Μέρη προγράμματος/αλγορίθμου Σταθερές, έχουν προκαθορισμένη τιμή σε όλο το πρόγραμμα Μεταβλητές, χρησιμοποιούνται για να παραστήσουν δεδομένα και μπορεί να αλλάζουν τιμή κατά τη διάρκεια του προγράμματος Τελεστές, χρησιμοποιούνται για αριθμητικές και λογικές πράξεις Εκφράσεις, χρησιμοποιεί όλα τα παραπάνω και η τελική τιμή της εξαρτάται από την ιεραρχία των πράξεων
Κύκλος ζωής ενός προγράμματος Σκεφτείτε μια ιδέα για ένα πρόγραμμα Χρήση ενός περιβάλλοντος ανάπτυξης κώδικα για να γράψουμε τον πηγαίο κώδικα (sourse code) Μεταγλώττιση του προγράμματος με χρήση ενός μεταγλωττιστή μιας γλώσσας προγραμματισμού (compile and link) Διόρθωση λαθών, αν υπάρχουν (errors) Εκτέλεση του προγράμματος (run)
Γλώσσα Προγραμματισμού Γλώσσα προγραμματισμού λέγεται μια τεχνητή γλώσσα που μπορεί να χρησιμοποιηθεί για τον έλεγχο μιας μηχανής, συνήθως ενός υπολογιστή. Οι γλώσσες προγραμματισμού (όπως άλλωστε και οι ανθρώπινες γλώσσες ) ορίζονται από ένα σύνολο συντακτικών και εννοιολογικών κανόνων.
Γλώσσα Προγραμματισμού Οι γλώσσες προγραμματισμού χρησιμοποιούνται για να διευκολύνουν την οργάνωση και διαχείριση πληροφοριών, αλλά και για την ακριβή διατύπωση αλγορίθμων.
Γλώσσα Προγραμματισμού C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέως φάσματος συστημάτων και εφαρμογών Γλώσσα «μετρίου» επιπέδου
Παράδειγμα: Hello World!!! #include <stdio.h> int main() { printf( Hello World. \n ); return 0; }
Μεταγλώττιση και εκτέλεση προγράμματος Πηγή: http://microchip.wikidot.com/mplabx:libraries
Μεταγλώττιση και εκτέλεση προγράμματος Μεταγλωττιστές (compilers) Μεταφράζουν ένα αρχείο πηγαίου κώδικα σε γλώσσα μηχανής (0 και 1) Στο αρχείο πηγαίου κώδικα (source file) μεταφράζεται σε ένα αντικειμενικό αρχείο (object file), συνδέεται με άλλα αντικειμενικά αρχεία ή βιβλιοθήκες, και τέλος, δημιουργείται το εκτελέσιμο αρχείο
Αποσφαλμάτωση Κάθε γλώσσα προγραμματισμού διέπεται από συντακτικούς κανόνες Όταν παραβαίνουμε κάποιον κανόνα (π.χ. σύνταξη εντολής) δημιουργείται ένα λάθος Η διαδικασία διόρθωσης των λαθών λέγεται αποσφαλμάτωση (debug) Τα λάθη μπορεί να είναι συντακτικά και λογικά (ποιο δύσκολο να εντοπιστούν)
Βιβλιοθήκες Στο προηγούμενο παράδειγμα είχαμε: #include <stdio.h> - Βιβλιοθήκη συστήματος
Βιβλιοθήκες Στο προηγούμενο παράδειγμα είχαμε τις γραμμές κώδικα: #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> int main() { printf( Hello World. \n ); return 0; } Αρχή Εκτύπωσε Hello, world Τέλος
Δομημένος Προγραμματισμός DR. Α Θ Α Ν Α Σ Ι Ο Σ Κ Α Κ Α Ρ Ο Υ Ν Τ Α Σ
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.