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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 1 Συμβολοσειρές, Πίνακες, Δείκτες

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

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

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

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

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

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

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

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

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

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

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

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

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

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

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

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

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

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

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

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

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

Συναρτήσεις. Εισαγωγή

Διάλεξη 5η: Εντολές Επανάληψης

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

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

Εισαγωγή στην πληροφορική

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

Διάλεξη 17: Επανάληψη για την ενδιάμεση εξέταση. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

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

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

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

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

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

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

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

Βασικά στοιχεία της Java

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

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

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

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

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

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

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

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

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

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΠΛ232: Εργαστήριο 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

(6,5 μονάδες) Θέμα 1 ο. Τμήμα Πολιτικών Μηχανικών Σχολή Τεχνολογικών Εφαρμογών Διεθνές Πανεπιστήμιο Ελλάδος ΟΝΟΜΑΤΕΠΩΝΥΜΟ

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

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

Δομές Δεδομένων. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 05: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 010 011, Χειµερινό εξάµηνο ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΕΡΓΑΣΙΑ 1 0/09/010 Ηµεροµηνία Παράδοσης: Τετάρτη 0/10/010 ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ: ΑΦΗΡΗΜΕΝΟΙ ΤΥΠΟΙ Ε ΟΜΕΝΩΝ, ΑΛΓΟΡΙΘΜΟΙ, ΣΥΜΒΟΛΟΣΕΙΡΕΣ Θεωρητική Άσκηση 1 (0 µονάδες) Αποδείξτε ότι ο χρόνος εκτέλεσης των ακόλουθων συναρτήσεων έχει ως εξής: α) + 9 + + 7 είναι O ( ) β) 6 + είναι O ( ) γ) + 10 είναι Ω ( ) Να δώσετε και την επαλήθευση για καθεµία από τις πιο πάνω συναρτήσεις. Λύση: α) Απόδειξη: Πρέπει να δείξουµε ότι υπάρχει c > 0, 0 1 έτσι ώστε, 9 7 + 9 + + 7 c * => + + + c => 9 7 1 + + + c => Για c = 1, 0 = 1 η παραπάνω ανισότητα ικανοποιείτε, εποµένως η συνάρτηση T ( ) = + 9 + + 7είναι O ( ).

Επαλήθευση: (c = 1, = 1) (c = 1, = ) (c = 1, = ) + 9 + + 7 c * => 1 1 + 9 + + 7 c * => 59 168 + 9 + + 7 c * => 17 567 β) Απόδειξη: Πρέπει να δείξουµε ότι υπάρχει c > 0, 0 1 έτσι ώστε, 6 6 + c * => 6 + + c => Για c = 11, 0 = 1 η παραπάνω ανισότητα ικανοποιείτε, εποµένως η συνάρτηση T ( ) = 6 + είναι O ( ). + 6 + c * => + + c => Επαλήθευση: (c = 11, = 1) (c = 11, = ) (c = 11, = ) 6 + c * => -1 11 6 + c * => 6 + c * => 11 99 γ) Απόδειξη: Πρέπει να δείξουµε ότι δεν υπάρχει c > 0, 0 1 έτσι ώστε, 10 10 + 10 c * => + c => + c => Η αριστερή πλευρά της ανισότητας έχει την µικρότερη τιµή 8.9 για = 10 =. 15. Εποµένως η συνάρτηση T ( ) = + 10 είναι Ω ( ) για 0 = και c. Μεγαλύτερες τιµές του 0 έχουν ως αποτέλεσµα µεγαλύτερες τιµές για τη σταθερά c, αλλά σε κάθε περίπτωση η πιο πάνω δήλωση ισχύει.

Επαλήθευση: (c =, = ) (c =, = ) (c =, = ) (c =, = 5) + 10 c * => 6 + 10 c * => 111 108 + 10 c * => 96 56 + 10 c * => 675 500 Θεωρητική Άσκηση (10 µονάδες) (Α) Περιγράψετε τον σκοπό των πιο κάτω συναρτήσεων. ηλώστε επίσης τον τύπο των παραµέτρων που δέχεται η καθεµία σαν είσοδο καθώς και τον τύπο των παραµέτρων που επιστρέφει η καθεµία σαν έξοδο. (8 µονάδες) 1. Συνάρτηση strle. Συνάρτηση strcpy. Συνάρτηση strcat. Συνάρτηση strcmp (Β) ώστε τα αποτελέσµατα που θα επιστρέψουν οι πιο κάτω ( µονάδες) it mai(){ char x[5] = "1_@abc"; pritf("strle: %d", strle(x)); it mai(){ char to[8]; char from[8]="protos"; strcpy(to, from); pritf("to=%s ad from=%s", to, from); Λύση: (Α) 1. Συνάρτηση strle it strle(s1): Δέχεται σαν είσοδο μία συμβολοσειρά. Επιστρέφει το μέγεθος του strig χωρίς να μετράει το \0, το ull.

. Συνάρτηση strcpy strcpy(s1,s): Αντιγράφει ένα strig s (πίνακα) σε ένα άλλο strig s1 (πίνακα). ηλαδή δέχεται σαν είσοδο συµβολοσειρές και αντιγράφει το δεύτερο στο πρώτο. Είναι void συνάρτηση.. Συνάρτηση strcat strcat(s1,s) : Αντιγράφει το strig s (πίνακα) στο τέλος του strig s1 (πίνακα). Είναι void συνάρτηση.. Συνάρτηση strcmp strcmp(s1,s): Συγκρίνει συµβολοσειρές χαρακτήρα χαρακτήρα µε βάση τον κώδικα ASCII. Αν ο πίνακας s1 αλφαβητικά είναι µεγαλύτερος από τον πίνακα strig s επιστρέφει θετικό αριθµό. Αν είναι ίσοι επιστρέφει 0, και αν ο s1 είναι µικρότερος αλφαβητικά από τον s επιστρέφει αρνητικό αριθµό. Επιστρέφει it. (Β) Strle: 8 to=protos ad from=protos Θεωρητική Άσκηση (10 µονάδες) ώστε το χρόνο εκτέλεσης χείριστης περίπτωσης των πιο κάτω προγραµµάτων σαν συνάρτηση του (Big Oh): 1. sum=0; for(i=0; i<; i++){ for(j=0; j<; j++){ sum++;. sum=0; for(i=0; i<; i++){ for(j=0; j<; j++){ sum++;. sum=0; for(i=0; i<; i++){ sum=sum+i; for(j=1; j< *; j++){ sum=sum+j;. sum=0; for(i=0; i<*; i++){ sum=sum+i;

Λύση: 1. Outer loop is:, Ier loop is: => * => O(^). Outer loop is:, Ier loop is: => * (we drop the costats) => O(). First loop is:, Secod loop is: ^ => +^ (drop lower terms) => O(^). Loop is: * => Although we iterate * times, we drop the costats => O() Mathematically, they are the same sice i ay case it will eed to iterate for elemets. Θεωρητική Άσκηση (10 µονάδες) Ας υποθέσουµε ότι έχουµε την παρακάτω δήλωση δοµής: typedef struct{ char a[8]; it b; it c; typos_egrafis; typos_egrafis egr; Ας υποθέσουµε ότι ένας ακέραιος αποθηκεύεται σε δύο λέξεις µνήµης και δύο χαρακτήρες σε µια λέξη µνήµης. Αν τώρα δώσουµε τις εξής τιµές στο κάθε στοιχείο (a = abcdefgh ; b = 69; c = 0), να υπολογίσετε την διεύθυνση(egr.c) και να υλοποιήσετε (παραστήσετε γραφικά) την δοµή καταγράφοντας τις διευθύνσεις όλων των µελών της. Λύση: διεύθυνση (egr.c) = διεύθυνση (egr.a) + + = 0 + 6 = 6 b = 0 egr.a egr.b egr.c b b+1 b+ b+ b+ b+5 b+6 b+7

Πρακτική Άσκηση 1 (10 µονάδες) Η βιβλιοθήκη <strig.h> περιέχει την συνάρτηση strcat η οποία εξυπηρετεί ένα συγκεκριµένο σκοπό (βλέπε Θεωρητική Άσκηση ). Υλοποιήστε ένα πρόγραµµα το οποίο περιέχει την δική σας συνάρτηση void mystrcat(char to[], char from[]) η οποία εξυπηρετεί τον ίδιο σκοπό µε την συνάρτηση της παραπάνω βιβλιοθήκης. οκιµάστε τη συνάρτηση σας µε τα ακόλουθα δεδοµένα: ΠΡΙΝ: to H E L L O \0???????? from W O R L D \0??? META: to H E L L O W O R L D \0?? from W O R L D \0???

Λύση: #iclude <stdio.h> void mystrcat(char to[], char from[]){ it i = 0, k = 0; // Evresi NULL character \0 sto to while (to[k]!= '\0') { k++; // atigrafi stoixeiw while (from[i]!= '\0') { to[k+i]=from[i]; i++; to[k+i]= \0 ; // prosthiki NULL character \0 sto to it mai(){ char to[] = "HELLO"; char from[] = " WORLD"; mystrcat(to, from); pritf("result: \"); pritf("%s \", to); pritf("%s \", from); Πρακτική Άσκηση (0 µονάδες) Γράψτε ένα πρόγραµµα το οποίο περιέχει µια συνάρτηση grammar η οποία επιστρέφει 1 (true) αν το Strig argumet που παίρνει τελειώνει σε able και το µέγεθος ολόκληρου του Strig είναι µεγαλύτερο από 6. Αλλιώς η συνάρτηση πρέπει να επιστρέφει 0 (false). Για παράδειγµα η λέξη acceptable πρέπει να επιστρέψει 1 καθώς τελειώνει σε able και το µέγεθος ολόκληρου του Strig είναι µεγαλύτερο από 6. Οι τιµές 1 και 0 πρέπει να αποθηκευτούν σε ένα µονοδιάστατο πίνακα ακεραίων. οκιµάστε τη συνάρτηση σας µε τα ακόλουθα δεδοµένα (mai) τα οποία πρέπει να αποθηκευτούν σε ένα δισδιάστατο πίνακα ο οποίος αποτελεί την η παράµετρο της συνάρτησης grammar(it row, char words[rows][cols]). admirable, able, egligible, stable, affordable, cable, feasible, acceptable, doable, permissible Πρότυπο συνάρτησης: void grammar(it row, char words[rows][cols]);

Λύση: #iclude <stdio.h> #defie ROWS 10 #defie COLS 1 #defie BIT 10 it bits[bit]; it grammar(it row, char strig[rows][cols]){ it legth; legth = strle(strig[row]); if (legth > 6){ if(strig[row][legth-] == 'a' && strig[row][legth-] == 'b' && strig[row][legth-] == 'l' && strig[row][legth-1] == 'e') retur 1; else retur 0; retur 0; it mai(){ char words[rows][cols] = {"admirable", "able", "egligible", "stable", "affordable", "cable", "feasible", "acceptable", "doable", "permissible"; it i; for (i=0; i<rows; i++){ it result = grammar(i, words); pritf("word: %s \", words[i]); bits[i] = result; for (i=0; i<bit; i++){ pritf("result: %d \", bits[i]);

Πρακτική Άσκηση (0 µονάδες) Γράψτε ένα πρόγραµµα το οποίο περιέχει µια συνάρτηση reverse(char *letters) η οποία µετατρέπει όλα τα κεφαλαία γράµµατα του Strig σε µικρά και όλα τα µικρά γράµµατα του Strig σε κεφαλαία. Σηµειώστε ότι το πρόγραµµα σας πρέπει να αλλάξει το ίδιο Strig iput το οποίο θα περάσετε στην συνάρτηση σαν τιµή εισόδου, χωρίς να κάνετε χρήση νέας µεταβλητής. Η έννοια µικρών και µεγάλων χαρακτήρων ορίζεται µόνο για τους χαρακτήρες Α-Ζ και a-z. Παράδειγµατα: iput=achievable µας επιστρέφει iput=achievable iput=cable µας επιστρέφει iput=cable οκιµάστε τη συνάρτηση σας ζητώντας καταρχάς από τον χρήστη να εισαγάγει τον αριθµό των λέξεων που θα µετατραπούν (π.χ. ) και στη συνέχεια να εισαγάγει µία προς µία τις λέξεις εκτυπώνοντας κάθε φορά το αποτέλεσµα. Χρησιµοποιήστε τις ακόλουθες λέξεις για να ελέξετε το πρόγραµµα σας: iput=doable iput=affordable iput=acceptable Πρότυπο συνάρτησης: void reverse(char *letters); Υπόδειξη: Χρησιµοποιήστε τον πίνακα ASCII.

Λύση: #iclude <stdio.h> #defie CHARS 10 void reverse(char *letters){ it i = 0; it legth = strle(letters); for (i=0; i <= legth; i++){ if(letters[i]>=97 && letters[i] <=1) { letters[i] = letters[i] ; else if(letters[i]>=65 && letters[i] <=90) { letters[i] = letters[i] + ; it mai(){ it i, = 0; pritf("how may words? \"); scaf("%d", &); for (i=0; i<; i++){ char iput[chars]; pritf("eter word to reverse it: \"); scaf("%s", iput); reverse(iput); pritf("result: %s \", iput);