Αλγοριθμική και Δομές Δεδομένων
Αλγοριθμική και Δομές Δεδομένων Γλώσσα Προγραμματισμού Ι (PASCAL) ( A΄ εξ.)
Ώρες μαθήματος/εβδομάδα(Θ, Ε, Σ): 2,3,5
Σκοπός - Μαθησιακά Αποτελέσματα Σκοπός του μαθήματος είναι να γνωρίσουν οι καταρτιζόμενοι τις βασικές έννοιες της ανάλυσης και της σύνθεσης ενός προβλήματος, τους κωδικοποιημένους τρόπους παρουσίασης μιας λύσης και τις βασικές αλγοριθμικές δομές. Επίσης να εξοικειωθούν στο σωστό σχεδιασμό αλγορίθμων χρησιμοποιώντας τις κατάλληλες δομές δεδομένων με βασικότερο στόχο την εισαγωγή τους στον αλγοριθμικό τρόπο επίλυσης προβλημάτων με τον οποίο άλλωστε πρέπει να είναι εξοικειωμένοι όποιοι ασχολούνται επαγγελματικά σε οποιονδήποτε κλάδο της πληροφορικής. Παράλληλα να αποκτήσουν την ικανότητα κωδικοποίησης ενός απλού αλγορίθμου στη γλώσσα προγραμματισμού C.
Περιεχόμενο του Μαθήματος: 16
ΘΕΩΡΙΑ
Ανάλυση - Σύνθεση προβλήματος (Θ)
Ανάλυση και σύνθεση προβλήματος
Καθορισμός απαιτήσεων
Βασικές έννοιες αλγορίθμων
Αλγόριθμοι: βασικές έννοιες - χαρακτηριστικά
Τρόποι παρουσίασης αλγορίθμου (ελεύθερο κείμενο, φυσική γλώσσα, έννοιες σταθερών/μεταβλητών - βασικοί τύποι, έννοιες εντολών ανάγνωσης, εμφάνισης, εκχώρησης, ψευδοκώδικας - αρχική προσέγγιση)
Διαγράμματα ροής
Βασικές αλγοριθμικές δομές (Θ+Ε)
Δομή Ακολουθίας
Δομή Επιλογής (απλή επιλογή, πεπερασμένη επιλογή, πολλαπλή επιλογή, εμφωλευμένη)
Δομή Επανάληψης (κατά συνθήκη επανάληψη, πεπερασμένη επανάληψη)
Σχεδίαση αλγορίθμων (Θ+Ε)
Λογικές πράξεις /συνθήκες
Σχεδίαση απλών αλγορίθμων
Δομές Δεδομένων και Αλγόριθμοι (Θ+Ε)
Δεδομένα
Αλγόριθμοι + Δομές Δεδομένων = προγράμματα
Πίνακες - Εγγραφές (Θ+Ε)
Πίνακας: απλός, δυσδιάστατος, ν-Διάστατος
Αναζήτηση στοιχείων πίνακα (σειριακή αναζήτηση, δυαδική αναζήτηση)
Ταξινόμηση στοιχείων πίνακα (με επιλογή/selectionsort, φυσαλίδας/bubblesort, shellsort, γρήγορη ταξινόμηση)
Στοίβα
Ουρά
Εισαγωγή στον προγραμματισμό (Θ+Ε)
Η έννοια του προγράμματος
Βασικά στοιχεία προγραμματισμού (αλφάβητο, τύποι δεδομένων, σταθερές, μεταβλητές, αριθμητικοί τελεστές, συναρτήσεις, αριθμητικές εκφράσεις, εντολή εκχώρησης, εντολές εισόδου, εξόδου, δομή προγράμματος, Μεταβλητές - Τύποι - Τελεστές, Δηλώσεις μεταβλητών, Βασικοί τύποι δεδομένων).
ΕΡΓΑΣΤΗΡΙΟ
Εξέλιξη της C
Παραδείγματα απλών προγραμμάτων (υλοποίηση απλών αλγορίθμων)
Βήματα για τη γραφή και εκτέλεση ενός προγράμματος
Συναρτήσεις Βιβλιοθήκης
Υλοποίηση απλών προγραμμάτων (με κλήση συναρτήσεων βιβλιοθήκης)
Οι λέξεις της C
Βήματα για την γραφή και εκτέλεση ενός προγράμματος
Συναρτήσεις Βιβλιοθήκης
Υλοποίηση απλών προγραμμάτων (με κλήση συναρτήσεων βιβλιοθήκης π.χ. )
Η δήλωση #include
Η δήλωση #define 17
Συντακτικοί κανόνες
Τελεστές
Strings
Μεταβλητές
Σταθερές
ΜΕΤΑΒΛΗΤΕΣ - ΤΥΠΟΙ- ΤΕΛΕΣΤΕΣ
Δηλώσεις μεταβλητών
Βασικοί τύποι δεδομένων (char, int, float και συνδυασμοί αυτών με λέξεις unsigned, long, short)
Εκφράσεις, Προτάσεις, Εντολή Εκχώρησης
Ο ακέραιος τύπος (int) και οι αριθμητικοί τελεστές
Ο τύπος float
Ο τύπος char
Ο τύπος double
Λογικοί τελεστές (!, &&, ||)
Bitwise τελεστές (~, &, ^, |, <<, >>)
Μετατροπές Τύπων (casting)
ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ ΚΑΙ ΕΠΑΝΑΛΗΨΗΣ
Η Σύνθετη πρόταση
Εντολή IF-ELSE
Τελεστής ? (Υπο συνθήκη)
Εντολή WHILE
Εντολή FOR
Εντολή DO
Εντολή SWITCH
Εντολή DO WHILE
Εντολές BREAK, CONTINUE, GOTO
ΣΥΝΑΡΤΗΣΕΙΣ
Γενική μορφή συνάρτησης - Τρόπος δήλωσης των παραμέτρων της
Εντολή Return - Επιστροφή τιμή Συνάρτησης
Κανόνες Εμβέλειας. Τοπικές (Local) και Σφαιρικές (global) μεταβλητές
Ορίσματα Συναρτήσεων και κλήση αυτών
Κλήση συνάρτησης με πίνακες
Τα ορίσματα arg και argv στην συνάρτηση main ()
Επιστρεφόμενες Μη ακέραιες τιμές από Συναρτήσεις
Επιστροφή Δεικτών (Συναρτήσεις)
Συναρτήσεις τύπου Void
Recursion (Επανενεργοποίηση ή αναδρομή) ΔΕΙΚΤΕΣ - ΠΙΝΑΚΕΣ - STRINGS
Ορισμός δείκτη 18
Τελεστές δεικτών Αριθμητική δεικτών
Ο δείκτης ως παράμετρος σε συνάρτηση (Callby reference)
Πίνακες μιας διάστασης
Η σχέση δεικτών και Πινάκων
Πίνακες παράμετροι σε συναρτήσεις
Strings και δείκτες Πίνακες περισσοτέρων διαστάσεων
Δείκτες σε δείκτες και απόδοση αρχικών τιμών σε δείκτες
Αναδρομή
Συνάρτηση ως παράμετρος συνάρτησης
Μακροεντολές
Μεταγλώττιση υπό συνθήκες (#if, #ifdef, #ifndef)
- Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
- Αλγοριθµική και Δοµές Δεδοµένων Ι.Ε.Κ. Κέρκυρας Χριστοπούλου 2014 lalos.gr/images/simeioseis/TheoryNotes.pdf
- Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές έννοιες αλγορίθμων
- Αλγοριθμική και Δομές Δεδομένων Γλώσσα Προγραμματισμού Ι
- Διαδικαστικός
Προγραμματισμός
(Η γλώσσα C) Μαστοροκώστας 2015
- ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ - PASCAL ΙΕΚ ΕΔΕΣΣΑΣ Δαλκαλίτσης - Κωνσταντινίδου 2014
- Αλγόριθμοι και Προγράμματα