Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 1 / 50
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι (Θ) 1 Δομές δεδομένων - Πίνακες 2 Πίνακες Χαρακτήρων Μονοδιάστατοι Πίνακες Χαρακτήρων 3 Ασκήσεις Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 2 / 50
Contents 1 Δομές δεδομένων - Πίνακες 2 Πίνακες Χαρακτήρων Μονοδιάστατοι Πίνακες Χαρακτήρων 3 Ασκήσεις Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 3 / 50
Δομές δεδομένων - Πίνακες Οι πίνακες είναι μια στατική δομή δεδομένων Ο πίνακας δίνει τη δυνατότητα στον προγραμματιστή να δημιουργήσει μια δομή δεδομένων στην οποία μπορεί να αποθηκεύσει (καταχωρίσει) πολλές τιμές. Ο προγραμματιστής αναφέρεται και διαχειρίζεται τα δεδομένα τα οποία έχουν αποθηκευτεί σε πίνακα με τη βοήθεια ενός ονόματος και των δεικτών του πίνακα. Οι δείκτες του πίνακα σε C ξεκινούν από το μηδέν και είναι μια αύξουσα ακολουθία. Η τιμή του δείκτη μας δείχνει την θέση του πίνακα. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 4 / 50
Δομές δεδομένων - Πίνακες Οι πίνακες μπορούν να έχουν πολλές διαστάσεις Οι μονοδιάστατοι πίνακες οι οποίοι έχουν ένα δείκτη Οι δισδιάστατοι πίνακες οι οποίοι έχουν δυο δείκτες Οι πολυδιάστατοι πίνακες οι οποίοι έχουν αριθμό δεικτών αντίστοιχο με τις διαστάσεις του πίνακα. Η διαχείριση και επεξεργασία των στοιχείων ενός πίνακα γίνεται με την βοήθεια επαναληπτικών εντολών Η πιο κατάλληλη επαναληπτική εντολή για την επεξεργασία πινάκων είναι η εντολή. (είναι προφανές ότι για την επεξεργασία πινάκων μπορούμε να χρησιμοποιήσουμε όποια εντολή επανάληψης θέλουμε) Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 5 / 50
Δομές δεδομένων - Πίνακες Τα στοιχεία ενός πίνακα πρέπει να είναι ιδίου τύπου Ένας πίνακας μπορεί να δηλωθεί σύμφωνα με τους γνωστούς τύπους δεδομένων της C, δηλαδή,,, κ.α. Οι πιο συνηθισμένοι τύποι πινάκων που χρησιμοποιούνται είναι οι αριθμητικοί (arrays) και οι αλφαριθμητικοί ή συμβολοσειρές (strings) Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 6 / 50
Contents 1 Δομές δεδομένων - Πίνακες 2 Πίνακες Χαρακτήρων Μονοδιάστατοι Πίνακες Χαρακτήρων 3 Ασκήσεις Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 7 / 50
Μονοδιάστατοι Πίνακες Χαρακτήρων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 8 / 50
Αρχικοποίηση I Αρχικοποίηση στοιχείων μονοδιάστατου πίνακα χαρακτήρων 1 2 3 4 5 6 7 8 9 10 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 9 / 50
Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 10 / 50
Αρχικοποίηση - Εμφάνιση II 12 13 14 15 16 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 11 / 50
Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 12 / 50
Αρχικοποίηση - Εμφάνιση II 12 13 14 15 16 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 13 / 50
Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 14 / 50
Αρχικοποίηση - Εμφάνιση II 12 13 14 15 16 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 15 / 50
Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 16 / 50
Αρχικοποίηση - Εμφάνιση II 12 13 14 15 16 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 17 / 50
Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα χαρακτήρων ως αλφαριθμητικό ( ) 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 18 / 50
Αρχικοποίηση - Εμφάνιση II 12 13 14 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 19 / 50
Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα χαρακτήρων ως αλφαριθμητικό ( ) 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 20 / 50
Αρχικοποίηση - Εμφάνιση II 12 13 14 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 21 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων ( ) 1 2 3 4 5 6 7 8 9 10 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 22 / 50
Εκχώρηση - Επεξεργασία II Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 23 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων ( ) 1 2 3 4 5 6 7 8 9 10 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 24 / 50
Εκχώρηση - Επεξεργασία II Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 25 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 26 / 50
Εκχώρηση - Επεξεργασία II 12 13 Πρόβλημα με την εισαγωγή στοιχείων λόγω της. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 27 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 28 / 50
Εκχώρηση - Επεξεργασία II 12 13 Διόρθωση στο πρόβλημα με την εισαγωγή στοιχείων λόγω της με αλλαγή της με την ή με αλλαγή στη σειρά εκτέλεσης. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 29 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 30 / 50
Εκχώρηση - Επεξεργασία II 12 13 14 15 16 17 18 19 20 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 31 / 50
Εκχώρηση - Επεξεργασία III Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 32 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 33 / 50
Εκχώρηση - Επεξεργασία II 12 13 14 15 16 17 18 19 20 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 34 / 50
Εκχώρηση - Επεξεργασία III Πρόβλημα με την εισαγωγή στοιχείων λόγω της. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 35 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 36 / 50
Εκχώρηση - Επεξεργασία II 12 13 14 15 16 17 18 19 20 21 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 37 / 50
Εκχώρηση - Επεξεργασία III Διόρθωση στο πρόβλημα με την εισαγωγή στοιχείων λόγω της με προσθήκη της. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 38 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 39 / 50
Εκχώρηση - Επεξεργασία II 12 13 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 40 / 50
Εκχώρηση - Επεξεργασία III Πρόβλημα με την εισαγωγή στοιχείων λόγω του μήκους του πινάκα χαρακτήρων. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 41 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 42 / 50
Εκχώρηση - Επεξεργασία II 12 13 14 15 16 17 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 43 / 50
Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα χαρακτήρων ανά στοιχείο 1 2 3 4 5 6 7 8 9 10 11 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 44 / 50
Εκχώρηση - Επεξεργασία II 12 13 14 15 16 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 45 / 50
Contents 1 Δομές δεδομένων - Πίνακες 2 Πίνακες Χαρακτήρων Μονοδιάστατοι Πίνακες Χαρακτήρων 3 Ασκήσεις Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 46 / 50
Άσκηση 1 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να δέχεται ένα αλφαριθμητικό μέχρι 100 χαρακτήρων και να υπολογίζει και να εμφανίζει το πλήθος εμφάνισης ενός δοθέντα χαρακτήρα το πλήθος εμφάνισης ενός δοθέντος αλφαριθμητικού με τρεις χαρακτήρες Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 47 / 50
Άσκηση 2 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να δέχεται ένα αλφαριθμητικό μέχρι 100 χαρακτήρων και να υπολογίζει και να εμφανίζει το πλήθος των πεζών γραμμάτων του αλφαριθμητικού το πλήθος των κεφαλαίων γραμμάτων του αλφαριθμητικού το πλήθος των αριθμητικών ψηφίων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 48 / 50
Άσκηση 3 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να δέχεται ένα αλφαριθμητικό μέχρι 100 χαρακτήρων και να υπολογίζει και να εμφανίζει το μήκος του αλφαριθμητικού να αλλάζει τα πεζά με κεφαλαία γράμματα Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 49 / 50
Άσκηση 4 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να δέχεται μια ηλεκτρονική διεύθυνση (e-mail) του ΤΕΙ και να ελέγχει αν είναι έγκυρο. Θεωρείστε ότι μια ηλεκτρονική διεύθυνση (e-mail) είναι έγκυρη όταν περιέχει τον χαρακτήρα πριν τον χαρακτήρα θα πρέπει να περιέχονται μόνο γράμματα ή αριθμοί μετά τον χαρακτήρα θα πρέπει να περιέχεται το domain Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 50 / 50