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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γλώσσα Προγραμματισμού C

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

for for for for( . */

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

lab3grades οριακό PASS

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

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

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

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

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

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

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

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

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

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

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

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

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

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

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

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

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

επιµέλεια Θοδωρής Πιερράτος

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Η γλώσσα προγραμματισμού C

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

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

Transcript:

00497 PASS 02103 PASS - Δεν έχει γίνει καθόλου χρήση σταθερών όπως έχουµε ζητήσει να γίνεται για όλες τις σταθερές τιµές. - Υπάρχουν σχόλια αλλά θα µπορούσαν να ήταν πιο επεξηγηµατικά και λίγο περισσότερα - Η στοίχιση είναι πολύ σωστή. - Τα ονόµατα των µεταβλητών σας πρέπει να είναι πιο περιγραφικά. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. Η µόνη βελτίωση που θα µπορούσατε να κάνετε είναι να χρησιµοποιήσετε do while έτσι ώστε να µην βάλετε 2 φορές τον κώδικα για να διαβάσει το βιβλίο ( έχετε βάλει 2 γραµµές πριν απο το while και 2 εντός) 02104 PASS - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. Μια βελτίωση που θα µπορούσε να γίνει είναι να µην υπολογίζεται και το πλήθος των βιβλίων και το συνολικό κόστος των βιβλίων σε κάθε επανάληψή. Ένα απο τα παραπάνω χρειάζεται καθώς το συνολικό κόστος µπορεί να βρεθεί µε ένα πολλαπλασιασµό του αριθµού των βιβλίων µε το κόστος του ενός απο αυτά. - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή. - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ. Επίσης, έχετε σωστά χρησιµοποιήσει και το typecast στις πράξεις σας. - Οι επαναλήψεις στο τέλος του προγράµµατός σας δεν είναι σωστές καθώς εκτυπώνετε ένα σύµβολο ('#,*,- ) παραπάνω σε κάθε µια απο τις επαναλήψεις απο ότι θα έπρεπε ( για παράδειγµα αν έχουµε 2 εκατοντάδες, εκτυπώνετε 3 #). Προσέξτε τα όρια των loops. 02105 οριακό PASS - Το αρχείο που παραδώσατε θα έπρεπε να ονοµάζεται lab5.c και όχι lab5b.c - Σωστά σχόλια. Θα θέλαµε µία περιγραφή στην αρχή για το τι κάνει το πρόγραµµα. - Σωστά ονόµατα µεταβλητών. - Σωστή χρήση if/else. Δοκιµάστε να κάνετε το πρόγραµµα και µε switch στο σπίτι σας. - To πρόγραµµα εκτυπώνει "Invalid Book!" ακόµα και αν δώσετε τον χαρακτήρα '$' πράγµα που δεν είναι σωστό. - Σωστός υπολογισµός ΦΠΑ. - Σωστές εκτυπώσεις αποτελεσµάτων. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων και σωστή εκτύπωση τους στην τελευταία γραµµή. - Σωστή στοίχιση! - Να βάζετε σχόλια και µέσα στην υλοποίηση του προγράµµατος. - Καλή ονοµασία µεταβλητών και σωστή χρήση σταθερών µεταβλητών! - Καλή χρήση if, do while και switch! - Σωστές πράξεις. (µπορούσαν να απλοποιηθούν) - Σωστή εκτύπωση αποτελεσµάτων. Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο %.2lf. - Δεν υλοποιήσατε το ιστόγραµµα, αν και αρχίσατε τους υπολογισµούς. (διαχειριστείτε καλύτερα το χρόνο σας). Δοκιµάστε να το κάνετε στο σπίτι σας. - Μη στοχευµένα ονόµατα µεταβλητών. - Καθόλου σχόλια. - Θα ήταν καταλληλότερη η χρήση της επανάληψης do while. - Στην switch είναι περιττά τα άγκιστρα στον κώδικα των cases και προτιµότερο κάθε επιµέρους εντολή να είναι κάτω από το αντίστοιχο case κατά ένα ακόµη indentation πιο µέσα. - Υπήρχαν περαιτέρω σταθερές που δεν αναγνωρίσατε. - Σωστές πράξεις και λογική. - Δεν υλοποιήσατε το δεύτερο µέρος της άσκησης. - Σωστά αποτελέσµατα πρώτου µέρους. - Πριν έρθετε στο επόµενο εργαστήριο κάντε εξάσκηση στο πακετάρισµα του κώδικα όπως λένε οι οδηγίες. Αν το ξαναστείλετε µε αυτόν τον τρόπο δε θα βαθµολογηθεί. Page 1

02106 PASS 02107 FAIL 02109 PASS 02112 - Τα σχόλιά σας είναι ελλιπή. - Η στοίχιση του κώδικα, οι κενές γραµµές και τα spaces είναι πολύ καλά τοποθετηµένα. - Τα ονόµατα των µεταβλητών περιγραφικά, αλλά των σταθερών όχι. Αποφεύγετε χρήση 1, 2, 3 - Τις σταθερές πρέπει να τις ορίζουµε µε κεφαλαία. - Σωστά τα newlines στη switch-case. - Δεν υπήρχε λόγος να χρησιµοποιήσετε flag για να τερµατιστεί η επανάληψη. Απλά όταν ο χρήστης έδινε $ θα σταµατούσατε την do-while. - Όταν κάνετε αναθέσεις και πράξεις µεταξύ µεταβλητών να αφήνετε κάποια κενά ώστε να είναι πιο ευανάγνωστος ο κώδικας. - Δεν χρησιµοποιήσατε το modulo για τον υπολογισµό των δεκάδων. - Η έξοδος του προγράµµατος είναι σχεδόν σωστή καθώς χρησιµοποιείτε 2 ακέραια ψηφία και όχι 5 όπως σας ορίζει η άσκηση. - Πετύχατε και την στοίχιση µε %s. - Το πρόγραµµά σας έχει αρκετά προβλήµατα, κυρίως στη λογική του. Τελικά, παρόλο που γράψατε πολύ κώδικα, δεν είναι σωστός. Κλείστε ένα ραντεβού µε την κυρία Ντουφεξή για να µιλήσετε. - Σχόλια ΟΚ. - Σωστή επιλογή τύπων µεταβλητών και σωστή επιλογή ονοµάτων µεταβλητών. - Προσοχή δεν αρχικοποιείτε τις µεταβλητές total_a,total_b,total_c µε αποτέλεσµα το πρόγραµµα σας να βγάζει λάθος αποτελέσµατα. - Σωστή switch. - Σωστή ανακύκλωση. - Σωστός υπολογισµός ΦΠΑ. Δεν χρησιµοποιείτε την σταθερά FPA στον παρανοµαστή υπολογισµού του κόστους ΦΠΑ. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων. - Σωστή εκτύπωση των αποτελεσµάτων. - Λείπουν τα γενικά σχόλια περιγραφής του προγράµµατος στην αρχή. - Στη switch, οι εντολές µετά από κάθε case µπαίνουν σε ξεχωριστή γραµµή (µία εντολή ανά γραµµή). Επίσης δεν χρειάζονται οι παρενθέσεις γύρω από την τιµή του case και οι αγκύλες γύρω από τις εντολές του case. - Σωστοί τύποι µεταβλητών. 02111 PASS - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Προσοχή στο θέµα του email - Σωστή χρήση της εντολής do-while. - Σωστή χρήση της εντολής for. - Σωστή έξοδος. - Για την µετατροπή από double σε int σε κάποιες πράξεις να χρησιµοποιείτε typecasting. Με αυτόν τον τρόπο δεν υπάρχουν µεταβλητές-αντίγραφα και αποφεύγονται αρκετά λάθη ασυνέπειας. οριακό PASS - Καλά ονόµατα µεταβλητών. - Καθόλου σχόλια. - Λάθος στοίχιση στις γραµµές 14-32. - Θα µπορούσατε να υπολογίσετε το ΦΠΑ απευθείας από την τελική τιµή του συνολικού κόστους. - Σωστές πράξεις και λογική. - Προτιµότερη χρήση επανάληψης do while για την είσοδο από τον χρήστη. - Δεν µορφοποιήσατε την έξοδο όπως ζητούσε η άσκηση. Δείτε την λύση για να δείτε πως έπρεπε να το κάνετε. - Επίσης, για τα ποσά έπρεπε να είχατε %8.2lf (το 8 είναι το συνολικό πλάτος). - Δεν υλοποιήσατε καθόλου το δεύτερο µέρος της άσκησης. Περιµένουµε αισθητή βελτίωση στο επόµενο εργαστήριο! Page 2

02113 PASS 02115 PASS 02116 PASS 02117 PASS 02118 PASS - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Oι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ counta. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. Καλό θα ήταν να εκτυπώνατε µέχρι 2 δεκαδικά. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων και σωστή χρήση του typecast. - Σωστή χρήση for loop. -Σωστή στοίχιση -Καµία χρήση σταθερών µεταβλητών -"Καλά" ονόµατα µεταβλητών -Προσπαθήστε να ξαναλύσετε την άσκηση χρησιµοποιώντας switch statement αντί για if -Δεν προλάβατε να κάνετε το δεύτερο κοµµάτι της άσκησης.προσπαθήστε να το κάνετε στο σπίτι -Λάθος στοίχιση.προσέξτε οι αγκύλες να είναι στοιχισµένες. -"Καλά" ονόµατα µεταβλητών -Δηλώσατε τις µεταβλητές "PAYCAR", "PAYBUS" και " PAYMOTO" ως σταθερές τύπου int!!! ενώ οι τιµές που παίρνουν είναι δεκαδικές - µε αποτέλεσµα να µην εκτυπώνονται σωστά αυτά που σας ζητάει η εκφώνηση. -Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο.-αντί για %8.2lf, εσείς βάλατε %08.2lf µε αποτέλεσµα να υπάρχει πρόβληµα µε τα δεκαδικά που εκτυπώνονται -Θα έπρεπε να έχετε δηλώσει τους διαιρέτες που χρησιµοποιείτε σε µεταβλητές τύπου σταθερών - H getchar() είναι άχρηστη και τη χρησιµοποιήσατε γιατί αντί για scanf(" %c", &type) εσείς βάλατε scanf("%c", &type); -Έπρεπε να είχατε κάνει χρήση typecast για µετατροπή µεταβλητής σε ακέραιο -Δεν έχετε σωστά σχόλια. -Σωστή στοίχιση, µέσα στο switch δεν χρειάζονταν δύο tab. -Μερικά ονόµατα µεταβλητών δεν είναι πολύ περιγραφικά. Αντί να γράφετε µε σχόλια τι είναι η κάθε µεταβλητή χρησιµοποιείστε ποιο περιγραφικά ονόµατα. -Χρησιµοποιείτε σωστά σταθερές αλλά δεν τις έχετε όλες µε κεφαλαία. -Σωστές πράξεις. -Η έξοδος δεν είναι όπως ζητούσε η εκφώνηση, η εκφώνηση ζητούσε οι συµβολοσειρές που εµφανίζονται πριν το : να έχουν πλάτος 12 χαρακτήρες και να εκτυπώνονται "έξυπνα" χωρίς να χρειαστεί να µετράτε κενά. -Σωστοί υπολογισµοί εκατοντάδων κ.λ.π. -Σωστή χρήση for -Σωστή στοίχιση, οι εντολές µέσα στα case δεν χρειάζεται να είναι ποιο µέσα η δεύτερη και τρίτη. -Έπρεπε να βάλετε σχόλια και στην αρχή του προγράµµατος περιγράφοντας τι κάνει το πρόγραµµα σας. -Σωστοί τύποι και περιγραφικά ονόµατα αλλά τα ονόµατα των µεταβλητών δεν πρέπει να ξεκινάνε µε κεφαλαίο γράµµα. -Δεν χρησιµοποιείτε καθόλου σταθερές. -Σωστές πράξεις. -Η έξοδος δεν είναι όπως ζητούσε η εκφώνηση, η εκφώνηση ζητούσε οι συµβολοσειρές που εµφανίζονται πριν το : να έχουν πλάτος 12 χαρακτήρες και να εκτυπώνονται "έξυπνα" χωρίς να χρειαστεί να µετράτε κενά. -Σωστοί υπολογισµοί εκατοντάδων κ.λ.π. -Σωστή χρήση for Page 3

02119 PASS 02121 PASS 02122 PASS 02123 οριακό PASS 02124 PASS 02125 FAIL - Απουσία από το εργαστήριο 02126 PASS - Σωστή στοίχιση! - Μπορείτε να βάζετε σχόλια και µέσα στο πρόγραµµα. - Πολύ καλά ονόµατα µεταβλητών και σταθερών! - Σωστή χρήση της do while και της switch! - Έπρεπε να είχατε βάλει \n µετά το µήνυµα Invalid book - Σωστές πράξεις. - Σωστή εκτύπωση αποτελεσµάτων. Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο %.2lf. - Σωστοί υπολογισµοί εκατοντάδων, δεκάδων και µονάδων. Δείτε και έναν διαφορετικό τρόπο υπολογισµού στο αρχείο της λύσης. - Σωστή χρήση της for! - Λίγα σχόλια - Στην switch είναι περιττές οι παρενθέσεις γύρω από τα 'Τ' κτλ. Επίσης περιττά είναι τα {;} και γενικά τα άγκιστρα στον κωδικα των cases. - Σωστή χρήση σταθερών. - Σωστή λογική και πράξεις - Στις printf έπρεπε να είχατε %12s και το : να µην είναι µαζί µε το string. Δείτε τη λύση για να καταλάβετε τι εννοώ. - Επίσης, για τα ποσά έπρεπε να είχατε %8.2lf (το 8 είναι το συνολικό πλάτος). - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Οι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση. Στη switch η κάθε εντολή πρέπει να είναι κάτω από την αλλη. - Οι µεταβλητές πρέπει να έχουν περιγραφικά ονόµατα. - Δεν υπολογίζεται σωστά το ΦΠΑ. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. - Σωστή χρήση for loop. - Σωστά χρησιµοποιείς σταθερές για τις τιµές των βιβλιών σας. - Οι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Δεν υπάρχει αρχικό σχόλιο. - Καλή στοίχιση. Προσπάθησε να αφήνεις κενές σειρές ανάµεσα στις εντολές του κώδικα. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ numbera. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. Καλό θα ήταν να εκτυπώνατε µέχρι 2 δεκαδικά. - Δεν έκανες το 2ο µέρος. - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Οι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση. Στη switch η κάθε εντολή πρέπει να είναι κάτω από την αλλη. - Οι µεταβλητές πρέπει να έχουν περιγραφικά ονόµατα. - Δεν υπολογίζεται σωστά το ΦΠΑ. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. - Σωστή χρήση for loop. -Λάθος στοίχιση.προσέξτε οι αγκύλες να είναι στοιχισµένες. -Στην switch είναι περιττά τα άγκιστρα στον κώδικα των cases και προτιµότερο κάθε επιµέρους εντολή να είναι κάτω από το αντίστοιχο case κατά ένα ακόµη indentation πιο µέσα.επίσης το break µπαίνει πάντα σε άλλη γραµµή!! -Τα ονόµατα των σταθερών µεταβλητών έιναι πάντα ΚΕΦΑΛΑΙΑ!!! -"Κακές" µη περιγραφικές ονοµασίες µεταβλητών - Σωστή λογική προγράµµατος - Το συνηµµένο πρέπει να έχει κατάληξη.tgz - To αρχείο να το βάζεις σε φάκελο και µετά να το πακετάρεις. -Δεν προλάβατε να κάνετε το δεύτερο κοµµάτι της άσκησης.προσπαθήστε να το κάνετε στο σπίτι Page 4

02128 οριακό PASS 02129 PASS 02130 PASS 02131 PASS 02132 PASS -Δεν έχετε σωστή στοίχιση µέσα στο do while. -Σωστή χρήση σταθερών και ονόµατα. -Σωστά περιγραφικά ονόµατα µεταβλητών συνήθως χρησιµοποιούµε double και όχι float. -Λάθος λογική προγράµµατος, η άσκηση δε ζητούσε να τυπώνονται τα αποτελέσµατα κάθε φορά που δίνετε ένας χαρακτήρας αλλά µόλις δίνονταν ο χαρακτήρας $. -Σωστές πράξεις. -Η έξοδος δεν είναι όπως ζητούσε η εκφώνηση, η εκφώνηση ζητούσε οι συµβολοσειρές που εµφανίζονται πριν το : να έχουν πλάτος 12 χαρακτήρες και να εκτυπώνονται "έξυπνα" χωρίς να χρειαστεί να µετράτε κενά. Επίσης δεν χρειάζονταν να γεµίζετε µε µηδενικά τα κενά. -Δεν έχετε υλοποιήσει το τελευταίο ερώτηµα. - Καλά τα σχόλιά σας στο πρόγραµµα. - Η στοίχιση του κώδικα, οι κενές γραµµές και τα spaces είναι πολύ καλά τοποθετηµένα. - Σωστός ορισµός των σταθερών. Θα µπορούσατε να είχατε δηλώσει και τους τύπους οχηµάτων σαν σταθερές. _ Οι µεταβλητές δεν έχουν πολύ περιγραφικά ονόµατα. Π.χ το carincome θα µπορούσατε να το δηλώσετε σαν - Να βάζετε ένα κενό στο θέµα, ανάµεσα στο lab5 car_income. και το section - Στην switch-case έπρεπε να αφήνετε κενές γραµµές µέσα στο σώµα της case. - Τις εκατοντάδες και δεκάδες θα µπορούσατε να τις υπολογίσετε ξεχωριστά ώστε να γίνεται κατανοητή η λογική σας. - Η έξοδος του προγράµµατος είναι σωστή. Πετύχατε και την στοίχιση µε %s. - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. Το αρχικό να το βάζετε πάνω από το include. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ number_a. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. Καλό θα ήταν όταν κάνετε πράξεις µε double και θελετε το αποτελεσµα σε ακέραιο να χρησιµοποιείτε typecast. Δεν το κάνετε σε όλα τα σηµεία. - Σωστή χρήση for loop. - Κάντε στο σπίτι το lab µε switch για εξάσκηση. - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. Να τα βάζετε πριν τα #include και να αφήνετε µία κενή γραµµή µεταξύ. Επίσης µία κενή γραµµή πριν την main(). - Η στοίχιση της εντολής switch δεν είναι σωστή. Το άγκιστρο κλείνει στο ίδιο ύψος µε την λέξη 'switch'. Οι εντολές µετά από κάθε case µπαίνουν σε ξεχωριστή γραµµή (µία εντολή ανά γραµµή). - Σωστοί τύποι µεταβλητών και σταθερών. - Τα ονόµατα των µεταβλητών dig1,dig2,dig3,dig4,dig5 δεν είναι περιγραφικά. Τί είναι η καθεµία; Για ποιό λόγο χρειάζεται στο πρόγραµµα; - Σωστή χρήση typecasting. Είναι προτιµότερο να το χρησιµοποιείτε απευθείας µέσα στην έκφραση που θέλετε, παρά να δηλώνετε µεταβλητές-αντίγραφα τα οποία πολλές φορές οδηγούν σε πορβλήµατα ασυνέπειας. - Σωστή χρήση της εντολής for. - Σωστοί υπολογισµοί. - Το µήνυµα "Motorcycles" έπρεπε να είναι "Motorbikes". - Τα σχόλια τα βάζουµε πάνω από τις εντολές και όχι δίπλα. Δεν θέλουµε ο κώδικας µας να υπερβαίνει τις 100-120 στήλες. - Απουσία σχολίων στην αρχή του προγράµµατος (ποιοι είστε, τι κάνει το πρόγραµµα). - Προσοχή στο θέµα του email. Να ακολουθείτε τις - Σωστή επιλογή τύπων µεταβλητών και σωστή επιλογή οδηγίες. ονοµάτων. - Σωστή switch. - Η ανακύκλωση do/while θα έπρεπε να εµφανίζει το µήνυµα "Enter book: " µετά από κάθε εισαγωγή βιβλίου. - Λάθος υπολογισµός ΦΠΑ. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων. Page 5

02133 FAIL - Απουσία από το εργαστήριο 02134 PASS 02137 FAIL - Aπουσία από το εργαστήριο 02138 FAIL - Aπουσία από το εργαστήριο 02139 PASS 02140 PASS 02143 PASS - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. - Σωστοί τύποι µεταβλητών. - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Σωστοί υπολογισµοί. - Σωστή χρήση typecasting. - Σωστή χρήση της εντολής for. - Να χρησιµοποιείτε την ίδια ακρίβεια (ίδιο τύπο δεδοµένων) για όλους τους πραγµατικούς αριθµούς στο πρόγραµµά σας (είτε όλα float ή όλα double), εκτός και αν υπάρχει σοβαρός λόγος να χρησιµοποιείσετε διαφορετική ακρίβεια για κάποιες µεταβλητές. - Δεν εκτυπώνετε το µήνυµα "Enter vehicle type: " πριν την είσοδο της πρώτης scanf(). Επίσης το µήνυµα δεν θέλει χαρακτήρα αλλαγής γραµµής στο τέλος. - Μην αφήνετε περισσότερες από µία κενές γραµµές µεταξύ των 'ενοτήτων' του προγράµµατος. Εµφανίζεται λιγότερος κώδικας στην οθόνη χωρίς κάποιο όφελος. -Σωστή στοίχιση -"Καλά" ονόµατα µεταβλητών -Θα έπρεπε να έχετε δηλώσει τους διαιρέτες που χρησιµοποιείτε σε µεταβλητές τύπου σταθερών -Η µετατροπή σε ακέραιο δεν γίνεται έτσι αλλά µε τη χρήση της typecast -Σωστή λογική και πράξεις(στο πρώτο µέρος της άσκησης) - Καλά ονόµατα µεταβλητών. - Καθόλου σχόλια. - Λάθος στοίχιση στις γραµµές 19,22,25. Στην switch είναι περιττά τα άγκιστρα στον κώδικα των cases και προτιµότερο κάθε επιµέρους εντολή να είναι κάτω από το αντίστοιχο case κατά ένα ακόµη indentation πιο µέσα. - Σωστές πράξεις και λογική. - Προτιµότερη χρήση επανάληψης do while για την είσοδο από τον χρήστη. - Καλή δουλειά. - Σωστά έχετε χρησιµοποιήσει σταθερές στο πρόγραµµά σας, τις οποίες έχετε δηλώσει και µε κεφαλαία γράµµατα. - Έχετε βάλει αρκετά σχόλια στο πρόγραµµά σας. - Η στοίχισή σας είναι πολύ σωστή - Τα ονόµατα των µεταβλητών σας πρέπει να είναι λίγο πιο περιγραφικά. Ιδιαίτερα, έχετε χρησιµοποιήσει ένα i σε ένα σηµείο ως flag για να λήξει η επανάληψή σας το οποίο δεν είναι αποδεκτό σαν όνοµα. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. Στις πράξεις αυτές έχετε προσθέσει και ένα typecast το οποίο δεν είναι απαραίτητο. Μπορείτε να καταλάβετε γιατι δεν χρειάζοταν; - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ.επίσης, έχετε σωστά χρησιµοποιήσει και το typecast στις πράξεις σας. - Οι επαναλήψεις στο τέλος του προγράµµατός σας είναι και αυτές σωστές. - Γενικά καλή δουλειά σε αυτό το πρόγραµµά - Έχετε στείλει και το εκτελέσιµο αρχείο 'lab5'. Να στέλνετε µόνο τα αρχεία που αναφέρονται στην εκάστοτε εκφώνηση. Page 6

02144 PASS - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ countera. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. Καλό θα ήταν όταν κάνετε πράξεις µε double και θελετε το αποτελεσµα σε ακέραιο να χρησιµοποιείτε typecast. - Σωστή χρήση for loop. 02145 PASS 02146 PASS 02147 PASS 02148 PASS - Γενικά ο κώδικάς σας είχε λίγα σχόλια. - Η στοίχιση του κώδικα, οι κενές γραµµές και τα spaces είναι πολύ καλά τοποθετηµένα. - Όταν ορίζεται πολλές ακέραιες µεταβλητές δεν χρειάζεται να γράφετε συνέχεια int...µεταβλητές και από κάτω ξανά int...µεταβλητές. Όλα αυτά µπορούν να γίνουν σε µία γραµµή σε ένα int. - Άσχηµα ονόµατα µεταβλητών (αποφεύγετε 1, 2, 3) και δεν έχετε δηλώσει τις σταθερές µε κεφαλαία. Θα µπορούσατε να είχατε δηλώσει και τους τύπους οχηµάτων σαν σταθερές. - Στο switch-case θα µπορούσατε να κλείνετε το κάθε case αλλάζοντας γραµµή και όχι να κολλήσετε το } δίπλα από το break. - Η έξοδος του προγράµµατος είναι σωστή άλλα όχι απόλυτα ακριβής µε αυτή της άσκησης καθώς προσθέτετε µία επιπλέον κενή γραµµή µετά την εκτύπωση του Total Amount. Επίσης, δεν πετύχατε την στοίχιση της εξόδου µε τον "έξυπνο" τρόπο αλλά προσθέσατε κενά. - Καλά ονόµατα µεταβλητών. - Σωστά σχόλια. - Λάθος στοίχιση στις γραµµές 31-38. - Θα µπορούσατε να υπολογίσετε το ΦΠΑ απευθείας από την τελική τιµή του συνολικού κόστους. - Σωστές πράξεις και λογική. - Προτιµότερη χρήση επανάληψης do while για την είσοδο από τον χρήστη. - Καλή δουλειά. - Καλά σχόλια (γραµµές 10-11 δεν αρχικοποιείτε, δηλώνετε). Μη γράφετε τεράστιες προτάσεις σε µια γραµµή γιατί κάνουν wrap around. - Σωστή στοίχιση! - Να αφήνετε κενές γραµµές για να ξεχωρίζουν οπτικά οι λειτουργίες του προγράµµατος! - Καλά ονόµατα µεταβλητών και σταθερών µεταβλητών! - Σωστή χρήση της while και της switch! - Σωστές πράξεις! - Σωστή εκτύπωση αποτελεσµάτων. Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο %.2lf. - Σωστοί υπολογισµοί εκατοντάδων, δεκάδων και µονάδων! - Σωστή χρήση της for! (να ; αφήνετε κενά ; στη συνθήκη ; ) - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση αν και σας ξέφυγαν 2 εντολές στις σειρές 16 και 17. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ number_a. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. Καλό θα ήταν να εκτυπώνατε µέχρι 2 δεκαδικά. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων και σωστή χρήση του typecast. - Σωστή χρήση for loop. - Εξασκηθείτε περισσότερο στην χρήση της πράξης mod (%) και στην εύρεση της κατάλληλης αλγοριθµικής λογικής για την επίλυση του προβλήµατος. Page 7

02149 PASS 02153 PASS 02156 PASS - Σωστά έχετε χρησιµοποιήσει σταθερές στο πρόγραµµά σας, τις οποίες έχετε δηλώσει και µε κεφαλαία γράµµατα. - Έχετε βάλει αρκετά σχόλια στο πρόγραµµά σας. - Η στοίχισή σας είναι πολύ σωστή - Τα ονόµατα των µεταβλητών σας πρέπει να είναι λίγο πιο περιγραφικά. Ιδιαίτερα, έχετε χρησιµοποιήσει ένα i σε ένα σηµείο ως flag για να λήξει η επανάληψή σας το οποίο δεν είναι αποδεκτό σαν όνοµα. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. Στις πράξεις αυτές έχετε προσθέσει και ένα typecast το οποίο δεν είναι απαραίτητο. Μπορείτε να καταλάβετε γιατι δεν χρειάζοταν; - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ.επίσης, έχετε σωστά χρησιµοποιήσει και το typecast στις πράξεις σας. - Οι επαναλήψεις στο τέλος του προγράµµατός σας είναι και αυτές σωστές. - Γενικά καλή δουλειά σε αυτό το πρόγραµµά - Το σχόλιο περιγραφής του προγράµµατος την τοποθετούµε πάνω από την main και όχι µέσα σε αυτή. Απουσιάζουν τα ονόµατα σας. - Σωστή επιλογή τύπων µεταβλητών και σωστή επιλογή ονοµάτων µεταβλητών. - Σωστή switch. - Σωστή ανακύκλωση. - Σωστός υπολογισµός ΦΠΑ. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων. - Λάθος στην εκτύπωση της printf(" Total Amount: %d...". Ο προσδιοριστής τύπου θα έπρεπε να είναι %lf. Οι υπόλοιπες εκτυπώσεις είναι σωστές. - Ο υπολογισµός των δεκάδων θα µπορούσε να γραφεί dec=((int)totalamount %100)/10; αντί για dec=((int)totalamount-cent*100)/10; Αντίστοιχα και για τις µονάδες. - Καλά ονόµατα µεταβλητών. - Θα θέλαµε λίγα παραπάνω σχόλια για το τι κάνει το πρόγραµµα και οποιαδήποτε σηµεία του χρήζουν ανάγκη σχολιασµού. 02154 PASS - Αυτό που υπολογίσατε δεν είναι το ΦΠΑ αλλά η καθαρή - Διαβάστε και κατανοήστε το Type Casting. αξία του συνολικού κόστους. - Σωστή λογική. - Προτιµότερη χρήση επαναλήψεων for για την εκτύπωση της εξόδου του δεύτερου µέρους της άσκησης. - Καλά ονόµατα µεταβλητών. - Καθόλου σχόλια. - Στην switch είναι περιττά τα άγκιστρα στον κώδικα των cases και προτιµότερο κάθε επιµέρους εντολή να είναι κάτω από το αντίστοιχο case κατά ένα ακόµη indentation πιο µέσα. - Μόνο η διαίρεση θα ήταν αρκετή για την εξαγωγή των δεκάδων και µονάδων. - Σωστές πράξεις και λογική. - Καλή δουλειά. Page 8

02157 οριακό PASS 02158 PASS 02159 PASS -Καλή στοίχιση αλλά τη main τη ξεκινάµε από την αρχή όχι ένα tab µέσα. -Δεν έχετε καθόλου σχόλια στο πρόγραµµά σας. -Δεν χρησιµοποιείτε καθόλου σταθερές. -Σωστοί τύποι και ονόµατα µεταβλητών εκτός από το total_amount2 αυτό δεν είναι περιγραφικό και γενικά αποφεύγουµε να χρησιµοποιούµε τέτοιου είδους ονόµατα µεταβλητών του στυλ total_amount2,total_amount3 κ.ο.κ. -Δεν κάνετε σωστό υπολογισµό του total_amount δεν έπρεπε να είναι µέσα σε κάθε if else έπρεπε αφού υπολογίσετε όλα τα income για κάθε όχηµα, να προσθέσετε απλά όλα τα income πριν το printf µέσα στο τελευταίο if else. Αν θέλατε να το κάνετε µέσα σε κάθε if else έπρεπε να ήταν total_amount = total_amount + 12.3 -Η έξοδος δεν είναι όπως ζητούσε η εκφώνηση, ο συνολικός αριθµός οχηµάτων θέλαµε να έχει πλάτος 3 και όχι 5, επίσης τα ποσά ως δεκαδικοί µε 5 ακέραια και 2 δεκαδικά ψηφία άρα 8.2lf και όχι 7.2 -Δεν κάνετε σωστούς υπολογισµούς για τις δεκάδες και δεν το έχετε ολοκληρώσει. Επίσης στο for loop έπρεπε να είναι από i=0 µέχρι i<ekatontades ή i=1 µέχρι i<=ekatontades και όχι i=0 έως i<=ekatontades γιατί έτσι κάνετε µια επιπλέον επανάληψη. -Λύστε την άσκηση στο σπίτι µε switch για εξάσκηση. - Σωστά έχετε χρησιµοποιήσει σταθερές στο πρόγραµµά σας, τις οποίες έχετε δηλώσει και µε κεφαλαία γράµµατα. - Έχετε βάλει τα βασικά σχόλια στο πρόγραµµά σας. - Η στοίχιση σας είναι πολύ σωστή - Τα ονόµατα των µεταβλητών σας πρέπει να είναι λίγο πιο περιγραφικά. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή. - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ. Αντι να δηµιουργήσετε µια καινούρια µεταβλητή έτσι ώστε να µετατρέψετε το δεκαδικό αριθµό σε ακέραιο, θα µπορούσατε να χρησιµοποιήσετε το typecast. Δείτε τις διαφάνειες στην ιστοσελίδα του µαθήµατος για περισσότερες πληροφορίες. - Οι επαναλήψεις στο τέλος του προγράµµατός σας είναι και αυτές σωστές. - Γενικά καλή δουλειά σε αυτό το πρόγραµµά µε εξαίρεση τη µη χρήση του typecast - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. Να τα βάζετε πριν τα #include και να αφήνετε µία κενή γραµµή µεταξύ. Επίσης µία κενή γραµµή πριν την main(). - Η στοίχιση της εντολής switch δεν είναι σωστή. Το άγκιστρο κλείνει στο ίδιο ύψος µε την λέξη 'switch'. Οι εντολές µετά από κάθε case µπαίνουν σε ξεχωριστή γραµµή (µία εντολή ανά γραµµή). - Σωστοί τύποι µεταβλητών και σταθερών. - Τα ονόµατα των µεταβλητών dig1,dig2,dig3,dig4,dig5 δεν είναι περιγραφικά. Τί είναι η καθεµία; Για ποιό λόγο χρειάζεται στο πρόγραµµα; - Σωστή χρήση typecasting. Είναι προτιµότερο να το χρησιµοποιείτε απευθείας µέσα στην έκφραση που θέλετε, παρά να δηλώνετε µεταβλητές-αντίγραφα τα οποία πολλές φορές οδηγούν σε πορβλήµατα ασυνέπειας. - Σωστή χρήση της εντολής for. - Σωστοί υπολογισµοί. - Το µήνυµα "Motorcycles" έπρεπε να είναι "Motorbikes". - Επίσης διαβάστε το φυλλάδιο για το πώς πρέπει να στοιχίζετε τον κώδικά σας! Page 9

- Σωστά έχετε χρησιµοποιήσει σταθερές στο πρόγραµµά σας, τις οποίες έχετε δηλώσει και µε κεφαλαία γράµµατα. - Έχετε βάλει αρκετά σχόλια στο πρόγραµµά σας. - Η στοίχισή σας είναι πολύ σωστή εκτός απο ένα if το οποίο βρίσκεται εντός της default της case και στο οποίο ήθελε να ήταν λίγο πιο µέσα η εντολή. - Αρκετά περιγραφικά ονόµατα µεταβλητών - H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή 02160 PASS - Σηµαντικό λάθος που κάνατε σε αυτό το σηµείο ήταν να δηλώσετε κάποιες µεταβλητές, στο µέσον του προγράµµατός σας. Είναι µια πολύ κακιά τεχνική και θα πρέπει µε κάθε τρόπο να την αποφύγετε στο µέλον. - Δεν χρειάζοταν να δηλώσετε καινούριες µεταβλητές. Θα µπορούσατε να χρησιµοποιήσετε τη δυνατότητα του type casting για να λάβετε µόνο το ακέραιο µέρος της πράξης. Δείτε πάλι τις διαφάνειες για το type casting και δοκιµάστε να προσαρµόσετε τη λύση σας. - Οι επαναλήψεις στο τέλος του προγράµµατός σας είναι και αυτές σωστές. - Γενικά καλή δουλειά στο πρόγραµµά σας. Προσέξτε µόνο την επισήµανση για τη δήλωση µεταβλητών ΜΟΝΟ στην αρχή του προγράµµατός σας. 02161 PASS 02162 PASS - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση αν και σας ξέφυγαν 2 εντολές στις σειρές 16 και 17. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ number_a. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. Καλό θα ήταν να εκτυπώνατε µέχρι 2 δεκαδικά. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων και σωστή χρήση του typecast. - Σωστή χρήση for loop. - Έχετε καλά σχόλια αλλά προσέξτε να µην κανουν wrap around! Aν ένα σχόλιο είναι µεγάλο γράψτε το σε µορφή παραγράφου, πριν απο το κοµµάτι του κώδικα που περιγράφει. - Καλή στοίχιση! - Στις γραµµές 6 και 13 αλλάξατε γραµµή χωρίζοντας την εντολή σε 2 γραµµές (λάθος). Η δήλωση της µεταβλητής στη γραµµή 6 θα έπρεπε να είναι µαζί µε τις άλλες, µετά το σχόλιο. - Καλά ονόµατα µεταβλητών και σταθερών µεταβλητών! - Σωστή χρήση της while και της switch, και σωστές πράξεις! - Σωστή εκτύπωση αποτελεσµάτων. Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο %.2lf. - Σωστοί υπολογισµοί εκατοντάδων, δεκάδων και µονάδων! - Σωστή χρήση της for! Page 10

02163 PASS - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. - Να αφήνετε µία κενή γραµµή µεταξύ των #include και της main(). - Η στοίχιση των εντολών µέσα στο case πρέπει να είναι κατά µία εσοχή (TAB) πιο 'µέσα' από το case και όχι δυο. - Σωστοί τύποι µεταβλητών και σταθερών. - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Τα ονόµατα των σταθερών να τα γράφετε µε ΚΕΦΑΛΑΙΑ. - Η µεταβλητή 'input' ΔΕΝ είναι αρχικοποιηµένη κατά την είσοδο στην πρώτη επανάληψη. Να βεβαιώνεστε ότι οι µεταβλητές σας περιέχουν ΠΑΝΤΑ τιµές. - Το µήνυµα "Invalid seat number!" είναι από το πρηγούµενο εργαστήριο. ΜΗΝ κάνετε copy-paste στα τυφλά! - Σωστοί υπολογισµοί. - Για την µετατροπή από double σε int σε κάποιες πράξεις να χρησιµοποιείτε typecasting. Με αυτόν τον τρόπο δεν υπάρχουν µεταβλητές-αντίγραφα και αποφεύγονται αρκετά λάθη ασυνέπειας. - Σωστή χρήση της εντολής for. Η αύξηση της µεταβλητής i µπορεί να µπει στην πρώτη γραµµή της for, ακριβώς µετά την συνθήκη, π.χ. 'for(i=0;i<ekatontades; ι++)'. - Το µήνυµα "Total amount" έπρεπε να είναι "Total Amount". - Όταν η είσοδος είναι '$', δεν πρέπει να εµφανίζεται µήνυµα λάθους. - Μην αφήνετε περισσότερες από µία κενές γραµµές µεταξύ των 'ενοτήτων' του προγράµµατος. Εµφανίζεται λιγότερος κώδικας στην οθόνη χωρίς κάποιο όφελος. 02165 PASS 02166 οριακό PASS - Σωστή στοίχιση! - Σωστοί τύποι και ονόµατα των µεταβλητών, σωστή χρήση σταθερών. - Σωστή χρήση της do while και της switch! - Λάθος ο υπολογισµός συνολικού ΦΠΑ. - Σωστοί κωδικοί και καθορισµός δεκαδικών στην εκτύπωση των αποτελεσµάτων - Σωστός ο υπολογισµός των εκατοντάδων, δεκάδων, µονάδων. Δείτε και έναν διαφορετικό τρόπο υπολογισµού στο αρχείο της λύσης. - Σωστή χρήση της επανάληψης for! - (Θα µπορούσατε να βάλετε περισσότερα και πιο ουσιαστικά σχόλια) - Χάλια ονόµατα µεταβλητών. - Καθόλου σχόλια. - Λάθος στοίχιση στις γραµµές 56-67. - Στην switch είναι περιττά τα άγκιστρα στον κώδικα των cases και προτιµότερο κάθε επιµέρους εντολή να είναι κάτω από το αντίστοιχο case κατά ένα ακόµη indentation πιο µέσα. - Υπήρχαν περαιτέρω σταθερές που δεν αναγνωρίσατε. - Σωστές πράξεις - Λάθος αποτελέσµατα στο δεύτερο µέρος της άσκησης γιατί έχετε λάθος όρια επανάληψης στις δύο τελευταίες for του προγράµµατος σας, µε αποτέλεσµα να µην τελειώνει ποτέ! (Copy and Paste should be banned from a code editor) - Διαβάστε και κατανοήστε το Type Casting. Page 11

02168 PASS - Ελλιπή γενικά σχόλια στην περιγραφή του προγράµµατος. Κάποια σχόλια σχετικά µε την λειτουργία του προγράµµατος που υπάρχουν αργότερα θα µπορούσαν να µπουν στην αρχή. - Αποφεύγετε να βάζετε σχόλια στα δεξιά των εντολών αφήνοντας 'πολλά' κενά ή TABs. Αυτό δυσκολεύει την ανάγνωση των προγραµµάτων. Προτιµάτε να τα βάζετε σε µια νέα γραµµή ακριβώς πριν τη γραµµή που θέλετε να σχολιάσετε. - Οι δηλώσεις µεταβλητών και σταθερών έπρεπε να είναι εντός της main() και όχι global στο πρόγραµµα. - Έχετε βάλει ανάποδα τις τιµές στις σταθερές CAR_COST και TRUCK_COST. - Η στοίχιση εντός της main() πρέπει να είναι κατά ένα TAB δεξιότερα. Προσέξτε την στοίχιση! Σας είχε επισηµανθεί και στο προηγούµενο εργαστήριο! - Σωστοί τύποι µεταβλητών. - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Ο υπολογισµός των δεκάδων δεν είναι σωστός, π.χ. το 100 έχει µηδέν δεκάδες και όχι δέκα. - Σωστή χρήση της εντολής for. - Η δοµή του προγράµµατος µε χρήση while(1) {... } και όλες τις πράξεις να γίνονται µέσα στο case '$' παρόλο που είναι λογικά σωστή, είναι αρκετά προβληµατική στην ανάγνωση και επέκταση του προγράµµατος. Προσπαθείστε να 'σπάσετε' το πρόγραµµα σε ανεξάρτητες υποενότητες π.χ. ανάγνωση εισόδου, υπολογισµός ποσών, εκτύπωση αποτελεσµάτων, χωρίς η µία να εµπεριέχεται στην άλλη. 02169 PASS 02170 PASS 02171 PASS 02172 PASS - Καλά ονόµατα µεταβλητών. - Σωστά σχόλια. - Λάθος στοίχιση στις γραµµές 31-38. - Θα µπορούσατε να υπολογίσετε το ΦΠΑ απευθείας από την τελική τιµή του συνολικού κόστους. - Σωστές πράξεις και λογική. - Προτιµότερη χρήση επανάληψης do while για την είσοδο από τον χρήστη. - Καλή δουλειά. - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Οι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Καθόλου σχόλια. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ. cost_a. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. - Σωστή χρήση for loop. - Εξασκηθείτε περισσότερο στην χρήση της πράξης mod (%) και στην εύρεση της κατάλληλης αλγοριθµικής λογικής για την επίλυση του προβλήµατος. -Δεν έχετε κάνει καθόλου σχόλια -Σωστή στοίχιση -"Καλά" ονόµατα µεταβλητών -Ο πιο λογικός τρόπος επίλυσης θα ήταν τα µηνύµατα που εκτυπώνονται να είναι εκτός της do - while και µέσα στη while η συνθήκη επανάληψης να είναι (vehicletype!='$') -Δεν προλάβατε να κάνετε το δεύτερο κοµµάτι της άσκησης.προσπαθήστε να το κάνετε στο σπίτι - Καλά τα σχόλιά σας στο πρόγραµµα. - Η στοίχιση του κώδικα, οι κενές γραµµές και τα spaces είναι πολύ καλά τοποθετηµένα. - Σωστός ορισµός των σταθερών. Θα µπορούσατε να είχατε δηλώσει και τους τύπους οχηµάτων σαν σταθερές. _ Οι µεταβλητές δεν έχουν πολύ περιγραφικά ονόµατα. Π.χ το carincome θα µπορούσατε να το δηλώσετε σαν - Να βάζετε ένα κενό στο θέµα, ανάµεσα στο lab5 car_income. και το section - Στην switch-case έπρεπε να αφήνετε κενές γραµµές µέσα στο σώµα της case. - Τις εκατοντάδες και δεκάδες θα µπορούσατε να τις υπολογίσετε ξεχωριστά ώστε να γίνεται κατανοητή η λογική σας. - Η έξοδος του προγράµµατος είναι σωστή. Πετύχατε και την στοίχιση µε %s. Page 12

02173 PASS - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. - Αφήνετε µία κενή γραµµή µεταξύ των γενικών σχολίων και των #include. - Σωστή δήλωση σταθερών µε τη χρήση #define. - Η στοίχιση της main() καθώς και το τελικό άγκιστρο είναι κατά ένα TAB δεξιότερα. - Σωστοί τύποι µεταβλητών. - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Σωστή χρήση typecasting. - Όταν χρησιµοποιείτε προσωρινές µεταβλητές π.χ temp, να βάζετε κάποιο σχόλιο που να εξηγεί τον λόγο ύπαρξης της µεταβλητής. Επίσης να διαλέγετε ένα πιο περιγραφικό όνοµα. - Σωστή χρήση της εντολής do-while. - Σωστή χρήση της εντολής for. - Σωστή έξοδος. - Δεν έχει γίνει καθόλου χρήση σταθερών όπως έχουµε ζητήσει να γίνεται για όλες τις σταθερές τιµές. Αντί για σταθερές, έχετε δηλώσει µεταβλητές των οποίων οι τιµές δεν αλλάζουν κατα τη διάρκεια του προγράµµατος. -Δεν έχετε χρησιµοποιήσει καθόλου σχόλια. Δείτε τις Αρχές καλού προγραµµατισµού που υπάρχουν στην ιστοσελίδα του µαθήµατος. - Η στοίχιση σας είναι πολύ σωστή - Τα ονόµατα των µεταβλητών σας πρέπει να είναι πιο περιγραφικά. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. Μια βελτίωση που θα µπορούσε να γίνει είναι να µην υπολογίζεται και το πλήθος των βιβλίων και το συνολικό κόστος των βιβλίων σε κάθε επανάληψή. Ένα απο τα παραπάνω χρειάζεται καθώς το συνολικό κόστος µπορεί να βρεθεί µε ένα πολλαπλασιασµό 02174 οριακό του αριθµού των βιβλίων µε το κόστος του ενός απο αυτά. Να διαβάζετε τα σχόλια που σας γράφουµε και να PASS - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή. Θα µην επαναλαµβάνετε λάθη! µπορούσατε να περιορίσετε τον αριθµό των δεκαδικών ψηφίων σε 2. - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ. Λογω του οτι δεν γνωρίζετε τη χρήση του typecast, αναγκαστήκατε να µετατρέψετε το συνολικό ποσο των βιβλίων απο δεκαδικό σε ακέραιο µε έναν αντισυµβατικό και περίεργο τρόπο. Δηλώσατε µια νέα µεταβλητή και κάνατε µια άχρηστη πράξη (διαίρεση µε το 1) µόνο και µόνο για να θέσετε το δεκαδικό αποτέλεσµα σε µια µεταβλητή ακέραια. Θα µπορούσατε πολύ πιο απλά να χρησιµοποιήσετε typecast (δείτε τις διαφάνειες για το πως γίνεται) και να µην µπείτε σε όλη αυτή τη διαδικασία. - Οι επαναλήψεις στο τέλος του προγράµµατός σας είναι και αυτές σωστές. Στην εκτύπωση των '-' βάλατε και αλλαγή γραµµής το οποίο είναι λανθασµένο. - Χρειάζεστε περαιτέρω κατανόηση των βασικών εννοιών και εργαλείων που σας δίνει η γλώσσα. Καλό είναι να κάνετε µια επανάληψή των διαφανειών τώρα που έχετε περισσότερη εµπειρία, για να καλύψετε ότι κενό σας έχει µείνει. 02177 PASS -Σωστά σχόλια, αλλά δε χρειάζεται να τα γράφετε όλα σε µια σειρά. -Σωστή στοίχιση. -Σωστοί τύποι και ονόµατα µεταβλητών. -Σωστές σταθερές και ονόµατα. -Τα case που εκτελούν ίδιες πράξεις όπως π.χ. για τα φορτηγά και τα λεωφορεία µπορούσαν να µπούνε σε ένα case, το ίδιο και για τα υπόλοιπα. -Σωστές πράξεις. -Η έξοδος δεν είναι όπως ζητούσε η εκφώνηση, τα ποσά θέλαµε να είναι δεκαδικοί µε 5 ακέραια και 2 δεκαδικά ψηφία άρα 8.2lf και όχι 6.2 Επίσης στο printf("invalid vehicle type!") ήθελε αλλαγή γραµµής. -Σωστοί υπολογισµοί εκατοντάδων κ.λ.π. - Δοκιµάστε να κάνετε το τελευταίο κοµµάτι µε for. Γενικά είναι προτιµότερη η χρήση for όταν γνωρίζουµε ακριβώς το πλήθος επαναλήψεων Page 13

02178 PASS - Λίγα σχόλια - Στην switch είναι περιττές οι παρενθέσεις γύρω από τα 'Τ' κτλ. Επίσης περιττά είναι τα {;} και γενικά τα άγκιστρα στον κωδικα των cases. - Σωστή χρήση σταθερών. - Σωστή λογική και πράξεις - Στις printf έπρεπε να είχατε %12s και το : να µην είναι µαζί µε το string. Δείτε τη λύση για να καταλάβετε τι εννοώ. - Επίσης, για τα ποσά έπρεπε να είχατε %8.2lf (το 8 είναι το συνολικό πλάτος). 02179 FAIL - Aπουσία από το εργαστήριο 02180 PASS 02181 PASS 02183 PASS 02184 οριακό PASS -Σωστά σχόλια, αλλά δε χρειάζεται να τα γράφετε όλα σε µια σειρά. -Σωστή στοίχιση. -Σωστοί τύποι και ονόµατα µεταβλητών. -Σωστές σταθερές και ονόµατα. -Τα case που εκτελούν ίδιες πράξεις όπως π.χ. για τα φορτηγά και τα λεωφορεία µπορούσαν να µπούνε σε ένα case, το ίδιο και για τα υπόλοιπα. -Σωστές πράξεις. -Η έξοδος δεν είναι όπως ζητούσε η εκφώνηση, τα ποσά θέλαµε να είναι δεκαδικοί µε 5 ακέραια και 2 δεκαδικά ψηφία άρα 8.2lf και όχι 6.2 Επίσης στο printf("invalid vehicle type!") ήθελε αλλαγή γραµµής. -Σωστοί υπολογισµοί εκατοντάδων κ.λ.π. - Δοκιµάστε να κάνετε το τελευταίο κοµµάτι µε for. Γενικά είναι προτιµότερη η χρήση for όταν γνωρίζουµε ακριβώς το πλήθος επαναλήψεων - Δεν υπάρχουν σχόλια. - Να χρησιµοποιείτε ονόµατα που περιγράφουν τις µεταβλητές (π.χ. num_booka, όχι ΝΑ)! - Θα έπρεπε να δηλώσετε ως σταθερές µεταβλητές τις τιµές των βιβλίων και το ΦΠΑ! - Σωστή χρήση της while και της if else! - Στη θέση της if else µπορούσατε να χρησιµοποιήσετε τη switch, κάντε το στο σπίτι σας για να εξασκηθείτε. - Σωστές πράξεις και εκτυπώσεις των αποτελεσµάτων. - Λάθος υπολογισµός των µονάδων. Η λογική σας θα είχε σωστά αποτελέσµατα αν ήταν monades = (sum%100)%10. Δείτε στη λύση ένα διαφορετικό τρόπο υπολογισµού. - Σωστή χρήση της επανάληψης while για τη εκτύπωση των συµβόλων. Δοκιµάστε στη θέση της να χρησιµοποιήσετε τη for που είναι πιο κατάλληλη για περιπτώσεις που γνωρίζουµε τον αριθµό επαναλήψεων. - Σωστή στοίχιση εκτός της return στο τέλος. Επίσης, µην αφήνετε πολλαπλές διαδοχικές κενές γραµµές. - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Οι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Καθόλου σχόλια. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ. cost_a. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. - Σωστή χρήση for loop. -Σωστά σχόλια. -Σωστή στοίχιση. -Σωστά ονόµατα και τύποι µεταβλητών. -Δεν χρησιµοποιείται σταθερές για τις τιµές των διοδίων. -Το return 1 µέσα στο πρώτο if δε χρειάζεται (και είναι λάθος αν προκειται να υλοποιηθεί το δεύτερο ερώτηµα) -Σωστές πράξεις. -Σωστή έξοδος. -Δεν έχετε υλοποιήσει το τελευταίο ερώτηµα. Page 14

02185 PASS 02186 PASS 02187 PASS 02188 οριακό PASS - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Oι σταθερές πρέπει να έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ counta. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. Καλό θα ήταν να εκτυπώνατε µέχρι 2 δεκαδικά. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων και σωστή χρήση του typecast. - Σωστή χρήση for loop. - Σχόλια ΟΚ. - Σωστή επιλογή τύπων µεταβλητών και σωστή επιλογή ονοµάτων µεταβλητών. - Προσοχή δεν αρχικοποιείτε τις µεταβλητές total_a,total_b,total_c µε αποτέλεσµα το πρόγραµµα σας να βγάζει λάθος αποτελέσµατα. - Σωστή switch. - Σωστή ανακύκλωση. - Σωστός υπολογισµός ΦΠΑ. Δεν χρησιµοποιείτε την σταθερά FPA στον παρανοµαστή υπολογισµού του κόστους ΦΠΑ. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων. - Σωστή εκτύπωση των αποτελεσµάτων. - Σωστά έχετε χρησιµοποιήσει σταθερές στο πρόγραµµά σας, τις οποίες έχετε δηλώσει και µε κεφαλαία γράµµατα. - Έχετε βάλει τα βασικά σχόλια στο πρόγραµµά σας. - Η στοίχιση σας είναι πολύ σωστή - Τα ονόµατα των µεταβλητών σας πρέπει να είναι λίγο πιο περιγραφικά. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή. - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ. Αντι να δηµιουργήσετε µια καινούρια µεταβλητή έτσι ώστε να µετατρέψετε το δεκαδικό αριθµό σε ακέραιο, θα µπορούσατε να χρησιµοποιήσετε το typecast. Δείτε τις διαφάνειες στην ιστοσελίδα του µαθήµατος για περισσότερες πληροφορίες. - Οι επαναλήψεις στο τέλος του προγράµµατός σας είναι και αυτές σωστές. - Γενικά καλή δουλειά σε αυτό το πρόγραµµά µε εξαίρεση τη µη χρήση του typecast - Το πρόγραµµά σας έχει warnings. - Ελλιπή σχόλια στην έκταση του προγράµµατος. - Η στοίχιση στις γραµµές 38-50 δεν είναι σωστή. Επίσης µη βάζετε περισσότερες από µία διαδοχικές κενές γραµµές στο πρόγραµµα. - Τις µεταβλητές τις ορίζουµε ολόκληρες µε κεφαλαία γράµµατα και όχι µε µία µίξη πεζών και κεφαλαίων. Θα µπορούσατε να είχατε δηλώσει και τους τύπους οχηµάτων σαν σταθερές. - Τα ονόµατατων µεταβλητών είναι περιγραφικά. - Τη µεταβλητή VehicleType έπρεπε να την αρχικοποιήσετε πριν µπει µέσα στην επανάληψη. - Σωστά τα newlines στη switch-case. - Σωστό το typecast για τον υπολογισµό των εκατοντάδων και δεκάδων, αλλά δεν εκτυπώνονται - Έπρεπε να χρησιµοποιήσετε το mod. - Η έξοδος του προγράµµατος είναι σχεδόν σωστή. Αριθµητικά βρήκατε σωστά το ποσό χρέωσης. Αλλά δεν έχετε βάλει 3 ακέραια ψηφία στην εκτύπωση ακεραίων, έχετε βάλει ένα επιπλέον κενό πριν το %12s, χρησιµοποιείτε %5s αντί για %12s και τέλος δεν εκτυπώνετε τα σύµβολα αλλά το πλήθος τους. Πρέπει να είστε συνεπείς µε αυτό που σας ζητείται και να µην αναπαράγετε δικές σας λύσεις. Page 15

02189 PASS - Σωστή στοίχιση! - Να βάζετε σχόλια και µέσα στην υλοποίηση του προγράµµατος. - Καλή ονοµασία µεταβλητών και σωστή χρήση σταθερών µεταβλητών! - Καλή χρήση if, do while και switch! - Σωστές πράξεις. (µπορούσαν να απλοποιηθούν) - Σωστή εκτύπωση αποτελεσµάτων. Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο %.2lf. - Δεν υλοποιήσατε το ιστόγραµµα, αν και αρχίσατε τους υπολογισµούς. (διαχειριστείτε καλύτερα το χρόνο σας). Δοκιµάστε να το κάνετε στο σπίτι σας. - Έχει γίνει χρήση σταθερών οι οποίες όµως δεν έχουν δηλωθεί µε κεφαλαία γράµµατα. Πρέπει οι σταθερές να δηλώνονται µε όλα τα γράµµατα τους κεφαλαία έτσι ώστε να ξεχωρίζουν απο τις µεταβλητές. - Δεν υπάρχουν ούτε τα βασικά σχόλια περιγραφής του προγράµµατος. Παρακαλώ αναφερθείτε στις Αρχές καλού προγραµµατισµού που υπάρχουν στην ιστοσελίδα του µαθήµατος, για τη σωστή χρήση σχολίων. - Η στοίχιση είναι πολύ σωστή. - Τα ονόµατα των µεταβλητών σας δεν είναι πολύ σωστά. Η άσκηση ανάφέρεται στα βιβλία µε 2 γράµµατα, αυτό όµως δεν σηµαίνει οτι και οι µεταβλητές που χρησιµοποιείτε για αυτά τα βιβλία πρέπει να είναι και αυτές µε 2 γράµµατα. Γενικά πρέπει να δίνετε περιγραφικά ονόµατα στις 02190 PASS µεταβλητές σας. -H λογική του προγράµµατός σας είναι σωστή. Δέχεται τα σωστά βιβλία µόνο, τερµατίζει όταν λαµβάνει το $ και εκτυπώνει τα σωστά µηνύµατα. Η µόνη βελτίωση που θα µπορούσατε να κάνετε είναι να χρησιµοποιήσετε do while έτσι ώστε να µην βάλετε 2 φορές τον κώδικα για να διαβάσει το βιβλίο ( έχετε βάλει 2 γραµµές πριν απο το while και 2 εντός) - Σωστές οι πράξεις που κάνατε για να υπολογίσετε τα διάφορα κόστη που σας ζητούσαµε. - Η έξοδος του προγράµµατος σας είναι και αυτή σωστή. Γενικά θα µπορούσατε να περιορίσετε τα δεκαδικά ψηφία που εκτυπώνετε σε 2. (.2lf) - Σωστές και οι πράξεις που κάνατε για τον υπολογισµό των εκατοντάδων κλπ. Επίσης, έχετε σωστά χρησιµοποιήσει και το typecast στις πράξεις σας. 02191 PASS - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. - Αφήνετε µία κενή γραµµή µεταξύ των γενικών σχολίων και των #include. - Σωστή δήλωση σταθερών µε τη χρήση #define. - Η στοίχιση της main() καθώς και το τελικό άγκιστρο είναι κατά ένα TAB δεξιότερα. - Σωστοί τύποι µεταβλητών. - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Σωστή χρήση typecasting. - Όταν χρησιµοποιείτε προσωρινές µεταβλητές π.χ temp, να βάζετε κάποιο σχόλιο που να εξηγεί τον λόγο ύπαρξης της µεταβλητής. Επίσης να διαλέγετε ένα πιο περιγραφικό όνοµα. - Σωστή χρήση της εντολής do-while. - Σωστή χρήση της εντολής for. - Σωστή έξοδος. 02192 PASS - Σωστά, περιγραφικά σχόλια στην αρχή του προγράµµατος. - Σωστοί τύποι µεταβλητών. - Σωστά περιγραφικά ονόµατα µεταβλητών και σταθερών. - Σωστοί υπολογισµοί. - Σωστή χρήση typecasting. - Σωστή χρήση της εντολής for. - Να χρησιµοποιείτε την ίδια ακρίβεια (ίδιο τύπο δεδοµένων) για όλους τους πραγµατικούς αριθµούς στο πρόγραµµά σας (είτε όλα float ή όλα double), εκτός και αν υπάρχει σοβαρός λόγος να χρησιµοποιείσετε διαφορετική ακρίβεια για κάποιες µεταβλητές. - Δεν εκτυπώνετε το µήνυµα "Enter vehicle type: " πριν την είσοδο της πρώτης scanf(). Επίσης το µήνυµα δεν θέλει χαρακτήρα αλλαγής γραµµής στο τέλος. - Μην αφήνετε περισσότερες από µία κενές γραµµές µεταξύ των 'ενοτήτων' του προγράµµατος. Εµφανίζεται λιγότερος κώδικας στην οθόνη χωρίς κάποιο όφελος. - Έχετε στείλει και το εκτελέσιµο αρχείο 'lab5'. Να στέλνετε µόνο τα αρχεία που αναφέρονται στην εκάστοτε εκφώνηση. Page 16

02193 PASS 02194 PASS - Δεν υπάρχουν σχόλια. - Να χρησιµοποιείτε ονόµατα που περιγράφουν τις µεταβλητές (π.χ. num_booka, όχι ΝΑ) - Τα ονόµατα των σταθερών να γράφονται ολόκληρα κεφαλαία (π.χ. A_PRICE, όχι consta) - Σωστή στοίχιση εκτός από τις γραµµές 12-18. Επίσης, µην αφήνετε πολλαπλές κενές γραµµές ανάµεσα σε κοµµάτια κώδικα. - Η αρχικοποίηση µεταβλητών θα µπορούσε να γίνει ταυτόχρονα µε τη δήλωση. - Η printf εµφανίζεται µόνο µια φορά στην αρχή. Θα έπρεπε να τη βάλετε µέσα στη do while. - Χρησιµοποιήσατε την getchar(). Έτσι όµως παίρνει ως είσοδο και το Enter που θα πατήσει κάποιος µετά την 02195 οριακό πληκτρολόγηση του χαρακτήρα, για αυτό εκτυπώνεται Invalid - Λάθος θέµα email. PASS Book µετά από κάθε είσοδο. Θα µπορούσατε να βάλετε τη scanf(" %c", &book); ή µια δεύτερη getchar - Σωστή χρήση της switch και σωστές πράξεις. - Στις εκτυπώσεις των τελικών ποσών, λείπουν οι χαρακτήρες αλλαγής γραµµής \n. - Λάθος υπολογισµοί δεκάδων και µονάδων. Η λογική σας θα είχε σωστά αποτελέσµατα αν στον υπολογισµό των δεκάδων είχατε βάλει σε παρένθεση τον αριθµητή πριν διαιρέσετε µε το 10. Δείτε στη λύση ένα διαφορετικό τρόπο υπολογισµού. - Σωστοί κωδικοί στις printf, Θα µπορούσατε να είχατε εκτυπώσει µόνο 2 δεκαδικά όπως είχε ειπωθεί στο εργαστήριο %.2lf. - Σωστή χρήση της επανάληψης for (να ; αφήνετε κενά ; στη συνθήκη ; ) 02196 PASS - Σωστά χρησιµοποιείτε σταθερές για τις τιµές των βιβλιών σας. - Σωστά οι σταθερές έχουν κεφαλαία γράµµατα. - Σωστά σχόλια. - Καλή στοίχιση. - Μερικά ονόµατα µεταβλητών δεν είναι περιγραφικά π.χ countera. - Σωστός κώδικας και πράξεις. - Σωστή έξοδος. - Σωστός υπολογισµός των εκατοντάδων, δεκάδων και µονάδων. Καλό θα ήταν όταν κάνετε πράξεις µε double και θελετε το αποτελεσµα σε ακέραιο να χρησιµοποιείτε typecast. - Σωστή χρήση for loop. -Σωστή στοίχιση -"Καλά" ονόµατα µεταβλητών -Καµία χρήση σταθερών µεταβλητών -"Καλά" ονόµατα µεταβλητών -Προσπαθήστε να ξαναλύσετε την άσκηση χρησιµοποιώντας switch statement αντί για if -Δεν προλάβατε να κάνετε το δεύτερο κοµµάτι της άσκησης.προσπαθήστε να το κάνετε στο σπίτι - Το αρχείο που παραδώσατε θα έπρεπε να ονοµάζεται lab5.c και όχι lab5b.c - Σωστά σχόλια. Θα θέλαµε µία περιγραφή στην αρχή για το τι κάνει το πρόγραµµα. - Σωστά ονόµατα µεταβλητών. - Σωστή χρήση if/else. Δοκιµάστε να κάνετε το πρόγραµµα και µε switch στο σπίτι σας. - To πρόγραµµα εκτυπώνει "Invalid Book!" ακόµα και αν δώσετε τον χαρακτήρα '$' πράγµα που δεν είναι σωστό. - Σωστός υπολογισµός ΦΠΑ. - Σωστές εκτυπώσεις αποτελεσµάτων. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων και σωστή εκτύπωση τους στην τελευταία γραµµή. Page 17

02197 PASS 02198 PASS 02199 02200 οριακό PASS οριακό PASS - Το σχόλιο περιγραφής του προγράµµατος την τοποθετούµε πάνω από την main και όχι µέσα σε αυτή. Απουσιάζουν τα ονόµατα σας. - Σωστή επιλογή τύπων µεταβλητών και σωστή επιλογή ονοµάτων µεταβλητών. - Σωστή switch. - Σωστή ανακύκλωση. - Σωστός υπολογισµός ΦΠΑ. - Σωστός υπολογισµός εκατοντάδων, δεκάδων, µονάδων. - Λάθος στην εκτύπωση της printf(" Total Amount: %d...". Ο προσδιοριστής τύπου θα έπρεπε να είναι %lf. Οι υπόλοιπες εκτυπώσεις είναι σωστές. - Ο υπολογισµός των δεκάδων θα µπορούσε να γραφεί dec=((int)totalamount %100)/10; αντί για dec=((int)totalamount-cent*100)/10; Αντίστοιχα και για τις µονάδες. - Καλά τα σχόλιά σας. - Όταν ζητάτε µία τιµή από τον χρήστη έπρεπε να υπάρχει ένα κενό µετά την άνω-κάτω τελεία. - Τα ονόµατα µεταβλητών income_1, income_2, income_3 δεν είναι περιγραφικά. Επίσης θα µπορούσατε να είχατε δηλώσει και τους τύπους οχηµάτων σαν σταθερές. - Έπρεπε να χρησιµοποιήσετε switch-case και όχι τη δοµή της if. Δοκιµάστε να το φτιάξετε στο σπίτι. - Όταν κάνετε αναθέσεις και πράξεις µεταξύ µεταβλητών να αφήνετε κάποια κενά ώστε να είναι πιο ευανάγνωστος ο κώδικας. - Σωστό το typecast για τον υπολογισµό των εκατοντάδων και δεκάδων. - Η έξοδος του προγράµµατος είναι σχεδόν σωστή. Όταν ζητάτε µία τιµή από τον χρήστη έπρεπε να υπάρχει ένα κενό µετά την άνω-κάτω τελεία. - Δεν πετύχατε την στοίχιση της εξόδου µε τον "έξυπνο" τρόπο αλλά προσθέσατε κενά. - Καλά ονόµατα µεταβλητών. - Καθόλου σχόλια. - Λάθος στοίχιση στις γραµµές 14-32. - Θα µπορούσατε να υπολογίσετε το ΦΠΑ απευθείας από την τελική τιµή του συνολικού κόστους. - Σωστές πράξεις και λογική. - Προτιµότερη χρήση επανάληψης do while για την είσοδο από τον χρήστη. - Δεν µορφοποιήσατε την έξοδο όπως ζητούσε η άσκηση. Δείτε την λύση για να δείτε πως έπρεπε να το κάνετε. - Επίσης, για τα ποσά έπρεπε να είχατε %8.2lf (το 8 είναι το συνολικό πλάτος). - Δεν υλοποιήσατε καθόλου το δεύτερο µέρος της άσκησης. Περιµένουµε αισθητή βελτίωση στο επόµενο εργαστήριο! - Το πρόγραµµά σας παράγει warning το οποίο είναι ένδειξη σοβαρού λάθους στον κώδικα: Έχετε = αντί για == - Είναι καλύτερα να δηλώνετε όλες τις σταθερές και µεταβλητές στην αρχή της συνάρτησης, όχι ενδιάµεσα. - Σωστά δηλώνετε σταθερές, αλλά τα ονόµατά τους πρέπει να γράφονται µε όλο κεφαλαία. - Στο πρώτο µέρος έχετε καλά ονόµατα µεταβλητών, αλλά τα i, j, p, k, l είναι απαράδεκτα. - Δοκιµάστε να ξανακάνετε την άσκηση µε χρήση switch. - Η printf που είναι στην αρχή της while δεν έπρεπε να βρίσκεται εκεί. - Προσοχή στη στοίχιση. Όλος ο κώδικας που ακολουθεί την πρώτη while έπρεπε να είναι πιο αριστερά - To ^ είναι XOR, όχι ύψωση σε δύναµη. - Οι while που έχετε στο τέλος είναι ατέρµονες. Γενικά έχετε πολύ µπερδεµένη λογική. Οι πράξεις έπρεπε να είναι πολύ πιο απλές (διαίρεση και υπόλοιπο) - Στις εκτυπώσεις των τελικών ποσών, λείπουν χαρακτήρες αλλαγής γραµµής. - Σωστοί κωδικοί στις printf. - Δεν υπάρχουν σχόλια. - Παρακαλώ να βάζετε µόνο το lab5.c στο φάκελο, όχι και το εκτελέσιµο. Page 18