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

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

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

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

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

Προγραμματισμό για ΗΜΥ

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

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

Προγραμματισμό για ΗΜΥ

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

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

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

Συμβολοσειρές Ορίσματα στη main()

char name[5]; /* define a string of characters */

Διάλεξη 7: Συμβολοσειρές, Δείκτες και Παραδείγματα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Συμβολοσειρές, Δείκτες και Παραδείγματα (Κεφάλαιο 13, KNK-2ED)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

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

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

Σε μία άλλη από τις εκτελέσεις του προγράμματος η αλληλεπίδραση με το χειριστή ήταν η επόμενη:

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

είκτες και Πίνακες (2)

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

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

Συµβολοσειρές - Strings

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Αρχές Προγραμματισμού

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου!

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

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Εργαστήριο 9: Αρχεία

Προγραμματισμός Ι. Θεματική ενότητα 6: Πίνακες αλφαριθμητικά

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.

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

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

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

Προγραμματισμό για ΗΜΥ

Συναρτήσεις και διαδικασίες

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

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

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

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

Συναρτήσεις διαχείρισης αλφαριθμητικών

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

C: Από τη Θεωρία στην Εφαρμογή

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

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ. Παράδειγμα 1 Δήλωση και αρχικοποίηση μονοδιάστατου πίνακα [5] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή.

Αλφαριθμητικά, πίνακες και δείκτες

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

Αρχές Προγραμματισμού

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

Εργαστήριο 2: Πίνακες

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

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

12. Συναρτήσεις (Μέρος ΙI)

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Transcript:

ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy

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

Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*% Προηγούμενη ιάλεξη 1. Εισαγωγικές Έννοιες (Αρχικοποίηση, ί Ανάγνωση & Eκτύπωση) 2. Πίνακες Strings 3. Συναρτήσεις Βιβλιοθήκης <string.h> Σήμερα Υλοποίηση Συναρτήσεων <string.h>

Η Βιβλιοθήκη string.h - Επανάληψη Το αρχείο επικεφαλίδα (header file), string.h παρέχει συναρτήσεις για χειρισμό strings Περιέχει ιάφορες Συναρτήσεις, πχ. 1. strlen(s), υπολογίζει το μέγεθος του string 2. strcpy(,), αντιγράφει το στο 3. strcat(,), προσθέτει το στο. 4. strcmp(,), συγκρίνει το με και επιστρέφει θετική τιμή εάν μεγαλύτερο (αλφαβητικά) από το, μηδέν αν είναι ίσα, και αρνητική τιμή εάν μικρότερο από.

Η συνάρτηση 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)); H mystrlen επιστρέφει 6

1) Η συνάρτηση strcpy() H συνάρτηση strcpy(ma, mb) αντιγράφει το mb στο ma Πρίν π.χ. ma int main(){ Μετά char ma[10]; ma char mb[10]="hello"; mb strcpy(ma,mb); printf("ma=%s and mb=%s", ma, mb); mb

1) Υλοποίηση της strcpy() Υλοποιήστε την συνάρτηση mystrcpy(char to[], char from[]) η οποία αντιγράφει τo String b στο String a Αλγόριθμος Για κάθε στοιχείο from[i] αντίγραψε το from[i] στην θέση to[i], μέχρι να φτάσεις στο \0.

1) Υλοποίηση της strcpy() #include <stdio.h> /* To string from αντιγράφεται στο to */ void mystrcpy(char to[ ], char from[ ]) { int i=0; to while (from[i]!= '\0') { to[i] = from[i]; from i++; to[i]='\0'; to from int main() { char ma[10]; char mb[10]="hello"; mystrcpy(ma,mb); printf("ma=%s and mb=%s", ma, mb); Πρίν Μετά

2) Η συνάρτηση strcat() H συνάρτηση strcat(, ) αντιγράφει το στο τέλος του Πρίν π.χ. int main(){ Μετά char ma[10]="hello"; char mb[10]="cat"; strcat(ma,mb); printf("ma=%s and mb=%s", ma, mb);

2) Υλοποίηση strcat() t() Υλοποιήστε την συνάρτηση void mystrcat(char [], char []) η οποία προσθέτει τo string στο τέλος του Αλγόριθμος Βρες το \0 στο στην θέση K. Αντίγραψε κάθε [i], στην αντίστοιχη θέση [i+k]. Πρόσθεσε \0 στο τέλος του.

2) Υλοποίηση strcat() έκδοση 1 void mystrcat(char [], char []){ int i=0, k=0; // Εύρεση \0 στο S1 while ([k]!= '\0') { k++; // Αντιγραφή Στοιχείων while ([i]!= '\0') { [k]=[i]; [i]; i++; k++; Πρίν Μετά [k]= \0 ; // Προσθήκη NULL στο τέλος του κ

2) Υλοποίηση strcat() t() - έκδοση 2 void mystrcat(char t( [], char []){ int i=0, k=0; // Εύρεση \0 στο S1 k = strlen(); Πρίν κ // Αντιγραφή Στοιχείων while ([i]!= '\0') { Μετά [k+i]=[i]; i++; [k+i]='\0'; // προσθήκη NULL στο τέλος του

3) Η συνάρτηση strcmp() H συνάρτηση strcmp(, ) συγκρίνει το με και επιστρέφει: θετική τιμή, εάν > μεγαλύτερο. μηδέν, εάν ==, και αρνητική τιμή εάν < (αλφαβητικά) > Επιστρέφει 20 διότι το CUT είναι 20 χαρακτήρες μεγαλύτερο από το CAT

3) Η συνάρτηση strcmp() Οι συγκρίσεις γίνονται βάση του πίνακα ASCII

3) Η συνάρτηση strcmp() Κλήση της συνάρτησης strcmp() #include <stdio.h> int main(){ char [10]="HELLO"; char [10]="CAT"; int cmp = strcmp(,); if (cmp == 0) printf("οι δυο λέξεις είναι οι ίδιες"); else if (cmp > 0) printf("%s > %s",, ); else printf("%s < %s",, ); cmp=5, επομένως εκτυπώνετε HELLO>CAT

2) Υλοποίηση strcmp() Υλοποιήστε την συνάρτηση int mystrcmp(char [], char []) η οποία συγκρίνει το με και επιστρέφει θετική τιμή εάν μεγαλύτερο (αλφαβητικά) από το, μηδέν αν είναι ίσα, και αρνητική τιμή εάν μικρότερο ρ από. Αλγόριθμος Έλεγξε επαναληπτικά εάν κάθε στοιχείο [i] είναι ίσο με [i]. Εάν δεν είναι κάποιο στοιχείο ίσο επέστρεψε το [i]-[i]

2) Υλοποίηση mystrcmp() Περίπτωση Α int mystrcmp(char [], char []){ int i=0; // Ελέγχουμε κάθε στοιχείο // [i] αν είναι ίσο με [i] while ([i]!= '\0') { if ([i]!= [i]) break; i++; return [i]-[i]; [i]; > = < Περίπτωση Β Περίπτωση C

2) Υλοποίηση mystrcmp() Γιατί είναι λάθος η πιο κάτω υλοποίηση της mystrcmp? int mystrcmp(char [], char []){ int i=0; // Ελέγχουμε κάθε στοιχείο [i] αν είναι ίσο [i] while ([i] == [i]) { i++; return [i]-[i]; =

14 ο Κεφάλαιο Τέλος Μέρους 2