Προγραμματισμός
Περιγραφή θέματος
-
-
•Τι είναι αυτό το μάθημα ;
•Τι θα πρέπει να ξέρω ;
•Τι θα πρέπει να κάνω ;
•Τι θα ξέρω όταν τελειώσει;
•Τι είναι ο προγραμματισμός;
•Εφαρμογές του προγραμματισμού
•Ένα απλό πρόγραμμμα
-
Strings και Είσοδος/Έξοδος (Ι/Ο) string
Ακέραιοι και Ι/Ο ακεραίων
Τύποι και Αντικείμενα
Ασφάλεια τύπων
-
Υπολογισμός
- Τι είναι υπολογίσιμο; Ποιός είναι ο καλύτερος τρόπος?
- Αφαίρεση, Αλγόριθμοι, Τεχνάσματα, Δομές δεδομένων
Δομή της Γλώσσας και ιδέες
- Σειριακή εκτέλεση
- Εκφράσεις και Εντολές
- Επιλογή
- Επανάληψη
- Συναρτήσεις
- Vectors
-
Κατηγορίες σφαλμάτων
Ελεγχος ορισμάτων
- Αναφορά σφαλμάτων
- Εντοπισμός σφαλμάτων
- Εξαιρέσεις
Debugging
Έλεγχος (testing)
-
Μερικές σκέψεις για την ανάπτυξη λογισμικού
Η ιδέα της αριθμομηχανής
Χρησιμοποιώντας τη γραμματική
Εκτίμηση έκφρασης
Οργάνωση προγράμματος
-
Tokens και token streams
- Κλάσεις και structs
Τακτοποίηση του κώδικα
- Prompts
- Οργάνωση προγράμματος
-- σταθερές
- Αποκατάσταση από σφάλματα
- Σχόλια
- Αναθεώρηση κώδικα
- Έλεγχος (Testing)
Δυο λέξεις για την πολυπλοκότητα και τη δυσκολία -
Τεχνικές λεπτομέρειες
- Ορισμοί
- Headers και preprocessor
- Εμβέλεια (scope)
Συναρτήσεις
- Δηλώσεις και Ορισμοί
- Ορίσματα
Call by value, reference, και const reference
Χώροι ονομάτων (Namespaces)
- Δηλώσεις “Using”
Αναδρομικές συναρτήσεις -
Κλάσεις
- Υλοποίηση και Διεπαφή
- Κατασκευαστές
- Συναρτήσεις-μέλη
Απαριθμήσεις
Υπερφόρτωση τελεστών
Χρήσιμα headers στη C++ -
Θεμελιώδεις έννοιες Ι/Ο
Αρχεία
- Άνοιγμα
- Ανάγνωση και εγγραφή
Σφάλματα I/O
Ανάγνωση ακεραίου -
Είσοδος και Έξοδος
Έξοδος αριθμητικών
- Ακέραιοι
- Αριθμοί κινητής υποδιαστολής
Καταστάσεις αρχείων
- Δυαδική I/O
- Τοποθέτηση
Ροή συμβολοσειράς (string streams)
Είσοδος βάσει γραμμής
- Είσοδος χαρακτήρων
- Ταξινόμηση χαρακτήρων
-
Γιατί γραφικά;
Ένα μοντέλο γραφικών
Παραδείγματα -
Δουλεύοντας με γραφικά
- Μοντέλο προβολής
- Οργάνωση κώδικα
Κλάσεις διεπαφής
- Point
- Line
- Lines
- Grid
- Open Polylines
- Closed Polylines
- Color
- Text
- Unnamed objects
Βιβλιοθήκες S/W
-
Προοπτική
-Εναλλακτικές λύσεις Ι/Οs
-GUI
-Επίπεδα λογισμικού
Παράδειγμα GUI
Κώδικας GUI
-επανάκληση
-
Πίσω στα διανύσματα (vector)
- Πώς υλοποιούνται;
Δείκτες και ελεύθερη αποθήκευση
- Εκχώρηση(αρχική)
- Πρόσβαση
--- Συστοιχίες (arrays) και δείκτες: []
--- Απο-αναφορά (dereferencing): *
- Αποδέσμευση (σβήσιμο)
-
Αποδομητές
Κατασκευαστής αντιγράφου και εκχώρηση αντιγράφου
Συστοιχίες (Arrays)
-
Αλλαγή μεγέθους
- resize() και push_back()
Πρότυπα
Έλεγχος εύρους και εξαιρέσεις
-
Κοινοί στόχοι και ιδανικά
Γενικός προγραμματισμός
Περιέκτες, αλγόριθμοι και επαναλήπτες
Ο πιο απλός αλγόριθμος: find ()
παραμετροποίηση αλγορίθμων
- find_if() και αντικείμενα συναρτήσεων
Ακολουθίες
- διάνυσμα και λίστα
-
Συσχετιζόμενοι περιέκτες
- map, set
Σημαντικοί αλγόριθμοι
- copy, sort, ...
- Επαναλήπτες εισόδου - εξόδου
Χρήσιμα εργαλεία
- Επικεφαλίδες, αλγόριθμοι, περιέκτες, αντικείμενα συναρτήσεων
-
Ιδανικά
- Στόχοι, ήρωες, τεχνικές
Γλώσσες και σχεδιαστές γλωσσών
- Γλώσσες προγενέστερες της C++
-
Συμβολοσειρές
Είσοδος / Έξοδος
Ακρίβεια, υπερχείλιση, μεγέθη, σφάλματα
Πίνακες
Τυχαίοι αριθμοί
Μιγαδικοί αριθμοί
Παραδείγματα
-
Ορθότητα, αποδείξεις και δοκιμές
Συσχετίσεις
Έλεγχος συστημάτων
Έλεγχος GUI
Διαχείριση πόρων
Δοκιμές μονάδας και συστήματος
Αποκάλυψη λανθασμένων υποθέσεων
Σχεδιασμός δοκιμών
Απόδοση
-
C και C++
Συναρτήσεις πρότυπα
printf()/scanf()
Συστοιχίες και συμβολοσειρές
Διαχείριση μνήμης
Μακροεντολές
const
Διαλειτουργικότητα C/C++