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

Σχετικά έγγραφα
lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

lab3grades οριακό PASS

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

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

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

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

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

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

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

max & min Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης max & min είναι τα εξής:

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

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

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

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

Transcript:

ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: Όλα οκ. 449 451 οριακό PASS οριακό PASS, αλλά τα ονόµατα σταθερών γράφονται πάντα µε κεφαλαία για να ξεχωρίζουν. Το max έπρεπε να ήταν MAX. - Ονόµατα µεταβλητών: Καλά, εκτός του k. Δεν είναι κάποιος µετρητής loop οπότε δε δικαιολογείται να έχει όνοµα του ενός γράµµατος. Με βάση τον τρόπο που το χρησιµοποιείτε, ένα καλύτερο όνοµα θα ήταν half_point - Στοίχιση: Σωστή. Αναφορικά µε τα κενά: Μην αφήνετε κενές γραµµές ανάµεσα σε διαδοχικά #include ή διαδοχικά #define. Τυπικά κενές γραµµές αφήνουµε ανάµεσα σε διαφορετικές ενότητες του προγράµµατος. Δείτε τη λύση για παράδειγµα. - Χρήση srand/rand: Σωστά. - Ορθότητα αντιµετάθεσης: Η εκφώνηση απαγόρευε αυστηρά τη χρήση βοηθητικού πίνακα για την αντιµετάθεση των στοιχείων. Δείτε τη λύση για το πώς έπρεπε να είχατε υλοποιήσει αυτή τη λειτουργία και στο µέλλον να ακολουθείτε τις απαιτήσεις του προβλήµατος. Πολύ πολύ οριακό pass ο βαθµός σας. - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Όλα οκ Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: Όλα οκ., αλλά τα ονόµατα σταθερών γράφονται πάντα µε κεφαλαία για να ξεχωρίζουν. Το max έπρεπε να ήταν MAX. - Ονόµατα µεταβλητών: Καλά, εκτός του k. Δεν είναι κάποιος µετρητής loop οπότε δε δικαιολογείται να έχει όνοµα του ενός γράµµατος. Με βάση τον τρόπο που το χρησιµοποιείτε, ένα καλύτερο όνοµα θα ήταν half_point - Στοίχιση: Σωστή. Αναφορικά µε τα κενά: Μην αφήνετε κενές γραµµές ανάµεσα σε διαδοχικά #include ή διαδοχικά #define. Τυπικά κενές γραµµές αφήνουµε ανάµεσα σε διαφορετικές ενότητες του προγράµµατος. Δείτε τη λύση για παράδειγµα. - Χρήση srand/rand: Σωστά. - Ορθότητα αντιµετάθεσης: Η εκφώνηση απαγόρευε αυστηρά τη χρήση βοηθητικού πίνακα για την αντιµετάθεση των στοιχείων. Δείτε τη λύση για το πώς έπρεπε να είχατε υλοποιήσει αυτή τη λειτουργία και στο µέλλον να ακολουθείτε τις απαιτήσεις του προβλήµατος. Πολύ πολύ οριακό pass ο βαθµός σας. - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Όλα οκ Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 1

476 PASS - Σταθερές: Σωστή δήλωση. Το MAX_NUMBER θα έπρεπε να έχει την τιµή 26 (όσο το µέγεθος του λατινικού αλφαβήτου) ώστε όταν γίνει η πράξη % να πάρουµε ένα υπόλοιπο µεταξύ 0 και 25. - Ονόµατα µεταβλητών: Πολύ καλά - Στοίχιση: Πολύ καλή, εκτός από την τιµή του MAX_NUMBER - Ορθότητα αντιµετάθεσης: Όλα σωστά - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Πολύ καλά σχόλια - Δεν έχουν διορθωθεί όλα τα λάθη, προσπαθήστε να τα διορθώσετε πριν δείτε τη λύση. 486 PASS - Σταθερές: Σωστή δήλωση. Το MAX_NUMBER θα έπρεπε να έχει την τιµή 26 (όσο το µέγεθος του λατινικού αλφαβήτου) ώστε όταν γίνει η πράξη % να πάρουµε ένα υπόλοιπο µεταξύ 0 και 25. - Ονόµατα µεταβλητών: Πολύ καλά - Στοίχιση: Πολύ καλή, εκτός από την τιµή του MAX_NUMBER - Ορθότητα αντιµετάθεσης: Όλα σωστά - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Πολύ καλά σχόλια Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: OK 1733 PASS - Σχόλια: Ελάχιστα σχόλια - Σταθερές: και το 'Α' θα µπορούσε να είναι σταθερά,το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: x,num, άσχηµα ονόµατα. - Στοίχιση: ΟΚ - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: Δεν χρειαζόταν να ξεχωρίσετε περιπτώσεις, αλλά δεν είναι λάθος. Δείτε τις λύσεις για κάτι διαφορετικό. - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: το j δεν το χρειάζεστε για µεταβλητή, αν και απλοποιεί λίγο την αναγνωσιµότητα - Γενικά Σχόλια: Βρήκατε τα λάθη, µπράβο! Page 2

Διαδικαστικά: 1756 PASS - Σταθερές: Θα έπρεπε να έχετε ορίσει ως σταθερά και το µέγεθος του λατινικού αλφαβήτου. - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Πολύ καλή. Σωστά αφήνετε κενή γραµµή ανάµεσα σε διαφορετικές ενότητες του προγράµµατος, αλλά µην αφήνετε πάνω από µία. χρήση των συναρτήσεων, αλλά δεν έπρεπε να χρησιµοποιήσετε 65 για την τιµή του 'A'. Κάποιος που διαβάζει το πρόγραµµά σας δεν είναι υποχρεωµένος να ξέρει τις ASCII τιµές των χαρακτήρων, και δε θα µπορεί να καταλάβει τι κάνετε εκεί. Το γεγονός ότι δηλώνετε αρχικά το rand_number ως ακέραιο δε βοηθά. Θα ήταν πολύ πιο κατανοητό να γράφατε απευθείας char_array[i] = 'A' + rand()%26 - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Καλά σχόλια, αλλά τα σχόλια προγράµµατος µπαίνουν στην αρχή, πριν τα #include. Εκεί που τα βάλατε είναι σα να σχολιάζετε τα #include. Επίσης µη γράφετε κεφαλαία. - Σωστή, µπράβο 1779 PASS Πολύ καλή δουλειά! - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Σωστά τα σχόλια σας, αλλά αποφεύγετε να υπερβαίνετε την 80η στήλη ή να τα αφήνετε να κάνουν wrap στην επόµενη γραµµή. Τυπικά τα στοιχίζουµε όπως και τον κώδικα. - Δεν έχουν διορθωθεί όλα τα λάθη, προσπαθήστε να τα διορθώσετε πριν δείτε τη λύση. Επίσης αν δεν προσπαθήσατε να τρέξετε το πρόγραµµα µε τον gdb να το κάνετε άµεσα και να διορθώσετε την άσκηση γιατί στις επόµενες εργασίες θα θεωρείται ότι ξέρετε να χειρίζεστε µε ευκολία τον debugger. Page 3

Διαδικαστικά:όλα οκ 1899 PASS καλό είναι να αφήνετε µια σειρά κενή ανάµεσα στα include και τα define για να ξεχωρίζουν - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Καθόλου σχόλια - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: οκ, αλλά να γράφετε τα ΟΝΟΜΑΤΑ σας κι όχι τα username στο όνοµα του φακέλου του πακετάρετε. 1900 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Χρήση srand/rand: Έπρεπε να είχατε %26. Όπως το κάνατε, δε θα παραχθεί ποτέ 'Z' - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Διαδικαστικά: OK 1901 PASS - Σχόλια: ΟΚ - Σταθερές: Το 'Α' θα µπορούσε και αυτό να ήταν σταθερά. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHΑBETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: ΟΚ - Στοίχιση: ΟΚ - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: Δεν θα δουλέψει για άρτιο N! δοκιµάστε < Ν/2 - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: ΟΚ - Γενικά Σχόλια: δεν έγινε. Δοκιµάστε να την κάνετε σπίτι, γιατί από την επόµενη φορά θα πρέπει να ξέρετε να δουλεύετε σε gdb Page 4

Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1903 PASS - Σωστά σχόλια και στοίχιση. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Σωστή αντιµετάθεση χαρακτήρων στον πίνακα. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Άσκηση 2 - Σωστή επίλυση του προβλήµατος αν και επιλέξατε να το κάνετε µε δύσκολο τρόπο. Ο αριθµός των στοιχείων του πίνακα είναι 12 αντί για 11. Αλλάζοντας την τιµή της σταθεράς, αλλάζουν και τα όρια στις δοµές επαναλήψεων (δείτε την προτεινόµενη λύση) 1904 PASS Πολύ καλή δουλειά! - Σωστά χρησιµοποιήσατε defines για το µέγεθος του πίνακα και το πλήθος γρ στην αλφαβήτα. - Σωστή στοίχιση. - Σωστά σχόλια. - Καλά ονόµατα µεταβλητών. - Σωστή χρήση srand/rand. - Σωστή αντιµετάθεση του πίνακα, µπορείτε να το κάνετε και µε χρήση µιας µε δείτε την λύση. - Σωστή εκτύπωση αποτελεσµάτων. - Όλα σωστά, µπράβο! Διαδικαστικά: ΟΚ 1905 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τις σταθερές για το µέγεθος του πίνακα και το αλφάβητο -Πολύ καλή στοίχιση -Σωστή χρήση srand/rand (%26). -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια Άσκηση 2 -Προσπαθήστε να διορθώσετε τα υπόλοιπα λάθη µε την χρήση gdb Page 5

Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1908 PASS - Σωστά σχόλια και στοίχιση. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Σωστή αντιµετάθεση χαρακτήρων στον πίνακα. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Άσκηση 2 - Σωστή επίλυση του προβλήµατος αν και επιλέξατε να το κάνετε µε δύσκολο τρόπο. Ο αριθµός των στοιχείων του πίνακα είναι 12 αντί για 11. Αλλάζοντας την τιµή της σταθεράς, αλλάζουν και τα όρια στις δοµές επαναλήψεων (δείτε την προτεινόµενη λύση) 1909 PASS - Διαδικαστικά: OK - Στοίχιση: Το return() δεν πρέπει να ξεκινά από τη στήλη 0. Μη χρησιµοποιείτε 2 κενά αλλά ένα tab για τη στοίχιση. Κάντε τις ρυθµίσεις στο Kate όπως σας δείξαµε στο πρώτο εργαστήριο. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. 1911 PASS - Διαδικαστικά: OK - Στοίχιση: Καλή. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 6

1913 οριακό PASS Διαδικαστικά: Όλα σωστά - Ονόµατα µεταβλητών: Καλά, αν και το r στο r_chars δεν έχει κάποια προφανή ερµηνεία - Στοίχιση: Σωστή, αλλά προσέξτε τις αποστάσεις. Είναι καλό που αφήσατε κενή γραµµή ανάµεσα σε ξεχωριστές ενότητες του προγράµµατος, αλλά µην αφήνετε πάνω από µία γιατί τότε πάµε στο άλλο άκρο. - Χρήση srand/rand: Σωστά - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Δεν υπάρχουν σχόλια προγράµµατος. Το εργαστήριο δεν είναι για να χαζολογάτε. Την επόµενη φορά περιµένουµε να δουλεύετε καθόλη τη διάρκεια του εργαστηρίου. Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1914 PASS - Σωστή στοίχιση. - Τα σχόλια σας είναι ΥΠΕΡΒΟΛΙΚΑ ως προς το εύρος και µε λάθος στοίχιση. Θέλουµε: 1. Μία περιγραφή του προγράµµατος πάνω-πάνω που λείπει. 2. Να µην βάζετε σχόλια σε κάθε γραµµή, αλλά ΜΟΝΟ στα σηµεία του προγράµµατος που είναι πιθανόν δυσνόητα. Ποτέ σε σηµεία που αφορούν συναρτήσεις βιβλιοθήκης των οποίων γνωρίζουµε την λειτουργία. Τα σχόλια αυτά πρέπει να είναι πάντα σύντοµα και περιεκτικά. 3. Η στοίχιση των σχολίων δεν πρέπει να ξεπερνά τις γραµµές του κώδικα σας. Δεν γράφουµε ΠΟΤΕ δίπλα σε κάθε γραµµή, αλλά πάντα από πάνω από αυτή. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Σωστή αντιµετάθεση χαρακτήρων στον πίνακα. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Page 7

1915 PASS Πολύ καλή δουλειά - Σωστά χρησιµοποιήσατε defines για το µέγεθος του πίνακα και το πλήθος γρ στην αλφαβήτα. - Προσπαθείστε να χρησιµοποιείτε πιο επεξηγηµατικά ονόµατα µεταβλητών. Δ - Σωστή στοίχιση. - Σωστή χρήση srand/rand, αλλά το πλήθος του αλφάβητου είναι 26, όχι 25 όπ έχετε δηλώσει. - Σωστή αντιµετάθεση, µπορείτε να το κάνετε και µε χρήση µιας µεταβλητής µ δείτε την λύση. - Σωστή εκτύπωση αποτελεσµάτων - Σωστά σχόλια. 1916 οριακό PASS Προσπαθείστε την άσκηση σπίτι γιατί από το επόµενο lab θα πρέπει να µπορ να χρησιµοποιήσετε gdb. Σηµαντική σηµείωση: Κατά τη διόρθωση παρατηρήθηκε ότι ο κώδικας σας είχε κάποια ιδιαίτερα στοιχεία τα οποία εµφανίζονται και στον κώδικα του παιδιού που καθόταν δίπλα σας. Είναι πολύ σηµαντικό να δουλεύετε ΜΟΝΟ µε το συµφοιτητή που είστε οµάδα και όχι µε άλλους συµφοιτητές σας. Είναι δουλειά των υπευθύνων και βοηθών του εργαστηρίου να βοηθήσουν όπου χρειάζεται και όποιον χρειάζεται βοήθεια. Σε καµία περίπτωση δεν είναι δική σας δουλειά! Διαβάστε προσεκτικά ποια είναι η πολιτική του τµήµατος για τις αντιγραφές Εννοείται πως δεν θα υπάρξει ξανά ανοχή σε τέτοιο φαινόµενο. - Σταθερές: Έχετε δηλώσει πολύ σωστά το µέγεθος του πίνακα και τον αριθµό των γραµµάτων σαν σταθερές αλλά δεν χρησιµοποιείτε τις δηλώσεις αυτές µέσα στον κωδικά σας αλλά έχετε βάλει σε πολλά σηµεία σταθερούς αριθµούς. Για παράδειγµα έπρεπε αντί για 26 στους ελέγχους των for loops να έχετε βάλει MAX_NUMBER(όνοµα το οποίο δεν είναι και πολύ περιγραφικό για τον λόγο που το χρησιµοποιείτε). Επίσης για να υπολογίσετε τη µέση του πίνακα έχετε βάλει 13 ενώ θα µπορούσατε να βάλετε N/2-1. Ο λόγος που χρησιµοποιούµε ονόµατα αντί για σταθερές έχει εξηγηθεί πολλές φορές και περιµένουµε σε αυτό το σηµείο να µη βλέπουµε σταθερές τιµές µέσα στο κώδικα. - Ονόµατα µεταβλητών: Θα µπορούσατε να δώσετε λίγο καλύτερα ονόµατα στις σταθερές. - Στοίχιση: Καλή. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Μπορείτε να δώσετε µερικά ακόµη σύντοµα αλλά πιο περιγραφικά σχόλια Προσπαθήστε να λύσετε µόνοι σας τη δεύτερη άσκηση µε τη χρήση gdb. Την επόµενη φορά θα θεωρούµε ότι µπορείτε να χειρίζεστε τον gdb µε άνεση για να λύνετε κάποια προβλήµατα στον κωδικά σας. Page 8

1917 FAIL - Σταθερές: Τα define δηλώνονται έξω από τη main και κάτω από τα include Το MAX_NUMBER θα έπρεπε να έχει την τιµή 26 (όσο το µέγεθος του λατινικού αλφαβήτου) ώστε όταν γίνει η πράξη % να πάρουµε ένα υπόλοιπο µεταξύ 0 και 25. Επίσης: ΠΡΟΣΟΧΗ να µη βάζετε ; και άλλα επιπλέον πράγµατα στις #define ότι ορίζετε σε µια #define γίνεται copy-paste στον κώδικα. - ΑΠΑΡΑΔΕΚΤΗ στοίχιση διαβάστε τις παρατηρήσεις για σωστή στοίχιση και κάντε καλύτερη δουλειά την επόµενη φορά - Ορθότητα αντιµετάθεσης: ΛΑΘΟΣ. Τα όρια στο for είναι for (i=0; i<(size/2); i++) - Εκτύπωση αποτελεσµάτων: ΛΑΘΟΣ. Τα όρια στο for είναι for (i=0; i<(size/2); i++) - Σχολιασµός: Τα σχόλια πρέπει να ακολουθούν την στοίχηση του κώδικα. Να µην σηµειώνονται δεξιά από κάθε γραµµή, αλλά από επάνω. - Δεν έχουν διορθωθεί όλα τα λάθη, προσπαθήστε να τα διορθώσετε µε χρήση του gdb 1920 PASS Καλή δουλειά - Σωστά χρησιµοποιήσατε defines για το µέγεθος του πίνακα και το πλήθος γρ στην αλφαβήτα, αλλά τα ονόµατα των σταθερών αυτών πρέπει να γράφονται - Σωστή στοίχιση. - Όµορφα σχόλια, αλλά δεν χρειάζονται τόσα πολλά. (π.χ είναι ξεκάθαρο το πο δεν χρειάζεται επεξήγηση). Επίσης, προσπαθήστε να µη γράφετε τεράστιες γρ - Καλά ονόµατα µεταβλητών. - Σωστή χρήση srand/rand, αλλά το πλήθος του αλφάβητου είναι 26, όχι 25 όπ έχετε δηλώσει. - Σχεδόν σωστή αντιµετάθεση πίνακα. Έχετε ένα bug: Αντιµεταθέτετε τα 2 τελ 2 φορές H συνθήκη του for loop σας έπρεπε να είναι ως εξής: i < N/2 και όχι i Δείτε την λύση. - Σωστή εκτύπωση αποτελεσµάτων. - Προσπαθείστε να διορθώσετε τα υπόλοιπα λάθη µε χρήση gdb στο σπίτι. Page 9

1921 οριακό PASS " lab6grades - Σταθερές: Χρησιµοποιήσατε µόνο µια σταθερά ενώ θα µπορούσατε να βάλετε και µια για τον αριθµό των γραµµάτων του αλφάβητου. - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Χρήση srand/rand: Έπρεπε να χρησιµοποιήσετε 26. Όπως το έχετε, δε θα παραχθεί ποτέ το 'Z' - Ορθότητα αντιµετάθεσης: Σχεδόν σωστή. Στον έλεγχο που έχετε βάλει για την αντιµετάθεση στο for loop, έχετε βάλει σαν συνθήκη τερµατισµού το SIZE/2-1. Το -1 δεν χρειαζόταν γιατί δεν έχετε βάλει <= µε αποτέλεσµα να µην πιάνει την τιµή SIZE/2-1 αλλά να σταµατάει στη τιµή SIZE/2-2. Για να είστε σίγουροι ότι µια επαναληπτική δοµή τρέχει για όλες τις περιπτώσεις και κάνει αυτό που θέλετε, καλό είναι να ελέγχετε τις ακραίες τιµές του δηλαδή για i = 0 και = SIZE/2-2. Θα βλέπατε ότι δεν προσπελαύνει το τελευταίο στοιχείο πριν τη µέση και το τελευταίο στοιχείο του πίνακα. - Εκτύπωση αποτελεσµάτων: Λάθος. Έχετε αφήσει ένα \t για κάθε γράµµα που γράφετε. Αυτό κάνει την έξοδο σας να µην µπορεί να διαβαστεί. Περισσότερη προσοχή στις οδηγίες - Σχολιασµός: Έχετε βάλει µόνο µια γραµµή για σχόλια. Να περιγράφετε συνοπτικά στην αρχή του προγράµµατος τι κάνει και επίσης να βάζετε και κάποια σχόλια σε κάποια κύρια σηµεία. Επίσης αποφεύγετε να υπερβαίνετε την 80η στήλη ή να τα αφήνετε να κάνουν wrap στην επόµενη γραµµή. Τυπικά τα στοιχίζουµε όπως και τον κώδικα. Προσπαθήστε να λύσετε µόνοι σας τη δεύτερη άσκηση µε τη χρήση gdb. Την επόµενη φορά θα θεωρούµε ότι µπορείτε να χειρίζεστε τον gdb µε άνεση για να λύνετε κάποια προβλήµατα στον κωδικά σας. 1922 PASS - Διαδικαστικά: OK - Στοίχιση: Βεβαιωθείτε ότι ο κώδικάς σας είναι σωστά στοιχισµένος, σας έχουν ξεφύγει οι γραµµές στο τέλος της main(). - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 10

" lab6grades 1925 PASS - Σταθερές: Το MAX_NUMBER έπρεπε να είναι 26. Όπως το έχετε δε θα παραχθεί ποτέ το 'Z'. - Ονόµατα µεταβλητών: Καλά αν και θα µπορούσατε να βάλετε και ακόµη καλύτερα. - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Σωστά τα σχόλια σας, αλλά αποφεύγετε να υπερβαίνετε την 80η στήλη ή να τα αφήνετε να κάνουν wrap στην επόµενη γραµµή. Τυπικά τα στοιχίζουµε όπως και τον κώδικα. Προσπαθήστε να λύσετε µόνοι σας τη δεύτερη άσκηση µε τη χρήση gdb. Την επόµενη φορά θα θεωρούµε ότι µπορείτε να χειρίζεστε τον gdb µε άνεση για να λύνετε κάποια προβλήµατα στον κωδικά σας. 1926 PASS - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! 1927 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Page 11

Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1928 PASS - Σωστή στοίχιση. - Τα σχόλια σας είναι ΥΠΕΡΒΟΛΙΚΑ ως προς το εύρος και µε λάθος στοίχιση. Θέλουµε: 1. Μία περιγραφή του προγράµµατος πάνω-πάνω που λείπει. 2. Να µην βάζετε σχόλια σε κάθε γραµµή, αλλά ΜΟΝΟ στα σηµεία του προγράµµατος που είναι πιθανόν δυσνόητα. Ποτέ σε σηµεία που αφορούν συναρτήσεις βιβλιοθήκης των οποίων γνωρίζουµε την λειτουργία. Τα σχόλια αυτά πρέπει να είναι πάντα σύντοµα και περιεκτικά. 3. Η στοίχιση των σχολίων δεν πρέπει να ξεπερνά τις γραµµές του κώδικα σας. Δεν γράφουµε ΠΟΤΕ δίπλα σε κάθε γραµµή, αλλά πάντα από πάνω από αυτή. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Σωστή αντιµετάθεση χαρακτήρων στον πίνακα. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Διαδικαστικά: Όλα ΟΚ. 1929 FAIL - Σχόλια ΟΚ - Η εντολή for της αντιµετάθεσης είναι ένα tab δεξιότερα απ' ότι πρέπει. - Σωστή χρήση srand()/rand(). - Για MAX_NUMBER 25 δεν βγαίνει ο χαρακτήρας 'Z'. - Ο πίνακας random_numbers είναι περιττός, θα µπορούσατε να κάνετε την ανάθεση απευθείας πάνω στον πίνακα χαρακτήρων. Επίσης το µέγεθός του είναι MAX_NUMBER ενώ ο πίνακας χαρακτήρων είναι µεγέθους N (??). - Το πρόγραµµα γράφει εκτός ορίων του πίνακα, το τελευταίο στοιχείο είναι το N-1 και όχι το N. - Η συνθήκη του if µέσα στην επανάληψη αντιµετάθεσης είναι πάντα αληθής (σε κάθε επανάληψη το i αυξάνεται και το j µειώνεται κατά 1). - Επίσης η πρώτη επανάληψη (για j=n) διαβάζει/γράφει εκτός του πίνακα. Η αρχική τιµή του j πρέπει να είναι N-1. Τότε όµως, µε την συνθήκη ελέγχου της επανάληψης που έχετε και στην περίπτωση για περιττό µέγεθος πίνακα χαρακτήρων, ο κώδικας θα κάνει αντιµετάθεση το µεσαίο στοιχείο µε τον εαυτό του (για i==j), µία επανάληψη δηλαδή που δεν χρειάζεται. - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 12

1931 PASS - Διαδικαστικά: OK - Ονόµατα µεταβλητών: Τα ονόµατα δεν είναι 100% προφανή ίσως θα ήταν καλύτερο κάτι της µορφής "center_left", "center_right" για τα "leftpos", "rightpos". - Στοίχιση: Καλή. - Ορθότητα αντιµετάθεσης: Για περιττούς αριθµούς κάνετε ένα βήµα παραπάνω και αντιµεταθέτετε τον χαρακτήρα στο κέντρο µε τον εαυτό του. - Εκτύπωση αποτελεσµάτων: Σωστή. - Σχολιασµός: Καλή. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: OK 1932 PASS - Σχόλια: OK, δοκιµάστε να τα βάζετε µε greeklish όµως - Σταθερές: και το 'Α' θα µπορούσε να είναι σταθερά. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: ΟΚ - Στοίχιση: ΟΚ - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: ΟΚ - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: Πολύ καλό! 1934 οριακό PASS - Γενικά Σχόλια: Βρήκατε τα λάθη, µπράβο! Προσοχή στην εκφώνηση! - Σωστά χρησιµοποιήσατε defines για το µέγεθος του πίνακα και το πλήθος γρ στην αλφαβήτα. - Σωστή στοίχιση, σχόλια και ονόµατα µεταβλητών. - Σωστή χρήση srand/rand, αλλά το πλήθος του αλφάβητου είναι 26, όχι 25 όπ έχετε δηλώσει. - Σωστή αντιµετάθεση πίνακα, αλλά όχι µε τον τρόπο που ζητήσαµε! Η εκφών τη χρήση βοηθητικού πίνακα! Δείτε την λύση και στο µέλλον προσέχετε τις οδη - Σωστή εκτύπωση αποτελεσµάτων. - Όλα σωστά. Page 13

Διαδικαστικά: OK 1935 PASS - Σχόλια: OK - Σταθερές: Το 'A' θα µπορούσε και αυτό να είναι σταθερά! Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: OK - Στοίχιση: OK - Χρήση srand/rand: OK - Ορθότητα αντιµετάθεσης: OK - Εκτύπωση αποτελεσµάτων: OK - Γενικά Σχόλια: Καλό φαίνεται! - Γενικά Σχόλια: Κάτι βρήκατε, αλλά προσπαθήστε µε το gdb να βρείτε και τα άλλα! 1936 PASS - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Χρήση srand/rand: Η σταθερά για το µέγεθος της αλφαβήτας έπρεπε να είναι 26. Όπως το έχετε τώρα, δεν παράγεται ποτέ το 'Z' - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Σωστά τα σχόλια σας, αλλά αποφεύγετε να γράφετε µεγάλες γραµµές που κάνουν wrap. - Καλή δουλειά, µπράβο Page 14

1940 FAIL - Καθόλου καλή στοίχιση δεν αφήνετε κανένα κενό ιδικά στην αρχή για να τα διάφορα µέρη του κώδικα - Ορθότητα αντιµετάθεσης: Δεν γίνεται σωστά γιατί το for θα έπρεπε να τρέχει µόνο για i<array_size/2 και όχι για όλο τον πίνακα. -Εκτύπωση αποτελεσµάτων: Δεν έπρεπε να γίνει µέσα στο for που κάνετε για την αντιµετάθεση του πίνακα γιατί λόγο της συνθήκης i<array_size/2 δεν µπορεί να τυπωθεί ολόκληρος ο πίνακας. 'Έπρεπε να κάνετε καινούριο for και να τυπώνεται τον πίνακα όπως τυπώνεται τον αρχικό. - Καθόλου σχόλια - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. 1942 PASS - Διαδικαστικά: OK - Στοίχιση: Το return() δεν πρέπει να ξεκινά από τη στήλη 0. Μη χρησιµοποιείτε 2 κενά αλλά ένα tab για τη στοίχιση. Κάντε τις ρυθµίσεις στο Kate όπως σας δείξαµε στο πρώτο εργαστήριο. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 15

Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1946 PASS - Σωστά σχόλια και στοίχιση. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Σωστή αντιµετάθεση χαρακτήρων στον πίνακα. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Άσκηση 2 - Ταξινοµείτε και τυπώνετε τα πρώτα 11 στοιχεία του πίνακα, ενώ τα στοιχεία είναι 12. - Έχετε κάποια λάθη στα όρια των δοµών επανάληψης, όµως µε δεδοµένο ότι δουλεύετε µε τα πρώτα 11 στοιχεία τα λάθη δεν είναι εµφανή στην τελική κατάταξη. - Προσπαθήστε να βρείτε τα λάθη µε χρήση του gdb στο σπίτι. Διαδικαστικά:Να προσέχετε το subject του e-email να µην έχει κενά ανάµεσα από το lab και τον αριθµό 1947 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τις σταθερές για το µέγεθος του πίνακα και το αλφάβητο -Πολύ καλή στοίχιση -Σωστή χρήση srand/rand (%26). -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια Άσκηση 2 -Προσπαθήστε την άσκηση στο σπίτι διότι στο επόµενο εργαστήριο θα πρέπει να µπορείτε να χρησιµοποιείτε το gdb 1949 PASS Απίστευτα µεγάλο κενό ανάµεσα στα αρχικά σχόλια και τον κώδικα. Γιατί??? - Στοίχιση: Σωστή, αλλά δείτε τις παρατηρήσεις για τα σχόλια. - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. Καλή δουλειά! Page 16

Διαδικαστικά: Όλα ΟΚ. 1950 PASS - Στοίχιση, σχόλια ΟΚ - Σωστή χρήση srand()/rand(). - Το 26 είναι σταθερά, έπρεπε να το βάλετε σε ένα #define ή να το ορίσετε ως σταθερά. - Καλή δουλειά! - Καλή δουλειά! 1955 PASS - Διαδικαστικά: Δεν βάλατε σωστό θέµα στο email - Σταθερές: H MAX_NUMBER έπρεπε να είχε δηλωθεί ως 26 για να παράγετε αριθµούς από 0 µέχρι και 25 κάνοντας χρήση του τελεστή υπολοίπου (%). - Στοίχιση: Καλή. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 17

1956 οριακό PASS " lab6grades - Σταθερές: Χρησιµοποιήσατε µόνο µια σταθερά ενώ θα µπορούσατε να βάλετε και µια για τον αριθµό των γραµµάτων του αλφάβητου. - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Χρήση srand/rand: Έπρεπε να χρησιµοποιήσετε 26. Όπως το έχετε, δε θα παραχθεί ποτέ το 'Z' - Ορθότητα αντιµετάθεσης: Σχεδόν σωστή. Στον έλεγχο που έχετε βάλει για την αντιµετάθεση στο for loop, έχετε βάλει σαν συνθήκη τερµατισµού το SIZE/2-1. Το -1 δεν χρειαζόταν γιατί δεν έχετε βάλει <= µε αποτέλεσµα να µην πιάνει την τιµή SIZE/2-1 αλλά να σταµατάει στη τιµή SIZE/2-2. Για να είστε σίγουροι ότι µια επαναληπτική δοµή τρέχει για όλες τις περιπτώσεις και κάνει αυτό που θέλετε, καλό είναι να ελέγχετε τις ακραίες τιµές του δηλαδή για i = 0 και = SIZE/2-2. Θα βλέπατε ότι δεν προσπελαύνει το τελευταίο στοιχείο πριν τη µέση και το τελευταίο στοιχείο του πίνακα. - Εκτύπωση αποτελεσµάτων: Λάθος. Έχετε αφήσει ένα \t για κάθε γράµµα που γράφετε. Αυτό κάνει την έξοδο σας να µην µπορεί να διαβαστεί. Περισσότερη προσοχή στις οδηγίες - Σχολιασµός: Έχετε βάλει µόνο µια γραµµή για σχόλια. Να περιγράφετε συνοπτικά στην αρχή του προγράµµατος τι κάνει και επίσης να βάζετε και κάποια σχόλια σε κάποια κύρια σηµεία. Επίσης αποφεύγετε να υπερβαίνετε την 80η στήλη ή να τα αφήνετε να κάνουν wrap στην επόµενη γραµµή. Τυπικά τα στοιχίζουµε όπως και τον κώδικα. Προσπαθήστε να λύσετε µόνοι σας τη δεύτερη άσκηση µε τη χρήση gdb. Την επόµενη φορά θα θεωρούµε ότι µπορείτε να χειρίζεστε τον gdb µε άνεση για να λύνετε κάποια προβλήµατα στον κωδικά σας. 1957 PASS Πολύ καλή δουλειά! - Σωστά χρησιµοποιήσατε defines για το µέγεθος του πίνακα και το πλήθος γρ στην αλφαβήτα. - Σωστή στοίχιση. - Σωστά σχόλια. - Καλά ονόµατα µεταβλητών. - Σωστή χρήση srand/rand. - Σωστή αντιµετάθεση του πίνακα, µπορείτε να το κάνετε και µε χρήση µιας µε δείτε την λύση. - Σωστή εκτύπωση αποτελεσµάτων. - Όλα σωστά, µπράβο! Page 18

1959 PASS Πολύ καλή δουλειά! - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Σωστά τα σχόλια σας, αλλά αποφεύγετε να υπερβαίνετε την 80η στήλη ή να τα αφήνετε να κάνουν wrap στην επόµενη γραµµή. Τυπικά τα στοιχίζουµε όπως και τον κώδικα. 1960 οριακό PASS - Δεν έχουν διορθωθεί όλα τα λάθη, προσπαθήστε να τα διορθώσετε πριν δείτε τη λύση. Επίσης αν δεν προσπαθήσατε να τρέξετε το πρόγραµµα µε τον gdb να το κάνετε άµεσα και να διορθώσετε την άσκηση γιατί στις επόµενες εργασίες θα θεωρείται ότι ξέρετε να χειρίζεστε µε ευκολία τον debugger. Διαδικαστικά: Όλα σωστά - Ονόµατα µεταβλητών: Καλά, αν και το r στο r_chars δεν έχει κάποια προφανή ερµηνεία - Στοίχιση: Σωστή, αλλά προσέξτε τις αποστάσεις. Είναι καλό που αφήσατε κενή γραµµή ανάµεσα σε ξεχωριστές ενότητες του προγράµµατος, αλλά µην αφήνετε πάνω από µία γιατί τότε πάµε στο άλλο άκρο. - Χρήση srand/rand: Σωστά - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Δεν υπάρχουν σχόλια προγράµµατος. Το εργαστήριο δεν είναι για να χαζολογάτε. Την επόµενη φορά περιµένουµε να δουλεύετε καθόλη τη διάρκεια του εργαστηρίου. Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1961 FAIL - Σωστή στοίχιση. - Η στοίχιση των σχολίων δεν πρέπει να ξεπερνά τις γραµµές το κώδικα σας. Δεν γράφουµε ΠΟΤΕ δίπλα σε κάθε γραµµή, αλλά πάντα από πάνω από αυτή. - Δεν ζητήθηκε να τυπώνετε ανάποδα τον πίνακα, αλλά να τον αντιστρέψετε. Άσκηση 2 - Το πρόγραµµα σας βγάζει warnings κατά την µεταγλώττιση Προσπαθήστε να βρείτε τα λάθη µε χρήση του gdb στο σπίτι. Page 19

Διαδικαστικά: OK 1962 PASS - Σχόλια: Πολύ λίγα σχόλια και αποµακρυσµένα από τον κώδικά σας. Δοκιµάστε να τα στοιχίζετε κοντά στον κώδικα. - Σταθερές: και το 'Α' θα µπορούσε να είναι σταθερά. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: ΟΚ - Στοίχιση: ΟΚ - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: Την κάνατε λάθος, για ζυγό αριθµό δε δουλεύει όπως πρέπει. Το λάθος δεν είναι ότι ξεχωρίσατε τις δύο περιπτώσεις, αν και δε χρειαζόταν. δείτε τις λύσεις. - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: Αρκετά καλό - Γενικά Σχόλια: Βρήκατε τα λάθη, µπράβο! 1964 PASS - Διαδικαστικά: OK - Ονόµατα µεταβλητών: Τα ονόµατα δεν είναι 100% προφανή ίσως θα ήταν καλύτερο κάτι της µορφής "center_left", "center_right" για τα "leftpos", "rightpos". - Στοίχιση: Καλή. - Ορθότητα αντιµετάθεσης: Για περιττούς αριθµούς κάνετε ένα βήµα παραπάνω και αντιµεταθέτετε τον χαρακτήρα στο κέντρο µε τον εαυτό του. - Εκτύπωση αποτελεσµάτων: Σωστή. - Σχολιασµός: Καλή. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 20

1965 PASS Απίστευτα µεγάλο κενό ανάµεσα στα αρχικά σχόλια και τον κώδικα. Γιατί??? - Στοίχιση: Σωστή, αλλά δείτε τις παρατηρήσεις για τα σχόλια. - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. Καλή δουλειά! Διαδικαστικά: Όλα ΟΚ. 1968 FAIL - Στοίχιση: Όλος κώδικας µέσα στην main() πηγαίνει ένα tab µέσα. - ΚΑΘΟΛΟΥ ΣΧΟΛΙΑ - Σωστή χρήση srand()/rand(). - Το πρόγραµµα διαβάζει εκτός ορίων του πίνακα. Το τελευταίο στοιχείο ενός πίνακα µεγέθους N, είναι το N-1. - Στις επαναλήψεις που κάνετε, το i παίρνει την τιµή N στην τελευταία επανάληψη, µε αποτέλεσµα να διαβάζει µία θέση µετά τον πίνακα. - Επίσης στον κώδικα της αντιµετάθεσης αυτό συµβαίνει και στην πρώτη επανάληψη (για i=0) - Ο κώδικας της αντιµετάθεσης δεν είναι σωστός. Εκτός του ότι βγαίνει εκτός ορίων του πίνακα, οι επαναλήψεις που πρέπει να κάνει είναι N/2. Εάν οι επαναλήψεις είναι N ο πίνακας επιστρέφει στην αρχική του µορφή. - Σωστή έξοδος. Προσπαθείτε να διαχωρίζετε τα τµήµατα του προγράµµατος που υπολογίζουν από αυτά που εκτυπώνουν. - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: ΟΚ 1973 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τις σταθερές για το µέγεθος του πίνακα και το αλφάβητο -Πολύ καλή στοίχιση -Σωστή χρήση srand/rand (%26). -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια Άσκηση 2 -Πολύ καλά Page 21

1975 Οριακό PASS lab6grades Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 - Σωστή στοίχιση. - Τα σχόλια σας δεν πρέπει να ξεπερνούν σε αριθµό στηλών, την στοίχιση του κώδικα σας. Εάν δεν σας χωράει σε µία γραµµή αλλάξτε γραµµή πολλές φορές. Δεν έχετε βάλει µία περιγραφή για το πρόγραµµα, αλλά έχετε βάλει υπερβολικά πολλά σχόλια στο σώµα του προγράµµατος. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Στην αντιµετάθεση χαρακτήρων έχετε γράψει 2 φορές τον ίδιο κώδικα (οι δοµές επανάληψης που χρησιµοποιείτε είναι κοινές). Η αντιµετάθεση χαρακτήρων είναι σωστή. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Άσκηση 2 - Έχετε εντοπίσει λίγα από τα λάθη του προγράµµατος. Το πρόγραµµα δεν ταξινοµεί σωστά τα στοιχεία, ούτε τα εκτυπώνει. Προσπαθήστε να βρείτε τα λάθη µε χρήση του gdb στο σπίτι. Διαδικαστικά:Να προσέχετε το subject του e-email να µην έχει κενά ανάµεσα από το lab και τον αριθµό 1980 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τις σταθερές για το µέγεθος του πίνακα και το αλφάβητο -Πολύ καλή στοίχιση -Σωστή χρήση srand/rand (%26). -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια Άσκηση 2 -Προσπαθήστε την άσκηση στο σπίτι διότι στο επόµενο εργαστήριο θα πρέπει να µπορείτε να χρησιµοποιείτε το gdb 1983 PASS - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Page 22

1984 οριακό PASS - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Καλά όσον αφορά περιεχόµενο, αλλά τα σχόλια προγράµµατος µπαίνουν στην αρχή, πριν τα #include. Εκεί που τα βάλατε είναι σα να σχολιάζετε τα #include. Επίσης µη γράφετε κεφαλαία. Το εργαστήριο δεν είναι για να χαζολογάτε. Την επόµενη φορά περιµένουµε να δουλεύετε καθόλη τη διάρκεια του εργαστηρίου. Διαδικαστικά: ΟΚ 1985 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τον αριθµό των γραµµάτων στο αλφάβητο Αλλά δεν δηλώνετε πουθενά το µέγεθος του πίνακα και χρησιµοποιείτε τον ίδιο αριθµό που χρησιµοποιείτε για το αλφάβητο Οπότε έχετε έναν πίνακα µεγέθους 26. Αν κάποιος πάει να αλλάξει αυτό το µέγεθος θα αλλάξει και το µέγεθος του αλφαβήτου -Καλή στοίχιση -Σωστή χρήση του srand/rand (%26), παρόλο που άµα αλλάζαµε το size δεν θα ήταν σωστή -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια. Άσκηση 2 -Προσπαθήστε να διορθώσετε τα υπόλοιπα λάθη µε την χρήση gdb Διαδικαστικά: Όλα ΟΚ. 1986 PASS - Στοίχιση, σχόλια ΟΚ - Σωστή χρήση srand()/rand(). - Το 26 είναι σταθερά, έπρεπε να το βάλετε σε ένα #define ή να το ορίσετε ως σταθερά. - Καλή δουλειά! - Καλή δουλειά! Page 23

1988 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Διαδικαστικά: OK 1992 PASS - Σχόλια: OK - Σταθερές: OK - Ονόµατα µεταβλητών: ΟΚ. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Στοίχιση: ΟΚ - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: Δε θα δουλέψει για άρτιο αριθµό! - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: Η αντιµετάθεση στοίχισε το PASS! - Γενικά Σχόλια: "for(i=0; i<=n-2;" i++) γιατί N-2 το όριο;; Διαδικαστικά: Ορθή αποστολή e-email Άσκηση 1 1994 PASS - Σωστή στοίχιση. - Προσέξτε η στοίχιση των σχολίων σας να µην ξεπερνά το εύρος των στηλών του προγράµµατος σας. Θέλουµε σχόλια σύντοµα και περιεκτικά. - Σωστή δηµιουργία των γραµµάτων του αγγλικού αλφαβήτου. - Σωστή αντιµετάθεση χαρακτήρων στον πίνακα. - Το πρόγραµµα σας δουλεύει για άρτιο και περιττό πλήθος αριθµών. Άσκηση 2 - To πρόγραµµα σας δεν λειτουργεί σωστά. Προσπαθήστε να βρείτε τα λάθη µε χρήση του gdb στο σπίτι. Page 24

1996 PASS Καλή δουλειά! - Σταθερές: Το MAX_NUMBER έπρεπε να είναι 26. Όπως το έχετε δε θα παραχθεί ποτέ το 'Z'. - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή. Να βάζετε \t όταν θέλετε να εκτυπωθεί ένα tab αντί να το βάζετε στον κώδικα. - Σχολιασµός: Ελάχιστα σχόλια. Προσπαθείτε µε συνοπτικό τρόπο να περιγράφετε τα κύρια σηµεία του προγράµµατος σας. Επίσης να προσέχετε να µην ξεφεύγετε από τη στήλη 80 γιατί µετά κάνουν wrap και χαλάνε τη στοίχιση. Καλή δουλειά! Όλα τα λάθη έχουν διορθωθεί. 1999 PASS - Διαδικαστικά: OK - Ονόµατα µεταβλητών: Άσχηµα. Τι σηµαίνει N1? Τι σηµαίνει Array? Επίσης, τα ονόµατα µεταβλητών γράφονται µε µικρά, τουλάχιστον το πρώτο γράµµα! - Στοίχιση: Σωστή. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 25

2000 PASS - Διαδικαστικά: Δεν βάλατε σωστό θέµα στο email - Σταθερές: H MAX_NUMBER έπρεπε να είχε δηλωθεί ως 26 για να παράγετε αριθµούς από 0 µέχρι και 25 κάνοντας χρήση του τελεστή υπολοίπου (%). - Στοίχιση: Καλή. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. 2001 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Τα σχόλια σας πρέπει να ακολουθούν την στοίχιση του κώδικα. Επίσης είναι σηµαντικό να γράφετε και κάποια εισαγωγικά σχόλια στην αρχή του προγράµµατος Καλή δουλειά! 2002 FAIL Το πρόγραµµα δεν κάνει compile Διαδικαστικά: Όλα ΟΚ. 2004 PASS - Στοίχιση, σχόλια ΟΚ - Σωστή χρήση srand()/rand(). - Καλή δουλειά! - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 26

Διαδικαστικά: ΟΚ 2005 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τον αριθµό των γραµµάτων στο αλφάβητο Αλλά δεν δηλώνετε πουθενά το µέγεθος του πίνακα και χρησιµοποιείτε τον ίδιο αριθµό που χρησιµοποιείτε για το αλφάβητο Οπότε έχετε έναν πίνακα µεγέθους 26. Αν κάποιος πάει να αλλάξει αυτό το µέγεθος θα αλλάξει και το µέγεθος του αλφαβήτου -Καλή στοίχιση -Σωστή χρήση του srand/rand (%26), παρολο που άµα αλλάζαµε το size δεν θα ήταν σωστή -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια. Άσκηση 2 -Προσπαθήστε να διορθώσετε τα υπόλοιπα λάθη µε την χρήση gdb Διαδικαστικά: OK 2007 PASS - Σχόλια: είναι πολύ µακριά από τη γραµµή που περιγράφουν ή ξεφεύγουν σε µακρινές στήλες! Δοκιµάστε να τα στοιχίζεται µε τον κώδικά σας και να µην ξεφεύγουν πάνω από την γραµµή πχ 80. Επίσης καλό θα ήταν να λέγατε και στην αρχή τη κάνει το συνολικό πρόγραµµα. - Σταθερές: Και το 'Α' θα µπορούσε να είναι σταθερά. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: ΟΚ. - Στοίχιση: OK - Σωστή χρήση srand/rand: OK - Ορθότητα αντιµετάθεσης: OK - Εκτύπωση αποτελεσµάτων: OK - Γενικά Σχόλια: Πολύ καλά, αλλά προσέξτε τα σχόλιά σας! - Γενικά Σχόλια: δεν έγινε. Καλό θα ήταν να την κοιτάξετε γιατί από το επόµενο εργαστήριο θα πρέπει να µπορείτε να χειριστείτε gdb. Page 27

Διαδικαστικά: OK 2010 PASS - Σχόλια: Θα µπορούσες να βάλεις στην αρχή µια περιγραφή για το τι κάνει το πρόγραµµα. - Σταθερές: Θα µπορούσε να βάλεις και το 'Α' σταθερά. Τα define και τα include καλό θα ήταν να είναι όλα µαζί. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: Θα µπορούσαν να είναι και πιο περιγραφικά - Στοίχιση: Πολλά κενά µέχρι το return και µέσα στα for, γιατί; - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: ΟΚ - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: Αρκετά καλό αλλά προσέξτε τις παραπάνω λεπτοµέρειες - Γενικά Σχόλια: Κάτι βρήκατε, αλλά προσπαθήστε µε το gdb να βρείτε και τα άλλα! 2012 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Τα σχόλια σας πρέπει να ακολουθούν την στοίχιση του κώδικα. Επίσης είναι σηµαντικό να γράφετε και κάποια εισαγωγικά σχόλια στην αρχή του προγράµµατος Καλή δουλειά! Page 28

2013 οριακό PASS - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Καλά όσον αφορά περιεχόµενο, αλλά τα σχόλια προγράµµατος µπαίνουν στην αρχή, πριν τα #include. Εκεί που τα βάλατε είναι σα να σχολιάζετε τα #include. Επίσης µη γράφετε κεφαλαία. Το εργαστήριο δεν είναι για να χαζολογάτε. Την επόµενη φορά περιµένουµε να δουλεύετε καθόλη τη διάρκεια του εργαστηρίου. Διαδικαστικά: OK 2015 PASS - Σχόλια: Θα µπορούσες να βάλεις στην αρχή µια περιγραφή για το τι κάνει το πρόγραµµα. - Σταθερές: Θα µπορούσε να βάλεις και το 'Α' σταθερά. Τα define και τα include καλό θα ήταν να είναι όλα µαζί. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: Θα µπορούσαν να είναι και πιο περιγραφικά - Στοίχιση: Πολλά κενά µέχρι το return και µέσα στα for, γιατί; - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: ΟΚ - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: Αρκετά καλό αλλά προσέξτε τις παραπάνω λεπτοµέρειες - Γενικά Σχόλια: Κάτι βρήκατε, αλλά προσπαθήστε µε το gdb να βρείτε και τα άλλα! Page 29

2017 PASS Πολύ καλή δουλειά! - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Καλή, αλλά δείτε τις παρατηρήσεις για το σχολιασµό. - Ορθότητα αντιµετάθεσης: Σχεδόν σωστή. Στον έλεγχο που έχετε βάλει για την αντιµετάθεση στο for loop, έχετε βάλει σαν συνθήκη τερµατισµού το SIZE/2-1. Το -1 δεν χρειαζόταν γιατί δεν έχετε βάλει <= µε αποτέλεσµα να µην πιάνει την τιµή SIZE/2-1 αλλά να σταµατάει στη τιµή SIZE/2-2. Για να είστε σίγουροι ότι µια επαναληπτική δοµή τρέχει για όλες τις περιπτώσεις και κάνει αυτό που θέλετε, καλό είναι να ελέγχετε τις ακραίες τιµές του δηλαδή για i = 0 και = SIZE/2-2. Θα βλέπατε ότι δεν προσπελαύνει το τελευταίο στοιχείο πριν τη µέση και το τελευταίο στοιχείο του πίνακα. - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Σωστά τα σχόλια σας, αλλά αποφεύγετε να υπερβαίνετε την 80η στήλη ή να τα αφήνετε να κάνουν wrap στην επόµενη γραµµή. Τυπικά τα στοιχίζουµε όπως και τον κώδικα. Πολύ καλή δουλειά! Σωστά αποτελέσµατα Διαδικαστικά: Όλα ΟΚ. 2018 FAIL - Στοίχιση: Όλος κώδικας µέσα στην main() πηγαίνει ένα tab µέσα. - ΚΑΘΟΛΟΥ ΣΧΟΛΙΑ - Σωστή χρήση srand()/rand(). - Το πρόγραµµα διαβάζει εκτός ορίων του πίνακα. Το τελευταίο στοιχείο ενός πίνακα µεγέθους N, είναι το N-1. - Στις επαναλήψεις που κάνετε, το i παίρνει την τιµή N στην τελευταία επανάληψη, µε αποτέλεσµα να διαβάζει µία θέση µετά τον πίνακα. - Επίσης στον κώδικα της αντιµετάθεσης αυτό συµβαίνει και στην πρώτη επανάληψη (για i=0) - Ο κώδικας της αντιµετάθεσης δεν είναι σωστός. Εκτός του ότι βγαίνει εκτός ορίων του πίνακα, οι επαναλήψεις που πρέπει να κάνει είναι N/2. Εάν οι επαναλήψεις είναι N ο πίνακας επιστρέφει στην αρχική του µορφή. - Σωστή έξοδος. Προσπαθείτε να διαχωρίζετε τα τµήµατα του προγράµµατος που υπολογίζουν από αυτά που εκτυπώνουν. - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Page 30

Διαδικαστικά: ΟΚ 2020 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τις σταθερές για το µέγεθος του πίνακα και το αλφάβητο -Πολύ καλή στοίχιση -Σωστή χρήση srand/rand (%26). -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια Άσκηση 2 -Πολύ καλά Διαδικαστικά: Όλα ΟΚ. 2022 PASS - Στοίχιση ΟΚ - Σωστή χρήση srand()/rand(). - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Καλή δουλειά! - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. 2024 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Page 31

Διαδικαστικά: OK 2026 PASS - Σχόλια: είναι πολύ µακριά από τη γραµµή που περιγράφουν ή ξεφεύγουν σε µακρινές στήλες! Δοκιµάστε να τα στοιχίζεται µε τον κώδικά σας και να µην ξεφεύγουν πάνω από την γραµµή πχ 80. Επίσης καλό θα ήταν να λέγατε και στην αρχή τη κάνει το συνολικό πρόγραµµα. - Σταθερές: Και το 'Α' θα µπορούσε να είναι σταθερά. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: ΟΚ. - Στοίχιση: OK - Σωστή χρήση srand/rand: OK - Ορθότητα αντιµετάθεσης: OK - Εκτύπωση αποτελεσµάτων: OK - Γενικά Σχόλια: Πολύ καλά, αλλά προσέξτε τα σχόλιά σας! - Γενικά Σχόλια: δεν έγινε. Καλό θα ήταν να την κοιτάξετε γιατί από το επόµενο εργαστήριο θα πρέπει να µπορείτε να χειριστείτε gdb. 2028 PASS - Διαδικαστικά: OK - Στοίχιση: Καλή. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. 2029 PASS - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Page 32

Διαδικαστικά: OK 2030 PASS - Σχόλια: OK - Σταθερές: Το 'A' θα µπορούσε και αυτό να είναι σταθερά! Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Ονόµατα µεταβλητών: OK - Στοίχιση: OK - Χρήση srand/rand: OK - Ορθότητα αντιµετάθεσης: OK - Εκτύπωση αποτελεσµάτων: OK - Γενικά Σχόλια: Καλό φαίνεται! - Γενικά Σχόλια: Κάτι βρήκατε, αλλά προσπαθήστε µε το gdb να βρείτε και τα άλλα! 2031 PASS - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Page 33

2032 FAIL - Καθόλου καλή στοίχιση δεν αφήνετε κανένα κενό ιδικά στην αρχή για να τα διάφορα µέρη του κώδικα - Ορθότητα αντιµετάθεσης: Δεν γίνεται σωστά γιατί το for θα έπρεπε να τρέχει µόνο για i<array_size/2 και όχι για όλο τον πίνακα. -Εκτύπωση αποτελεσµάτων: Δεν έπρεπε να γίνει µέσα στο for που κάνετε για την αντιµετάθεση του πίνακα γιατί λόγο της συνθήκης i<array_size/2 δεν µπορεί να τυπωθεί ολόκληρος ο πίνακας. 'Έπρεπε να κάνετε καινούριο for και να τυπώνεται τον πίνακα όπως τυπώνεται τον αρχικό. - Καθόλου σχόλια - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: OK 2033 PASS - Σχόλια: OK - Σταθερές: OK - Ονόµατα µεταβλητών: ΟΚ. Το MAXNUMBER ίσως θα ήταν καλύτερα να είναι ALPHABETSIZE για κάτι πιο περιγραφικό. - Στοίχιση: ΟΚ - Χρήση srand/rand: ΟΚ - Ορθότητα αντιµετάθεσης: Δε θα δουλέψει για άρτιο αριθµό! - Εκτύπωση αποτελεσµάτων: ΟΚ - Γενικά Σχόλια: Η αντιµετάθεση στοίχισε το PASS! - Γενικά Σχόλια: "for(i=0; i<=n-2;" i++) γιατί N-2 το όριο;; Page 34

2034 οριακό PASS Προσοχή στην εκφώνηση! lab6grades - Σωστά χρησιµοποιήσατε defines για το µέγεθος του πίνακα και το πλήθος γρ στην αλφαβήτα. - Σωστή στοίχιση, σχόλια και ονόµατα µεταβλητών. - Σωστή χρήση srand/rand, αλλά το πλήθος του αλφάβητου είναι 26, όχι 25 όπ έχετε δηλώσει. - Σωστή αντιµετάθεση πίνακα, αλλά όχι µε τον τρόπο που ζητήσαµε! Η εκφών τη χρήση βοηθητικού πίνακα! Δείτε την λύση και στο µέλλον προσέχετε τις οδη - Σωστή εκτύπωση αποτελεσµάτων. - Όλα σωστά. Διαδικαστικά: ΟΚ 2036 PASS Άσκηση 1 -Σωστά δηλώνεις µε define το µέγεθος του πίνακα, αλλά θα έπρεπε να δηλώσεις µε σταθερά και τον αριθµό γραµµάτων του αλφαβήτου -Καλή στοίχιση Καλό θα ήταν να µην αφήνεις τόσες κενές γραµµές ανάµεσα από blocks κώδικα -Το αγγλικό αλφάβητο έχει 26 γράµµατα Οπότε για την srand έπρεπε να κάνεις rand()%26. Στην ουσία τώρα χάνεις ένα γραµµα από την αλφάβητο -Σωστή εκτύπωση και αντιµετάθεση του πίνακα -Καλά σχόλια Άσκηση 2 -Προσπαθήστε την άσκηση στο σπίτι διότι στο επόµενο εργαστήριο θα πρέπει να µπορείτε να χρησιµοποιείτε το gdb 2037 PASS - Στοίχιση: Σωστή - Εκτύπωση αποτελεσµάτων: Σωστά - Δεν έχετε καθόλου σχόλια - Δεν έχουν διορθωθεί όλα τα λάθη, προσπαθήστε να τα διορθώσετε µε χρήση του gdb Page 35

Διαδικαστικά: Όλα ΟΚ. lab6grades 2038 PASS - Στοίχιση ΟΚ - Σωστή χρήση srand()/rand(). - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Καλή δουλειά! - Δεν στάλθηκε, προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: οκ, αλλά να γράφετε τα ΟΝΟΜΑΤΑ σας κι όχι τα username στο όνοµα του φακέλου του πακετάρετε. 2041 PASS - Σταθερές: Σωστά ορίζετε µε #define το µέγεθος του πίνακα καλό θα ήτανε να κάνατε το ίδιο και για το πλήθος γραµµάτων της αλφαβήτου - Στοίχιση: Σωστή - Χρήση srand/rand: Έπρεπε να είχατε %26. Όπως το κάνατε, δε θα παραχθεί ποτέ 'Z' - Εκτύπωση αποτελεσµάτων: Σωστά - Σχολιασµός: Καλά σχόλια Καλή δουλειά! Διαδικαστικά: ΟΚ 2042 PASS Άσκηση 1 -Σωστά δηλώσατε µε define τις σταθερές για το µέγεθος του πίνακα και το αλφάβητο -Καλή στοίχιση Καλό είναι να µην αφήνετε τόσες πολλές γραµµές ανάµεσα από blocks κώδικα -Σωστή χρήση srand/rand (%26). -Σωστή αντιµετάθεση του πίνακα -Να προσέχετε παραπάνω το output του προγράµµατος Δεν έχετε βάλει /n στο τέλος της εκτύπωσης -Καλό είναι να βάζετε και σχόλια µέσα στον κώδικα και να εξηγείτε πράξεις οι οποίες είναι πιο περίπλοκες Άσκηση 2 -Προσπαθήστε να διορθώσετε τα υπόλοιπα λάθη µε την χρήση gdb Page 36

2043 PASS - Διαδικαστικά: OK - Ονόµατα µεταβλητών: Άσχηµα. Τι σηµαίνει N1? Τι σηµαίνει Array? Επίσης, τα ονόµατα µεταβλητών γράφονται µε µικρά, τουλάχιστον το πρώτο γράµµα! - Στοίχιση: Σωστή. - Εκτύπωση αποτελεσµάτων: Δεν έχετε βάλει χαρακτήρα tab ('\t') µετά το ":". - Σχολιασµός: Καλά σχόλια αλλά δεν πρέπει να γράφετε τεράστιες γραµµές γιατί κάνουν wrap. Αν χρειάζεται να γράψετε αρκετό κείµενο προσαρµόστε το σε µορφή παραγράφου, µε την ίδια στοίχιση που έχει και ο κώδικας που σχολιάζεται και χωρίς να υπερβαίνετε την 80ή στήλη. - Προσπαθήστε να την κάνετε στο σπίτι και να εξασκηθείτε σε χρήση gdb πριν το επόµενο εργαστήριο. Διαδικαστικά: 2045 PASS - Σταθερές: Θα έπρεπε να έχετε ορίσει ως σταθερά και το µέγεθος του λατινικού αλφαβήτου. - Ονόµατα µεταβλητών: Καλά - Στοίχιση: Πολύ καλή. Σωστά αφήνετε κενή γραµµή ανάµεσα σε διαφορετικές ενότητες του προγράµµατος, αλλά µην αφήνετε πάνω από µία. χρήση των συναρτήσεων, αλλά δεν έπρεπε να χρησιµοποιήσετε 65 για την τιµή του 'A'. Κάποιος που διαβάζει το πρόγραµµά σας δεν είναι υποχρεωµένος να ξέρει τις ASCII τιµές των χαρακτήρων, και δε θα µπορεί να καταλάβει τι κάνετε εκεί. Το γεγονός ότι δηλώνετε αρχικά το rand_number ως ακέραιο δε βοηθά. Θα ήταν πολύ πιο κατανοητό να γράφατε απευθείας char_array[i] = 'A' + rand()%26 - Εκτύπωση αποτελεσµάτων: Σωστή - Σχολιασµός: Καλά σχόλια, αλλά τα σχόλια προγράµµατος µπαίνουν στην αρχή, πριν τα #include. Εκεί που τα βάλατε είναι σα να σχολιάζετε τα #include. Επίσης µη γράφετε κεφαλαία. - Σωστή, µπράβο Page 37