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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

Υπολογισμός - Εντολές Ελέγχου

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

for for for for( . */

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

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

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

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

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

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

lab3grades οριακό PASS

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

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

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

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

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

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

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

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

Εντολές ελέγχου ροής if, for, while, do-while

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

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

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

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

Υπολογισμός - Εντολές Επανάληψης

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

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

ΗΥ-150. Προγραμματισμός

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

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

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Προγραμματισμός Ι (HY120)

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

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

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

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

to post PASS PASS FAIL

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

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

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

Transcript:

ΑΕΜ ΒΑΘΜΟΣ -Όλα καλά ΣΧΟΛΙΑ η: -Σωστή 357 PASS η: -Ο κώδικας για την είσοδο του µητρώου πρέπει να δοµηθεί αλλιώς γιατί εµφανίζει λάθος πριν καν δοθεί για πρώτη φορά το µητρώο. -Σωστή στοίχιση, µοναδική παρατήρηση είναι να µην βάζετε τόσες πολλές κενές γραµµές. Παράδοση Ασκήσεων: Όλα ΟΚ -Σωστή εκτέλεση. -Περισσότερη προσοχή στη στοίχιση. 400 PASS -Σχεδόν σωστή λειτουργία. -Λεπτοµέρεια που σας ξέφυγε: δεν έχετε βάλει break στην περίπτωση που το ποσό ανάληψης είναι µεγαλύτερο από το διαθέσιµο, µε αποτέλεσµα ο κώδικας να συνεχίζει στο case 2. -Προσοχή στη στοίχιση! -Καλά ονόµατα µεταβλητών. -Ποτέ (!) περισσότερες από µία εντολές σε κάθε γραµµή. -Οι τιµές 20000 και 100000 θα µπορούσαν να δηλωθούν ως σταθερές. σωστή 402 PASS - Πολύ σωστή, µπράβο. - Πολύ σωστή, µπράβο. -Όλα καλά η: -Σωστή 403 PASS η: -Ο κώδικας για την είσοδο του µητρώου πρέπει να δοµηθεί αλλιώς γιατί εµφανίζει λάθος πριν καν δοθεί για πρώτη φορά το µητρώο. -Σωστή στοίχιση, µοναδική παρατήρηση είναι να µην βάζετε τόσες πολλές κενές γραµµές. Page 1

1560 PASS - ΟΚ - Σωστό αποτέλεσµα - Για την στοίχιση αρκεί µία εσοχή (ένα TAB) κάθε φορά. - Σωστή εκτέλεση, σωστό αποτέλεσµα. - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Σωστή µορφοποίηση εξόδου σύµφωνα µε την εκφώνηση. - Για την στοίχιση αρκεί µία εσοχή (ένα TAB) κάθε φορά. Επίσης η εντολή return πρέπει να στοιχίζεται όπως κάθε άλλη εντολή στο σώµα της συνάρτησης main. - Ο µέγιστος αριθµός µητρώου καλό θα ήταν να δηλωθεί ως σταθερά. const int max_aem = 1896; Παράδοση Ασκήσεων: Όλα ΟΚ Σωστή άσκηση και στοίχιση, αλλά καλό είναι να χρησιµοποιείτε tab αντί για κενά για τη στοίχιση. 1588 PASS - Σωστές πράξεις και αποτελέσµατα. - Σωστοί τύποι και ονόµατα µεταβλητών. - Ξεχάσατε να βάλετε break στο πρώτο if της case 1. - Σωστή χρήση των switch, if και σωστές πο αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Σωστή στοίχιση. - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Απουσία σχολίων αλλά αντισταθµίζεται µερικώς από τα περιγραφικά ονόµατα µεταβλητών. - Πρέπει να βάζετε και τα δύο ΑΕΜ στο όνοµα του φακέλου. Σωστή 1614 PASS - Το 1896 θα ήταν καλύτερα να είναι δηλωµένο ως σταθερά - Μέτρια ονόµατα µεταβλητών. Τι σηµαίνει ypol? - Πολλά σχόλια αλλά όχι πάντα ουσιώδη. Το scanf(" %d", &aem); έχει προφανή λειτουργία - δε χρειάζεται σχόλιο που να λέει ότι σε αυτό το σηµείο γίνεται εισαγωγή του aem. - Ο λόγος που µερικές φορές στις διαφάνειες εµφανίζονται πολλαπλές εντολές σε µία γραµµή είναι επειδή δεν είναι αρκετά µεγάλη η σελίδα του powerpoint. Όταν γράφετε κώδικα, µη βάζετε πολλαπλές εντολές στην ίδια γραµµή. - Γιατί υπάρχουν κενά πριν από τις λέξεις Advisor και Meeting? Επίσης δεν έπρεπε να υπάρχει χαρακτήρας αλλαγής γραµµής µετά το όνοµα του συµβούλου. Να ακολουθείτε ακριβώς τις προδιαγραφές. - Σωστή χρήση δοµών ελέγχου κι επανάληψης. Page 2

-Σωστή, περισσότερη προσοχή στη στοίχιση. 1717 PASS -O έλεγχος στη while δεν είναι επαρκής. Αν π.χ. βάλω 0? -Κατά τα άλλα σωστή. -ΠΟΤΕ!! περισσότερες από µία εντολές σε µία γραµµή. -Δεν υπάρχουν σχόλια. -Προσοχή στα format specifiers. -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Προσοχή στη στοίχιση. 1718 Οριακό PASS OK -Σωστή, αλλά µε άσχηµη στοίχιση. -Πρέπει να χρησιµοποιείτε lowercase ονόµατα µεταβλητών (aem αντί AEM) και να είναι πιο περιγραφικά (symv_kathigitis αντί του πιο γενικού ypoloipo). -Σωστή συνθήκη ελέγχου στην do...while loop, ΑΛΛΑ έπρεπε να βάλετε την ίδια συνθήκη και για την εκτύπωση του µηνύµατος "Invalid id" καθώς τώρα εκτυπώνεται ακόµα και αν ο αριθµός µητρώου είναι µέσα στα επιτρεπτά όρια(!). -Σωστή χρήση του switch για εύρεση καθηγητή, αν και θα βοηθούσε στην αναγνωσιµότητα του κώδικα ο υπολογισµός του υπολοίπου να γίνεται σε ξεχωριστή γραµµή πρίν την switch. -Σωστός έλεγχος για εύρεση ηµέρας. -Μέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Πολύ άσχηµη στοίχιση που κάνει τον κώδικα δυσανάγνωστο. 1719 PASS -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_aem = 1896; -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. - ΟΚ - Σωστό αποτέλεσµα - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Καλό θα ήταν να δηλώνατε τον µέγιστο αριθµό µητρώου ως σταθερά, όπως έχετε κανει µε τον αριθµό συµβούλων. const int max_aem = 1896; Page 3

Παράδοση Ασκήσεων: - Σωστό subject e-mail και cc. - Τα ονόµατα σας στο.tgz αρχείο και στον αντίστοιχο φάκελο πρέπει να είναι γραµµένα µε µικρούς χαρακτήρες. - Σωστή λειτουργία αλλά όλες οι εντολές στο σώµα της main έπρεπε να είναι ένα tab πιο µέσα. 1719 PASS 1720 PASS - Σωστή λειτουργία, πράξεις και αποτελέσµατα. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών (εκτός ίσως από το sel). - Σωστή χρήση του switch και των if και σωστές οι αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Σωστή στοίχιση. - Θα µπορούσατε να χρησιµοποιήσετε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Στο case 4 ο τερµατισµός του προγράµµατος θα µπορούσε να γίνεται µε return, ώστε να µη χρειάζεται ο έλεγχος για το sel µετά από τη συναλλαγή. - Απουσία σχολίων - ΟΚ - Σωστό αποτέλεσµα - Οι εντολές στο σώµα της main στοιχίζονται όλες κατά µια εσοχή (TAB) για καλύτερη ανάγνωση του κώδικα. - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Καλό θα ήταν να δηλώνατε τον µέγιστο αριθµό ΑΕΜ σαν σταθερά const int max_id = 1896; - Δώστε λίγο προσοχή στη στοίχιση. Παράδοση Ασκήσεων: - Σωστό subject e-mail, ονοµασία αρχείου και CC. - Δε µετονοµάσατε την πρώτη άσκηση από parallagi1.c σε lab4a.c. Σωστή λειτουργία και στοίχιση. 1721 PASS - Σωστή λειτουργία, πράξεις και αποτελέσµατα. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών. - Σωστή χρήση των switch, if-else, while και σωστές οι αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Θα µπορούσατε να χρησιµοποιήσετε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Ξεχάσατε το \n στο case 3. - Σωστή στοίχιση. - Καλά σχόλια. Page 4

ok..µε τη δεύτερη.. lab4grades - Σωστή αλλά µε µέτρια στοίχιση..να δουλεύετε µε tab και enter, µή βάζετε επιπλέον κενά. 1723 PASS - Περιγραφικά ονόµατα µεταβλητών. - Θα µπορούσατε να δηλώσετε τις ποσότητες 1, 1896 και 4 ως σταθερές. - Σωστή συνθήκη ελέγχου στο do while. - Σωστή χρήση του switch για εύρεση καθηγητή. - Σωστός έλεγχος για εύρεση ηµέρας. - καλή µορφοποίση εξόδου. - Καλή στοίχιση αλλά ανύπαρκτα σχόλια. - Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. ok - Καλή στοίχιση αλλά λάθος αποτελέσµατα. $ - αντί του! - 1724 PASS - Περιγραφικά ονόµατα µεταβλητών. - Θα µπορούσατε να δηλώσετε τις ποσότητες 1 και 4 ως σταθερές. - Σωστή συνθήκη ελέγχου στο do while. - Σωστή χρήση του switch για εύρεση καθηγητή. - Σωστός έλεγχος για εύρεση ηµέρας. - καλή µορφοποίση εξόδου. - Καλή στοίχιση αλλά λίγα σχόλια. - Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. θέµα: ΟΚ tgz: ΟΚ cc συνεργάτης: ΟΚ ορθότητα: ΟΚ στοίχιση: ΟΚ 1725 PASS στοίχιση: Δεν κάνετε καλή στοίχιση στο switch. Ο λόγος που µερικές φορές στις διαφάνειες εµφανίζονται πολλαπλές εντολές σε µία γραµµή είναι επειδή δεν είναι αρκετά µεγάλη η σελίδα του powerpoint. Όταν γράφετε κώδικα, µη βάζετε ΠΟΤΕ πολλαπλές εντολές στην ίδια γραµµή. τύποι µεταβλητών: ΟΚ ονόµατα µεταβλητών: ΟΚ χρήση σταθερών: Τα 100 000 και 20 000 θα έπρεπε να οριστούν σταθερές. σχόλια: ΟΚ αλλά θα µπορούσατε να βάλετε κάποια πράγµατα για το πως λειτουργεί το πρόγραµµά σας. πράξεις: ΟΚ αλλά η τελική συνθήκη για rich θα µπορούσε να γίνει πιο απλή αν ξεκινούσατε µε τα 100 000. while loop: ΟΚ switch: ΟΚ format specifiers: ΟΚ Σχόλια: Τα πήγατε πολύ καλά! Προσέξτε τις παραπάνω λεπτοµέρειες. Page 5

-Σωστή. 1727 PASS -Σωστή εκτέλεση. -Καλά ονόµατα µεταβλητών. Θα µπορούσατε το sel να το γραψετε selection. -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Δεν υπάρχει αρχικό σχόλιο για το πρόγραµµα. -Σε κάθε case της switch να αφήνετε µία κενή γραµµή και µετά να ξεκινάτε τον κώδικα σας. Πρέπει να εµφανίζονται και τα δύο επώνυµα στο όνοµα του φακέλου. 1728 οριακό PASS -Λάθος. Εµφανίζει $ και! - Δε διορθώθηκε η στοίχιση. -Σωστή εκτέλεση. -Τα σχόλια δεν είναι ικανοποιητικά. -Περισσότερη προσοχή στη στοίχιση. -Καλά ονόµατα µεταβλητών. -Προσοχή στα format specifiers. Έπρεπε να είναι %13..2lf,κι όχι %10.2lf OK -Σωστή, µε µέτρια στοίχιση. Όλες οι εντολές µέσα στο σώµα της main έπρεπε να είναι ένα tab πιο δεξιά. 1729 PASS -Περιγραφικά ονόµατα µεταβλητών και σωστή χρήση σταθερών στο πρόγραµµα. -Σωστή συνθήκη ελέγχου στην do...while loop. -Σωστή χρήση του switch για εύρεση καθηγητή. -Σωστός έλεγχος για εύρεση ηµέρας. -Mέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Ευανάγνωστος κώδικας και καλή εν γένει στοίχιση, αλλά ολόκληρος ο κώδικας της main() θα έπρεπε να βρίσκεται ένα tab πιο µέσα. -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. ok - Σωστή µε καλή στοίχιση 1732 PASS - Περιγραφικά ονόµατα µεταβλητών - Σωστή δήλωση των σταθερών - Σωστή συνθήκη ελέγχου στο do while αλλά το βήµα 1 δεν επαναλαµβάνεται όπως θα έπρεπε.. - Σωστή χρήση του switch για εύρεση καθηγητή - Σωστός έλεγχος για εύρεση ηµέρας. - Λίγο προσοχή στη µορφοποίση εξόδου. - Καλή στοίχιση. - Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. - Καλό είναι να µη χρησιµοποιείτε ελληνικούς χαρακτήρες. Page 6

1734 Οριακό PASS OK -Σωστή, αλλά µε άσχηµη στοίχιση. -Πρέπει να χρησιµοποιείτε lowercase ονόµατα µεταβλητών (aem αντί AEM) και να είναι πιο περιγραφικά (symv_kathigitis αντί του πιο γενικού ypoloipo). -Σωστή συνθήκη ελέγχου στην do...while loop, ΑΛΛΑ έπρεπε να βάλετε την ίδια συνθήκη και για την εκτύπωση του µηνύµατος "Invalid id" καθώς τώρα εκτυπώνεται ακόµα και αν ο αριθµός µητρώου είναι µέσα στα επιτρεπτά όρια(!). -Σωστή χρήση του switch για εύρεση καθηγητή, αν και θα βοηθούσε στην αναγνωσιµότητα του κώδικα ο υπολογισµός του υπολοίπου να γίνεται σε ξεχωριστή γραµµή πρίν την switch. -Σωστός έλεγχος για εύρεση ηµέρας. -Μέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Πολύ άσχηµη στοίχιση που κάνει τον κώδικα δυσανάγνωστο. -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_aem = 1896; -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. -Σωστή. -Περισσότερη προσοχή στη στοίχιση. 1736 Οριακό PASS -Δεν έχει υλοποιηθεί το µέρος (β). Όσον αφορά το µέρος (α) είναι σωστό, αλλά στην περίπτωση εισαγωγής λάθους επιλογής, µετά την εκτύπωση του "Invalid selection" ο κώδικας θα έπρεπε να τερµατίζει. -Καλά ονόµατα µεταβλητών. -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Καλή στοίχιση. OK -Σωστή, µε πολύ καλή στοίχιση. 1737 PASS -Περιγραφικό όνοµα µεταβλητής αλλά καλό θα ήταν να δηλώνατε και µια µεταβλητή που να κρατάει τον σύµβουλο καθηγητή (π.χ. symv_kathigitis). -Σωστή συνθήκη ελέγχου στην do...while loop. -Η χρήση της if στη γρ. 18 είναι πλεονάζουσα. -Σωστή χρήση του switch για εύρεση καθηγητή. -Σωστή εύρεση ηµέρας. -Μέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Πολύ καλή στοίχιση προγράµµατος και ευανάγνωστος, επαρκώς σχολιασµένος κώδικας. -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_aem = 1896; Page 7

-Όλα καλά 1738 PASS 1739 PASS η: -Σωστή, αλλά όλες οι εντολές στο σώµα της main έπρεπε να βρίσκονται ένα tab πιο µέσα. η: -Πρέπει να χρησιµοποιείτε σταθερές πχ const int MAX_ID = 1896; /* megisto AEM mexri twra */ const int NUM_PROF = 4; /* plithos sumboulwn */ - Προσέξτε τη στοίχιση. Όλες οι εντολές στο σώµα της main έπρεπε να είναι ένα tab πιο δεξιά - ΟΚ - Σωστό αποτέλεσµα, µέτρια στοίχιση. - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή βρόχου και συνθήκη εξόδου - Σωστή χρήση του switch - Καλό θα ήταν ο µέγιστος αριθµός µητρώου να είχε δηλωθεί ως σταθερά στο προγραµµα const int max_aem = 1896; - Επίσης θα µπορούσατε να χρησιµοποιήσετε διαφορετική µεταβλητη για να βρείτε την µέρα συνάντησης έτσι ώστε η διαδικασία εύρεσής της να είναι ανεξάρτητη από τη διαδικασία εύρεσης του σύµβουλου καθηγητή. 1740 Οριακό PASS - ΟΚ - Σωστό αποτέλεσµα - Καθόλου στοίχιση - Η συνθήκη του βρόχου δεν είναι σωστή. Δεν γίνεται ένας αριθµός να είναι ταυτόχρονα µικρότερος του 1 ΚΑΙ µεγαλύτερος του 1896. Θα έπρεπε να χρησιµοποιήσετε λογικό ή ' ' αντί για λογικό και '&&'. - Το σώµα του βρόχου δεν είναι σωστό. Η δεύτερη scanf που χρησιµοποιείτε είναι εκτός βρόχου. Όταν το σώµα του βρόχου αποτελείται από περισσότερες απο 1 εντολές, αυτές οι εντολές πρέπει βρίσκονται µέσα σε άγκιστρα. Έτσι όπως είναι γραµµένος ο κώδικας το σώµα του βρόχου αποτελείται µονο απο την printf("invalid id\n"); - Ξαναδείτε την σύνταξη των εντολών επανάληψης και τους λογικούς τελεστές - Σωστή χρήση του switch - Ο µέγιστος αριθµός µητρώου καλό θα ήταν να είχε δηλωθεί ως σταθερα. const int max_id = 1896; - Πολύ άσχηµη στοίχιση - δυσανάγνωστος κώδικας. - Περιµένουµε αισθητή βελτίωση στην ποιότητα του κώδικά σας στα επόµενα εργαστήρια Page 8

1741 PASS - ΟΚ - Σωστό αποτέλεσµα - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Καλό θα ήταν να δηλώνατε τον µέγιστο αριθµό µητρώου ως σταθερά, όπως έχετε κανει µε τον αριθµό συµβούλων. const int max_aem = 1896; - ΟΚ - Σωστό αποτέλεσµα - Οι εντολές στο σώµα της main στοιχίζονται όλες κατά µια εσοχή (TAB) για καλύτερη ανάγνωση του κώδικα. - Σωστή εκτέλεση - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch 1742 PASS - Το µήνυµα για την ανάληψη/κατάθεση θα έπρεπε να είναι "Enter amount: " και όχι "Enter amount". - Η µορφοποίηση του υπολοίπου είναι σωστή για την περίπτωση 3 (Υπόλοιπο) Λείπει ο χαρακτηρας αλλαγής γραµµής. - Όταν το υπόλοιπο εκτυπώνεται µετά από ανάθεση/κατάθεση δεν έχει σωστή µορφοποίηση - Διαβάζετε προσεκτικά την εκφώνηση για την µορφή της εξόδου. - Ο έλεγχος για την οικονοµική κατάσταση του πελάτη θα µπορούσε να εκφραστεί µε ποιο απλά χρησιµοποιώντας if - else if µε έλεγχο πρώτα για 100000 και µετά για 20000 - Επίσης καλό θα ήταν οι τιµές 100000 και 20000 να είχαν δηλωθεί ως σταθερές const int much_money = 20000; const int too_much_money = 100000; Page 9

- ΟΚ - Σωστό αποτέλεσµα - Οι εντολές στο σώµα της main στοιχίζονται όλες κατά µια εσοχή (TAB) για καλύτερη ανάγνωση του κώδικα. - Σωστή εκτέλεση - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch 1743 PASS - Το µήνυµα για την ανάληψη/κατάθεση θα έπρεπε να είναι "Enter amount: " και όχι "Enter amount". - Η µορφοποίηση του υπολοίπου είναι σωστή για την περίπτωση 3 (Υπόλοιπο) Λείπει ο χαρακτηρας αλλαγής γραµµής. - Όταν το υπόλοιπο εκτυπώνεται µετά από ανάθεση/κατάθεση δεν έχει σωστή µορφοποίηση - Διαβάζετε προσεκτικά την εκφώνηση για την µορφή της εξόδου. - Ο έλεγχος για την οικονοµική κατάσταση του πελάτη θα µπορούσε να εκφραστεί µε ποιο απλά χρησιµοποιώντας if - else if µε έλεγχο πρώτα για 100000 και µετά για 20000 - Επίσης καλό θα ήταν οι τιµές 100000 και 20000 να είχαν δηλωθεί ως σταθερές const int much_money = 20000; const int too_much_money = 100000; ok..µε τη δεύτερη.. - Σωστή αλλά µε µέτρια στοίχιση..να δουλεύετε µε tab και enter, µή βάζετε επιπλέον κενά. 1744 PASS - Περιγραφικά ονόµατα µεταβλητών. - Θα µπορούσατε να δηλώσετε τις ποσότητες 1, 1896 και 4 ως σταθερές. - Σωστή συνθήκη ελέγχου στο do while. - Σωστή χρήση του switch για εύρεση καθηγητή. - Σωστός έλεγχος για εύρεση ηµέρας. - καλή µορφοποίση εξόδου. - Καλή στοίχιση αλλά ανύπαρκτα σχόλια. - Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. Page 10

Σωστή. Σωστή 1745 PASS - Αντι για σκέτο όνοµα µεταβλητής id, πιο περιγραφικά θα µπορούσατε να βάζατε arithmos_mhtrwou ή student_id. - Στον ελέγχο εισόδου στο while ελέγχεται και µεσα στο do while µε if και στη συνθήκη του do while για την εγκυρότητα της εισόδου. Είναι περιττό να το ελέγχετε 2 φορές. Θα µπορούσατε να κάνετε printf("enter ID: "); scanf("%d", &id); while(id < 1 id >1896){ printf("invalid id\n"); printf("enter ID: "); scanf("%d", &id); } - Σωστή χρήση του switch για εύρεση καθηγητή - Σωστός έλεγχος για εύρεση ηµέρας. - Στη µορφοποίση εξόδου, χαρακτήρα αλλαγής γραµµης δεν θέλουµε µετα το όνοµα του καθηγητή αλλά µετά το όνοµα της ηµέρας. - Καλή στοίχιση. -Σωστή. -Κακή στοίχιση. 1746 PASS -Λάθος στο όνοµα του αρχείου (lab4b2.c) -Κακή στοίχιση. -Ποτέ περισσότερες από µία εντολές σε µία γραµµή. -Λάθος κατά την ανάληψη χρηµάτων. Ο έλεγχος θα επρεπε να είναι if(poso > poso_xrhsth) και όχι if(epilogi > poso_xrhsth). -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Καλά ονόµατα µεταβλητών. -Προσοχή στα format specifiers. -Κατα τα άλλα σωστή. Page 11

1747 οριακό PASS ok - Σωστή τοποθέτηση αγκίστρων αλλά µέτρια στοίχιση (γρ. 14-17) - Άσχηµη στοίχιση. Δεν κλείνετε τα άγκιστρα µε οµοιόµορφο τρόπο και τα tabs είναι όπου να ναι. Διαβάστε το σχετικό φυλλάδιο και βελτιώστε τη στο επόµενο εργαστήριο. - Για µια ακόµη φορά δεν έχετε βάλει σχόλια στο πρόγραµµά σας! - Έχετε πολύ επαναλαµβανόµενο κώδικα µέσα στις περιπτώσεις του switch. Γενικά όταν βλέπετε ότι κάνετε copy+paste κάποια κοµµάτια κώδικα σε αρκετά σηµεία, συνήθως υπάρχει καλύτερος τρόπος να το γράψετε. Η εκτύπωση των τελικών µηνυµάτων έπρεπε να γίνεται έξω από τη switch, και για όλες τις περιπτώσεις εκτός της 4 (εσείς το κάνετε για τις 1, 2 µόνο) - Λάθος τύποι µεταβλητών. Εφόσον ζητήθηκε να εκτυπωθούν δύο δεκαδικά για το υπόλοιπο, έπρεπε τουλάχιστον αυτή η µεταβλητή να είναι double. Το %13.2d είναι φυσικά λάθος εφόσον το.2 υπονοεί δεκαδικά ψηφία ενώ το d ακέραια τιµή. - Τα όρια "πλούτου" ήταν 20 και 100 χιλιάδες, όχι 2 και 10. Επίσης, καλό θα ήταν να τα είχατε ορίσει ως σταθερές. - Δεν υλοποιήθηκε το µέρος β. - Στα επόµενα εργαστήρια περιµένουµε αισθητή βελτίωση του κώδικά σας ειδικά όσον αφορά σε τύπους µεταβλητών και προσδιοριστικά τύπων. Παράδοση Ασκήσεων: Όλα ΟΚ Σωστή άσκηση και στοίχιση, αλλά καλό είναι να χρησιµοποιείτε tab αντί για κενά για τη στοίχιση. 1748 PASS - Σωστές πράξεις και αποτελέσµατα. - Σωστοί τύποι και ονόµατα µεταβλητών. - Ξεχάσατε να βάλετε break στο πρώτο if της case 1. - Σωστή χρήση των switch, if και σωστές πο αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Σωστή στοίχιση. - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Απουσία σχολίων αλλά αντισταθµίζεται µερικώς από τα περιγραφικά ονόµατα µεταβλητών. 1749 οριακό PASS Σωστή, αλλά αφήνετε ένα κενό ανάµεσα στα ce120, lab4 και section5 στο θέµα του email. - Σωστή τοποθετηση αγκιστρων αλλά κακή στοίχιση. Όλες οι εντολές µέσα στο σώµα της main έπρεπε να είναι ένα tab πιο δεξιά, ενώ αυτές στις γραµµές 13-14 άλλο ένα tab πιο δεξιά - Δεν υπάρχουν σχόλια - Σωστοί τύποι µεταβλητών. - Καλή στοίχιση αλλά µη βάζετε ποτέ περισσότερες από µια εντολές στην ίδια γραµµή. Οι γραµµές 25, 30, 31 έπρεπε να είχαν σπάσει στα δύο. - Το "You are rich" δεν έπρεπε να εκτυπώνεται αν το ποσό είναι πάνω από 100000. Το υπόλοιπο έπρεπε να εκτυπώνεται µόνο στην περίπτωση 3, έπρεπε να εµφανίζονται µόνο δύο δεκαδικά ψηφία και να πιάνει συνολικά 13 θέσεις. - Δεν υλοποιήθηκε το µέρος b. Page 12

σωστή 1750 PASS - Πολύ σωστή, µπράβο. - Πολύ σωστή, µπράβο. Σωστή Σωστή 1751 PASS - Περιγραφικά ονόµατα µεταβλητών - Σωστή συνθήκη ελέγχου στο while για τον έλεγχο της εισόδου - Σωστή χρήση του switch για εύρεση καθηγητή - Σωστός ο έλεγχος για εύρεση ηµέρας - Ωραία στοίχιση Παράδοση Ασκήσεων: - Subject e-mail: Το CE120 µε κεφαλαία - Ονοµασία αρχείου: Τα ονόµατά σας πρέπει να είναι γραµµένα µε µικρά. - Οι ασκήσεις έπρεπε να είναι σε φάκελο που να έχει τα ονόµατα/αεμ σας στο όνοµά του, κι όχι σε φάκελο lab4. - CC: Δεν έγινε κοινοποίηση στο άλλο µέλος. - Λάθος, εκτυπώνει! και * αντί για µόνο *, επειδή αλλάξατε τη σειρά των εντολών του αρχείου ενώ απαγορευόταν. Συντακτικά πάντως είναι σωστή και η στοίχιση είναι επίσης σωστή εκτός από τη 2η printf. 1752 FAIL - Το πρόγραµµα δεν κάνει compile (λείπει ένα "," µες στην printf κι επίσης ένα άγκιστρο στο πρόγραµµα. - Σωστές πράξεις µέσα στις if του switch αλλά δεν έχετε βάλει break στο τέλος των περιπτώσεων, µε αποτέλεσµα να εκτελείται ο κώδικας όλων των παρακάτω cases. - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών, εκτός από το "a" - αποφευγουµε µεταβλητές ενός χαρακτήρα. - Προσοχή στη στοίχιση. - Στην εκτύπωση του case 3 έπρεπε να γράψετε %13.2lf αντί για %10.2lf. - Σωστές οι συνθήκες στα if αλλά στο τέλος πρέπει να γίνεται έλεγχος πρώτα για το 100000 και µετά για το 20000. - Σωστή χρήση των \n - Ελάχιστα σχόλια. Page 13

1753 οριακό PASS ok - Σωστή τοποθέτηση αγκίστρων αλλά µέτρια στοίχιση (γρ. 14-17) - Άσχηµη στοίχιση. Δεν κλείνετε τα άγκιστρα µε οµοιόµορφο τρόπο και τα tabs είναι όπου να ναι. Διαβάστε το σχετικό φυλλάδιο και βελτιώστε τη στο επόµενο εργαστήριο. - Για µια ακόµη φορά δεν έχετε βάλει σχόλια στο πρόγραµµά σας! - Έχετε πολύ επαναλαµβανόµενο κώδικα µέσα στις περιπτώσεις του switch. Γενικά όταν βλέπετε ότι κάνετε copy+paste κάποια κοµµάτια κώδικα σε αρκετά σηµεία, συνήθως υπάρχει καλύτερος τρόπος να το γράψετε. Η εκτύπωση των τελικών µηνυµάτων έπρεπε να γίνεται έξω από τη switch, και για όλες τις περιπτώσεις εκτός της 4 (εσείς το κάνετε για τις 1, 2 µόνο) - Λάθος τύποι µεταβλητών. Εφόσον ζητήθηκε να εκτυπωθούν δύο δεκαδικά για το υπόλοιπο, έπρεπε τουλάχιστον αυτή η µεταβλητή να είναι double. Το %13.2d είναι φυσικά λάθος εφόσον το.2 υπονοεί δεκαδικά ψηφία ενώ το d ακέραια τιµή. - Τα όρια "πλούτου" ήταν 20 και 100 χιλιάδες, όχι 2 και 10. Επίσης, καλό θα ήταν να τα είχατε ορίσει ως σταθερές. - Δεν υλοποιήθηκε το µέρος β. - Στα επόµενα εργαστήρια περιµένουµε αισθητή βελτίωση του κώδικά σας ειδικά όσον αφορά σε τύπους µεταβλητών και προσδιοριστικά τύπων. - Το αρχείο κώδικα της άσκησης 2 έπρεπε να έχει το όνοµα lab4b.c και όχι lab4b1.c - Σωστό αποτέλεσµα, αλλά όχι πολύ συνεπής στοίχιση. Διαβάστε το σχετικό φυλλάδιο. 1759 FAIL - Δεν κάνει compile. - Η δοµή επανάληψης δεν είναι συντακτικά σωστή. Το while και η συνθήκη ελέγχου µπαίνουν αµέσως µετά το σώµα του βρόχου και όχι στο εσωτερικό του. do { /* statement1; */ /* statement2; */ /*... */ /* statementn; */ } while (/* condition */); - Ο τελεστής για το λογικό 'OR' είναι ο ' ' και όχι το 'or'. - Μετά την έξοδο από τον βρόχο η συνθήκη ελέγχου του βρόχου είναι ψευδής (εάν ήταν αληθής το πρόγραµµα θα παρέµενε µέσα στον βρόχο), εποµένως δεν χρειάζεται να ξαναελέγχετε την συνθήκη µετά τον βρόχο επανάληψης. - Σωστή χρήση και δοµή του switch. - Καλή στοίχιση. - Ο µέγιστος αριθµός µητρώου καλό θα ήταν να δηλωθεί ως σταθερά. const int max_id = 1896; Page 14

- ΟΚ - Σωστό αποτέλεσµα, αλλά µην αφήνετε τόσες πολλές κενές γραµµές ανάµεσα σε διαδοχικές εντολές. 1761 PASS - Έχει γίνει µόνο το µέρος α. Σωστή εκτέλεση, σωστό αποτέλεσµα. Δείτε και το µέρος β µε την δοµή επανάληψης. - Σωστή χρήση του switch - Σωστός έλεγχος για την εκτύπωση των µυνηµάτων στο τέλος - Επίσης καλό θα ήταν οι τιµές 100000 και 20000 να είχαν δηλωθεί ως σταθερές const int much_money = 20000; const int too_much_money = 100000; Παράδοση Ασκήσεων: Subject e-mail: το CE120 µε κεφαλαία Ονοµασία αρχείου: Σωστό CC: Σωστό Σωστή λύση, αλλά η στοίχιση δεν είναι συνεπής. Αλλού έχετε tab, αλλού 2 κενά, αλλού 4, αλλού κανένα. 1762 FAIL - Το πρόγραµµα δεν κάνει compile λόγω τυπογραφικών λαθών (prinf αντί για printf) και επειδή δεν έχετε γράψει σωστά την do-while του µέρους β. Υποθέτω ότι τα γράψατε βιαστικά στο τέλος χωρίς να τα τεστάρετε, κάνοντας όµως έτσι το πρόγραµµά σας να µην τρέχει. Καλύτερα να παραδίδατε µόνο το µέρος α µε το πρόγραµµά σας να κάνει σωστά compile. - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών (εκτός των amount1, amount2). - Σωστή στοίχιση - Σωστές πράξεις µέσα στις if του switch αλλά δεν έχετε βάλει break στο τέλος των περιπτώσεων, µε αποτέλεσµα να εκτελείται ο κώδικας όλων των παρακάτω cases. - Σωστές οι συνθήκες στα if αλλά στο τέλος πρέπει να γίνεται έλεγχος πρώτα για το 100000 και µετά για το 20000. - Σωστή χρήση των \n - Προσοχή ώστε αυτά που εκτυπώνετε να είναι ακριβώς ίδια µε αυτά που ζητάει η εκφώνηση. - Απουσία σχολίων Σωστή Σωστή 1763 PASS - Περιγραφικά ονόµατα µεταβλητών - Σωστή συνθήκη ελέγχου στο while για τον έλεγχο της εισόδου - Σωστή χρήση του switch για εύρεση καθηγητή - Σωστός ο έλεγχος για εύρεση ηµέρας - Ωραία στοίχιση Page 15

Σωστή. Σωστή 1764 PASS - Αντι για σκέτο όνοµα µεταβλητής id, πιο περιγραφικά θα µπορούσατε να βάζατε arithmos_mhtrwou ή student_id. - Στον ελέγχο εισόδου στο while ελέγχεται και µεσα στο do while µε if και στη συνθήκη του do while για την εγκυρότητα της εισόδου. Είναι περιττό να το ελέγχετε 2 φορές. Θα µπορούσατε να κάνετε printf("enter ID: "); scanf("%d", &id); while(id < 1 id >1896){ printf("invalid id\n"); printf("enter ID: "); scanf("%d", &id); } - Σωστή χρήση του switch για εύρεση καθηγητή - Σωστός έλεγχος για εύρεση ηµέρας. - Στη µορφοποίση εξόδου, χαρακτήρα αλλαγής γραµµης δεν θέλουµε µετα το όνοµα του καθηγητή αλλά µετά το όνοµα της ηµέρας. - Καλή στοίχιση. -Σωστή. 1765 PASS -Σωστή εκτέλεση. -Καλά ονόµατα µεταβλητών αν και θα µπορούσατε να χρησιµοποιήσετε λιγότερες µεταβλητές. -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Στην περίπτωση 4 το πρόγραµµα έπρεπε να τερµατίζει. -Δεν υπάρχουν σχόλια. -Σε κάθε case της switch να αφήνετε µία κενή γραµµή και µετά να ξεκινάτε τον κώδικα σας. Page 16

lab4grades 1767 Οριακό Pass θέµα: ΟΚ tgz: η πρώτη άσκηση είναι αποθηκευµένη lab4parallagi1.c αντί του lab4a.c cc συνεργάτης: ΟΚ ορθότητα: ΟΚ στοίχιση: Κακή στοίχιση στοίχιση: Δεν κάνετε καλή στοίχιση στο switch. Ο λόγος που µερικές φορές στις διαφάνειες εµφανίζονται πολλαπλές εντολές σε µία γραµµή είναι επειδή δεν είναι αρκετά µεγάλη η σελίδα του powerpoint. Όταν γράφετε κώδικα, µη βάζετε ΠΟΤΕ πολλαπλές εντολές στην ίδια γραµµή. τύποι µεταβλητών: Η επιλογή θα έπρεπε να είναι int και όχι char. πχ δώστε στο πρόγραµµά σας τον αριθµό 23 για επιλογή και δείτε ότι είναι αποδεκτή (η scanf Θα δεχτεί το πρώτο γράµµα '1' για επιλογή και το δεύτερο γράµµα '3' για ποσό κατάθεσης!) ονόµατα µεταβλητών: ΟΚ χρήση σταθερών: Τα 100 000 και 20 000 θα έπρεπε να οριστούν σταθερές. σχόλια: ΟΚ πράξεις: ΟΚ while loop: ΟΚ αλλά θα µπορούσε να γίνει πολύ πιο απλά. switch: Δεν κάνετε return στην επιλογή 4! format specifiers: έχετε %10.2f αντί για %13.2f. Ξαναδιαβάστε τους! Σχόλια: Τα πήγατε µέτρια. Δεν χρησιµοποιείτε σωστά την scanf! Να θυµάστε πάντα ότι περιµένει ακριβώς αυτό που έχετε µέσα στα εισαγωγικά (µε µια εξαίρεση για white space χαρακτήρες, όπου µπορεί να είναι και περισσότεροι από αυτό που έχετε δηλώσει, διαβάστε το manual της scanf!) Δείτε και τα παραπάνω. -Σωστή, περισσότερη προσοχή στη στοίχιση. 1768 PASS -O έλεγχος στη while δεν είναι επαρκής. Αν π.χ. βάλω 0? -Κατά τα άλλα σωστή. -ΠΟΤΕ!! περισσότερες από µία εντολές σε µία γραµµή. -Δεν υπάρχουν σχόλια. -Προσοχή στα format specifiers. -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Προσοχή στη στοίχιση. OK -Σωστή, µε πολύ καλή στοίχιση. 1769 PASS -Περιγραφικό όνοµα µεταβλητής αλλά καλό θα ήταν να δηλώνατε και µια µεταβλητή που να κρατάει τον σύµβουλο καθηγητή (π.χ. symv_kathigitis). -Σωστή συνθήκη ελέγχου στην do...while loop. -Η χρήση της if στη γρ. 18 είναι πλεονάζουσα. -Σωστή χρήση του switch για εύρεση καθηγητή. -Σωστή εύρεση ηµέρας. -Μέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Πολύ καλή στοίχιση προγράµµατος και ευανάγνωστος, επαρκώς σχολιασµένος κώδικας. -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_aem = 1896; Page 17

Σωστή. 1770 PASS Σωστή - Περιγραφικά ονόµατα µεταβλητών -Σωστή συνθήκη ελέγχου στο do while αλλά δεν έχετε βάλει το do while στη σωστή θέση, θα πρέπει µέσα στο do while, να διαβάζετε µόνο την είσοδο και όχι να κάνετε και υπολογισµούς.έτσι όπως το έχετε, κάνετε ένα επιπλέον έλεγχο, διότι ελέγχετε και στο µεσα στο do while αν η είσοδος είναι σωστή σε µια if που έχετε βάλει, και στη συνθήκη του do while. Θα πρέπει πρώτα να διαβάζετε την είσοδο µέχρι να γίνει σωστή, και µετά να υπολογίζετε καθηγητή και µέρα. - Σωστή χρήση του switch για εύρεση καθηγητή - Σωστός έλεγχος για εύρεση ηµέρας. - Στη µορφοποίση εξόδου, χαρακτήρα αλλαγής γραµµης δεν θέλουµε µετα το όνοµα του καθηγητή αλλά µετά το όνοµα της ηµέρας. - Καλή στοίχιση. Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή. - Το αρχείο κώδικα της άσκησης 2 έπρεπε να έχει το όνοµα lab4b.c και όχι lab4b1.c - Σωστό αποτέλεσµα, αλλά όχι πολύ συνεπής στοίχιση. Διαβάστε το σχετικό φυλλάδιο. 1771 FAIL - Δεν κάνει compile. - Η δοµή επανάληψης δεν είναι συντακτικά σωστή. Το while και η συνθήκη ελέγχου µπαίνουν αµέσως µετά το σώµα του βρόχου και όχι στο εσωτερικό του. do { /* statement1; */ /* statement2; */ /*... */ /* statementn; */ } while (/* condition */); - Ο τελεστής για το λογικό 'OR' είναι ο ' ' και όχι το 'or'. - Μετά την έξοδο από τον βρόχο η συνθήκη ελέγχου του βρόχου είναι ψευδής (εάν ήταν αληθής το πρόγραµµα θα παρέµενε µέσα στον βρόχο), εποµένως δεν χρειάζεται να ξαναελέγχετε την συνθήκη µετά τον βρόχο επανάληψης. - Σωστή χρήση και δοµή του switch. - Καλή στοίχιση. - Ο µέγιστος αριθµός µητρώου καλό θα ήταν να δηλωθεί ως σταθερά. const int max_id = 1896; Page 18

Παράδοση Ασκήσεων: - Σωστό subject e-mail και cc. - Τα ονόµατα σας στο.tgz αρχείο και στον αντίστοιχο φάκελο πρέπει να είναι γραµµένα µε µικρούς χαρακτήρες. - Σωστή λειτουργία αλλά όλες οι εντολές στο σώµα της main έπρεπε να είναι ένα tab πιο µέσα. 1775 PASS 1775 PASS - Σωστή λειτουργία, πράξεις και αποτελέσµατα. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών (εκτός ίσως από το sel). - Σωστή χρήση του switch και των if και σωστές οι αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Σωστή στοίχιση. - Θα µπορούσατε να χρησιµοποιήσετε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Στο case 4 ο τερµατισµός του προγράµµατος θα µπορούσε να γίνεται µε return, ώστε να µη χρειάζεται ο έλεγχος για το sel µετά από τη συναλλαγή. - Απουσία σχολίων - ΟΚ - Σωστό αποτέλεσµα - Λάνθασµένη έξοδος όταν το τελικό ποσό είναι >=100000. - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Το µήνυµα για την ανάληψη/κατάθεση θα έπρεπε να είναι "Enter amount: ". - Τα µυνήµατα που εκτυπώνετε θα έπρεπε να ήταν "You are rich!" και "You are filthy rich!" ανάλογα µε το τελικό ποσό. Για την επιλογή 3 (Υπόλοιπο) το πρόγραµµα τερµατίζει χωρίς να τα εκτυπώνει (λείπει η εντολή break; στο τέλος του case 3) - Η default περίπτωση στο switch στη συγκεκριµένη περίπτωση είναι περιττή. Το πρόγραµµα εξέρχεται από τον βρόχο επανάληψης όταν η συνθήκη γίνει ψευδής, ειδάλλως θα εξακολουθούσε να εκτελεί το σώµα του βρόχου. Εποµένως δεν χρειάζεται ξανά έλεγχος για την εγκυρότητα της µεταβλητής 'selection'. - Ο έλεγχος εάν το ποσό είναι >=100000 θα έπρεπε να γίνεται πρώτος. Εάν το τελικό ποσό είναι µικροτερο του 20000 τότε είναι µικρότερο και από το 100000. Εποµένως το µήνυµα "You are filthy rich!" δεν εκτυπώνεται ποτέ. - Επίσης καλό θα ήταν οι τιµές 100000 και 20000 να είχαν δηλωθεί ως σταθερές const int much_money = 20000; const int too_much_money = 100000; - Διαβάζετε προσεκτικά την εκφώνηση για την µορφή της εξόδου. Page 19

1776 PASS lab4grades - ΟΚ - Σωστό αποτέλεσµα - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Καλό θα ήταν το µήνυµα "Enter id: " να ξανατυπώνεται σε περίπτωση που ο χρήστης δώσει µη έγκυρη τιµή, έτσι ώστε να είναι εµφανές ότι το πρόγραµµα περιµένει νέα τιµή και δεν τρέχει κάποιον αλγόριθµο µε την προηγούµενη (µη έγκυρη) είσοδο. - Τα ονοµατα των µεταβλητών θα µπορούσαν να είναι ποιο περιγραφικά έτσι ώστε να καταλαβαίνει κανείς αµέσως τον σκοπό της κάθε µεταβλητής µέσα στον κώδικα χωρίς να ψάχνει τα σχόλια κάθε φορα. int AEM_foititi; - Η µεταβλητή A_M_max δεν αλλάζει κατα την εκτέλεση του προγράµµατος, οπότε καλό θα ήταν αυτό να φαίνεται και στην δήλωσή της. const int max_aem_foititi = 1896; θέµα: ΟΚ tgz: ΟΚ cc συνεργάτης: ΟΚ ορθότητα: ΟΚ στοίχιση: ΟΚ 1777 PASS στοίχιση: ΟΚ τύποι µεταβλητών: ονόµατα µεταβλητών: το initial_amount είναι παραπλανητικό, γιατί χρησιµοποιείται και για να εκτυπώσει το ποσό µετά από κατάθεση (και άρα δεν είναι initial) χρήση σταθερών: Τα 100 000 και 20 000 θα έπρεπε να οριστούν σταθερές. σχόλια: ΟΚ πράξεις: ΟΚ, αλλά µε initial amount = 0, δεν θα µπορούσατε να ελέγξετε την πράξη της ανάληψης! while loop: Δεν εκτυπώνεται το µήνυµα Invalid selection ακολουθούµενο από αλλαγή γραµµής. switch: ΟΚ format specifiers: OK Σχόλια: Πολύ καλά! Να διαβάζεται καλά τις εκφωνήσεις. Να προσέχετε να ορίζετε σωστά σταθερές. Page 20

1783 PASS - Το αρχείο για την πρώτη άσκηση θα έπρεπε να µετονοµαστεί από parallagi1.c σε lab4a.c. - Ο φάκελος που δηµιουργείτε πρέπει να έχει επίθετο και ΑΕΜ, όπως και το συµπιεσµένο αρχείο. - Σωστό αποτέλεσµα - Σωστή εκτέλεση, σωστό αποτέλεσµα. - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση και δοµή του switch. - Τα ονόµατα των µεταβλητών θα µπορούσαν να είναι λίγο πιο περιγραφικα έτσι ώστε να µην χρειαζόταν να βάλετε σχόλια για την χρήση των µεταβλητών. int arithmos_mitrwou; int kathigitis; - Σωστή µορφοποίηση εξόδου σύµφωνα µε την εκφώνηση. - Καλή στοίχιση, ευανάγνωστος κώδικας. - Ο µέγιστος αριθµός µητρώου καλό θα ήταν να δηλωθεί ως σταθερά. const int max_arithmos_mitrwou = 1896; θέµα: ΟΚ tgz: ΟΚ cc συνεργάτης: ΟΚ ορθότητα: ΟΚ στοίχιση: σχεδόν µηδενική. Μη χρησιµοποιείτε µόνο ένα κενό, αλλά tab. Διαβάστε το σχετικό φυλλάδιο. 1784 PASS στοίχιση: Κακή στοίχιση στο while loop. Το if πρέπει να είναι πιο εµφωλευµένο! τύποι µεταβλητών: ΟΚ ονόµατα µεταβλητών: ΟΚ χρήση σταθερών: Τα 100 000 και 20 000 θα έπρεπε να οριστούν σταθερές. σχόλια: ΟΚ πράξεις: ΟΚ. Η τελική συνθήκη για rich θα µπορούσε να γίνει πιο απλή αν ξεκινούσατε µε τα 100 000. while loop: OK switch: ΟΚ αλλά θα µπορούσατε στην επιλογή 4 να τελειώσετε µε return 0 αντί να βάλετε if στο τέλος. format specifiers: OK Σχόλια: Τα πήγατε πολύ καλά! Δείτε µόνο τις παραπάνω λεπτοµέριες. ok - Σωστή αλλά µε µέτρια στοίχιση. Όλες οι εντολές στο σώµα της main έπρεπε να είναι ένα tab πιο µέσα. 1785 PASS - Περιγραφικά ονόµατα µεταβλητών. - Θα µπορούσατε να δηλώσετε τις ποσότητες 1, 1896 και 4 ως σταθερές. - Σωστή συνθήκη ελέγχου στο while. - Σωστή χρήση του switch για εύρεση καθηγητή. - Σωστός έλεγχος για εύρεση ηµέρας. - καλή µορφοποίση εξόδου. - Καλή στοίχιση και σχόλια. - Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. Page 21

1786 οριακό PASS 1787 PASS lab4grades -Λάθος, δεν εκτυπώνει τίποτα και η στοίχιση χρειάζεται βελτίωση -Λάθος στον έλεγχο του selection (το &&). Δεν γίνεται ένας αριθµός να είναι µεγαλύτερος του 4 και µικρότερος του 1 συγχρόνως. -Μεγάλη προσοχή στα ονόµατα µεταβλητών. Θα πρέπει να είναι περιγραφικά και σε καµία περίπτωση s, X κα Α. -Όταν το ποσό του λογαριασµού είναι 100.000 δεν τυπώνεται κάτι διότι δεν λαµβάνετε υπόψη αυτή την περίπτωση στους ελέγχους. -Στην περίπτωση 4 το πρόγραµµα θα έπρεπε να τερµατίζει. -Άσχηµη στοίχιση. ΔΙΑΒΑΣΤΕ το σχετικό φυλλάδιο! -Ποτέ περισσότερες από µία εντολές στην ίδια γραµµή. -Τα σχόλια δεν είναι επαρκή. -Το switch δεν έπρεπε να περικλείεται σε while που επικυρώνει το selection. Έχει ήδη γίνει ο έλεγχός του. - ΟΚ - Σωστό αποτέλεσµα, αλλά η στοίχιση δεν είναι συνεπής. - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. Οι υπολογισµοί για την εύρεση του σύµβουλου καθηγητή και της ηµέρας συνάντησης θα µπορούσαν να µεταφερθούν εκτός του βρόχου, για να είναι πιο εµφανής η λειτουργία του (ελέγχει την εγκυρότητα της εισόδου µόνο). - Σωστή χρήση του switch - Καλό θα ήταν να δηλώνατε τον µέγιστο αριθµό µητρώου ως σταθερά const int max_aem = 1896; - Επίσης θα µπορούσατε να χρησιµοποιήσετε διαφορετική µεταβλητη για να βρείτε την µέρα συνάντησης έτσι ώστε η διαδικασία εύρεσής της να είναι ανεξάρτητη από τη διαδικασία εύρεσης του σύµβουλου καθηγητή. - Δώστε προσοχή στη στοίχιση -Σωστή µε καλή στοίχιση 1788 PASS -Σωστά αποτελέσµατα. Καλή χρήση των διαφορων δοµών. -Οι τιµές 100000 και 20000 θα ήταν καλύτερο να δηλωθούν ως σταθερές. -Περισσότερη προσοχή στην στοίχιση. -Ποτέ περισσότερες από µία εντολές στην ίδια γραµµή. -Προσοχή στις προδιαγραφές της εξόδου. Στο enter selection σας έχει ξεφύγει ένα tab και στα enter amount δε χρειάζεται \n και δεν έχετε ":" -Δεν υπάρχει αρχικό σχόλιο για το πρόγραµµα. Page 22

OK -Σωστή, µε µέτρια στοίχιση. Όλες οι εντολές µέσα στο σώµα της main έπρεπε να είναι ένα tab πιο δεξιά. 1790 PASS -Περιγραφικά ονόµατα µεταβλητών και σωστή χρήση σταθερών στο πρόγραµµα. -Σωστή συνθήκη ελέγχου στην do...while loop. -Σωστή χρήση του switch για εύρεση καθηγητή. -Σωστός έλεγχος για εύρεση ηµέρας. -Mέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Ευανάγνωστος κώδικας και καλή εν γένει στοίχιση, αλλά ολόκληρος ο κώδικας της main() θα έπρεπε να βρίσκεται ένα tab πιο µέσα. -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. ok - Σωστή αλλά µε µέτρια στοίχιση. Όλες οι εντολές στο σώµα της main έπρεπε να είναι ένα tab πιο µέσα. 1791 PASS - Περιγραφικά ονόµατα µεταβλητών. - Θα µπορούσατε να δηλώσετε τις ποσότητες 1, 1896 και 4 ως σταθερές. - Σωστή συνθήκη ελέγχου στο while. - Σωστή χρήση του switch για εύρεση καθηγητή. - Σωστός έλεγχος για εύρεση ηµέρας. - καλή µορφοποίση εξόδου. - Καλή στοίχιση και σχόλια. - Στα cases καλό είναι να µην βάζετε όλες τις εντολές σε µια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. Παράδοση Ασκήσεων: - Σωστό subject e-mail, ονοµασία αρχείου και cc. - Παραδώσατε 2 αρχεία για τα 2 µέρη της Άσκησης 2 ενώ στην εκφώνηση ζητείται καθαρά ένα µόνο. 1792 οριακό PASS Σωστή λειτουργία, λανθασµένη στοίχιση µόνο στην printf που εκτελείται. - Δεν έχετε βάλει σωστά το break στην case 1, και δε γίνεται ανανέωση του υπολοίπου όταν χρειάζεται. - Έχετε µπερδέψει τη λειτουργία του προγράµµατος, τι ακριβώς ζητείται δηλαδή µε το τι κάνετε. Για παράδειγµα, η εκτύπωση "You are rich!" δεν πρέπει να γίνεται µόνο µέσα στην case 3, αλλά µετά από οποιαδήποτε συναλλαγή.. - Δεν έχετε βάλει break στην case 2 για την περίπτωση που δεν εκτελείται ο κώδικας του if, µε αποτέλεσµα να εκτελείται και η case 3. - Η συνθήκη i!=0 θα έπρεπε να είναι i!=1 - Κατά τα άλλα, σωστές πράξεις και αποτελέσµατα. - Σωστοί τύποι εκτός από το final που έπρεπε να είναι double και ονόµατα µεταβλητών (ίσως χρειαζόταν λίγο πιο περιγραφικά - ειδικά το i θα µπορούσε να είχε ονοµαστεί π.χ. selection). - Σωστή χρήση των \n - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Μη βάζετε 2 εντολές στην ίδια σειρά. - Σωστή στοίχιση εκτός λίγων εξαιρέσεων. - Απουσία σχολίων - Σε επόµενα εργαστήρια περιµένουµε αισθητή βελτίωση όσον αφορά το αλγοριθµικό κοµµάτι των προγραµµάτων σας. Page 23

1795 Οριακό PASS lab4grades στο email subject έπρεπε να βάλετε τον αριθµό του τµήµατός σας (section1 αντί sectionx). -Σωστή, µε µέτρια στοίχιση. -Καλό θα ήταν να χρησιµοποιούσατε πιο περιγραφικά ονόµατα µεταβλητών (student_id και symv_kathigitis αντί των πιο γενικών id και ypolipo). -Λάθος συνθήκη ελέγχου στην while loop. Η άσκηση ζητούσε ο αρ. µητρώου να είναι 1-1896 ενώ εσείς ουσιαστικά ζητάτε να είναι 2-1895. -Σωστή χρήση του switch για εύρεση καθηγητή. -Σωστή εύρεση ηµέρας. -Μέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Στοίχιση ικανοποιητική αλλά οι γρ.25-40 θα έπρεπε να είναι ένα tab πιο έξω! -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_student_id = 1896; -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. Παράδοση Ασκήσεων: Subject e-mail: το CE120 µε κεφαλαία Ονοµασία αρχείου: Σωστό CC: Σωστό Σωστή λύση, αλλά η στοίχιση δεν είναι συνεπής. Αλλού έχετε tab, αλλού 2 κενά, αλλού 4, αλλού κανένα. 1796 FAIL - Το πρόγραµµα δεν κάνει compile λόγω τυπογραφικών λαθών (prinf αντί για printf) και επειδή δεν έχετε γράψει σωστά την do-while του µέρους β. Υποθέτω ότι τα γράψατε βιαστικά στο τέλος χωρίς να τα τεστάρετε, κάνοντας όµως έτσι το πρόγραµµά σας να µην τρέχει. Καλύτερα να παραδίδατε µόνο το µέρος α µε το πρόγραµµά σας να κάνει σωστά compile. - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών (εκτός των amount1, amount2). - Σωστή στοίχιση - Σωστές πράξεις µέσα στις if του switch αλλά δεν έχετε βάλει break στο τέλος των περιπτώσεων, µε αποτέλεσµα να εκτελείται ο κώδικας όλων των παρακάτω cases. - Σωστές οι συνθήκες στα if αλλά στο τέλος πρέπει να γίνεται έλεγχος πρώτα για το 100000 και µετά για το 20000. - Σωστή χρήση των \n - Προσοχή ώστε αυτά που εκτυπώνετε να είναι ακριβώς ίδια µε αυτά που ζητάει η εκφώνηση. - Απουσία σχολίων Page 24

1797 PASS lab4grades - ΟΚ - Σωστό αποτέλεσµα - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση του switch - Καλό θα ήταν το µήνυµα "Enter id: " να ξανατυπώνεται σε περίπτωση που ο χρήστης δώσει µη έγκυρη τιµή, έτσι ώστε να είναι εµφανές ότι το πρόγραµµα περιµένει νέα τιµή και δεν τρέχει κάποιον αλγόριθµο µε την προηγούµενη (µη έγκυρη) είσοδο. - Τα ονοµατα των µεταβλητών θα µπορούσαν να είναι ποιο περιγραφικά έτσι ώστε να καταλαβαίνει κανείς αµέσως τον σκοπό της κάθε µεταβλητής µέσα στον κώδικα χωρίς να ψάχνει τα σχόλια κάθε φορα. int AEM_foititi; - Η µεταβλητή A_M_max δεν αλλάζει κατα την εκτέλεση του προγράµµατος, οπότε καλό θα ήταν αυτό να φαίνεται και στην δήλωσή της. const int max_aem_foititi = 1896; Παράδοση Ασκήσεων: Subject e-mail: το CE120 µε κεφαλαία Ονοµασία αρχείου: Τα ονόµατα σας πρέπει να είναι γραµµένα µε µικρά CC: Σωστό Σωστή, αλλά η στοίχιση δεν είναι συνεπής 1798 PASS - Δεν έγινε το µερος β της άσκησης. Για το µέρος α: - Σωστές πράξεις και αποτελέσµατα. - Σωστοί τύποι εκτός από το ypol που έπρεπε να είναι double και σωστά ονόµατα µεταβλητών (ίσως χρειαζόταν λίγο πιο περιγραφικά). - Σωστή χρήση των switch, if και σωστές οι αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Δε χρησιµοποιήσατε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Στο printf της περίπτωσης 3 γράψατε 13.2%d ενώ το σωστό είναι %13.2lf - Μέτρια στοίχιση. Προσέξτε πού τοποθετείτε τα άγκιστρα. - Απουσία σχολίων Page 25

1800 οριακό PASS θέµα: ΟΚ tgz: ΟΚ cc συνεργάτης: ΟΚ ορθότητα: ΟΚ στοίχιση: ΟΚ στοίχιση: Δεν κάνετε καλή στοίχιση στο switch. Ο λόγος που µερικές φορές στις διαφάνειες εµφανίζονται πολλαπλές εντολές σε µία γραµµή είναι επειδή δεν είναι αρκετά µεγάλη η σελίδα του powerpoint. Όταν γράφετε κώδικα, µη βάζετε ΠΟΤΕ πολλαπλές εντολές στην ίδια γραµµή. τύποι µεταβλητών: ΟΚ ονόµατα µεταβλητών: ΟΚ χρήση σταθερών: Τα 100 000 και 20 000 θα έπρεπε να οριστούν σταθερές. σχόλια: Πρέπει να υπάρχει τουλάχιστον µια περιγραφή της κάθε µεταβλητής. πράξεις: ΟΚ. Η τελική συνθήκη για rich θα µπορούσε να γίνει πιο απλή αν ξεκινούσατε µε τα 100 000. while loop: Η συνθήκη είναι πάντα ψευδής! switch: ΟΚ ( στα αγγλικά Modulo == υπόλοιπο ακέραιας διαίρεσης ενώ Balance = υπόλοιπο λογαριασµού) format specifiers: OK Σχόλια: Τα πήγατε αρκετά καλά! Προσέξτε περισσότερο την 2η άσκηση. - Δεν έχει γίνει κοινοποίηση στο άλλο µέλος της οµάδας - Σωστό αποτέλεσµα 1801 PASS - Η µεταβλητή 'sel' χρησιµοποιείται για πρώτη φορά στον έλεγχο εγκρότητας εντός του σώµατος του βρόχου χωρίς να έχει αρχικοποιηθεί. Αυτό έχει ως αποτέλεσµα να εκτυπώνεται κάποιες φορές το µήνυµα "Invalid selection" πριν ο χρήστης δώσει οποιαδήποτε τιµή. Θα έπρεπε η scanf στο σώµα το βρόχου να είναι πριν τον έλεγχο εγυρότητας. - Σωστή δοµή του βρόχου και συνθήκη εξόδου. - Σωστή χρήση και δοµή του switch. - Η default περίπτωση στο switch στη συγκεκριµένη περίπτωση είναι περιττή. Το πρόγραµµα εξέρχεται από τον βρόχο επανάληψης όταν η συνθήκη γίνει ψευδής, ειδάλλως θα εξακολουθούσε να εκτελεί το σώµα του βρόχου. Εποµένως δεν χρειάζεται ξανά έλεγχος για την εγκυρότητα της µεταβλητής 'sel'. - Η µεταβλητή 'i' για τον έλεγχο της επιλογής του χρήστη είναι περιττή. Υπάρχει ήδη η µεταβλητή 'sel' που δίνει αυτήν την πληροφορία. - Μετά την εκτύπωση του υπολοίπου έπρεπε να ακολουθεί χαρακτήρας αλλαγής γραµµής - Kαλό θα ήταν οι τιµές 100000 και 20000 να είχαν δηλωθεί ως σταθερές const int much_money = 20000; const int too_much_money = 100000; - Επίσης ένα πιο περιγραφικό όνοµα για την µεταβλητή 'sel' θα ήταν προτιµότερο int selection; Page 26

Παράδοση Ασκήσεων: - Σωστό subject e-mail, ονοµασία αρχείου και CC. - Δε µετονοµάσατε την πρώτη άσκηση από parallagi1.c σε lab4a.c. Σωστή λειτουργία και στοίχιση. 1802 PASS - Σωστή λειτουργία, πράξεις και αποτελέσµατα. - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών. - Σωστή χρήση των switch, if-else, while και σωστές οι αντίστοιχες συνθήκες. - Σωστή χρήση των \n - Θα µπορούσατε να χρησιµοποιήσετε σταθερές για τις τιµές 20000 και 100000 ευρώ. - Ξεχάσατε το \n στο case 3. - Σωστή στοίχιση. - Καλά σχόλια. θέµα: ΟΚ tgz: ΟΚ cc συνεργάτης: ΟΚ ορθότητα: ΟΚ στοίχιση: ΟΚ 1803 PASS στοίχιση: Δεν κάνετε καλή στοίχιση στο switch. Ο λόγος που µερικές φορές στις διαφάνειες εµφανίζονται πολλαπλές εντολές σε µία γραµµή είναι επειδή δεν είναι αρκετά µεγάλη η σελίδα του powerpoint. Όταν γράφετε κώδικα, µη βάζετε ΠΟΤΕ πολλαπλές εντολές στην ίδια γραµµή. τύποι µεταβλητών: ΟΚ ονόµατα µεταβλητών: ΟΚ χρήση σταθερών: Τα 100 000 και 20 000 θα έπρεπε να οριστούν σταθερές. σχόλια: ΟΚ αλλά θα µπορούσατε να βάλετε κάποια πράγµατα για το πως λειτουργεί το πρόγραµµά σας. πράξεις: ΟΚ αλλά η τελική συνθήκη για rich θα µπορούσε να γίνει πιο απλή αν ξεκινούσατε µε τα 100 000. while loop: ΟΚ switch: ΟΚ format specifiers: ΟΚ 1804 οριακό PASS Σχόλια: Τα πήγατε πολύ καλά! Προσέξτε τις παραπάνω λεπτοµέρειες. OK Δε βάλατε σωστά τα άγκιστρα, αλλά τουλάχιστον κάνει compile. Επίσης, η στοίχιση είναι λάθος (πράγµα που δε βοηθά την κατανόηση του κώδικα) - Σωστά αποτελέσµατα. - Άσχηµη στοίχιση. Οι εντολές στο σώµα του do-while έπρεπε να είναι ένα tab πιο δεξιά, και τα άγκιστρα στο τελευταίο if/else δεν είναι τοποθετηµένα οµοιόµορφα. - Καλή δουλειά µε τις σταθερές. - Δεν έπρεπε να υπάρχει \n µετά τα ονόµατα των καθηγητών. - Σωστή χρήση δοµών ελέγχου και επανάληψης. Page 27

OK -Σωστή, µε µέτρια στοίχιση. Θα έπρεπε να βάλετε όλες της εντολές στο σώµα της main ένα tab πιο µέσα. 1805 PASS -Καλό θα ήταν να χρησιµοποιούσατε πιο περιγραφικό όνοµα µεταβλητής (student_id αντί του πιο γενικού id) και να δηλώνατε µια µεταβλητή που να κρατάει τον σύµβουλο καθηγητή (π.χ. symv_kathigitis). -Σωστή συνθήκη ελέγχου στην while loop. -Σωστή χρήση του switch για εύρεση καθηγητή. -Σωστή εύρεση ηµέρας. -Μέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Καλή στοίχιση εν γένει, αν και θα έπρεπε όλο το σώµα της main() να είναι ένα tab πιο µέσα. -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_am_foititi = 1896; -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. -Σωστή. -Σωστή στοίχιση, αλλά όλες οι εντολές έπρεπε να είναι ένα tab πιο "µέσα". 1806 PASS -Το λογικό OR είναι και όχι -Κατά τα άλλα σωστός κώδικας. -Να βάζετε και ένα σχόλιο στην αρχή του προγράµµατος που περιγράφει τη λειτουργικότητα του κώδικα. -Καλή στοίχιση. 1807 PASS - ΟΚ - Σωστό αποτέλεσµα, αλλά η στοίχιση δεν είναι συνεπής. - Σωστή εκτέλεση, σωστό αποτέλεσµα - Σωστή δοµή του βρόχου και συνθήκη εξόδου. Οι υπολογισµοί για την εύρεση του σύµβουλου καθηγητή και της ηµέρας συνάντησης θα µπορούσαν να µεταφερθούν εκτός του βρόχου, για να είναι πιο εµφανής η λειτουργία του (ελέγχει την εγκυρότητα της εισόδου µόνο). - Σωστή χρήση του switch - Καλό θα ήταν να δηλώνατε τον µέγιστο αριθµό µητρώου ως σταθερά const int max_aem = 1896; - Επίσης θα µπορούσατε να χρησιµοποιήσετε διαφορετική µεταβλητη για να βρείτε την µέρα συνάντησης έτσι ώστε η διαδικασία εύρεσής της να είναι ανεξάρτητη από τη διαδικασία εύρεσης του σύµβουλου καθηγητή. - Δώστε προσοχή στη στοίχιση Page 28

1809 Οριακό PASS OK -Σωστή, µε µέτρια στοίχιση. Να χρησιµοποιείτε µόνο tab και όχι space! Διαβάστε το σχετικό φυλλάδιο. -Να χρησιµοποιείτε πιο περιγραφικά ονόµατα µεταβλητών (mitrwo ή am_foititi αντί a_m και symv_kathigitis αντί του πιο γενικού ypol). -Σωστή συνθήκη ελέγχου στην do...while loop. -Σωστή χρήση του switch για εύρεση καθηγητή. -Λάθος πράξη για εύρεση ηµέρας. -Mέτρια µορφοποίηση εξόδου. Το πρόγραµµα ζητούσε στην ουσία να εκτυπώνεται σε ΜΙΑ γραµµή µήνυµα της µορφής "<aem_foititi>, Advisor: <advisor_name>, Meeting: <meeting_day>" ακολουθούµενο από το χαρακτήρα αλλαγής γραµµής. -Άσχηµη στοίχιση. Να χρησιµοποιείτε µόνο tab και όχι space! -Kαλό θα ήταν να δηλώσετε τον µέγιστο αριθµό µητρώου ως σταθερά π.χ. const int max_am_foititi = 1896; -Επίσης, καλό θα ήταν στα cases να µην βάζετε όλες τις εντολές στην ίδια γραµµή, στις διαφάνειες αυτό γίνεται γιατί ο χώρος είναι περιορισµένος. -Σωστή. 1810 PASS -Σωστή εκτέλεση. -Καλά ονόµατα µεταβλητών. Θα µπορούσατε το sel να το γραψετε selection. -Οι τιµές 20000 και 100000 θα µπορούσαν να εχουν δηλωθεί ως σταθερές. -Δεν υπάρχει αρχικό σχόλιο για το πρόγραµµα. -Σε κάθε case της switch να αφήνετε µία κενή γραµµή και µετά να ξεκινάτε τον κώδικα σας. Προσοχή στην αποστολή των ασκήσεων. Έχετε στείλει επιπλέον ένα αρχείο temp.c -Σωστή, αλλά η στοίχιση χρειάζεται διόρθωση. 1811 FAIL -Έχει γίνει κάποια προσπάθεια αλλά ο κώδικας δεν είναι ολοκληρωµένος. -Δεν κάνει compile λόγω αδήλωτης µεταβλητής,έλλειψης semicolon και έλλειψης }. Για να αποφεύγετε αυτό το πρόβληµα στο µέλλον, να κάνετε συχνά compile καθώς γράφετε το πρόγραµµά σας, αντί να γράφετε όλο το πρόγραµµα µε τη µία και µετά να εµφανίζονται δεκάδες λάθη. - Δεν υπάρχει πουθενά break στις περιπτώσεις του switch. -Στο case 4 ο κώδικας έπρεπε απλά να τερµατιζει. Οι έλεγχοι που έχετε εκεί θα έπρεπε να βρίσκονται εκτός του switch. -Όλα καλά η: -Σωστή. Προσέξτε λίγο τη στοίχιση στο σώµα της if. 1812 PASS η: -Πρέπει να χρησιµοποιείτε σταθερές πχ const int MAX_ID = 1896; /* megisto AEM mexri twra */ const int NUM_PROF = 4; /* plithos sumboulwn */ -Η µεταβλητή "up" έχει ατυχές όνοµα. -Η µεταβλητή "ΑΜ" µπερδεύει γιατί είναι κοινώς αποδεκτή σύµβαση να γράφουµε µε κεφαλαία τις σταθερές. Θα µπορούσατε να την ονοµάσετε "mitroo" ή "student_id" -Έλλειψη σχολίων -Η στοίχιση είναι σχεδόν 100% σωστή ( το switch() θα έπρεπε να είναι κατά ένα επίπεδο "έξω") Page 29