1 | 11/10/2021 | Διαδικαστικά θέματα. Γενικά περί υπολογιστών. Γενικά περί προγραμματισμού υπολογιστών. Κάποια υπολογιστικά προβλήματα. Έκδοση των αποτελεσμάτων των πανελληνίων εξετάσεων, υπολογισμός αθροισμάτων απείρων όρων, τραπεζικές διαδικασίες, πρόγνωση καιρού. |
2 | 18/10/2021 | Και άλλα υπολογιστικά προβλήματα. Έλεγχος λήψης πτυχίου. Εκκαθάριση οφειλόμενου φόρου. Έκδοση λογαριασμών τηλεφωνίας, ενέργειας και ύδρευσης. Εκλογικά αποτελέσματα και exit polls. Κρατήσεις αεροπορικών εισιτηρίων. Κατασκευή ωρολογίου προγράμματός μαθημάτων και προγράμματος εξετάσεων. Πώς μαθαίνεται ο προγραμματισμός. Η πληροφορία στον υπολογιστή. Εισαγωγή στο δυαδικό σύστημα αρίθμησης. |
3 | 22/10/2021 | Συζήτηση για το πρόβλημα της έκδοσης των αποτελεσμάτων των πανελληνίων εξετάσεων στις εκδοχές του που μπορεί ένας μαθητής να έχει διαφορετικές βαυμολογίες για τα διάφορα τμήματα που έχει δηλώσει στο μηχανογραφικό του, αλλά και για την περίπτωση ισοβαθμιών που οδηγούν σε καθ' υπέρβαση εισαγωγή των μαθητών. Συζήτηση για το πρόβλημα εύρεσης του πλήθους των διαδρομών Manhattan από ένα σημείο ορθογωνίου πλέγματος σε άλλο. Συζήτηση για το πρόβλημα εύρεσης της θέσης σε ορθογώνιο πλέγμα που έχει ελάχιστη συνολική απόσταση Manhattan από δεδομένα σημεία του πλέγματος. |
4 | 25/10/2021 | Η δομή του υπολογιστή. Δυαδικό σύστημα αρίθμησης. Συστήματα αρίθμησης (δεκαδικό, δυαδικό, οκταδικό, δεκαεξαδικό) και μετατροπές αριθμών μεταξύ αυτών. Αναπαράσταση αρνητικών αριθμών στον υπολογιστή. Συμπλήρωμα ως προς δύο. Οργάνωση κύριας και δευτερεύουσας μνήμης. Αναπαράσταση αριθμών κινητής υποδιαστολής (πραγματικών) στον υπολογιστή. Λογισμικό και γλώσσες προγραμματισμού. |
5 | 29/10/2021 | Τι χρειαζόμαστε από μία γλώσσα προγραμματισμού. Πώς κατασκευάζουμε εκτελέσιμο πρόγραμμα. Η διαδικασία της μεταγλώττισης και σύνδεσης. Προγραμματιστικά περιβάλλοντα για την C. Παραδείγματα χρήσης του gcc. Επίδειξη προγραμματιστικών περιβαλλόντων (terminal/WSL/PuTTY - command line, Dev-C++, VS Code) μέσω live προγραμματισμού. |
6 | 1/11/2021 | Το πρώτο πρόγραμμα στη C (helloworld.c). Πρόγραμμα υπολογισμού του π (picomp.c). |
7 | 5/11/2021 | Επίδειξη επίλυσης προβλημάτων μέσω live προγραμματισμού. Εύρεση διαιρετών αριθμών. Εύρεση αθροίσματος διαιρετών αριθμών. Εύρεση ελαττωματικών αριθμών. Συζήτηση επάνω σε παραλλαγές των αλγορίθμων με διαφορετικές χρονικές αποδόσεις. |
8 | 8/11/2021 | Επίδειξη επίλυσης προβλημάτων μέσω live προγραμματισμού. Μέτρηση ψηφίων αριθμού. Εκτύπωση ψηφίων αριθμού με ανάστροφη και ορθή φορά. Εύρεση διψήφιων υπακολουθιών αριθμού. Εύρεση όλων των υπακολουθιών αριθμού. Εύρεση πλήθους υπακολουθιών αριθμού που διαιρούνται ακριβώς με το πλήθος των ψηφίων του αριθμού. Ανακοίνωση 1ης εργασίας. |
9 | 12/11/2021 | Συζήτηση για την 1η εργασία. Εντολές break και continue. Τελεστές αριθμητικής σύγκρισης και λογικοί τελεστές. Πρόγραμμα υπολογισμού της ημερομηνίας του Πάσχα (easter.c). Μεταβλητές και τύποι δεδομένων στην C. |
10 | 19/11/2021 | Δηλώσεις και αρχικοποιήσεις μεταβλητών. Προσδιοριστές unsigned, signed και const. Εντολές αντικατάστασης, τελεστές και παραστάσεις. Αριθμητικοί τελεστές. Μετατροπές τύπων. Μοναδιαίοι τελεστές αύξησης και μείωσης. Τελεστές σύγκρισης και λογικοί τελεστές. Συνθήκες ως παραστάσεις και αντίστροφα. Τελεστές αντικατάστασης. Παραστάσεις υπό συνθήκη. Προτεραιότητες τελεστών. Τελεστές πράξεων με bit. Διαδικασία γέννησης τυχαίων αριθμών στην C. Συναρτήσεις time, srand και rand. Πρόγραμμα υπολογισμού Μ.Κ.Δ. και Ε.Κ.Π. (gcdlcm.c). Ροή ελέγχου στην C. Εντολή if. |
11 | 22/11/2021 | Περί εισόδου και εξόδου χαρακτήρων. Συναρτήσεις getchar και putchar. Πρόγραμμα μετατροπής πεζών χαρακτήρων στην είσοδο σε κεφαλαίους (capitalize.c). Εντολή switch. Εντολές βρόχου while. Εντολή βρόχου for. Εντολές break και continue. Εντολή goto και ετικέτες. Περί μαγικών τετραγώνων. Ανακοίνωση 2ης εργασίας. |
12 | 26/11/2021 | Περί πινάκων στην C. Πρόγραμμα κατασκευής μαγικού τετραγώνου 5x5 (magic.c). Επίδειξη επίλυσης προβλημάτων μέσω live προγραμματισμού. Αφαίρεση λευκού διαστήματος από την είσοδο. Διαχωρισμός λέξεων της εισόδου με ένα κενό χαρακτήρα. Εισαγωγή αλλαγών γραμμής στην είσοδο. Συζήτηση για τη 2η εργασία. |
13 | 29/11/2021 | Δομή προγραμμάτων C. Συναρτήσεις. Ορισμός συναρτήσεων. Τυπικές παράμετροι. Επιστρεφόμενες τιμές. Πρωτότυπο συνάρτησης. Πρόγραμμα ύψωσης σε δύναμη (powers.c). Πρόγραμμα υπολογισμού παραγοντικού (factorial.c). Εμβέλεια και χρόνος ζωής μεταβλητών. Τοπικές (αυτόματες) μεταβλητές. Εξωτερικές μεταβλητές. Προσδιοριστές extern και static. Επίλυση ενδεχομένων συγκρούσεων ονομάτων μεταβλητών. Συνέχεια με υποδείξεις για τη 2η εργασία. Επίδειξη μέσω live προγραμματισμού της στοίχισης εισόδου με βάση blocks που ορίζονται μέσω { και }. |
14 | 3/12/2021 | Στατικός χώρος φύλαξης εξωτερικών μεταβλητών. Στοίβα για φύλαξη τοπικών μεταβλητών. Αναδρομικές συναρτήσεις. Πρόγραμμα υπολογισμού παραγοντικού με αναδρομή (recfact.c). Επίδειξη εκτέλεσης αναδρομικής συνάρτησης μέσω της στοίβας. Πρόγραμμα μετατροπής αριθμών από το δυαδικό στο δεκαδικό σύστημα και αντίστροφα (convdecbin.c). Συνάρτηση getinteger. Εύρεση όρων ακολουθίας Fibonacci με αναδρομικό και επαναληπτικό τρόπο. Οργάνωση εφαρμογών σε πηγαία αρχεία και αρχεία επικεφαλίδας. Εισαγωγή στους δείκτες. |
15 | 6/12/2021 | Συνέχεια με τους δείκτες. Τελεστές έμμεσης αναφοράς και διεύθυνσης μνήμης. Παραδείγματα χρήσης δεικτών. Κλήσεις συναρτήσεων με δείκτες στα ορίσματα. Περί ανάγνωσης ακεραίων (και όχι μόνο). Συνάρτηση scanf. Πίνακες. Διάσταση πινάκων. Σχέση πινάκων και δεικτών. Πέρασμα μονοδιάστατων πινάκων σαν ορίσματα σε συναρτήσεις. Πρόγραμμα κατασκευής ιστογράμματος συχνότητας εμφάνισης χαρακτήρων στην είσοδο (histogram.c). |
16 | 10/12/2021 | Δυναμική δέσμευση μνήμης. Συνάρτηση malloc. Συνάρτηση free. Τελεστής sizeof. Συναρτήσεις calloc και realloc. Πίνακες με παραμετρική διάσταση. Συμβολοσειρές. Συναρτήσεις strlen, strcpy, strcmp και strcat για συμβολοσειρές. Υλοποιήσεις βασικών συναρτήσεων για διαχείριση συμβολοσειρών. Πίνακες δεικτών και δείκτες σε δείκτες. Ορίσματα γραμμής εντολών. |
17 | 13/12/2021 | Συνάρτηση atoi. Πολυδιάστατοι πίνακες. Πέρασμα πολυδιάστατων πινάκων σαν ορίσματα σε συναρτήσεις. Αρχικοποίηση πινάκων. Δείκτες σε συναρτήσεις. Πρόγραμμα διαχείρισης ορισμάτων στη γραμμή εντολής (cmdlineargs.c). Πρόγραμμα πρόσθεσης πολυψηφίων αριθμών (addnumbs.c). Απαριθμήσεις. Επίλυση του προβλήματος εύρεσης του πλήθους των διαδρομών Manhattan από ένα σημείο ορθογωνίου πλέγματος σε άλλο με αναδρομικό τρόπο. Ανακοίνωση 3ης εργασίας. |
18 | 17/12/2021 | Επίλυση του προβλήματος εύρεσης του πλήθους των διαδρομών Manhattan από ένα σημείο ορθογωνίου πλέγματος σε άλλο με απομνημόνευση σε αναδρομή και με δυναμικό προγραμματισμό. Δομές. Δηλώσεις δομών και μεταβλητών τύπου δομών. Επιτρεπτές λειτουργίες με δομές. Τελεστές . και ->. Παραδείγματα χρήσης δομών και δεικτών σε δομές. |
19 | 20/12/2021 | Πρόγραμμα εύρεσης τριγώνων μεγίστου και ελαχίστου εμβαδού (triangles.c). Αυτο-αναφορικές δομές. Συνδεδεμένες λίστες. Δυαδικά δέντρα. Ταξινομημένα δυαδικά δέντρα. Δημιουργία νέων ονομάτων τύπων (εντολή typedef). Ενώσεις. Πεδία bit. Υλοποίηση εύρεσης μήκους λίστας με επαναληπτικό και αναδρομικό τρόπο. Ανακοίνωση 4ης εργασίας. |
20 | 10/1/2022 | Πρόγραμμα διαχείρισης συνδεδεμένων λιστών (listmanagement.c). Αναδρομικές υλοποιήσεις συναρτήσεων διαχείρισης λιστών. Πρόγραμμα διαχείρισης δυαδικών δέντρων (treemanagement.c). Πρότυπη βιβλιοθήκη εισόδου/εξόδου της C. Προκαθορισμένα ρεύματα (stdin, stdout και stderr). Ανακατεύθυνση πρότυπης εισόδου και πρότυπης εξόδου. Σωληνώσεις. Συναρτήσεις getchar, putchar, puts και gets. |
21 | 14/1/2022 | Συνέχεια με τις συναρτήσεις της πρότυπης βιβλιοθήκης εισόδου/εξόδου της C. Συναρτήσεις printf, scanf, fopen, fclose, fgets, feof, getc, putc, ungetc, fprintf, fscanf, sprintf, sscanf, fread, fwrite, fseek, ftell, fflush και perror. Πρόγραμμα αντιγραφής αρχείων (filecopy.c). Πρόγραμμα εκτύπωσης γραμμών εισόδου με αντίστροφη σειρά (revinput.c). Ο προεπεξεργαστής της C. Οδηγία #include. Οδηγία #define. Μακροεντολές. |
22 | 17/1/2022 | Συνέχεια με τις οδηγίες προς τον προεπεξεργαστή. Μεταγλώττιση υπό συνθήκη. Οδηγίες #if, #else, #elif, #endif, #ifdef και #ifndef. Ταξινόμηση πινάκων. Γενικά περί πολυπλοκότητας αλγορίθμων. Μέθοδοι ταξινόμησης πινάκων. Η μέθοδος της φυσαλίδας. Η μέθοδος της επιλογής. Η μέθοδος της εισαγωγής. Η γρήγορη μέθοδος. Μέθοδοι ταξινόμησης της συγχώνευσης και του Shell. Πρόγραμμα επίδειξης μεθόδων ταξινόμησης (sorting.c). |
23 | 21/1/2022 | Αναζήτηση σε πίνακες. Σειριακή αναζήτηση και δυαδική αναζήτηση. Μέθοδος ταξινόμησης του σωρού. Πρόγραμμα επίδειξης μεθόδων αναζήτησης σε πίνακες (searching.c). Επιθυμητά χαρακτηριστικά ενός προγράμματος C. Συχνά προγραμματιστικά λάθη στην C. |