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

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

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

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

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

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

FAIL PASS PASS οριακά

lab10grades - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζετε µέσα σε εισαγωγικά "Helo".

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

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

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

lab6grades - Δεν έχετε δηλώσει το βαθµό βάσης ως σταθερά. - Το µήνυµα εισόδου θέλει χαρακτήρα κενού ' ' στο τέλος και όχι TAB '\t'.

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου.

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

-Δεν έχεις σχόλια, καλό θα ήταν να έχεις πιο περιγραφικό σχόλιο στην αρχή

lab5grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ ΑΣΚΗΣΗΣ ΑΛΛΑ ΣΧΟΛΙΑ

lab11 - Να εκτυπώνεις πιο κατατοπιστικά µηνύµατα λάθους. Αν είναι όλα ίδια, δεν είναι ξεκάθαρο ποιο αρχείο έχει πρόβληµα.

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

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

Άσκηση 2: -Δεν παραδόθηκε. Το εµαιλ είχε λάθος θέµα. Έπρεπε να είναι CE120 lab6

lab9grades -Έπρεπε να χρησιµοποιήσεις την sprintf για το formatting των strings.

Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ. οριακό PASS

lab5 -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο

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

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

lab4grades Παρακαλούµε µη γράφετε σχόλια στα ελληνικά!

Sheet1_2. - Δεν υπάρχουν σχόλια συναρτήσεων - Να χρησιµοποιείς πιο περιγραφικά ονόµατα µεταβλητών (και σίγουρα όχι απλούς χαρακτήρες όπως c, d) Page 1

Μ.Σ. lab12grades FAIL. η συνθήκη για έξοδο είναι και αυτή σωστή. Οριακό PASS. στα string. - σωστή και η κλήση της συνάρτησης.

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

Τα ονόµατα των φακέλων πρέπει να έχουν το επίθετά σας και όχι τα username που χρησιµοποιείτε στα εργαστήρια.

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

Βαθμός Σχόλια. lab8. οριακά PASS 1194 PASS

- Ο τελευταίος έλεγχος στη συνάρτηση είναι περιττός. Αν έχει φτάσει µέχρι εκεί το πρόγραµµα, τότε αναγκαστικά το µήκος είναι >= του PASSWD_MIN_LEN.

ΑΕΜ ή username. Sheet2

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

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

- Το πρόγραµµα σας δίνει τα αναµενόµενα αποτελέσµατα.

Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου.

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

lab3grades - Δεν παραδόθηκε. - Προσπαθήστε να κάνετε την άσκηση στο σπίτι.

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

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

ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ. 812 PASS Καλή δουλειά

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

to post PASS PASS FAIL

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

Sheet1_2 FAIL. - To πρόγραµµα δεν κάνει compile Δεν παρέδωσε FAIL

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

οριακό PASS 402 PASS Πολύ σωστά, µπράβο οριακό PASS

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

Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 321 FAIL

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

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

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

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

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

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

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

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

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

lab5grades Διαδικαστικά: όλα οκ, αλλά καθυστερήσατε στην αποστολή. Να προσέχετε να στέλνετε τις ασκήσεις σας εντός της προθεσµίας.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lab3_all Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ

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

Sheet2. - Άσκηση 1 οκ - Άσκηση 2 οκ. Σκέψου πώς θα µπορούσες να την

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

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

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

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

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

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

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

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

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

Στην clearlist: - Όλα ok. οριακό PASS

403 FAIL Λάθος στο πακετάρισµα του αρχείου.

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

Transcript:

00497 Άσκηση1 -Σωστή στοίχιση. -Σωστή χρήση σταθερών. -Σωστά ονόµατα µεταβλητών. -Σωστή χρήση της sprintf. Το sprintf(formatstring, "%%%ds", INIT_SIZE 1); αρκεί να γραφτεί µια φορά. -Σωστή χρήση των συναρτήσεων -Σωστός αλγόριθµος -Σωστή έξοδος. Άσκηση2 -Σωστή στοίχιση. -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Σωστή µεταφορά στοιχείων µια θέση αριστερά. -Σωστή έξοδος. Page 1

02103 - Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcat για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - O αλγόριθµος που χρησιµοποιήσατε είναι σωστός στη γενική του περίπτωση αλλά έχετε κάνει ένα σηµαντικό λάθος στον ορισµό του αριθµού των λέξεων που θα τοποθετηθούν στο final string. - Έχετε υποθέσει οτι το µέγεθος των συµβολοσειρών που δίνει ο χρήστης θα έχουν µέγεθος 5 γράµµατα. Στην πραγµατικότητα έπρεπε να είχατε χρησιµοποιήσει τη συνάρτηση strlen για να βρείτε το µέγεθος της συµβολοσειράς που θέλετε να χωρέσετε και µε αυτό να υπολογίσετε τον ακριβή αριθµό που χωράει. - Η στοίχιση σας είναι πολύ σωστή. - Σωστή είναι και η εκτύπωση των µηνυµάτων - Σωστά χρησιµοποιήσατε sprintf για να διαβάζετε σωστά την είσοδο απο το χρήστη µε βάση το defined µέγεθος. - Σωστά χρησιµοποιήσατε το isalpha για να αναγνωρίσετε τα γράµµατα απο τα υπόλοιπα σύµβολα και αριθµούς. - Είχατε 2 πολύ βασικά λάθη. Το πρώτο είναι οτι για κάποιο λόγο υπήρχε ένα ερωτηµατικό στο τέλος for() και πρίν την { µε αποτέλεσµα να µην εκτελείτε παρα µόνο µια φορά το for loop. Είναι περίεργο λαθος και φαίνεται να έγινε απο copy - paste. Να είστε πολύ προσεκτικοί την ώρα που γράφετε κώδικα γιατι τέτοια λάθη είναι πολύ δύσκολο να ανιχνευθούν. Το δεύτερο λαθος είναι οτι ενώ δουλεύετε µε 2 string, τα string_a και string_b στο τέλος εκτυπώνετε το string_c. - Στην επανάληψη έχετε κάνει το ίδιο λάθος µε την πρώτη άσκηση. Τελειώνετε την επανάληψη στο µέγιστο µέγεθος του πίνακα ενώ η συµβολοσειρά που έχει διαβάσει µπορεί να είναι πολύ µικρότερη και έτσι να διαβάζετε σκουπίδια. Θα πρέπει να χρησιµοποιείτε την strlen για να βρίσκετε το ακριβές µέγεθος της συµβολοσειράς. - Απο τον παραπάνω αλγόριθµο, σωστά µεταφέρετε τα µη-γράµµατα στον 2ο πίνακα αλλά δεν τα αφαιρείτε σωστά απο τον πρώτο πίνακα. - Ολοκληρώστε σωστά την άσκηση στο σπίτι σας. Page 2

02104 - Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες. Τα ονόµατα θα µπορούσαν να ήταν αρκετά πιο περιγραφικά. Επίσης το µέγεθος που δεσµεύσετε για το format string είναι παραπάνω απο όσο χρειάζεται. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcat/strlen/strcpy για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - O αλγόριθµος που χρησιµοποιήσατε είναι σωστός. - Σωστή είναι και η εκτύπωση των µηνυµάτων - Σωστή η στοίχιση σας. - Πολύ καλά και τα σχόλια - Σωστά χρησιµοποιήσατε sprintf για να διαβάζετε σωστά την είσοδο απο το χρήστη µε βάση το defined µέγεθος. - Σωστά χρησιµοποιήσατε το isalpha για να αναγνωρίσετε τα γράµµατα απο τα υπόλοιπα σύµβολα και αριθµούς. - Σωστά αντιγράφετε τα µη - γράµµατα σε ξεχωριστό πίνακα - Δεν διαγράφετε σωστά τα γράµµατα απο τον πρώτο πίνακα. - Ολοκληρώστε σωστά την άσκηση στο σπίτι σας. 02105 - Έχεις υπερβεί το επιτρεπτό όριο απουσιών στο εργαστήριο. 02106 FAIL Δεν ελήφθη άσκηση - Το αρχείο θέλουµε να έχει κατάληξη.tgz 02107 FAIL : -Καλή στοίχιση και χρήση µεταβλητών -Στην printf ( "Enter string (MAX length L) : " ) έπρεπε το "L" να έχει αντικατασταθεί µε το όριο το οποίο είχατε κάνει define πιο πάνω! (-1 για να υπολογίσετε και το \0). - Θα έπρεπε να έχετε χρησιµοποιήσει τη sprintf για την κατασκευή κατάλληλου format string για την scanf. - Σωστή χρήση των συναρτήσεων της string.h, αν και θα µπορούσατε να είχατε strcpy αντί για sprintf -Η έξοδος δεν είναι αυτή που ζητάει η εκφώνηση -Λάθος µαθηµατική προσέγγιση: Πρώτα ελέγχουµε αν χωράει το string και µετά το αντιγράφουµε. Επίσης, η αντιγραφή έπρεπε να γίνεται στο str3, όχι το µικρό στο µεγάλο! -Λάθος αποτελέσµατα - Αν και προχωρήσατε στην επίλυση του προβλήµατος, υπάρχουν πολλά προβλήµατα, λάθος λογική και λάθος αποτελέσµατα Page 3

02109 02111 02112 FAIL Το πρόγραµµα δεν κάνει compile - Σωστή στοίχιση. - Απουσία σχολίων. - Σωστή χρήση sprintf και δηµιουργία του format string. Δεν χρειαζόταν να το κάνετε δύο φορές. - Σωστός υπολογισµός πόσες φορές χωράει το string στον πίνακα. - Σωστή χρήση strcmp - Σωστή χρήση strcat µέσα στην ανακύκλωση. - Σωστή εκτύπωση. - Σωστή στοίχιση - Απουσία σχολίων. - Σωστή χρήση sprintf και δηµιουργία του format string. - Σωστή χρήση isalpha και αντιγραφή των µη αλφαβητικών χαρακτήρων στον νέο πίνακα. - Σωστή αντιγραφή των στοιχείων του πίνακα µία θέση αριστερά. Ποιο σωστό θα ήταν να γράφατε for(x=i; x<strlen(initial_string); x++). Σωστή µείωση του i κατά 1. - Ο κώδικας που περιέχεται στο else µέσα στην ανακύκλωση είναι περιττός και θα µπορούσε να εισάγει λάθη στο πρόγραµµα σας. - Σωστή εκτύπωση.γενική παρατήρηση: Μην αφήνετε τόσο µεγάλα κενά ανάµεσα στις εντολές των προγραµµάτων σας. Κενά αφήνουµε εκεί που τελειώνει µία ενότητα υπολογισµού και ξεκινάει µία νέα. : - Καλά σχόλια - Καλά ονόµατα µεταβλητών/σταθερών - Καλή στοίχιση - Σωστή χρήση sprintf - Σωστή χρήση συναρτήσεων strings - Ο αλγόριθµός σας έχει ένα λάθος στο µέτρηµα και σταµατάει µια θέση πριν να πρέπει. Έπρεπε να είχατε <= στο loop. - Κατα τα άλλα καλή δουλειά. - Κάντε τη στο σπίτι. 02113 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Κάντε την άσκηση στο σπίτι. Page 4

02115 : - Τα ονόµατα των σταθερών τα γράφουµε µε όλα τα γράµµατα κεφαλαία και των µεταβλητών µε µικρά. Μην τα ανακατεύετε. - Σωστή χρήση sprintf. - Τα ονόµατα len1, len2, len3 δεν είναι ιδιαίτερα περιγραφικά - Σωστή χρήση συναρτήσεων strings - Σωστή στοίχιση - Σωστή προσπέλαση πινάκων. - Καλή δουλειά, εκτός από το θέµα των κεφαλαίων. : - Καλά σχόλια - Καλά ονόµατα µεταβλητών/σταθερών - Καλή στοίχιση - Σωστή χρήση sprintf - Σωστή χρήση συναρτήσεων strings - Ο αλγόριθµός σας έχει ένα λάθος στο µέτρηµα και σταµατάει µια θέση πριν να πρέπει. Έπρεπε να είχατε <= στο loop. Γενικά είναι λίγο µπερδεµένος, αλλά λειτουργεί σωστά. Προσπαθήστε να τον απλοποιήσετε (σαν "πρόκληση" :)) - Καλή δουλειά. 02116 - Το string_size_moment θα µπορούσατε να το είχατε αρχικοποιήσει µε βάση το µήκος του string. Δεν υπάρχει λόγος να διατρέξετε ολόκληρο τον πίνακα αν το string καταλαµβάνει µόνο µέρος αυτού. - Προσοχή στα όρια των loops όταν διατρέχετε πίνακες. Το string_size_moment παίρνει ως µέγιστη τιµή το STR_SIZE-1, άρα το j παίρνει ως µέγιστη τιµή το STR_SIZE-1, οπότε και το string[j+1] γίνεται string[str_size] που είναι εκτός του πίνακα. - Για την εκτύπωση του " µπορούσατε να είχατε βάλει \" στην printf. - Καλή δουλειά. - Οµοίως για τα ονόµατα σταθερών/µεταβλητών - Προσοχή στα όρια των loops όταν διατρέχετε πίνακες. Η τελευταία τιµή που παίρνει το j είναι len-1, οπότε το STR_SIZE[j+1] είναι STR_SIZE[len] το οποίο είναι µια θέση έξω από τον πίνακα. Το ίδιο πρόβληµα ισχύει και µε το i. - Καλή δουλειά κατά τα άλλα. Page 5

: 02117 - Σωστή δηµιουργία του formatstring. - Δεν έχετε αρχικοποιήσει την µεταβλητή sum_thesewn πριν τη χρησιµοποιήσετε. Να αρχικοποιείτε ΠΑΝΤΑ τις µεταβλητές πριν τη χρήση τους. - Ο έλεγχος µεγέθους πριν την ανάθεση στο final_str δεν είναι σωστός. Ελέγχετε µε το µέγεθος του πίνακα και όχι µε το µέγεθος των συµβολοσειρών. Συνεπώς το final_str δεν γεµίζει πλήρως. - Η έξοδος πρέπει να είναι το final_str και το µέγεθός του. Αντ' αυτού εσείς τυπώνετε το big. - Ο αλγόριθµος διαγραφής των σηµείων στίξης δεν είναι σωστός. Η ανάθεση στο εσωτερικό for δεν µεταφέρει σωστά τα στοιχεία κατά µία θέση αριστερά. Προσπαθήστε να διορθώσετε τις ασκήσεις στο σπίτι. : 02118 -Καλή στοίχιση και χρήση µεταβλητών - Θα έπρεπε να έχετε χρησιµοποιήσει τη sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Δεν έχετε αρχικοποιήσει το final_string σε κενή συµβολοσειρά έτσι ώστε να δουλέψουν σωστά οι συναρτήσεις του 'string.h'. Αυτό έχει ως αποτέλεσµα να µην γεµίζετε σωστά το final_string και να βλέπετε σκουπίδια στην έξοδο. - Δεν έγινε, κάντε τη στο σπίτι 02119 - Απουσία από το εργαστήριο Page 6

02121 - Γενικά καλή δουλειά. - Σωστή στοίχιση. - Περιγραφικά ονόµατα µεταβλητών και σωστός ορισµός σταθερών. - Θέλει ένα κενό µετά το µήνυµα εισαγωγής, όχι δύο. - Σωστή η χρήση της sprintf. - Σωστή χρήση strcmp/strcpy/strcat/strlen. - Καλός ο αλγόριθµος που υλοποιήσατε για την συµπλήρωση του τελικού πίνακα, αλλα στην τελευταία if δε χρειάζεται το -1 (ή εναλλακτικά έπρεπε να είχατε <=). Δοκιµάστε να τρέξετε το πρόγραµµα µε εισόδους "a" και "b" - Σωστή η χρήση της sprintf. - Χρησιµοποιείτε σωστά την συνάρτηση ispunct() αλλά δεν κάνετε σωστά τις µεταθέσεις των γραµµάτων µε αποτέλεσµα ο κώδικας να µην δουλεύει. 02122 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Ονοµατα µεταβλητών όπως το "str_len" δεν είναι αποδεκτά! - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Κάντε την άσκηση στο σπίτι. 02123 Ασκηση 1 - Καθόλου σχόλια. - Η άσκηση ζητούσε για ΙΝΙΤ_SIZE 6. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Ονόµατα µεταβλητών όπως το "string1","string2" δεν είναι αποδεκτά! - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος υπό συνθήκες. - Καθόλου σχόλια. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Σωστή χρήση sprintf. - Σωστή χρήση isalpha. - Σωστά αποτελέσµατα. Page 7

02124 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Ονοµατα µεταβλητών όπως το "str_len" δεν είναι αποδεκτά! - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Κάντε την άσκηση στο σπίτι. 02125 - Απουσία από το εργαστήριο 02126 02128 02129 - Απουσία από το εργαστήριο : - Καλή στοίχιση. - Λίγα σχόλια - Καλά ονόµατα µεταβλητων/σταθερών - Η sprintf δε χρειάζεται να καλείται δυο φορές. Το ίδιο format string φτιάχνει σε κάθε περίπτωση. - Η συνθήκη στη while είναι λάθος. Δοκιµάστε το big και το small να είναι "b" και "a" αντίστοιχα και θα δείτε ότι πέφτει σε ατέρµονο loop. Το πρόβληµα είναι στο πότε πρέπει ή δεν πρέπει να χρησιµοποιείτε τα -1, +1 στις συνθήκες σας (τα οποία λαµβάνουν υπόψη την ύπαρξη του \0). Προσπαθήστε να το διορθώσετε. - Το string µπορεί να περιέχει οτιδήποτε, όχι µόνο αλφαριθµητικά. Η χρήση isalnum δεν είναι αρκετή. Επίσης, η άσκηση ζητά να µεταβάλλετε το αρχικό string, όχι απλά να εκτυπώσετε κάποιους χαρακτήρες του. - Έχετε στείλει µόνο την πρώτη άσκηση. Λύστε την δεύτερη στο σπίτι. - Καθόλου σχόλια! - Δεν δηµιουργείτε το formatstring για την είσοδο του προγράµµατος, βάσει των δηλωµένων σταθερών. - Το επιτρεπτό µήκος συµβολοσειράς για το πρόγραµµα είναι INIT_SIZE - 1, καθώς µία θέση πρέπει να αντιστοιχεί πάντα στο '\0' - Η στοίχιση στο σώµα του while είναι κατά ένα TAB δεξιότερα απ' ότι πρέπει. - Για την εύρεση του µεγέθους µιας συµβολοσειράς έπρεπε να χρησιµοποιήσετε τη συνάρτηση strlen(). Η εκφώνηση τονίζει πως έπρεπε να χρησιµοποιήσετε συναρτήσεις από το string.h. - Σωστός αλγόριθµος Page 8

02130 Ασκηση 1 - Σωστές σταθερές και σωστά έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Λάθος στον αλγόριθµο: στον υπολογισµό του times δεν λαµβάνετε υπόψη τη θέση για το \0 - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Απαγορευόταν επίσης η χρήση συναρτήσεων της string.h. - Κάντε την άσκηση στο σπίτι. 02131 - Καλή στοίχιση του κώδικα, αλλά είναι δυσανάγνωστος. - Τα ονόµατα lenght1 και length2 δεν είναι περιγραφικά. - Σωστός ορισµός µεταβλητών και σταθερών. - Σωστή η χρήση της sprintf. - Σωστή χρήση strcmp/strcpy/strcat/strlen. - Όταν ζητάτε µία τιµή από τον χρήστη έπρεπε να έχετε ένα κενό µετά την άνω-κάτω τελεία. Δεν είστε συνεπείς. - O αλγόριθµος που γράψατε για την συµπλήρωση του τελικού πίνακα είναι σωστός αλλά τον κάνατε αρκετά δύσκολο ενώ δεν είναι. - Η έξοδος του προγράµµατος δεν είναι απόλυτα σωστή καθώς δεν εκτυπώνετε το µήκος της τελικής συµβολοσειράς. - Σωστή η χρήση της sprintf. - Χρησιµοποιείτε σωστά την συνάρτηση ispunct() αλλά δεν κάνετε σωστά τις µεταθέσεις των γραµµάτων µε αποτέλεσµα ο κώδικας να µην δουλεύει για όλες τις περιπτώσεις. 02132 - Σωστή στοίχιση. - Απουσία σχολίων. - Σωστή χρήση sprintf και δηµιουργία του format string. Δεν χρειαζόταν να το κάνετε δύο φορές. - Σωστός υπολογισµός πόσες φορές χωράει το string στον πίνακα. - Σωστή χρήση strcmp - Σωστή χρήση strcat µέσα στην ανακύκλωση. - Σωστή εκτύπωση. - Σωστή στοίχιση - Απουσία σχολίων. - Σωστή χρήση sprintf και δηµιουργία του format string. - Σωστή χρήση isalpha και αντιγραφή των µη αλφαβητικών χαρακτήρων στον νέο πίνακα. - Σωστή αντιγραφή των στοιχείων του πίνακα µία θέση αριστερά. Ποιο σωστό θα ήταν να γράφατε for(x=i; x<strlen(initial_string); x++). Σωστή µείωση του i κατά 1. - Ο κώδικας που περιέχεται στο else µέσα στην ανακύκλωση είναι περιττός και θα µπορούσε να εισάγει λάθη στο πρόγραµµα σας. - Σωστή εκτύπωση.γενική παρατήρηση: Μην αφήνετε τόσο µεγάλα κενά ανάµεσα στις εντολές των προγραµµάτων σας. Κενά αφήνουµε εκεί που τελειώνει µία ενότητα υπολογισµού και ξεκινάει µία νέα. Page 9

- Λάθος στην κατασκευή του tgz. Δεν έπρεπε να περιλαµβάνεται φάκελος lab7 µέσα! 02134 Άσκηση1 -Σωστά σχόλια -Σωστή στοίχιση -Σωστή χρήση σταθερών -Σωστά ονόµατα µεταβλητών -Σειρά 19 20 δεν χρειάζονται -Σωστή χρήση της sprintf -Σωστή χρήση των συναρτήσεων -Λάθος στον υπολογισµό του times! -Σωστή έξοδος 02137 Άσκηση2 -Σωστά σχόλια -Σωστή στοίχιση -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Δεν δουλεύει σωστά το πρόγραµµά σας γιατί έχετε λάθος τη συνθήκη τερµατισµού µέσα στο for, πρέπει να είναι english[i]!= '\0' και όχι ι<ν. Επίσης έπρεπε να βάζατε ένα \0 στο τέλος και του non_engish πίνακα. -Προσπαθήστε να λύσετε την άσκηση σωστά. - Το όνοµα του αρχείου έπρεπε να τελειώνει σε.tgz όχι.tar.gz - Η sprintf δε χρειάζεται να καλείται δυο φορές. Το ίδιο format string φτιάχνει σε κάθε περίπτωση. - Καλή στοίχιση - Τα σχόλια πρέπει να διευκρινίζουν κάτι που δεν είναι καθαρό από τον κώδικα. Η χρήση strlen είναι αρκετά ξεκάθαρη. - Τα l1, l2 δεν είναι καλά ονόµατα µεταβλητών.γιατί όχι length1, length2. Ακόµη καλύτερα, θα µπορούσατε να είχατε υπολογίσει τα µήκη των big_str και small_str µόνο. - Η συνθήκη της if στο τέλος είναι λάθος. Χρησιµοποιείτε το l1, αλλά αυτό δεν είναι απαραίτητα το µήκος του µεγαλύτερου string. - Έπρεπε να εκτυπώνετε και το µήκος - Δεν έγινε, κάντε τη στο σπίτι. Page 10

02138 : -Καλή στοίχιση και χρήση µεταβλητών -Kαλή χρήση της sprintf - Σωστή χρήση των συναρτήσεων της string.h. -Σωστή αρχικοποίηση του τελικού πίνακα -Σωστός αλγόριθµος -καλό πρόγραµµα 02139 - Είστε κοντά στη λύση ωστόσο έχετε κάποια µικρά λάθη.πιο συγκεκριµένα, δεν απαλείφονται όλα τα σηµεία στίξης όπως σας ζητάει η εκιφώνηση Προσπαθείστε να διορθώσετε τα λάθη στο σπίτι : - Καλά σχόλια - Καλά ονόµατα µεταβλητών/σταθερών - Καλή στοίχιση - Σωστή χρήση sprintf - Σωστή χρήση συναρτήσεων strings - Σωστός αλγόριθµος - Πολύ καλή δουλειά, µπράβο. - Προσοχή στα όρια των loops όταν διατρέχετε πίνακες. Το j παίρνει ως µέγιστη τιµή το STR_SIZE-1, οπότε και το stringentered[j+1] γίνεται stringentered[str_size] που είναι εκτός του πίνακα. - Για την εκτύπωση του " βάζετε \" στην printf. - Καλή δουλειά. Page 11

Το αρχείο πρέπει να έχει κατάληξη.tgz 02140 FAIL 'Ασκηση 1 - Καθόλου σχόλια. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Άσχηµη ονοµατολογία µεταβλητών. - Λάθος µέγεθος για το format_string! - Έπρεπε να χρησιµοποιήσετε functions από το string.h και οχι να υλοποιήσετε µόνοι σας την strlen() - Σωστή στοίχιση. - Λάθος αλγόριθµος. Η γραµµή 29 θα έπρεπε να είναι div = (FINAL_SIZE-1)/i ώστε να λαµβάνετε υπόψη και το \0 και ο έλεγχος στο for να είναι i<div - Σωστή στοίχιση. 02143 - Καθόλου σχόλια. - Λάθος µέγεθος για το format_string! Καταστρεπτικό σενάριο αλλαγής του Ν σε 3. - Άσχηµη ονοµατολογία µεταβλητών. - Δεν έχετε κατανοήσει καθόλου τι σας ζητάει η άσκηση πρέπει να σβήσετε του χαρακτήρες και όχι να τους κάνετε ' '. - Κάντε την άσκηση σπίτι Ασκηση 1 - Δεν έχετε βάλει πουθενά σχόλια - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Λάθος! Σε κάθε βοηθητικό πίνακα που δηµιουργήσατε γράφετε τον χαρακτήρα '\0' στο στοιχείο Ν δηλαδή εκτός του πίνακα. Το σωστό ήταν να γράψετε τον χαρακτήρα '\0' ένα στοιχείο µετά από εκεί που γράψατε τον τελευταίο χαρακτήρα. - Κάντε την άσκηση στο σπίτι. 02144 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format έπρεπε να οριστεί µε σταθερά. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. Εφόσον και το 2ο string έχει ίδιο format µε το πρώτο δε χρειάζεται να ξανακάνετε την sprinrf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή χρήση sprintf. - Σωστή χρήση isalpha. - Σωστά αποτελέσµατα. Page 12

02145 FAIL - Έχετε στείλει µόνο την πρώτη άσκηση. Λύστε την δεύτερη στο σπίτι. - Καθόλου σχόλια! - Πολλές κενές γραµµές µεταξύ των εντολών εισόδου. - Αρκεί µια χρήση της sprintf εφόσον θέλουµε το ίδιο format string και στις δύο περιπτώσεις. - Μην αφήνετε περισσότερες από µία κενές γραµµές µεταξύ των ενοτήτων του προγράµµατος. - Σωστή δηµιουργία του formatstring. Το formatstring για τη δεύτερη είσοδο είναι το ίδιο µε αυτό της πρώτης, εποµένως αρκεί να το δηµιουργήσετε µόνο µία φορά. - Η τιµή επιστροφής της strcmp() µπορεί να είναι οποιοσδήποτε θετικός ή αρνητικός αριθµός όταν οι δυο συµβολοσειρές είναι διαφορετικές. Ο σωστός έλεγχος είναι strcmp() > 0. - Τα ονόµατα µεταβλητών i,j,k δεν είναι περιγραφικά. Να τα χρησιµοποιείτε µόνο σαν µετρητές σε κάποιο for statement. - Το τελικό µέγεθος που εκτυπώνετε για το final_string είναι κατά ένα µεγαλύτερο από το πραγµατικό µέγεθος της αποθηκευµένης συµβολοσειράς (µετράτε και το τελικό '\0'). Να χρησιµοποιείτε την strlen() για να βρείτε το µέγεθος µιας συµβολοσειράς. - Λάθος στον αλγόριθµο : Δε λαµβάνετε υπόψη την περίπτωση να χωράει άλλη µια φορά το big στο τελικό string. 02146 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος, αλλά δεν αρχικοποιείτε το τελικό string! - Σωστή στοίχιση. - Σωστή έξοδος. Άσκηση 2- Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Κάντε την άσκηση στο σπίτι. 02147 - Σωστή στοίχιση. - Σωστά σχόλια. - Έχεις επιλέξει για τους πίνακες ονόµατα µεταβλητών που αποτελούνται από ένα µόνο χαρακτήρα (a,b) πράγµα που παραπέµπει σε µετρητές και µπορεί να σε µπερδέψει. Χρησιµοποιούµε πάντα περιγραφικά ονόµατα (π.χ. pinakas1, str1 κλπ). - Σωστή χρήση sprintf και δηµιουργία του format string. To format string δεν χρειαζόταν να το κάνεις 2 φορές. Μία αρκεί και για τις δύο κλήσεις της scanf. - Λάθος υπολογισµός πόσες φορές χωράει το string στον πίνακα. Το σωστό είναι (FINAL_SIZE-1)/letters. - Σωστή χρήση strcmp - Σωστή χρήση strcat µέσα στην ανακύκλωση. - Σωστή εκτύπωση. Την printf θα µπορούσες να την βγάλεις έξω από το if/else - Σωστή στοίχιση και σχόλια. - Οµοίως τα ονόµατα που έχεις επιλέξει για τους πίνακες είναι µη περιγραφικά. - Σωστή χρήση sprintf και δηµιουργία του format string. Σωστό διάβασµα µε την scanf. - Σωστή χρήση isalpha και αντιγραφή των µη αλφαβητικών χαρακτήρων στον νέο πίνακα. - Σωστή αντιγραφή των στοιχείων του πίνακα µία θέση αριστερά µε παράλληλη µείωση του µετρητή i. - Σωστή εκτύπωση. Page 13

02148 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format έπρεπε να οριστεί µε σταθερά. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Ολοκληρώστε την άσκηση στο σπίτι. - Σωστή χρήση sprintf. 02149 Άσκηση1 -Δεν έχετε σωστά σχόλια στο πρόγραµµά σας. -Σωστή στοίχιση αλλά το πρόγραµµά σας είναι πολύ πατικωµένο δεν αφήνετε µια κενή γραµµή να ξεχωρίζουν οι ενότητες του προγράµµατος. -Σωστή χρήση σταθερών. -Σωστά ονόµατα µεταβλητών. -Σωστή χρήση της sprintf. Το sprintf(formatstring, "%%%ds", INIT_SIZE 1); αρκεί να γραφτεί µια φορά, δεν χρειάζεται formatstring1, formatstring2 -Σωστή χρήση των συναρτήσεων -Σωστός αλγόριθµος 02153 -Σωστή έξοδος. Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format έπρεπε να οριστεί µε σταθερά. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Λάθος! Σε κάθε βοηθητικό πίνακα που δηµιουργήσατε γράφετε τον χαρακτήρα '\0' στο στοιχείο Ν δηλαδή εκτός του πίνακα. Το σωστό ήταν να γράψετε τον χαρακτήρα '\0' ένα στοιχείο µετά από εκεί που γράψατε τον τελευταίο χαρακτήρα. - Κάντε την άσκηση στο σπίτι. Άσκηση2 -Δεν έχετε σωστά σχόλια στο πρόγραµµά σας. -Σωστή στοίχιση αλλά το πρόγραµµα σας είναι πολύ πατικωµένο. -Σωστή χρήση σταθερών αλλά δεν χρειάζονταν διαφορετικό µέγεθος οι πίνακες. -Στον ορισµό των πινάκων ειναι ab[maxlenght] και όχι +1 -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Σωστή η µετάθεση των στοιχείων. -Σωστή έξοδος. Page 14

02154 FAIL Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Ελλιπής σχολιασµός. - Λάθος µέγεθος για το format_string! - Έπρεπε να χρησιµοποιήσετε functions από το string.h και οχι να υλοποιήσετε µόνοι σας την strlen() - Σωστή χρήση sprintf. - Λάθος στον αλγόριθµο. Στον υπολογισµό του times δεν υπολογίζετε ότι χρειάζεται µια θέση για το \0 - οκ στοίχιση εκτός από 1 σηµείο που σας ξέφυγε. - Σωστή έξοδος. - Αποφεύγετε να επαναλαµβάνετε ίδιο κώδικα. Τα δύο µέρη του if/else είναι όµοια. Θα µπορούσατε να είχατε αποθηκεύσει το µεγαλύτερο string σε ένα νέο πινακάκι και να χρησιµοποιούσατε αυτό. - Κάντε την άσκηση στο σπίτι. 02156 02157 : - Δεν έχει σχόλια - Καλά ονόµατα µεταβλητών/σταθερών, αλλά τα ονόµατα µεταβλητών κατά σύµβαση ξεκινούν µε µικρό γράµµα. - Καλή στοίχιση - Σωστή χρήση sprintf - Σωστή χρήση συναρτήσεων strings - Σωστός αλγόριθµος. - Καλή δουλειά. - Καλή αρχή, αλλά δεν κάνει compile. Κάντε τη στο σπίτι - Έχετε στείλει µόνο την πρώτη άσκηση. Λύστε την δεύτερη στο σπίτι. - Καθόλου σχόλια! - Δεν δηµιουργείτε το formatstring για την είσοδο του προγράµµατος, βάσει των δηλωµένων σταθερών. - Το επιτρεπτό µήκος συµβολοσειράς για το πρόγραµµα είναι INIT_SIZE - 1, καθώς µία θέση πρέπει να αντιστοιχεί πάντα στο '\0' - Η στοίχιση στο σώµα του while είναι κατά ένα TAB δεξιότερα απ' ότι πρέπει. - Για την εύρεση του µεγέθους µιας συµβολοσειράς έπρεπε να χρησιµοποιήσετε τη συνάρτηση strlen(). Η εκφώνηση τονίζει πως έπρεπε να χρησιµοποιήσετε συναρτήσεις από το string.h. - Σωστός αλγόριθµος 02158 Ασκηση 1 - Καθόλου σχόλια. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος υπό συνθήκες. - Καθόλου σχόλια. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Σωστή χρήση sprintf. - Σωστή χρήση isalpha. - Σωστά αποτελέσµατα. Page 15

02159 - Καλή στοίχιση του κώδικα, αλλά είναι δυσανάγνωστος. - Τα ονόµατα lenght1 και length2 δεν είναι περιγραφικά. - Σωστός ορισµός µεταβλητών και σταθερών. - Σωστή η χρήση της sprintf. - Σωστή χρήση strcmp/strcpy/strcat/strlen. - Όταν ζητάτε µία τιµή από τον χρήστη έπρεπε να έχετε ένα κενό µετά την άνω-κάτω τελεία. Δεν είστε συνεπείς. - O αλγόριθµος που γράψατε για την συµπλήρωση του τελικού πίνακα είναι σωστός αλλά τον κάνατε αρκετά δύσκολο ενώ δεν είναι. - Η έξοδος του προγράµµατος δεν είναι απόλυτα σωστή καθώς δεν εκτυπώνετε το µήκος της τελικής συµβολοσειράς. - Σωστή η χρήση της sprintf. - Χρησιµοποιείτε σωστά την συνάρτηση ispunct() αλλά δεν κάνετε σωστά τις µεταθέσεις των γραµµάτων µε αποτέλεσµα ο κώδικας να µην δουλεύει για όλες τις περιπτώσεις. 02160 - Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες και αρκετά περιγραφικές - Υπάρχει µια δήλωση strcmp(const char *str1,const char *str2) η οποία δεν έχει κανένα νόηµα να βρίσκεται στις δηλώσει µεταβλητών. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcpy/strcat/strlen για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - Σωστός και ξεκάθαρος ο αλγόριθµος που χρησιµοποιήσατε Μια άλλη υλοποίηση που θα µπορούσατε να κάνετε είναι να αποφύγετε τελείως τη χρήση strcpy. Μπορείτε πως θα µπορούσε να γίνει µόνο µε strcat; (Δείτε ακριβώς τι κάνει η strcat) - Ένα σηµείο που δεν είναι ξεκάθαρο είναι ο λόγος που βάλατε - 2 στη συνθήκη του for. Καλό είναι να εξηγείτε γιατι βάζετε τέτοιες τιµές καθώς διαφορετικά φαίνονται σαν µαγικοί αριθµοί - Η στοίχιση σας είναι πολύ σωστή. - Σωστή είναι και η εκτύπωση των µηνυµάτων - Δεν έχει γίνει κάτι σηµαντικό. Πολύ σηµαντικό είναι να ολοκληρώσετε την άσκηση στο σπίτι σας για να εξοικειωθείτε µε τις συµβολοσειρές, τους πίνακες και τις πράξεις τους. 02161 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format έπρεπε να οριστεί µε σταθερά. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Ολοκληρώστε την άσκηση στο σπίτι. - Σωστή χρήση sprintf. Page 16

- Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcat για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - O αλγόριθµος που χρησιµοποιήσατε είναι σωστός στη γενική του περίπτωση αλλά έχετε κάνει ένα σηµαντικό λάθος στον ορισµό του αριθµού των λέξεων που θα τοποθετηθούν στο final string. - Έχετε υποθέσει οτι το µέγεθος των συµβολοσειρών που δίνει ο χρήστης θα έχουν µέγεθος 5 γράµµατα. Στην πραγµατικότητα έπρεπε να είχατε χρησιµοποιήσει τη συνάρτηση strlen για να βρείτε το µέγεθος της συµβολοσειράς που θέλετε να χωρέσετε και µε αυτό να υπολογίσετε τον ακριβή αριθµό που χωράει. - Η στοίχιση σας είναι πολύ σωστή. - Σωστή είναι και η εκτύπωση των µηνυµάτων 02162 - Σωστά χρησιµοποιήσατε sprintf για να διαβάζετε σωστά την είσοδο απο το χρήστη µε βάση το defined µέγεθος. - Σωστά χρησιµοποιήσατε το isalpha για να αναγνωρίσετε τα γράµµατα απο τα υπόλοιπα σύµβολα και αριθµούς. - Είχατε 2 πολύ βασικά λάθη. Το πρώτο είναι οτι για κάποιο λόγο υπήρχε ένα ερωτηµατικό στο τέλος for() και πρίν την { µε αποτέλεσµα να µην εκτελείτε παρα µόνο µια φορά το for loop. Είναι περίεργο λαθος και φαίνεται να έγινε απο copy - paste. Να είστε πολύ προσεκτικοί την ώρα που γράφετε κώδικα γιατι τέτοια λάθη είναι πολύ δύσκολο να ανιχνευθούν. Το δεύτερο λαθος είναι οτι ενώ δουλεύετε µε 2 string, τα string_a και string_b στο τέλος εκτυπώνετε το string_c. - Στην επανάληψη έχετε κάνει το ίδιο λάθος µε την πρώτη άσκηση. Τελειώνετε την επανάληψη στο µέγιστο µέγεθος του πίνακα ενώ η συµβολοσειρά που έχει διαβάσει µπορεί να είναι πολύ µικρότερη και έτσι να διαβάζετε σκουπίδια. Θα πρέπει να χρησιµοποιείτε την strlen για να βρίσκετε το ακριβές µέγεθος της συµβολοσειράς. - Απο τον παραπάνω αλγόριθµο, σωστά µεταφέρετε τα µη-γράµµατα στον 2ο πίνακα αλλά δεν τα αφαιρείτε σωστά απο τον πρώτο πίνακα. - Ολοκληρώστε σωστά την άσκηση στο σπίτι σας. Page 17

02163 FAIL - Καλή στοίχιση του κώδικα. - Τα ονόµατα των µεταβλητών δεν είναι πολύ περιγραφικά. - Σωστός ο ορισµός των σταθερών. - Σωστή η χρήση της sprintf. - Λάθος χρήση της strcmp. Επιστρέφει >0, ή <0, ή0. Όχι 0/1 - Στο µήνυµα εισαγωγής έχετε βάλει max length INIT_SIZE, ενώ κανονικά έπρεπε να είναι INIT_SIZE-1. Η τελευταία θέση ανήκει στο '\0'. - Σωστή χρήση strcpy/strcat/strlen. - Δεν είναι σωστό να αντιγράφετε στην αρχή το big στον τελικό πίνακα χωρίς να ελέγχετε αν χωράει ή όχι. - Λάθος ο αλγόριθµος που γράψατε για την συµπλήρωση του τελικού πίνακα. Βγαίνετε εκτός του πίνακα. 02165 - Να την κάνετε στο σπίτι. Ασκηση1 -Δεν έχετε σωστά σχόλια στην αρχή του προγράµµατος δεν εξηγείτε τι κάνει το πρόγραµµα. -Δεν έχετε σωστή στοίχιση ξεκινάτε όλο το πρόγραµµα ένα tab ποιο µέσα και δεν κλείνετε σε κατάλληλη θέση τα άγκιστρα. -Σωστή χρήση σταθερών -Δεν έχετε πολύ περιγραφικά ονόµατα τι είναι το y?? Για counter του for συνήθως χρησιµοποιούµε το i και j -Σωστή χρήση της sprintf. To sprintf(formatstring, "%%%ds", INIT_SIZE 1); αρκεί να γραφτεί µια φορά. -Σωστή χρήση των συναρτήσεων -Η έξοδος του προγράµµατος δεν είναι σωστή. Τυπώνετε παραπάνω φορές τη λέξη απ όσες φορές χωράει στον πίνακα. Βγαίνετε εκτός ορίων του πίνακα γιατί ενώ βρίσκετε σωστά πόσες φορές χωράει η λέξη κάνετε strcat από 0 έως <=y, το σωστό είναι από 0 έως <y Άσκηση2 -Δεν έχετε σωστά σχόλια στην αρχή του προγράµµατος δεν εξηγείτε τι κάνει το πρόγραµµα. -Σωστή στοίχιση. -Δεν έχετε σωστά περιγραφικά ονόµατα µεταβλητών. Επιπλέον, ονόµατα µε κεφαλαία χρησιµοποιούµε µόνο για σταθερές. Το Μ σας µπερδεύει τον αναγνώστη. -Σωστή χρήση της sprintf. -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Δεν κάνετε σωστά τη µετάθεση των στοιχείων στο array_1 και συγκεκριµένα έχετε λάθος τις συνθήκες τερµατισµού στα for Ξανακάντε τις ασκήσεις, δίνοντας ιδιαίτερη προσοχή στις προσπελάσεις πινάκων και συνθήκες for γιατί φαινεται να έχετε πρόβληµα σε αυτά. Page 18

02166 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format έπρεπε να οριστεί µε σταθερά. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Δεν αρχικοποιείτε το τελικό string πριν γίνει η πρώτη strcat! - Κακή στοίχιση. - Όταν ένα string έχει µέγεθος 6, τότε ο χρήστης πρέπει να δώσει µέχρι και 5 χαρακήρες. Οπότε στην printf έπρεπε να ζητάτε INIT_SIZE-1 χαρακτήρες. - Ολοκληρώστε την άσκηση στο σπίτι. - Να χρησιµοποιήσετε sprintf. - Καλή χρήση του isalpha για την εύρεση του χαρακτήρα. 02168 - Καλή στοίχιση του κώδικα. - Το µέγεθος της maxlength είναι λάθος. Δεν έχει καµία σχέση µε το πόσο είναι το INIT_SIZE! - Σωστός ορισµός σταθερών - Θέλει ένα κενό µετά το µήνυµα εισαγωγής, όχι δύο. - Σωστή η χρήση της sprintf. - Σωστή χρήση strcmp/strcpy/strcat/strlen. - Ο αλγόριθµος που γράψατε για την συµπλήρωση του τελικού πίνακα έχει πρόβληµα. Βγαίνετε εκτός του πίνακα γιατί δε λαµβάνετε υπόψη το \0 στις συνθήκες. - Να την κάνετε στο σπίτι. 02169 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος, αλλά δεν αρχικοποιείτε το τελικό string! - Σωστή στοίχιση. - Σωστή έξοδος. Άσκηση 2- Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Κάντε την άσκηση στο σπίτι. 02170 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Δεν κάνετε χρήση sprintf. Διαβάστε τις διαφάνειες. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - ΑΠΑΡΑΔΕΚΤΗ στοίχιση. Επίσης όλα τα define µπαίνουν µετά τα include. - Σωστή έξοδος. - Λάθος χρήση της sprintf. Διαβάστε τις διαφάνειες. - Ο αλγόριθµός σας δε λειτουργεί τελείως σωστά. Η for έπρεπε να πάει µέχρι τον τελευταίο χαρακτήρα του string και όχι µέχρι το SIZE-1. - Σωστή χρήση isalpha. - Απαράδεκτη στοίχιση. Μην ξαναδούµε τέτοια στοίχιση σε κώδικα, δεν πρόκειται να τον διορθώσουµε! Page 19

02171 : - Τα ονόµατα των σταθερών τα γράφουµε µε όλα τα γράµµατα κεφαλαία και των µεταβλητών µε µικρά. Μην τα ανακατεύετε. - Σωστή χρήση sprintf. - Τα ονόµατα len1, len2, len3 δεν είναι ιδιαίτερα περιγραφικά - Σωστή χρήση συναρτήσεων strings - Σωστή στοίχιση - Σωστή προσπέλαση πινάκων. - Καλή δουλειά, εκτός από το θέµα των κεφαλαίων. 02172 - Οµοίως για τα ονόµατα σταθερών/µεταβλητών - Προσοχή στα όρια των loops όταν διατρέχετε πίνακες. Η τελευταία τιµή που παίρνει το j είναι len-1, οπότε το STR_SIZE[j+1] είναι STR_SIZE[len] το οποίο είναι µια θέση έξω από τον πίνακα. Το ίδιο πρόβληµα ισχύει και µε το i. - Καλή δουλειά κατά τα άλλα. - Καλή στοίχιση. - Καλά ονόµατα µεταβλητών και σταθερών, αλλά δεν έχεις αρχικοποιήσει τις σταθερές όπως σου ζητάει η άσκηση. - Δεν χρησιµοποίησες την συνάρτηση sprintf. - Σωστή χρήση strcmp/strcpy/strcat/strlen. - Στην είσοδο έχεις ξεχάσει να βάλεις άνω-κάτω τελεία και αλλάζει γραµµή χωρίς λόγο. - Ο αλγόριθµος για την συµπλήρωση του τελικού πίνακα είναι σωστός. - Η έξοδος του προγράµµατος είναι σωστή αλλά έπρεπε να βάλεις ένα κενό µεταξύ του µήκους της συµβολοσειράς και της ίδιας. - Δεν χρησιµοποίησες την συνάρτηση sprintf. - Χρησιµοποιείς σωστά την ispunct() αλλά δεν γίνονται σωστά οι µεταθέσεις στον πίνακα µε αποτέλεσµα ο κώδικας να µην δουλεύει. - Το αρχείο που στέλνετε πρέπει να είναι συµπιεσµένο archive (tgz). 02173 : -Καλή στοίχιση και χρήση µεταβλητών - Θα έπρεπε να έχετε χρησιµοποιήσει sprintf για να κατασκευάσετε κατάλληλο format string για την scanf. - Σωστή χρήση των συναρτήσεων της string.h - Σωστός αλγόριθµος. -η printf θα πρέπει να ζητάει στην αρχή INIT_SIZE-1 χαρακτήρες (για να µείνει χώρος για το \0) - Είστε κοντά στη λύση ωστόσο έχετε κάποια µικρά λάθη.προσπαθείστε να διορθώσετε τα λάθη στο σπίτι Page 20

02174 - Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες. Τα ονόµατα θα µπορούσαν να ήταν αρκετά πιο περιγραφικά. Επίσης δεν πρέπει να ξεκινάνε τα ονόµατα των πινάκων µε κεφαλαίο το πρώτο γράµµα. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcat/strlen για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - O αλγόριθµος που χρησιµοποιήσατε είναι σωστός. - Πρέπει να εξηγείτε µε σχόλια κάποια σηµεία όπως για παράδειγµα γιατί ξεκινάτε το for loop µε i = 1 και επίσης γιατι αφαιρείτε απο το συνολικό µέγεθος (FINAL_SIZE) - 1 όταν υπολογίζετε τον αριθµό των λέξεων που χωράνε στο final string. Τα παραπάνω δεν είναι καθόλου ξεκάθαρα στον κώδικά σας. - Σωστή είναι και η εκτύπωση των µηνυµάτων - Έχετε κάνει κάποια λάθη στη στοίχιση σας τα οποία δεν πρέπει να υπάρχουν σε αυτό το επίπεδο. 02177 - Σωστά χρησιµοποιήσατε sprintf για να διαβάζετε σωστά την είσοδο απο το χρήστη µε βάση το defined µέγεθος. - Σωστά χρησιµοποιήσατε το isalpha για να αναγνωρίσετε τα γράµµατα απο τα υπόλοιπα σύµβολα και αριθµούς. - Μπορεί στο τέλος της άσκησης να εκτυπώνετε ένα φαινοµενικά σωστό αποτέλεσµα, δεν το κάνατε µε τον τρόπο που ζητούσαµε. Στην εκφώνηση της άσκησης αναφερόταν ρητά οτι στον πίνακα που έχει την αρχική συµβολοσειρά θα πρέπει να µείνουν τα γράµµατα και όχι να τα µεταφέρετε σε άλλο πίνακα. Στον άλλο πίνακα θα έπρεπε να υπάρχουν µόνο τα υπόλοιπα σύµβολα και αριθµοί. Η λύση σας ήταν να µεταφέρετε τα γράµµατα σε 2 καινούριους πίνακες. Η λύση αυτή δεν είναι αποδεκτή. Διαβάστε ξανά την εκφώνηση και λύστε σωστά την άσκηση έτσι ώστε να κάνετε εξάσκηση στα σηµεία που πρέπει. - Επίσης η εκτύπωση που έχετε βάλει στο τέλος µπορεί να γίνει και µε ένα απλο printf αν έχετε αρχικοποιήσει σωστά τους πίνακες συµβολοσειρών (µε \0 ) - Έχετε στείλει µόνο την πρώτη άσκηση. Λύστε την δεύτερη στο σπίτι. - Λείπουν τα γενικά σχόλια στο πρόγραµµα. - Δεν έχετε αρχικοποιήσει το telikos_pinakas σε κενή συµβολοσειρά έτσι ώστε να δουλέψουν σωστά οι συναρτήσεις του 'string.h' και συγκεκριµένα η strcat(). Αυτό έχει ως αποτέλεσµα να µην γεµίζετε σωστά το telikos_pinakas και να βλέπετε σκουπίδια στην έξοδο. - Ο έλεγχος στο while είναι έγκυρος ακόµη και όταν ο πίνακας είναι γεµάτος. Ο σωστός έλεγχος είναι (pos_filled < FINAL_SIZE - 1). - Οι έλεγχοι µέσα στο while δεν λαµβάνουν υπ' όψιν την περίπτωση ισότητας. Για παράδειγµα, εάν strlen(big) == 3 και pos_filled == 16, τότε το big χωράει ακριβώς στο telikos_pinakas. Page 21

02178 : -Καλή στοίχιση και χρήση µεταβλητών -Θα έπρεπε να έχετε χρησιµοποιήσει τη sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. -Σωστή εκτύπωση -Σωστή δηµιουργία του τελικού πίνακα -Δεν παραδώσατε τη δεύτερη άσκηση -Προσπαθήστε να την κάνετε στο σπίτι. 02179 02180 : -Καλή στοίχιση και χρήση µεταβλητών -Kαλή χρήση της sprintf -Στην printf ( "Enter string (MAX length L) : " ) έπρεπε το "L" να έχει αντικατασταθεί µε το όριο το οποίο είχατε κάνει define πιο πάνω! (-1 για να υπολογίσετε και το \0). - Σωστή χρήση των συναρτήσεων της string.h εκτός της strcmp: όταν το αποτέλεσµα είναι > 0, το first_string είναι µεγαλύτερο του second_string. Τα έχετε ανάποδα, γι αυτό σας βγαίνει και ανάποδα το τελικό αποτέλεσµα. -Σωστή αρχικοποίηση του τελικού πίνακα - Δεν έγινε, κάντε τη στο σπίτι - Έχετε στείλει µόνο την πρώτη άσκηση. Λύστε την δεύτερη στο σπίτι. - Λείπουν τα γενικά σχόλια στο πρόγραµµα. - Δεν έχετε αρχικοποιήσει το telikos_pinakas σε κενή συµβολοσειρά έτσι ώστε να δουλέψουν σωστά οι συναρτήσεις του 'string.h' και συγκεκριµένα η strcat(). Αυτό έχει ως αποτέλεσµα να µην γεµίζετε σωστά το telikos_pinakas και να βλέπετε σκουπίδια στην έξοδο. - Ο έλεγχος στο while είναι έγκυρος ακόµη και όταν ο πίνακας είναι γεµάτος. Ο σωστός έλεγχος είναι (pos_filled < FINAL_SIZE - 1). - Οι έλεγχοι µέσα στο while δεν λαµβάνουν υπ' όψιν την περίπτωση ισότητας. Για παράδειγµα, εάν strlen(big) == 3 και pos_filled == 16, τότε το big χωράει ακριβώς στο telikos_pinakas. Page 22

02181 - Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες. Τα ονόµατα όµως που έχετε χρησιµοποιήσει δεν είναι καθόλου περιγραφικά. Ιδιαίτερα για το final string όπου βάζετε το αποτέλεσµα θα έπρεπε να είχατε ένα πιο περιγραφικό όνοµα για να ξεχωρίζει. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcat/strlen για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - Ενα καλό σηµείο που θα µπορούσατε να βάλετε σχόλιο είναι στο σηµείο που αφαιρείτε - 1 απο το FINAL_SIZE κατα τον υπολογισµό του αριθµού των λέξεων που χωράνε στο final string. - - - Θα πρέπει να εξηγείτε τέτοια θολά σηµεία µε σχόλια. - Στον παραπάνω αλγόριθµο έχετε κάνει ένα λάθος στη συνθήκη επανάληψης της λέξης µέσα στο final string. Δεν λαµβάνετε υπόψιν σας την ισότητα µε αποτέλεσµα κάποιες φορές να µην γεµίζει όλος ο πίνακας και να µένει µια θέση κενή. - Η στοίχιση σας είναι πολύ σωστή. - Σωστή είναι και η εκτύπωση των µηνυµάτων - Σωστά χρησιµοποιήσατε sprintf για να διαβάζετε σωστά την είσοδο απο το χρήστη µε βάση το defined µέγεθος. - Σωστά χρησιµοποιήσατε το isalpha για να αναγνωρίσετε τα γράµµατα απο τα υπόλοιπα σύµβολα και αριθµούς. - Στη συνθήκη του while ελέγχετε µε γράµµα αντι για λογική συνθήκη. Θα πρέπει να είσετε πολύ ξεκάθαροι στις συνθήκες που βάζετε στις επαναλήψεις γιατί µπορεί να οδηγηθείτε σε λάθος αποτέλεσµα. Η συγκεκριµένη συνθήκη δεν είναι καθόλου ξεκάθαρη. - Έχετε βάλει εναν έλεγχο στον οποίο ο κώδικας είναι µόνο στο else. Θα έπρεπε να βάλετε not (!) στην πρώτη συνθήκη έτσι ώστε να µην χρειάζεται το else καθόλου και να έχετε µόνο το if µε ολόκληρο τον κώδικα. - Σωστά αντιγράφετε τα µη - γράµµατα στον 2ο πίνακα. Δεν τα αφαιρείτε σωστά απο τον πρώτο πίνακα. Δείτε ξανά τον αλγόριθµό σας και προσπαθήστε να τον διορθώσετε µόνοι σας. Αν δεν τα καταφέρετε µπορείτε να δείτε και τη λύση που έχει ανέβει. 02183 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Δεν κάνετε χρήση sprintf. Διαβάστε τις διαφάνειες. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - ΑΠΑΡΑΔΕΚΤΗ στοίχιση. Επίσης όλα τα define µπαίνουν µετά τα include. - Σωστή έξοδος. - Λάθος χρήση της sprintf. Διαβάστε τις διαφάνειες. - Ο αλγόριθµός σας δε λειτουργεί τελείως σωστά. Η for έπρεπε να πάει µέχρι τον τελευταίο χαρακτήρα του string και όχι µέχρι το SIZE-1. - Σωστή χρήση isalpha. - Απαράδεκτη στοίχιση. Μην ξαναδούµε τέτοια στοίχιση σε κώδικα, δεν πρόκειται να τον διορθώσουµε! Page 23

02184 - Σωστή στοίχιση. - Περιγραφικά ονόµατα µεταβλητών και σωστός ορισµός σταθερών. - Δεν χρειαζόταν να χρησιµοποιήσετε δύο φορές την sprintf. Όταν φτιάχνετε ένα "καλούπι" δεν το ανακατασκευάζεται πολλαπλές φορές. Παρ'όλα αυτά ήταν σωστή η χρήση της. - Στο µήνυµα εισαγωγής έχετε βάλει max length 6, ενώ κανονικά έπρεπε να είναι 5. Η 6η θέση ανήκει στο '\0'. - Σωστή χρήση strcmp/strcpy/strcat/strlen. - Σωστός ο τρόπος σκέψης συµπλήρωσης του τελικού πίνακα. - Αν ο χρήστης δώσει δύο ακριβώς ίδια µηνύµατα, ο κώδικας κολλάει µέσα στην while που έχετε βάλει όταν κάνετε σύγκριση (δεν χρειαζόταν). Σε περίπτωση που δεν θέλατε να διαβάζει δύο ίδια µηνύµατα θα έπρεπε να ξαναδιαβάσετε 2 string από τον χρήστη µέσα στη δοµή do-while, πράγµα που δεν κάνετε. - Να την κάνετε στο σπίτι. 02185 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος. - Σωστή χρήση sprintf. - Λάθος αλγόριθµος. Δεν έπρεπε να δηµιουργήσετε 3ο string. Ο έλεγχος έπρεπε να γίνεται στο αρχικό string και ανάλογα να αφήνετε το χαρακτήρα σε αυτόν ή να το µεταφέρετε στον άλλον πίνακα. - Κάντε την άσκηση στο σπίτι. Page 24

02186 Άσκηση1 -Δεν έχετε καθόλου σχόλια στο πρόγραµµά σας. -Το πρόγραµµά σας είναι πολύ πατικωµένο, πρέπει να αφήνετε µια κενή γραµµή να ξεχωρίζουν οι ενότητες του προγράµµατος. -Σωστή στοίχιση. -Σωστή χρήση σταθερών. -Σωστά ονόµατα µεταβλητών. -Σωστή χρήση της sprintf. Το sprintf(formatstring, "%%%ds", INIT_SIZE 1); αρκεί να γραφτεί µια φορά, δεν χρειάζεται format_1 Format_2 -Σωστή χρήση των συναρτήσεων -Η έξοδος του προγράµµατος δεν είναι σωστή. Τυπώνετε παραπάνω φορές τη λέξη απ όσες φορές χωράει στον πίνακα. Βγαίνετε εκτός ορίων του πίνακα γιατί ενώ βρίσκετε σωστά πόσες φορές χωράει η λέξη κάνετε strcat από 0 έως <=diff,, το σωστό είναι από 0 έως <diff Άσκηση2 -Δεν έχετε καθόλου σχόλια στο πρόγραµµά σας. -Σωστή χρήση της sprintf αλλά δεν έπρεπε να βάλετε µέσα στην sprintf to \n γι αυτό κολάει και το πρόγραµµά σας όταν του δίνετε είσοδο και δεν βγάζει αποτελέσµατα. -Το πρόγραµµά σας δε δουλεύει σωστά, έχετε λάθος συνθήκη τερµατισµού στο for επίσης δεν υλοποιείτε σωστά την περίπτωση που υπάρχουν 2 ή περισσότεροι µη αλφαβητικοί χαρακτήρες ο ένας µετά τον άλλον. 02187 Ασκηση 1 - Καθόλου σχόλια. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή έξοδος υπό συνθήκες. - Καθόλου σχόλια. - Το µέγεθος του format size πρέπει να ειναι ξεχωριστή σταθερά. - Σωστή χρήση sprintf. - Σωστή χρήση isalpha. - Σωστά αποτελέσµατα. Page 25

02188 - Έχετε στείλει µόνο την πρώτη άσκηση. Λύστε την δεύτερη στο σπίτι. - Λείπουν τα γενικά σχόλια στο πρόγραµµα. - Τα ονόµατα των µεταβλητών είναι παραπλανητικά, για παράδειγµα, δεδοµένης της µεταβλητής first_str_board, το first_size αποθηκεύει το µέγεθος του max_str. - Σωστή δηµιουργία του formatstring. Το formatstring για τη δεύτερη είσοδο είναι το ίδιο µε αυτό της πρώτης, εποµένως αρκεί να το δηµιουργήσετε µόνο µία φορά. - Για την εύρεση του µεγέθους µιας συµβολοσειράς έπρεπε να χρησιµοποιήσετε τη συνάρτηση strlen(). Η εκφώνηση τονίζει πως έπρεπε να χρησιµοποιήσετε συναρτήσεις από το string.h. - Ο έλεγχος για το πλήθος των κενών θέσεων, πριν από κάποια ανάθεση στη τελική συµβολοσειρά, δεν είναι σωστός. Δεν αρκεί απλά να έχουµε κενές θέσεις, πρέπει να επαρκούν για να χωρέσει η επόµενη συµβολοσειρά. Αυτό έχει ως αποτέλεσµα να υπερβαίνετε τα όρια του πίνακα. - Δεν εκτυπώνετε το µέγεθος της τελικής συµβολοσειράς. - Η εκτύπωση της τελικής συµβολοσειράς δεν χρειάζεται formatstring. - Σωστά έχετε χρησιµοποιήσει define για τη δήλωση των σταθερών σας. - Οι µεταβλητές σας είναι σωστά ορισµένες. Τα ονόµατα θα µπορούσαν να ήταν αρκετά πιο περιγραφικά. Επίσης το µέγεθος που δεσµεύσετε για το format string είναι παραπάνω απο όσο χρειάζεται. - Σωστή η χρήση της sprintf για να δηµιουργήσετε το format string. Δεν χρειάζονταν να κάνετε την ίδια διαδικασία 2 φορές. Μπορούσατε τη δεύτερη φορά να χρησιµοποιήσετε την ίδια µεταβλητή για το format string. - Σωστή η χρήση των συναρτήσεων strcmp/strcat/strlen/strcpy για να πραγµατοποιήσετε τις πράξεις µεταξύ των συµβολοσειρών. - O αλγόριθµος που χρησιµοποιήσατε είναι σωστός. - Σωστή είναι και η εκτύπωση των µηνυµάτων 02189 - Σωστή η στοίχιση σας. - Πολύ καλά και τα σχόλια - Σωστά χρησιµοποιήσατε sprintf για να διαβάζετε σωστά την είσοδο απο το χρήστη µε βάση το defined µέγεθος. - Σωστά χρησιµοποιήσατε το isalpha για να αναγνωρίσετε τα γράµµατα απο τα υπόλοιπα σύµβολα και αριθµούς. - Σωστά αντιγράφετε τα µη - γράµµατα σε ξεχωριστό πίνακα - Δεν διαγράφετε σωστά τα γράµµατα απο τον πρώτο πίνακα. - Ολοκληρώστε σωστά την άσκηση στο σπίτι σας. Page 26

02190 Άσκηση1 -Δεν έχετε καθόλου σχόλια στο πρόγραµµά σας. -Σωστή στοίχιση. -Σωστή χρήση σταθερών. -Σωστά ονόµατα µεταβλητών. -Σωστή χρήση της sprintf. Το sprintf(formatstring, "%%%ds", INIT_SIZE 1); αρκεί να γραφτεί µια φορά. -Σωστή χρήση των συναρτήσεων -Σωστός αλγόριθµος -Σωστή έξοδος. Άσκηση2 -Δεν έχετε καθόλου σχόλια στο πρόγραµµά σας. -Σωστή στοίχιση. -Σωστή χρήση σταθερών. -Σωστά ονόµατα µεταβλητών. -Σωστή χρήση της sprintf. -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Το πρόγραµµα ζητούσε 2 πίνακες και να µεταφέρονται τα στοιχεία που είναι αλφαβητικά µια θέση αριστερά και όχι να χρησιµοποιήσετε τρίτο βοηθητικό πίνακα. Δοκιµάστε να λύσετε την άσκηση ακριβώς όπως ζητάει η εκφώνιση. - Το αρχείο που στέλνετε πρέπει να είναι συµπιεσµένο archive (tgz). 02191 : -Καλή στοίχιση και χρήση µεταβλητών - Θα έπρεπε να έχετε χρησιµοποιήσει sprintf για να κατασκευάσετε κατάλληλο format string για την scanf. - Σωστή χρήση των συναρτήσεων της string.h - Σωστός αλγόριθµος. -η printf θα πρέπει να ζητάει στην αρχή INIT_SIZE-1 χαρακτήρες (για να µείνει χώρος για το \0) - Είστε κοντά στη λύση ωστόσο έχετε κάποια µικρά λάθη.προσπαθείστε να διορθώσετε τα λάθη στο σπίτι Page 27

- Λάθος στην κατασκευή του tgz. Δεν έπρεπε να περιλαµβάνεται φάκελος lab7 µέσα! 02192 Άσκηση1 -Σωστά σχόλια -Σωστή στοίχιση -Σωστή χρήση σταθερών -Σωστά ονόµατα µεταβλητών -Σειρά 19 20 δεν χρειάζονται -Σωστή χρήση της sprintf -Σωστή χρήση των συναρτήσεων -Λάθος στον υπολογισµό του times! -Σωστή έξοδος Άσκηση2 -Σωστά σχόλια -Σωστή στοίχιση -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Δεν δουλεύει σωστά το πρόγραµµά σας γιατί έχετε λάθος τη συνθήκη τερµατισµού µέσα στο for, πρέπει να είναι english[i]!= '\0' και όχι ι<ν. Επίσης έπρεπε να βάζατε ένα \0 στο τέλος και του non_engish πίνακα. -Προσπαθήστε να λύσετε την άσκηση σωστά. 02193 Ασκηση 1 - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Το µέγεθος του format έπρεπε να οριστεί µε σταθερά. - Σωστά τα ονόµατα των µεταβλητών είναι µε µικρά. - Σωστή χρήση sprintf. Εφόσον και το 2ο string έχει ίδιο format µε το πρώτο δε χρειάζεται να ξανακάνετε την sprinrf. - Σωστή χρήση των συναρτήσεων της string.h. - Σωστός αλγόριθµος. - Σωστή στοίχιση. - Σωστή χρήση sprintf. - Σωστή χρήση isalpha. - Σωστά αποτελέσµατα. 02194 - Απουσία από το εργαστήριο Page 28