Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Σχετικά έγγραφα
Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 5ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 3ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 8ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 8 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 8ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 8 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Πέµπτη 17/12/2015, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Τετάρτη 7/12/2016, 21:00

lab7: Συμβολοσειρές Συμβολοσειρές Ασφάλεια εισόδου Αναγνωσιμότητα κώδικα (σχόλια, στοίχιση, περιγραφικά ονόματα μεταβλητών, κτλ.)

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: Τρίτη 10/11/2015, 22:00

Προγραµµατισµός Ι Εργαστήριο 4ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 25/11/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: Τρίτη 4/11/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: 25/11/13, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσμία: Τετάρτη 9/11/2016, 21:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 27/11/11, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/2016, 21:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: 3/12/2018, 23:59

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Προθεσµία: 10/12/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59

abistarakis PASS - Σωστή κατασκευή tgz και ονοµασία αρχείων

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: 10/11/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: 6/11/11, 22:00

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

lab2grades - Στη scanf υπολογίζετε τουλάχιστον 5 χαρακτήρες %5.2f προδιαγραφές που ζητούνται στην εκφώνηση. -

lab1: Εισαγωγή σε Linux

ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Προθεσµία: 9/1/2015, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/10, 23:59

lab0: Εισαγωγή σε Linux

Λύσεις για τις ασκήσεις του lab5

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

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

ΑΕΜ ή username. Sheet2

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Δεν έστειλες την άσκηση 1, και αυτό που έστειλες ήταν σκέτο αρχείο, όχι το tgz που ζητούσε η εκφώνηση.

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα.

CE 120. Φροντιστήριο 14/10/2011

Sheet3_2. Τα literals (3.0, 1.5, κτλ) πρέπει να ορίζονται ως σταθερές.

lab6grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: Όλα οκ.

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: Τετάρτη 25/11/2015, 22:00

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

lab9grades Άσκηση 1 - Σωστοί τύποι (παραµέτρων και επιστρεφόµενης τιµής) της series_cosh.

ΣΧΟΛΙΑ ΓΙΑ ΤΟ LAB 1. Sheet3_2

Λειτουργικά Συστήματα

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

Εργαστήριο 5. Εαρινό Εξάμηνο

Sheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση.

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ. Πρόγραμμα Διαχείρισης Α.Π.Δ.

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2017 A ΦΑΣΗ

lab7grades -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Σωστή µεταφορά στοιχείων µια θέση αριστερά.

lab4grades Παράδοση ασκήσεων: -Όλα καλά Άσκηση 1η: -Σωστή 357 PASS

lab2grades printf("calculus: %.4lf\n", calculus);

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

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

επιστρέφει αριθµό που προκύπτει µε αντιστροφή των στοιχείων του πρώτου

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

Γεώργιος Δ. Παλτεζανάκης

lab14grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ

Τσαουσάκης Σταύρος ΠΕ70 ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 3

Δείτε τώρα και πώς θα έπρεπε να ήταν το παραπάνω: Page 1

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

- Σωστή χρήση του προσδιοριστή const για την σταθερά pi. Καλό θα ήταν επιλέξετε κεφαλαία γράµµατα για το όνοµα της σταθεράς.

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

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

to post PASS PASS FAIL

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Βαθμός Σχόλιο. lab3_grades

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

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Transcript:

ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Στόχοι Συµβολοσειρές, πίνακες Πριν ξεκινήσετε Βήµα 1: Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα σε αυτόν ένα φάκελο µε όνοµα lab5. Μέσα σε αυτό το φάκελο θα αποθηκεύσετε τις απαντήσεις σας για το σηµερινό εργαστήριο. Βήµα 2: Ανοίξτε το Kate. Αν δεν έχετε κάνει τις ρυθµίσεις για τη στοίχιση, κάντε τις τώρα. Οδηγίες εδώ. Βήµα 3: Κάντε τις ασκήσεις της εβδοµάδας. Σας θυµίζουµε πως η εντολή για να κάνετε compile ένα αρχείο µε όνοµα lab5.c είναι : gcc -g -Wall lab5.c -o lab5 και αν δεν υπάρχουν λάθη, θα δηµιουργηθεί το εκτελέσιµο αρχείο lab5 το οποίο µπορείτε να τρέξετε γράφοντας./lab5 1

Άσκηση 1 Το πρόγραµµα που θα γράψετε για την άσκηση 1 πρέπει να το αποθηκεύσετε σε αρχείο µε όνοµα lab5a.c µέσα στο φάκελο lab5. Διαβάστε όλη την εκφώνηση της άσκησης πριν αρχίσετε να γράφετε κώδικα, και ειδικά τα σηµεία που µαρκάρονται "ΠΡΟΣΟΧΗ". Η εκφώνηση της άσκησης συνεχίζει στην επόµενη σελίδα. Σε αυτή την άσκηση θα γράψετε ένα πρόγραµµα το οποίο διαβάζει τους βαθµούς των φοιτητών µιας τάξης και κατασκευάζει ένα ιστόγραµµα. Οι βαθµοί δίνονται ως γράµµατα (Α έως και F) και είναι αποθηκευµένοι σε ένα αρχείο µε όνοµα grades.txt. Σε κάθε γραµµή του αρχείου βρίσκεται ένας βαθµός. Στην τελευταία γραµµή βρίσκεται ο χαρακτήρας '-' (παύλα) ο οποίος µαρκάρει το τέλος των βαθµών. Δηµιουργήστε ένα πίνακα µεγέθους όσοι είναι και οι δυνατοί βαθµοί. Στη θέση 0 του πίνακα θα αποθηκευτεί το συνολικό πλήθος των Α, στη θέση 1 το πλήθος των Β κτλ. Διαβάστε από το πληκτρολόγιο βαθµούς έως ότου δοθεί - και ταυτόχρονα υπολογίστε τον αριθµό φοιτητών που πήραν τον κάθε βαθµό. Μην εµφανίσετε µήνυµα προς το χρήστη. Οι βαθµοί στην πραγµατικότητα θα παρθούν από αρχείο, µε ανακατεύθυνση. ΠΡΟΣΟΧΗ: Πρέπει να χρησιµοποιήσετε οπωσδήποτε δοµή επανάληψης για να γεµίσετε τον πίνακα. Αυτό σηµαίνει πως πρέπει να σκεφτείτε ένα τύπο αριθµητικής χαρακτήρων ο οποίος θα σας δίνει τη θέση 0 αν ο βαθµός είναι Α, τη θέση 1 αν ο βαθµός είναι Β κ.ο.κ. Αφού έχουν διαβαστεί όλοι οι βαθµοί, ζωγραφίστε ένα ιστόγραµµα στην οθόνη το οποίο θα δείχνει πόσοι φοιτητές βαθµολογήθηκαν µε κάθε βαθµό. Για κάθε ένα βαθµό εκτυπώστε στην οθόνη: το βαθµό ένα κενό άνω-κάτω τελεία τον αριθµό φοιτητών που βαθµολογήθηκαν µε αυτό το βαθµό, φορµαρισµένο µε τέτοιο τρόπο ώστε να καταλαµβάνει 3 θέσεις ένα κενό τόσα αστεράκια όσες και οι δεκάδες του παραπάνω αριθµού ακολουθούµενα από παύλες για κάθε µια επιπλέον µονάδα. ένα χαρακτήρα αλλαγής γραµµής. Στο παρακάτω σχήµα µπορείτε να δείτε την έξοδο της δικής µας λύσης για µια τάξη 120 φοιτητών όπου από 21 άτοµα βαθµολογήθηκαν µε Α, Β και Ε, 26 µε C, 18 µε D και 13 µε F. 2

ΠΡΟΣΟΧΗ!! Το πρόγραµµα πρέπει να είναι γραµµένο µε τέτοιο τρόπο ώστε να είναι εύκολο να λειτουργήσει και για περισσότερες επιλογές βαθµών. Αυτό σηµαίνει πως (α) το πλήθος των δυνατών βαθµών (το οποίο στη συγκεκριµένη περίπτωση είναι 6) πρέπει να είναι δηλωµένο ως σταθερά και να χρησιµοποιείται αναλόγως και (β) πρέπει να χρησιµοποιήσετε επανάληψη για να προσπελάσετε τα στοιχεία του πίνακα. Άσκηση 2 Το πρόγραµµα που θα γράψετε για την άσκηση 1 πρέπει να το αποθηκεύσετε σε αρχείο µε όνοµα lab5b.c µέσα στο φάκελο lab5. Γράψτε ένα πρόγραµµα το οποίο διαβάζει µια σειρά από λέξεις και κατασκευάζει δύο σύνθετες συµβολοσειρές έτσι ώστε η µία να περιέχει όλες τις λέξεις άρτιου µήκους και η άλλη όλες τις λέξεις περιττού µήκους. Για την ακρίβεια, το πρόγραµµά σας πρέπει να: 1. Κατασκευάζει δύο πίνακες χαρακτήρων µεγέθους SIZE. Ένας θα είναι για τις λέξεις άρτιου µήκους κι ένας για τις λέξεις περιττού µήκους. Ας τους πούµε evenwords και oddwords αντίστοιχα. Αρχικά και οι δύο πίνακες αντιστοιχούν σε κενές συµβολοσειρές. 2. Εκτυπώνει το µήνυµα "Odd : X" όπου X ο πίνακας oddwords, ένα χαρακτήρα αλλαγής γραµµής και µετά το µήνυµα "Even: X" όπου X ο πίνακας evenwords. 3. Εκτυπώνει ένα tab και µετά το µήνυµα "Enter word: ", και διαβάζει από το πληκτρολόγιο µια συµβολοσειρά µεγέθους το πολύ SIZE (συµπεριλαµβανοµένου του null). 4. Αν η συµβολοσειρά έχει άρτιο µήκος, και αν υπάρχει αρκετός χώρος στο evenwords, τότε προσθέτει στο evenwords µια παύλα και µετά τη συµβολοσειρά, κι επαναλαµβάνει τα βήµατα 2-4. Αν δεν υπάρχει αρκετός χώρος ή αν έχει δοθεί η λέξη "STOP", τότε η λέξη δεν εισάγεται και η επανάληψη τερµατίζει. Το πρόγραµµα λειτουργεί µε αντίστοιχο τρόπο αν η λέξη έχει περιττό µήκος (οπότε προστίθεται στο oddwords). Χρησιµοποιήστε την τιµή 20 για το SIZE για να ελέγξετε την ορθότητα του προγράµµατός σας, αλλά πρέπει να είναι γραµµένο µε τέτοιο τρόπο ώστε να λειτουργεί σωστά για οποιαδήποτε θετική τιµή του SIZE. Στο παρακάτω σχήµα µπορείτε να δείτε την έξοδο της δικής µας λύσης για διάφορες λέξεις. 3

Συµπληρωµατικές ασκήσεις Άσκηση 3 ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΑΠΟΣΤΟΛΗ ΤΩΝ ΑΣΚΗΣΕΩΝ ΒΡΙΣΚΟΝΤΑΙ ΣΤΟ ΤΕΛΟΣ ΤΟΥ ΦΥΛΛΑΔΙΟΥ Αποθηκεύστε το πρόγραµµα που θα γράψετε για την άσκηση 3 σε αρχείο µε όνοµα lab5c.c Γράψτε ένα πρόγραµµα το οποίο: 1. Εκτυπώνει το µήνυµα "Enter word :", διαβάζει µια συµβολοσειρά µήκους το πολύ 50 και την αποθηκεύει σε ένα πίνακα χαρακτήρων. Η συµβολοσειρά αυτή περιέχει γράµµατα και ψηφία. 2. Διατρέχει τη συµβολοσειρά και κάθε φορά που βρίσκει ένα ψηφίο το αντιγράφει σε µια δεύτερη συµβολοσειρά, σβήνοντάς το από την αρχική. 3. Εκτυπώνει το µήνυµα "Letters: X" όπου X είναι η αρχική συµβολοσειρά χωρίς να περιέχει ψηφία 4. Εκτυπώνει ένα χαρακτήρα αλλαγής γραµµής 5. Εκτυπώνει το µήνυµα "Digits: X" όπου X είναι η νεα συµβολοσειρά από ψηφία Τι να προσέξετε: Το πρόγραµµα πρέπει να είναι γραµµένο µε τέτοιο τρόπο ώστε να µπορούµε να αλλάξουµε εύκολα το µέγεθος της αρχικής συµβολοσειράς χωρίς να "σπάσει" το πρόγραµµα. Τον τερµατικό χαρακτήρα '\0'. Επίσης, σηµειώστε πως στο µέγεθος 50 που αναφέρεται πιο πάνω, δεν έχει υπολογιστεί ο τερµατικός χαρακτήρας. Χρησιµοποιήστε κατάλληλη συνάρτηση χαρακτήρων (δείτε εδώ) για την ανίχνευση ψηφίων Σβήνουµε ένα χαρακτήρα από τη συµβολοσειρά µεταφέροντας όλους τους υπόλοιπους µια θέση πριν. Όταν κάνετε έλεγχο ορθότητας δοκιµάστε να δώστε λέξεις που περιέχουν διαδοχικά ψηφία, λέξεις που δεν περιέχουν καθόλου ψηφία και λέξεις που περιέχουν µόνο ψηφία. Στο παρακάτω σχήµα φαίνεται η έξοδος της δικής µας λύσης για διάφορες λέξεις εισόδου: 4

Άσκηση 4 Αποθηκεύστε το πρόγραµµα που θα γράψετε για την άσκηση 4 σε αρχείο µε όνοµα lab5d.c Επαναλάβετε την άσκηση 2, αλλά αυτή τη φορά, αν η λέξη που δόθηκε δε χωράει στον αντίστοιχο πίνακα, αγνοήστε τη και επαναλάβετε τα βήµατα 2-4 (αντί να τερµατίζετε την επανάληψη). Τρέξτε το πρόγραµµά σας δίνοντας µεγάλες λέξεις. Τι παρατηρείτε? Τι πιστεύετε ότι προκάλεσε την περίεργη συµπεριφορά του προγράµµατος και πώς µπορούµε να λύσουµε το πρόβληµα? Σηµείωση: Αν η άσκηση 4 δε σας παρουσιάζει πρόβληµα, τότε κάτι δεν έχετε κάνει σωστά στην άσκηση 2 :) Αποστολή του προγράµµατος για διόρθωση και σχολιασµό Η αποστολή γίνεται από τον οδηγό. Για να στείλετε το πρόγραµµά σας για βαθµολόγηση, ανοίξτε ένα τερµατικό (ή χρησιµοποιήστε αυτό του Kate), πηγαίνετε στο φάκελο lab5, και χρησιµοποιήστε την εντολή mkdir για να κατασκευάσετε ένα νέο φάκελο µε βάση τα ονόµατα των δύο µελών της οµάδας. Για την ακρίβεια, το όνοµα του φακέλου πρέπει να είναι (µε λατινικούς χαρακτήρες) : επώνυµο1_am1_επώνυµο2_αμ2 Για παράδειγµα, mkdir doufexi_1234_antonopoulos_5678 ΑΜ είναι ο τετραψήφιος αριθµός µητρώου σας. Αντιγράψτε το lab5a.c µέσα στο νέο φάκελο (cp lab5a.c doufexi_1234_antonopoulos_5678) Αντιγράψτε το lab5b.c µέσα στο νέο φάκελο (cp lab5b.c doufexi_1234_antonopoulos_5678) Τέλος πακετάρετε και συµπιέστε το φάκελο µε το πρόγραµµά σας. Η εντολή είναι tar czvf επώνυµο1_αμ1_επώνυµο2_αμ2.tgz επώνυµο1_αμ1_επώνυµο2_αμ2 Θα πρέπει να δηµιουργηθεί το αρχείο µε όνοµα επώνυµο1_αμ1_επώνυµο2_αμ2.tgz Αν εµφανιστεί κάποιο µήνυµα λάθους, ζητήστε βοήθεια! Στείλτε ένα email στη διεύθυνση: ce120lab@gmail.com CC στον πλοηγό, µε τίτλο (subject): CE120 lab5 συνηµµένο (attached) το αρχείο: επώνυµο1_αμ1_επώνυµο2_αμ2.tgz Αφού στείλετε το email, επιβεβαιώστε ότι είχε σωστό attachment κι ότι έλαβε αντίγραφο και ο πλοηγός. Ο πλοηγός µπορεί να ξεπακετάρει το tgz αρχείο στο δικό του υπολογιστή από τερµατικό, µε την εντολή tar xzf επώνυµο1_αμ1_επώνυµο2_αμ2.tgz 5