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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

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

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

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

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

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

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

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

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

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

Να το ξαναγράψετε χρησιμοποιώντας αντί για την εντολή Για Τέλος_επανάληψης: α. την εντολή Όσο Τέλος_επανάληψης

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

ΣΚΟΠΟΙ ΒΗΜΑ 1 Ο. Θα εμφανιστεί το λογότυπο του προγράμματος.. ..και μετά από λίγο ένα παράθυρο με τίτλο Προβολές CMap Tools. [1]

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

Εργαστήριο 2. Δημιουργία πινάκων Ιδιότητες πεδίων. Ευάγγελος Γ. Καραπιδάκης

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

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

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

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

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

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

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

to post PASS PASS FAIL

ÁÎÉÁ ÅÊÐÁÉÄÅÕÔÉÊÏÓ ÏÌÉËÏÓ

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2017 Β ΦΑΣΗ ÅÐÉËÏÃÇ

an:3 are:6 a:10

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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. Διαβάστε όλη την εκφώνηση της άσκησης πριν αρχίσετε να γράφετε κώδικα, και ειδικά το σηµείο που µαρκάρεται "ΠΡΟΣΟΧΗ". Σε αυτή την άσκηση θα γράψετε ένα πρόγραµµα το οποίο δέχεται πληροφορίες για τη συχνότητα εµφάνισης χαρακτήρων σε ένα κείµενο και µετά τους εµφανίζει όλους ταξινοµηµένους µε αύξουσα σειρά. Το πρόγραµµα ξεκινά διαβάζοντας τα δεδοµένα από το πληκτρολόγιο, τα οποία δίνονται ανά γραµµή στην παρακάτω µορφή: Ένας χαρακτήρας ο οποίος είναι µεταξύ 'a' και 'z' (συµπεριλαµβανοµένων) Ένα κενό Ένας ακέραιος ο οποίος είναι το πλήθος εµφανίσεων του προηγούµενου χαρακτήρα. Αλλαγή γραµµής Δεν είναι απαραίτητο να εµφανίζονται όλοι οι χαρακτήρες ή να εµφανίζονται µε κάποια σειρά. Μπορείτε να υποθέσετε ότι κάθε χαρακτήρας δε µπορεί να έχει περισσότερες από 10 εµφανίσεις. Κατασκευάστε ένα πίνακα στον οποίο θα αποθηκεύσετε τα πλήθη εµφανίσεων έτσι ώστε στη θέση 0 του πίνακα να είναι ο αριθµός εµφανίσεων του 'a', στη θέση 1 ο αριθµός εµφανίσεων του 'b' κ.ο.κ. Αν τα δεδοµένα που θα διαβαστούν είναι 0 - τότε θεωρούµε ότι δεν υπάρχουν άλλα και η ανάγνωση σταµατά. Η πληροφορία 0 - δεν εισάγεται στον πίνακα. Το πρόγραµµα δε χρειάζεται να εκτυπώνει κάποιο µήνυµα προς το χρήστη. Κατασκευάστε ένα δεύτερο πίνακα, στον οποίο θα αποθηκεύσετε µια συµβολοσειρά ως εξής: Για κάθε χαρακτήρα από 'a' έως 'z' γράφετε τόσα αντίγραφα αυτού στη συµβολοσειρά όσο είναι το πλήθος που αποθηκεύσατε στον πίνακα. Ανάµεσα σε διαφορετικούς χαρακτήρες πρέπει να γράψετε ως διαχωριστικό το χαρακτήρα %. Αν ένας χαρακτήρας έχει µηδέν εµφανίσεις, τότε πρέπει να τον παρακάµπτετε και να πηγαίνετε στον επόµενο. Τέλος, εκτυπώστε τη συµβολοσειρά. Παράδειγµα εκτέλεσης: ΠΡΟΣΟΧΗ: Το πρόγραµµα πρέπει να είναι γραµµένο έτσι ώστε να µπορούµε εύκολα να αλλάξουµε το εύρος χαρακτήρων. Αυτό σηµαίνει πως (α) το πλήθος των δυνατών χαρακτήρων, το οποίο στη συγκεκριµένη άσκηση είναι 26 πρέπει να είναι δηλωµένο ως σταθερά και να χρησιµοποιείται αναλόγως, και (β) δεν πρέπει να χρησιµοποιήσετε δοµές ελέγχου για να βρείτε τη θέση του πίνακα που αντιστοιχεί σε κάθε χαρακτήρα. Θα πρέπει να σκεφτείτε ένα τύπο αριθµητικής χαρακτήρων ο οποίος θα σας δίνει τη θέση 0 αν ο χαρακτήρας είναι a, τη θέση 1 αν ο βαθµός είναι b κ.ο.κ. 2

Άσκηση 2 Το πρόγραµµα που θα γράψετε για την άσκηση 2 πρέπει να το αποθηκεύσετε σε αρχείο µε όνοµα lab5b.c µέσα στο φάκελο lab5. Γράψτε ένα πρόγραµµα το οποίο κατασκευάζει έναν αρχικά άδειο πίνακα χαρακτήρων και µετά τον γεµίζει από όσα αντίγραφα µιας συµβολοσειράς χωράνε σε αυτόν. Για την ακρίβεια, το πρόγραµµά σας πρέπει να: 1. Κατασκευάζει ένα πίνακα χαρακτήρων µεγέθους SIZE. Ο πίνακας αρχικά είναι άδειος. 2. Εκτυπώνει το µήνυµα "Enter word :" και διαβάζει από το πληκτρολόγιο µια λέξη µέγιστου µεγέθους SIZE (συµπεριλαµβανοµένου του '\0') 3. Υπολογίζει πόσες φορές χωρά η λέξη στον αρχικό πίνακα και την αντιγράφει σε αυτόν τόσες φορές. Αν περισσεύουν θέσεις στον αρχικό πίνακα, τότε αντιγράφει σε αυτές όσους χαρακτήρες της λέξης χωράνε, λαµβάνοντας υπόψη ότι θα χρειαστεί και µια θέση για το '\0' στον πίνακα χαρακτήρων. 4. Εκτυπώνει τον πίνακα ως συµβολοσειρά. Χρησιµοποιήστε την τιµή 15 για το SIZE για να ελέγξετε την ορθότητα του προγράµµατός σας, αλλά πρέπει να είναι γραµµένο µε τέτοιο τρόπο ώστε να λειτουργεί σωστά για οποιαδήποτε θετική τιµή του SIZE. Το πρόγραµµά σας πρέπει να χρησιµοποιεί συναρτήσεις από το string.h Στο παρακάτω σχήµα µπορείτε να δείτε την έξοδο της δικής µας λύσης για διάφορες λέξεις. ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΑΠΟΣΤΟΛΗ ΤΩΝ ΑΣΚΗΣΕΩΝ ΒΡΙΣΚΟΝΤΑΙ ΣΤΟ ΤΕΛΟΣ ΤΟΥ ΦΥΛΛΑΔΙΟΥ 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 επαναλαµβάνονται για καινούργια λέξη, µέχρις ότου δοθεί η λέξη STOP. Επίσης, η λέξη προστίθεται κάθε φορά στον πίνακα µόνο αν χωρά ολόκληρη. Αν δε χωράει, τότε το βήµα 3 δεν ολοκληρώνεται και το πρόγραµµα προχωρά στην επόµενη λέξη. Τρέξτε το πρόγραµµά σας δίνοντας µεγάλες λέξεις. Τι παρατηρείτε? Τι πιστεύετε ότι προκάλεσε την περίεργη συµπεριφορά του προγράµµατος και πώς µπορούµε να λύσουµε το πρόβληµα? Σηµείωση: Αν η άσκηση δε σας παρουσιάζει πρόβληµα όταν δίνετε µεγάλες λέξεις, τότε κάτι δεν έχετε κάνει σωστά :) Αποστολή του προγράµµατος για διόρθωση και σχολιασµό Η αποστολή γίνεται από τον οδηγό. Για να στείλετε το πρόγραµµά σας για βαθµολόγηση, ανοίξτε ένα τερµατικό (ή χρησιµοποιήστε αυτό του 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