Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Σχετικά έγγραφα
Διαδικασιακός Προγραμματισμός

scanf() scanf() stdin scanf() printf() int float double %lf float

Διαδικασιακός Προγραμματισμός

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Δομημένος Προγραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Διαδικασιακός Προγραμματισμός

Μεταβλητές τύπου χαρακτήρα

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Η γλώσσα προγραμματισμού C

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στον Προγραμματισμό

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Διαδικασιακός Προγραμματισμός

Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραμματισμός Η/Υ (ΤΛ2007 )

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εξοικ Εξ ε οικ ίωση ε με το το πρόγ ραμμα πρόγ DEV C++ Επικοι Επικ νωνία οι Χρήσ Χρήστη τη Υπολ Υπο ογισ λ τή

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Ι (ΗΥ120)

Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Διαδικασιακός Προγραμματισμός

5 &6. Τύποι δεδομένων, τελεστές και

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Επεξεργασία Αρχείων Κειµένου

Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C»

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

Η γλώσσα προγραμματισμού C

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

Διαδικασιακός Προγραμματισμός

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Ενδεικτική περιγραφή μαθήματος

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

for for for for( . */

Η γλώσσα προγραμματισμού C

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Προγραµµατισµός Ι (ΗΥ120)

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ.

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

Προγραμματισμός I (Θ)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Η γλώσσα προγραμματισμού C

Διάλεξη 8η: Αλφαριθμητικά (strings)

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

int abs( int x ), επιστρέφει την απόλυτη τιμή του ακεραίου x Πχ abs( 11) ισούται με 11, abs(34) ισούται με 34 double fb( fabs( double x ), επιστρέφει

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Εισαγωγή στον Προγραµµατισµό «C»

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός Ι (ΗΥ120)

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεθόδων Επίλυσης Προβλημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Διαδικασία Ανάπτυξης Λογισμικού

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Transcript:

Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι

Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους δεδομένων int, float και double Ο τύπος δεδομένων char είναι κι αυτός αριθμητικός Για τη διαχείριση των χαρακτήρων (και των αλφαριθμητικών στο επόμενο κεφάλαιο), θα θεωρήσουμε ότι το σύνολο των χαρακτήρων που υποστηρίζει ο υπολογιστής είναι κωδικοποιημένο σύμφωνα με το πιο διαδεδομένο πρότυπο, τον κώδικα ASCII, που αντιστοιχίζει κάθε χαρακτήρα σε μία αριθμητική τιμή Ο ASCII κώδικας αντιστοιχίζει (κωδικοποιεί) ένα σύνολο χαρακτήρων που αποτελείται από γράμματα, αριθμούς, σημεία στίξης, κτλ... με ακέραιες τιμές ανάμεσα στο 0 και το 255 Π.χ. η ASCII τιμή του χαρακτήρα 'C' είναι το 67, ενώ η ASCII τιμή του χαρακτήρα 'c' είναι το 99

Πίνακας ASCII (βασικοί χαρακτήρες)

Πίνακας ASCII (επιπλέον χαρακτήρες)

Ο τύπος char (Ι) Αφού ένας χαρακτήρας κωδικοποιείται σαν ακέραιος με τιμή ανάμεσα στο 0 και το 255, ο τύπος δεδομένων char, που έχει μέγεθος 1 byte, μπορεί να χρησιμοποιηθεί για την αποθήκευση χαρακτήρων Στο επόμενο παράδειγμα δηλώνεται μία μεταβλητή τύπου char με το όνομα ch και αποθηκεύεται ο χαρακτήρας 'c' σε αυτήν char ch; ch = 'c'; Όταν χρησιμοποιείται κάποιος σταθερός χαρακτήρας πρέπει να περικλείεται σε μονές αποστρόφους (' ') και όχι σε διπλά εισαγωγικά

Ο τύπος char (ΙΙ) Όταν αποθηκεύεται ένας χαρακτήρας σε μία μεταβλητή τύπου char, στην πραγματικότητα αποθηκεύεται η ASCII τιμή του χαρακτήρα Δηλαδή, στο προηγούμενο παράδειγμα στη μεταβλητή ch αποθηκεύτηκε η τιμή 99 Επομένως, οι εντολές: ch = 'c'; και ch = 99; είναι ισοδύναμες Παρατηρήστε ότι οι πιο συνηθισμένοι χαρακτήρες, όπως γράμματα, ψηφία και σημεία στίξης αντιστοιχίζονται σε αριθμητικές τιμές ανάμεσα στο 0 και το 127 Οι χαρακτήρες με τιμές από 128 έως 255 αποτελούν το εκτεταμένο ASCII σύνολο και αντιστοιχίζονται σε εξεζητημένα γράμματα και ειδικά σύμβολα Επειδή η μέγιστη τιμή που μπορεί να πάρει μία μεταβλητή char είναι το 127 (θυμηθείτε ότι το εύρος τιμών του char είναι -128 127) σε περίπτωση που θέλουμε να αποθηκεύσουμε σε μία μεταβλητή char ένα χαρακτήρα με ASCII τιμή μεγαλύτερη από 127, πρέπει να χρησιμοποιήσουμε τον τύπο unsigned char ή int

Εμφάνιση Χαρακτήρα Για την εμφάνιση ενός χαρακτήρα στην οθόνη (μέσω της printf()) χρησιμοποιείται το %c, ενώ για την εμφάνιση της ASCII τιμής του χρησιμοποιείται αντίστοιχα το %d Στο παράδειγμα δηλώνεται μία μεταβλητή τύπου char με το όνομα ch και αποθηκεύεται ο χαρακτήρας 'a' σε αυτήν Στη συνέχεια εμφανίζεται στην οθόνη ο χαρακτήρας αυτός καθώς και η αντίστοιχη ASCII τιμή του, χρησιμοποιώντας τα προσδιοριστικά μετατροπής %c και %d, αντίστοιχα Ουσιαστικά, όταν ένας χαρακτήρας περιέχεται σε μία έκφραση είτε είναι σταθερά είτε μεταβλητή η C τον χειρίζεται σαν ακέραιο και χρησιμοποιεί την ASCII τιμή του

Παρατηρήσεις Ουσιαστικά, κάθε χαρακτήρας δεν είναι τίποτα άλλο παρά ένας μικρός ακέραιος αριθμός από 0 έως και 255 Ανάλογα με το προσδιοριστικό μετατροπής που θα χρησιμοποιήσουμε (%c ή %d) εμφανίζεται ο ίδιος ο χαρακτήρας ή η ASCII τιμή του, αντίστοιχα

Παραδείγματα (I) Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: Char = d and its ASCII code = 100

Παραδείγματα (II) Γράψτε ένα πρόγραμμα το οποίο να εμφανίζει την ASCII τιμή του χαρακτήρα που αντιστοιχεί στην αλλαγή νέας γραμμής ή ισοδύναμα στο πάτημα του πλήκτρου Enter

Παραδείγματα (ΙII) Γράψτε ένα πρόγραμμα το οποίο να εμφανίζει στην οθόνη όλους τους χαρακτήρες και τις αντίστοιχες ASCII τιμές αυτών

Παραδείγματα (ΙV) Παρατηρώντας προσεκτικά τον πίνακα με τις ASCII τιμές των χαρακτήρων, γράψτε ένα πρόγραμμα το οποίο να διαβάζει έναν κεφαλαίο χαρακτήρα και να εμφανίζει τον αντίστοιχο πεζό

Παραδείγματα (V) Να γραφεί ένα πρόγραμμα το οποίο να διαβάζει δύο χαρακτήρες και να εμφανίζει τους χαρακτήρες που βρίσκονται μεταξύ τους στο ASCII σύνολο. Για παράδειγμα, αν ο χρήστης εισάγει af ή fa το πρόγραμμα να εμφανίζει bcde

Η συνάρτηση getchar() Η συνάρτηση getchar() διαβάζει έναν χαρακτήρα από το stdin (το οποίο εξ ορισμού συνδέεται με το πληκτρολόγιο) Το πρωτότυπό της δηλώνεται στο stdio.h, ως εξής: int getchar(); Η getchar() αρχίζει να διαβάζει χαρακτήρες όταν ο χρήστης πατήσει Enter Αν η getchar() εκτελεστεί επιτυχημένα, επιστρέφει τον χαρακτήρα που διαβάστηκε Αν δεν υπάρχει άλλος χαρακτήρας στο stdin για να διαβαστεί ή αν συμβεί κάποιο λάθος, η getchar() επιστρέφει μία ειδική σταθερά που ονομάζεται EOF και έχει τιμή -1 Η getchar() εκτελείται πιο γρήγορα από τη scanf(), γιατί η scanf() είναι μία σύνθετη συνάρτηση που έχει σχεδιαστεί για να διαβάζει διάφορους τύπους δεδομένων και όχι μόνο χαρακτήρες

Παράδειγμα Γράψτε ένα πρόγραμμα το οποίο να εμφανίζει και να μετράει τους χαρακτήρες που εισάγει ο χρήστης μέχρι να πατήσει το πλήκτρο Enter, με χρήση της συνάρτησης getchar()