Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

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

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

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

17. Πολυδιάςτατοι πίνακεσ

16. Πίνακεσ και Συναρτήςεισ

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Δπαλάιεςε Αιθαξηζκεηηθέο εηξέο Υαξαθηήξσλ (Strings) (Γηάιεμε 2) Γηδάζθσλ: Γεκήηξεο Εετλαιηπνύξ

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. Διαφάνειεσ: Βαςικζσ Αρχζσ Προγραμματιςμοφ Α.Π.Θ. Δθμιτρθσ Βράκασ

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

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

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

8 ΥΜΒΟΛΟΕΙΡΕ - STRINGS

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

Βαγγζλθσ Οικονόμου Διάλεξθ 7. Συναρτιςεισ Μζροσ 2ο

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

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

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

343 Ειςαγωγι ςτον Προγραμματιςμό

Παράςταςη ςυμπλήρωμα ωσ προσ 1

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

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Εργαςτιριο Βάςεων Δεδομζνων

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

ΟΝΟΜΑΣΟΛΟΓΙΑ ΠΑΡΑΜΕΣΡΩΝ ΓΙΑ ΠΡΟΑΡΜΟΜΕΝΕ ΑΝΑΦΟΡΕ. παραμζτρου> (Εμφανίηεται ςαν Caption ςτθν φόρμα των φίλτρων).

Χpήσιµες Βιβλιοθήκες της γλώσσας C

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

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

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

Οντοκεντρικόσ Προγραμματιςμόσ

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

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

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

22. Ασκήσεις Επανάληψης

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ

Βάρειπ Δεδξμέμωμ. Επγαστήπιο ΙΙ. Τμήμα Πλεπουοπικήρ ΑΠΘ

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

343 Ειςαγωγι ςτον Προγραμματιςμό

Ιδιότθτεσ πεδίων Γενικζσ.

ΥΡΟΝΣΙ ΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣ Η» ΔΙΑΓΩΝΙ ΜΑ ΑΕΠΠ

Θεςιακά ςυςτιματα αρίκμθςθσ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

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

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

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

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

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

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

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

ΜΑΘΗΜΑΤΙΚΑ ΕΠΙΠΕΔΟ (Β - Γ Λυκείου)

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

Οντοκεντρικόσ Ρρογραμματιςμόσ

= = 124

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Διαδικασία Δημιοσργίας Ειδικών Λογαριασμών. (v.1.0.7)

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

ΔΙΑΧΕΙΡΙΗ ΛΟΓΙΣΙΚΟΤ ΓΡΑΦΕΙΟΤ

Οντοκεντρικόσ Προγραμματιςμόσ

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

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

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

343 Ειςαγωγι ςτον Προγραμματιςμό

Εγχειρίδιο Χρήςησ Support

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

343 Ειςαγωγι ςτον Προγραμματιςμό

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

GNSS Solutions guide. 1. Create new Project

Visual C Express - Οδηγός Χρήσης

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Οδηγίες Πρόζβαζης ζηο EndNote Web. Πρόζβαζη ζηο EndNote Web

Αςφάλεια και Προςταςία Δεδομζνων

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

Πρόςβαςη και δήλωςη μαθημάτων ςτον Εφδοξο

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Transcript:

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων 18. Αλφαριθμητικά Ιωάννθσ Κατάκθσ

Αλφαρικμθτικά o Ζνα string είναι μία ακολουκία χαρακτιρων, ςθμείων ςτίξθσ κτλ Hello How are you? 121212 *Apple#123*% Σιμερα 1. Ειςαγωγικζσ Ζννοιεσ ςε Strings(Αρχικοποίθςθ, Ανάγνωςθ & Εκτφπωςθ) 2. Ρίνακεσ από Strings 3. Συναρτιςεισ Βιβλιοκικθσ <string.h>

Ειςαγωγι o Ζχουμε ιδθ χρθςιμοποιιςει ςε διάφορεσ περιπτϊςεισ τα strings printf( Hello ); o Μζχρι τϊρα όμωσ, δεν αναφερόμαςταν ςτα strings με τθ χριςθ μεταβλθτϊν o Στθ C δεν υπάρχει ο τφποσ String (όπωσ float, int και char), αλλά αυτόσ υλοποιείτε ωσ πίνακεσ χαρακτιρων 0 1 2 3 4 5 H E L L O \0 o Ειςάγουμε τϊρα τθν ζννοια των Strings (αντί πιο πριν), διότι τϊρα ζχουμε κάποια εμπειρία με πίνακεσ

Αρχικοποίθςθ String Ζνασ πίνακασ από χαρακτιρεσ που τελειϊνει με το χαρακτιρα NULL \0 Hello\0, Hi there\0, \0 (Ρροςοχι το \0 δεν φαίνεται ςτθν οκόνθ) Υπάρχουν διάφοροι τρόποι να ορίςουμε ζνα String ςτθ C, ανάλογα με το αν γνωρίηουμε το string εκ των προτζρων ι όχι Α) Αρχικοποίθςθ (γνωρίηοντασ εκ των πρότερων το String) o char msg[ += Hello ; o Δθμιουργεί αυτόματα το 0 1 2 3 4 5 H E L L O \0

Αρχικοποίθςθ string Σσνίζηαηαι ασηός ο οριζμός char msg[ ]= Hello αλλά σπάρτοσν και άλλοι ηρόποι Σωζηό char msg[6]; msg[0] = 'H'; msg[1] = 'e'; msg[2] = 'l'; msg[3] = 'l'; msg[4] = 'o'; msg[5] = '\0'; Λάθος char msg[ ]={ H, e, l, l, o }; Σωζηό char msg[ ]={ H, e, l, l, o, \0 }; Σωζηό char msg[6]={ H, e, l, l, o, \0 }; Σωζηό char msg[40]= Hello Λάθος char msg[5]={'h','e','l','l','o','\0'}; Δεν δεζμεύοσμε αρκεηό τώρο Πίνακας ταρακηήρων ποσ δεν ηελειώνει ζε \0. Επομένως δεν είναι String

Αρχικοποίθςθ string Ασ δοφμε πωσ εκτελοφνται οι ακόλουκοι οριςμοί char msg*10+= Hello ; 0 1 2 3 4 5 H E L L O \0 6 7 8 9???? SIZE=10 Τν? είλαη απξνζδηόξηζηνο ραξαθηήξαο char msg[ += Hello ; SIZE=6 0 1 2 3 4 5 H E L L O \0

Διάφορα char και string Ασ δοφμε πωσ μοιάηουν εικονικά οι ακόλουκοι οριςμοί char c = H ; Ο ραξαθηήξαο H βξίζθεηαη θάπνπ ζηελ κλήκε??? H?????? char c[ ]= H ; Τν string H βξίζθεηαη θάπνπ ζηελ κλήκε 0 1 2 3 4 5 H \0 char c= H ; ΛΑΘΟΣ ζηη μεηαγλώηηιζη

Αρχικοποίθςθ string Ερϊτθςθ o Τι γίνεται αν δεν γνωρίηουμε το String εκ των πρότερων? o Ρόςο χϊρο πρζπει να δεςμεφςουμε? Απάντθςθ o Αρκετό για να χωρζςει διάφορα δεδομζνα ειςόδου που πρόκειται να ειςάγουμε Αν πρόκειται να αποκθκεφςουμε κάποιο όνομα τότε 20 χαρακτιρεσ φαίνεται να αρκοφν

Ανάγνωςθ / Εκτφπωςθ scanf ( %s, name) Ρροςοχι: Δεν χρθςιμοποιείτε το &, γιατί το name είναι πίνακασ printf ( %s, name)

Ανάγνωςθ / Εκτφπωςθ #include <stdio.h> int main() { char name[20]; scanf("%s", name); printf("%s", name); return 0; } 0 1 2 3 4 5 M A R I A \0 Τν printf γλωξίδεη όηη ε εθηύπωζε πξέπεη λα γίλεη κέρξη ην \0 6.. 19????

Ανάγνωςθ / Εκτφπωςθ string Ρρόγραμμα που προςκζτει ζνα «Α» ςτθν κζςθ 5 και τερματίηει το string #include <stdio.h> int main() { char name[20]; scanf("%s", name); name[5]= Α ; name[6]= \0 ; printf("%s", name); return 0; } Πξίλ 0 1 2 3 4 5 M A R I A \0 Μεηά 0 1 2 3 4 5 M A R I A A 6.. 19???? 6.. 19 \0???

Ανάγνωςθ / Εκτφπωςθ string Μποροφμε βζβαια, να διαβάςουμε πολλαπλά πεδία ταυτόχρονα int id; char tname[20]; scanf( %s %d,tname,&id); printf( You entered : %s and %d,tname, id); Αν δϊςει κανείσ τιμι ειςόδου MARIA 5 Τότε κα εκτυπωκεί «You entered : MARIA and 5»

Κοινό Λάκοσ (Ανάκεςθ ςε String) o Υποκζςτε ότι ζχουμε τθν παρακάτω διλωςθ char name [50]= ioannis ; o Δεν επιτρζπετε να ανακζςουμε ζνα string ςε ζνα άλλο (όπωσ ςτουσ υπόλοιπουσ τφπουσ) name= hydrogen ; Λάκοσ (compiler error) name={ h, y, d, r, o, \0 }; Λάκοσ (compiler error) o Μποροφμε όμωσ να αλλάξουμε τα ςτοιχεία του πίνακα όπωσ γνωρίηουμε name[0+= h ; name*1+= y ; Σωςτό Πμωσ, υπάρχει ευκολότεροσ τρόποσ τον οποίο κα δοφμε ςε λίγο

Ρίνακεσ από Strings o Είπαμε ότι το String είναι ζνασ μονοδιάςτατοσ πίνακασ από χαρακτιρεσ που τελειϊνει ςε \0 o Μποροφμε να ζχουμε πίνακεσ από Strings? Ναι (Λίςτα με ονόματα, θμζρεσ, κτλ) o Ραραδείγματα char names[num_students][name_len]; char weekdays*7+*10+=, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday -; 0 1 2 3 4 5 6 0 M o n d a y \0 \0? \0?? 1 T u e s d a y \0?? 6 S u n d a y \0???

Συχνζσ λειτουργίεσ με string Υπάρχουν κάποιεσ λειτουργίεσ που είναι πολφ ςυχνζσ πάνω ςε αλφαρικμθτικά: o Σφγκριςθ δυο strings o Αντιγραφι από ζνα string ςε άλλο Ολόκλθρο ι μζροσ του o Ζνωςθ δφο strings o Διαπίςτωςθ αν υπάρχει κάποιο string μζςα ςε ζνα άλλο Η Βηβιηνζήθε <String.h> πεξηέρεη ζπλαξηήζεηο γηα όια ηα παξαπάλω Γηα εμάζθεζε ζα πινπνηήζνπκε θάπνηεο από ηηο ζπλαξηήζεηο κόλνη καο

Η βιβλιοκικθ string.h o Το αρχείο επικεφαλίδα (header file), string.h, παρζχει ςυναρτιςεισ για χειριςμό strings o Ρεριζχει διάφορεσ ςυναρτιςεισ strlen(s), υπολογίηει το μζγεκοσ του string strcpy(s1,s2), αντιγράφει το s2 ςτο s1 strcat(s1,s2), προςκζτει το s2 ςτο s1 strcmp(s1,s2), ςυγκρίνει το s1 με s2 και επιςτρζφει κετικι τιμι εάν s1 μεγαλφτερο (αλφαβθτικά) από το s2, μθδζν αν είναι ίςα, και αρνθτικι τιμι εάν s1 μικρότερο από s2 (θ ςφγκριςθ γίνεται βάςει του πίνακα ASCII)

Η ςυνάρτθςθ strlen() o H ςυνάρτθςθ strlen μετρά το μζγεκοσ ενόσ String char msg*10+= HELLO 0 1 2 3 4 5 H E L L O \0 6 7 8 9???? o printf( %d, strlen(msg)); Εκτυπϊνει: 5 Δθλαδι τον αρικμό των χαρακτιρων ζωσ το \0 o Ρροςοχι Tο strlen δεν μασ λζει το μζγιςτο μζγεκοσ του String Αυτό είναι 10 χαρακτιρεσ και το ξζρουμε πριν το compile

Η ςυνάρτθςθ strlen() #include <stdio.h> #include <string.h> int main() { char x[10] = "123456" ; printf("%d", strlen(x)); } Εθηύπωζε: 6

Η ςυνάρτθςθ strlen() o Ξζρουμε ότι θ strlen είναι ζτοιμθ ςυνάρτθςθ o Για εξάςκθςθ, κα τθν υλοποιιςουμε μόνοι μασ Άςκθςθ o Γράψετε τθ ςυνάρτθςθ int mystrlen(char c[]) που υπολογίηει και επιςτρζφει το μικοσ ενόσ αλφαρικμθτικοφ o Ραραδείγματα εκτζλεςθσ mystrlen( abc ) 3 char x[10+ = 123456 ; mystrlen(x); 6 mystrlen( abc abc ); 7

Η ςυνάρτθςθ strlen() Αλγόρικμοσ o Διάβαςε το string από τθν αρχι μζχρι να βρεισ το \0 o Σε κάκε βιμα αφξθςε κάποιο μετρθτι κατά 1 name 0 1 2 3 4 5 M A R I A A 6.. 19 \0???

Η ςυνάρτθςθ strlen() #include <stdio.h> int mystrlen (char s[]) { int i=0; while (s[i]!= '\0') i++; return i; } int main() { char x[10] = "123456" ; printf("%d", mystrlen(x)); }

Τζλοσ διάλεξθσ