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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Επεξεργασία κειμένου και συμβολοσειρών σε C

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

Προγραμματισμός Η/Υ. Ενότητα 6: Πίνακες και Δείκτες

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Λογιστικές Εφαρμογές Εργαστήριο

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό

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

Περιβαλλοντική Χημεία

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

Υδραυλικά & Πνευματικά ΣΑΕ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 3: Είσοδος και Έξοδος Δεδομένων

Ειδικά Θέματα Προγραμματισμού

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

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Βιομηχανικοί Ελεγκτές. Ενότητα: ΕΡΓΑΣΤΗΡΙΟ 7 ΜΕΣΗ ΤΙΜΗ ΑΝΑΛΟΓΙΚΟΥ ΣΗΜΑΤΟΣ

Ηλεκτρονικοί Υπολογιστές

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

11 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

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

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

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 3: Αποκατάσταση Εικόνας.

Στατιστική Επιχειρήσεων Ι

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Βιομηχανικοί Ελεγκτές. Ενότητα: ΕΡΓΑΣΤΗΡΙΟ 1 ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΑΦΟΡΑΣ

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

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

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Χαρακτήρες Ένας χαρακτήρας κωδικοποιείται σαν ακέραιος με τιμή ανάμεσα στο 0 και το 255, επομένως ο τύπος δεδομένων char, που έχει μέγεθος 1 byte, μπορεί να χρησιμοποιηθεί για την αποθήκευση χαρακτήρων. Π.χ. char ch; ch = 'c'; Όταν αποθηκεύεται ένας χαρακτήρας σε μία μεταβλητή τύπου char, στην πραγματικότητα αποθηκεύεται η ASCII τιμή του χαρακτήρα

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

ASCII πίνακας

Συνάρτηση getchar() Η συνάρτηση getchar() διαβάζει έναν χαρακτήρα από το stdin (πληκτρολόγιο) int getchar(); Αν δεν υπάρχει άλλος χαρακτήρας στο stdin για να διαβαστεί ή αν συμβεί κάποιο λάθος, η getchar() επιστρέφει μία ειδική σταθερά που ονομάζεται EOF και έχει τιμή -1

Αλφαριθμητικά Αλφαριθμητικό (string) είναι μία ακολουθία χαρακτήρων, η οποία πρέπει να τελειώνει με έναν ειδικό χαρακτήρα, ο οποίος είναι ο χαρακτήρας '\0 (τερματικός χαρακτήρας ή null character, ASCII τιμή 0) Μία ακολουθία χαρακτήρων που περιέχεται μέσα σε διπλά εισαγωγικά ονομάζεται κυριολεκτικό αλφαριθμητικό και αποθηκεύεται στη μνήμη σαν να ήταν πίνακας χαρακτήρων. Δεσμεύονται για αυτό θέσεις μνήμης ίσες με το μήκος του και ένας για το \0. Εφόσον είναι πίνακας χαρακτήρων μπορούμε να το χρησιμοποιήσουμε και σαν δείκτη σε χαρακτήρα char*

Μεταβλητές και αρχικοποίηση Η αποθήκευση αλφαριθμητικών γίνεται σε μεταβλητές που δηλώνονται σαν πίνακες χαρακτήρων. Π.χ. char a[9]; char a[9] = { d, i, m, i, t, r, i, s, \0 }; char a[9] = dimitris ; char a[] = dimitris ; char a[40] = dimitris ; Προσοχή στη διαφορά του a (αλφαριθμητικό) και του a (χαρακτήρας)

Εμφάνιση αλφαριθμητικού (1) Για την εμφάνιση αλφαριθμητικού χρησιμοποιούμε το προσδιοριστικό %s στην εντολή printf(). Π.χ. char a[] = dimitris ; printf( %s, a); printf( %s, a+5); printf( %s, &a[5]); Η συνάρτηση printf() εμφανίζει όλους τους χαρακτήρες από τον πρώτο χαρακτήρα στον οποίο δείχνει ο δείκτης μέχρι να συναντήσει τον τερματικό χαρακτήρα ('\0')

Εμφάνιση αλφαριθμητικού (2) Για την εμφάνιση ενός αλφαριθμητικού, μπορούμε να χρησιμοποιήσουμε και τη συνάρτηση puts(). Έχει μοναδική παράμετρο έναν δείκτη στην ακολουθία χαρακτήρων και την εμφανίζει μέχρι να συναντήσει τον τερματικό χαρακτήρα ('\0'). Π.χ. char a[] = dimitris ; puts( a); Στο τέλος της ακολουθίας χαρακτήρων η puts() αντικαθιστά αυτόματα τον τερματικό χαρακτήρα ('\0') με τον χαρακτήρα νέας γραμμής ('\n')

Αλφαριθμητικά ως δείκτες Ένας εναλλακτικός τρόπος για να χειριστούμε ένα κυριολεκτικό αλφαριθμητικό είναι να δηλώσουμε έναν δείκτη που να δείχνει στον πρώτο χαρακτήρα του αλφαριθμητικού αυτού. Π.χ. char *pa= Dimitris ; το οποίο ωστόσο έχει διαφορές με το char a[]= Dimitris ; στην πρώτη περίπτωση η μεταβλητή pa είναι δείκτης σε char, μπορεί να αλλάξει το που δείχνει κατά την εκτέλεση του προγράμματος, και οι χαρακτήρες του Dimitris είναι read-only (συνήθως). Στη δεύτερη περίπτωση παρότι το a είναι επίσης δείκτης με διεύθυνση αυτήν του a[0] δεν μπορεί να δείξει σε άλλο αλφαριθμητικό

Διάβασμα αλφαριθμητικού Η συνάρτηση scanf() σταματάει το διάβασμα του αλφαριθμητικού, όταν συναντήσει τον κενό χαρακτήρα ή τον χαρακτήρα νέας γραμμής Σε αντίθεση με τη συνάρτηση scanf(), η συνάρτηση gets() διαβάζει όλους τους χαρακτήρες μέχρι να συναντήσει τον χαρακτήρα νέας γραμμής ('\n'). Η gets() αντικαθιστά τον χαρακτήρα νέας γραμμής ('\n') με τον τερματικό χαρακτήρα ('\0') Προσοχή! Οι scanf() και gets() δεν ελέγχουν αν υπάρχει διαθέσιμος χώρος για την αποθήκευση όλων των χαρακτήρων του αλφαριθμητικού Εναλλακτικά fgets(str, sizeof(str), stdin); scanf( %40s, str);

Συναρτήσεις αλφαριθμητικών (1) Η συνάρτηση strlen() επιστρέφει τον αριθμό των χαρακτήρων που περιέχει ένα αλφαριθμητικό, χωρίς να μετράει τον τερματικό χαρακτήρα ('\0'). Δέχεται σαν παράμετρο έναν δείκτη προς τη μνήμη που είναι αποθηκευμένη το αλφαριθμητικό size_t strlen(const char *str); Η συνάρτηση strcpy() αντιγράφει ένα αλφαριθμητικό σε μία άλλη θέση μνήμης. Δέχεται σαν παραμέτρους δύο δείκτες και αντιγράφει το αλφαριθμητικό στο οποίο δείχνει ο δεύτερος δείκτης (source), συμπεριλαμβανομένου του τερματικού χαρακτήρα, στη μνήμη που δείχνει ο πρώτος δείκτης (dest). Προσοχή, γιατί δεν ελέγχει τη μνήμη που έχει δεσμευτεί στο πρώτο αλφαριθμητικό char *strcpy(char *dest, const char *source); Η συνάρτηση strcat() συνενώνει δύο αλφαριθμητικά. Δέχεται σαν παραμέτρους δύο δείκτες και προσθέτει το αλφαριθμητικό στο οποίο δείχνει ο δείκτης source στο τέλος της μνήμης που δείχνει ο δείκτης dest char *strcat(char *dest, const char *source);

Συναρτήσεις αλφαριθμητικών (2) Η συνάρτηση strcmp() χρησιμοποιείται για τη σύγκριση αλφαριθμητικών. Δέχεται σαν παραμέτρους δύο δείκτες και συγκρίνει το αλφαριθμητικό στο οποίο δείχνει ο δείκτης str1 με το αλφαριθμητικό στο οποίο δείχνει ο δείκτης str2 Αν τα δύο αλφαριθμητικά είναι ακριβώς ίδια, τότε η συνάρτηση strcmp() επιστρέφει την τιμή μηδέν (0). Αν το πρώτο αλφαριθμητικό είναι μικρότερο από το δεύτερο, τότε επιστρέφει μία αρνητική τιμή, ενώ αν είναι μεγαλύτερο επιστρέφει μία θετική τιμή int strcmp(const char *str1, const char *str2); Ένα αλφαριθμητικό θεωρείται μικρότερο από κάποιο άλλο αν: α) η τιμή του πρώτου μη κοινού χαρακτήρα είναι μικρότερη από την τιμή του αντίστοιχου χαρακτήρα στο δεύτερο αλφαριθμητικό, β) οι χαρακτήρες τους είναι οι ίδιοι, αλλά το μήκος του είναι μικρότερο

Διδιάστατοι πίνακες αλφαριθμητικών Μπορούμε να χειριστούμε το καθένα από τα N στοιχεία a[0], a[1],..., a[n-1] ενός διδιάστατου πίνακα, έστω char a[n][m], σαν δείκτη σε πίνακα που περιέχει τα Μ στοιχεία της αντίστοιχης γραμμής

Τέλος Ενότητας