Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 - Καλή δουλειά 1242 1243 1244 1245 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο να κάνεις την άσκηση ώστε να χρησιµοποιείται η συνάρτηση σε όλα τα σηµεία που θέλουµε να ελέγξουµε δεδοµένα. - Το πρόγραµµα λειτουργεί σωστά. - Είναι καλή ιδέα η χρήση ξεχωριστής συνάρτησης που υπολογίζει το πλήθος των ψηφίων ενός int, αλλά οι συναρτήσεις digitnum1find() και digitnum2find() είναι ακριβώς ίδιες, και θα µπορούσε να υπάρχει µόνο η µία. - Το πλήθος των ψηφίων του πρώτου τελεστη περιπλέκει τον κώδικα, αλλά δε φαίνεται να χρησιµεύει κάπου. Πολύ καλή δουλειά. Να ξέρεις ότι όταν κάνεις return σε µια συνάρτηση δε χρειάζεται να χρησιµοποιείς πάντα µεταβλητή, µπορείς να το κάνεις απευθείας. - Όταν εισάγω λάθος δεδοµένα, δηλαδή αρνητικό ακέραιο ή λάθος σύµβολο, εµφανίζει το σωστό µήνυµα αλλά ταυτόχρονα κάνει και κάποια πράξη, εµφανίζει το αποτέλεσµα και τερµατίζει το πρόγραµµα. - Να χρησιµοποιείς περιγραφικές µεταβλητές και όχι απλά i,j έτσι ώστε να είναι πιο κατανοητός ο κώδικάς σου. - Μετά την εµφάνιση του αποτελέσµατος θα έπρεπε να υπάρχει µια κενή γραµµή και µετά να τερµατίζει το πρόγραµµα. - Απαγορεύεται η χρήση καθολικών µεταβλητών - Απαράδεκτα ονόµατα µεταβλητών. - Οι έλεγχοι έπρεπε να γίνονται σε συνάρτηση. - Καλή δουλειά γενικά - Λάθος χρήση συναρτήσεων. - Ο τελεστής ^ δεν σηµαίνει ύψωση σε δύναµη. => Λάθος αποτελέσµατα. - Άλλη φορά προσπάθησε να µην βγάζει warnings ο compiler. -Η πράξη της αφαίρεσης είναι λάθος. Δεν αφαιρεί απο τον αφαιρετέο όσα ψηφία ορίζει το µήκος του αφαιρέτη, απλά εµφανίζει το πρώτο ψηφίο του αφαιρετέου και διαγράφει όλα τα υπόλοιπα. - Θα έπρεπε να υπάρχει και µια κενή γραµµή µετά την εµφάνιση του αποτελέσµατος και µετά να τερµατίζει το πρόγραµµα, σύµφωνα µε την εκφώνηση. - Δεν υλοποίησες συνάρτηση για έλεγχο της εισόδου. - Λάθος έλεγχος της εισόδου. - Λάθος αποτελέσµατα. - Κακή στοίχιση. - Μη αντιπροσωπευτικά ονόµατα µεταβλητών και συναρτήσεων. Page 1
1246 1247 1248 1249 1250 - Απουσία από το εργαστήριο. 1251 1252 - Καλή δουλειά 1253 - Το πρόγραµµα λειτουργεί ακριβώς όπως ορίζουν οι προδιαγραφές. 1254 Αντιγραφή 1255 - Καλή δουλειά 1256 1258 - Η συνάρτηση ελέγχου δεν επιστρέφει τιµή. 1260 1261 - Πολύ καλή δουλειά. - Η στοίχιση να γίνεται πάντα µε ΤΑΒ και όχι µε κενά. - Θα έπρεπε µετά την εµφάνιση του αποτελέσµατος να υπάρχει µια κενή γραµµή και µετά να τερµατίζει το πρόγραµµά σου. Η συνάρτηση ελέγχου δε δουλεύει σωστά, δεν το καταλαβαίνεις όµως γιατί δεν τη χρησιµοποιείς σωστά. Στη διαίρεση πάλι δεν έχεις το επιθυµητό αποτέλεσµα. Απαράδεκτη στοίχιση Καλή δουλειά γενικά αλλά το πρόγραµµα δεν κάνει ακριβώς αυτό που πρέπει. Δηλαδή όταν δεν περάσει την ορθότητα τερµατίζει. Να διαβάζεις καλύτερα την άσκηση. Έπρεπε αντί για if µέσα στη main να χρησιµοποιήσεις do-while. - Δεν κάνει compile. Δεν έχει κλείσει το άγκιστρο } στην afairesi(). - Δεν χρησιµοποιείς συνάρτηση για έλεγχο δεδοµένων. - Στις συνθήκες του τελεστή, πρέπει να τον συγκρίνεις µε τον χαρακτήρα '+' και όχι µε το string +. Αυτό Σηµαίνουν τα warnings, και γι αυτό βγάζει πάντα Illegal Operation. - Με αυτές τις αλλαγές, η πρόσθεση θα δούλευε σωστά. Η συνάρτηση ελέγχου δουλεύει ωραία. Η δοµή της συνάρτησης αφαίρεσης φαίνεται σωστή αλλά δεν κάνει αυτό που πρέπει. Όταν τελειώνουµε µε το γραµµατικό έλεγχο που είναι το compilation προχωρούµε στο λογικό. Χρησιµοποιούµε gdb ή κάνουµε ενδιάµεσα printf, κλπ µέχρι να βρούµε το λάθος! - Λάθος στη συνθήκη ελέγχου εισόδου - Δεν υλοποίησες συνάρτηση ελέγχου της εισόδου. Χρησιµοποίησε ή τη συνάρτηση ελέγχου ή κάνε τον έλεγχο ορθότητας χωρίς τη συνάρτηση, αλλά όχι και τα δύο. Κανονικά θα έπρεπε να χρησιµοποιήσεις την έξοδο από τη συνάρτηση για να κάνεις τους ελέγχους σου. - Σύµφωνα µε την εκφώνηση της άσκησης οι αριθµοί και ο τελεστής εισάγονται χωρίς κενά. Με τα κενά που έβαλες να εισάγονται τα δεδοµένα το πρόγραµµα σε κάποιο σηµείο έπεφτε σε ένα ατέρµονο loop. - Η συνάρτηση της αφαίρεσης είναι λάθος και βγάζει ΠΑΝΤΑ ως αποτέλεσµα 2. - Μετά την εµφάνιση του αποτελέσµατος θα έπρεπε να υπάρχει µια κενή γραµµή και στη συνέχεια να τερµατίζει το πρόγραµµα. Page 2
1262 1263 1265 1267 1268 Αντιγραφή 1269 - Απουσία από το εργαστήριο 1271 1273 1274 Αντιγραφή 1275 - Απουσία από το εργαστήριο 1276 1277 - Λάθος στον πολ/σµό - Καλή δουλειά κατά τα άλλα - H συνάρτηση ελέγχου έχει λάθος. Ο λογικός τελεστής στη δεύτερη if έπρεπε να είναι &&, όχι. - Καµία πράξη δεν έχει υλοποιηθεί. - Η αφαίρεση πρέπει να γίνεται µόνο αν ο χρήστης έχει προσδιορίσει τον τελεστή -. Το πρόγραµµά σου καλεί τη συνάρτηση αφαίρεσης και στην περίπτωση του / - Γράψε ξανά το πρόγραµµα µόνη σου για να το καταλάβεις. Είναι σηµαντικό. - Καλογραµµένος κώδικας - Λαθάκια στους υπολογισµούς - Όταν έχει γίνει λάθος στα δεδοµένα, το πρόγραµµα πρέπει να συνεχίζει την επανάληψη, όχι να τερµατίζει. - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρει ένα τρόπο να κάνεις την άσκηση ώστε να χρησιµοποιείται η συνάρτηση σε όλα τα σηµεία που θέλουµε να ελέγξουµε δεδοµένα. Mε προβληµατίζεις. Από τη µία φτιάχνεις τη συνάρτηση ελέγχου και από την άλλη δεν ξέρεις να τη χρησιµοποιείς. Δεν πρέπει να καλείς τις συναρτήσεις για αφαίρεση/διαίρεση πριν ελέγξεις αν τα δεδοµένα είναι έγκυρα! - Αχρείαστες µεταβλητές. - Δεν έκανες συνάρτηση για τον έλεγχο ορθότητας της εισόδου. - Δεν έβαλες σχόλια. - Μη αντιπροσωπευτικά ονόµατα µεταβλητών. - Το πρόγραµµά σου δεν κάνει compile. Ο κώδικας έχει πολλά λάθη. Να ζητάς βοήθεια την ώρα του εργαστηρίου έτσι ώστε να τα διορθώνεις. - Οι πράξεις της πρόσθεσης και της αφαίρεσης θα έπρεπε να γίνουν σε ξεχωριστές συναρτήσεις. Τις καλείς στο κυρίως πρόγραµµά σου χωρίς να τις έχεις υλοποιήσει. - Γιατί η συνάρτηση ελέγχου δηλώνεται ότι επιστρέφει int ενώ επιστρέφει char; - Έπρεπε να ελέγχεις όλες τις συνθήκες και µετά να επιστρέφεις από την συνάρτηση. - Το πρόγραµµα δεν κάνει compile. Έχεις κενά στη χρήση συναρτήσεων. Page 3
1278 1279 Αντιγραφή 1280 1281 - Καλή δουλειά 1282 1283 1284 1286 1288 1289 - Δεν έκανες συνάρτηση για έλεγχο ορθότητας της εισόδου. 1292 - Καλή δουλειά γενικά. - Το αποτέλεσµα θα έπρεπε να είναι integer και όχι double για να µην εµφανίζει όλα τα δεκαδικά που έχουν κοπεί απο την αφαίρεση. Γενικά όλοι οι αριθµοί θα έπρεπε να είναι δηλωµένοι ως integer σύµφωνα µε την άσκηση. - Μετά την εµφάνιση του αποτελέσµατος θα έπρεπε να υπάρχει µια κενή γραµµή και µετά να τερµατίζει το πρόγραµµα. - Λάθος στη συνθήκη για τον έλεγχο δεδοµένων. Έπρεπε να έχεις && αντί για - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο να κάνεις την άσκηση ώστε να χρησιµοποιείται η συνάρτηση σε όλα τα σηµεία που θέλουµε να ελέγξουµε δεδοµένα. - Υλοποιείται µόνο η πρόσθεση. - Πολύ άσχηµη στοίχιση - Το πρόγραµµα λειτουργεί σωστά. - Σε περίπτωση λάθους, έπρεπε να ξανατυπώνεται το σύµβολο > πριν διαβαστούν δεδοµένα. - Μη αντιπροσωπευτικά ονόµατα µεταβλητών. - Μη επαρκή σχόλια. - Το πρόγραµµά σου δεν έκανε compile. Είναι If{...} else if{...} else{...} και όχι ιf else. - Οι συνθήκες που έχεις χρησιµοποιήσει στην συνάρτηση egyrothta δεν είναι σωστές µε αποτέλεσµα να βγαίνουν λάθος αποτελέσµατα. - Για την στοίχιση χρησιµοποιούµε πάντα ΤΑΒ και όχι κενά. - Πολύ καλή δουλειά. - Η κενή γραµµή θα έπρεπε να είναι µετά το αποτέλεσµα και στη συνέχεια να τερµατίζει το πρόγραµµα. - Το πρόγραµµα δεν κάνει compile - Λάθος έλεγχος για αρνητικούς αριθµούς. - Ο έλεγχος της εισόδου µπορούσε να γίνει σε µία συνάρτηση. - Ο τελεστής ^ δεν σηµαίνει ύψωση σε δύναµη. => Λάθος αποτελέσµατα. - Στην συνάρτηση ελέγχου έπρεπε να ελέγχεις όλες τις συνθήκες και µετά να επιστρέφεις. - Πολύ καλό. Page 4
1293 - Λάθος στη δηµιουργία του tgz αρχείου 1294 - Καλή δουλειά 1295 1297 1299 1300 1303 1304 - Απουσία από το εργαστήριο 1305 1306 - Καλή δουλειά 1307 - Γενικά το πρόγραµµα δουλεύει σωστά. - Αν βάλω λάθος τελεστή, τερµατίζει χωρίς να ξαναζητάει δεδοµένα. Άρα στη γραµµή 77 έπρεπε While(telesths=='a' epistrofi==0) - Οι δηλώσεις των συναρτήσεων µέσα στη main(), γραµµές 62-65 δε χρειάζονται, γιατί οι ορισµοί τους Υπάρχουν ήδη παραπάνω. - Η elegxos_telesth() θα µπορούσε να επιστρέφει int (π.χ. 0 ή 1 για σωστό/λάθος χαρακτήρα εισόδου). Δεν Είναι απαραίτητο να επιστρέφει char. - Καλή δουλειά. - Να χρησιµοποιείς περιγραφικές µεταβλητές ή να γράφεις περισσότερα σχόλια έτσι ώστε να είναι πιο κατανοητός ο κώδικάς σου. - Μετά την εµφάνιση του αποτελέσµατος θα έπρεπε να υπάρχει µια κενή γραµµή και στη συνέχεια να τερµατίζει το πρόγραµµα. Η συνάρτηση ορθότητας δε δουλεύει. Γιατί όλα τα µονοπάτια επιστρέφουν την ίδια τιµή. Σαν αποτέλεσµα δεν υπάρχει διαφοροποίηση στο αποτέλεσµα. Η συνάρτηση της διαίρεσης δε λειτουργεί σωστά - Το πρόγραµµα δεν έπρεπε να εκτυπώνει αποτελέσµατα όταν έχει γίνει λάθος στα δεδοµένα - Λάθος στον πολ/σµό - Αφού η elegxos επιστρέφει χαρακτήρα έπρεπε να έχει char ως return type και όχι int. - Λάθος στον πολ/σµό - Το πρόγραµµά σου πέφτει σε ένα ατέρµονο loop µε τη συνθήκη που έχεις βάλει στην do{}while. - Έχεις υλοποιήσει µόνο την συνάρτηση της πρόσθεσης και όχι σωστά. - Η στοίχιση να γίνεται µόνο µε ΤΑΒ και όχι µε κενά. - Όταν εισάγω λάθος δεδοµένα, µετά την εµφάνιση του αντίστοιχου µηνύµατος το πρόγραµµα θα έπρεπε να ζητά ξανά την εισαγωγή δεδοµένων και οχι να τερµατίζει. - Να χρησιµοποιείς πιο περιγραφικές µεταβλητές ή να γράφεις σχόλια έτσι ώστε να είναι πιο κατανοητός ο κώδικάς σου. - Μετά την εµφάνιση του αποτελέσµατος θα έπρεπε να υπάρχει µια κενή γραµµή και µετά να τερµατίζει το πρόγραµµα. Page 5
1309 1310 1311 1312 1314 1315 - Απαράδεκτα ονόµατα µεταβλητών 1316 1317 - Λάθος στην αποστολή της άσκησης. 1319 1320 - Δεν παραδόθηκε άσκηση 1321 1324 1325 - Το πρόγραµµα λειτουργεί σωστά. - Χρειάζεται µια printf(">\n"); και πρίν τη scanf() της γραµµής 57. - Οι συνθήκες των if στις γραµµές 50, 53 µπορούσαν να διαβάζουν την τιµή που επιστρέφει κατάλληλα η check(), διαφορετική για κάθε σφάλµα, χωρίς να κάνουν ουσιαστικά πάλι τον ίδιο έλεγχο (βλ. Λύση της άσκησης από το Φροντιστήριο). - Το πρόγραµµα λειτουργεί σωστά. - Σε περίπτωση λάθους, έπρεπε να ξανατυπώνεται το σύµβολο > πριν διαβαστούν δεδοµένα. Η συνάρτηση ορθότητα δε δουλεύει σωστά. Έχεις σωστή δοµή αλλά έχεις κάνεις λάθος χρήση του λογικού ή. Επιπλέον να µην ορίσεις ποτέ ξανά συνάρτηση που δεν αναφέρεις τι τύπου ορίσµατα παίρνει,ανεξάρτητα από το τι κάνει ο µεταγλωττιστής να θυµάσαι ότι κώδικα γράφουµε για να µπορούµε να τον διορθώσουµε και αργότερα. Απαράδεκτα ονόµατα µεταβλητών - Δεν υλοποίησες συνάρτηση ελέγχου της εισόδου. - Λάθος συνθήκη στο while. - Μπορείς µε µια printf να τυπώσεις το αποτέλεσµα και να αλλάξεις γραµµή. Καλή δουλειά. Όταν γράφεις συνάρτηση ελέγχου ο σκοπό είναι να µη χρειάζεται όλος αυτός ο έλεγχος που κάνεις στη while. Βάλε τη συνάρτηση να σου επιστρέψει 2 τιµές, µία για σωστό και µία για λάθος, και δούλεψε µε αυτές. Καλό σε γενικές γραµµές. Η συνάρτηση της αφαίρεσης δεν δουλεύει σωστά. Έπρεπε να διαιρέσεις µε το πλήθος των ψηφίων του β αριθµού και όχι µε τη διαφορά των ψηφίων τους. - Η πράξη της αφαίρεσης είναι λάθος. Αφαιρεί ένα ψηφίο λιγότερο απ' ότι θα έπρεπε. - Πολύ καλή δουλειά. - Πρόσεχε λίγο την ορθογραφία των µηνυµάτων που εµφανίζεις προς τον χρήστη. - Μη επαρκή σχόλια. - Δεν υλοποίησες συνάρτηση ελέγχου της εισόδου. - Λάθος έλεγχος εισόδου. - Το πρόγραµµα δε χρησιµοποιεί συναρτήσεις - Στην πρόσθεση έπρεπε να είναι apotelesma=telesteos1*pow(10,(int)log10(telesteos2)+1) + telesteos2; σαν την αφαίρεση (η οποία λειτουργεί σωστά). Page 6
1327 1328 1329 - Δεν εστάλη άσκηση 1330 1331 1332 1334 1336 1337 1338 1339 - Δεν παραδόθηκε άσκηση - Το πρόγραµµά σου πέφτει σε ένα ατέρµονο loop που ζητά συνέχεια είσοδο δεδοµένων χωρίς να κάνει κάτι άλλο. Να προσέχεις τις συνθήκες που βάζεις στις εντολές επανάληψης. - Θα έπρεπε να υπάρχει ξεχωριστή συνάρτηση που θα ελέγχει την εγκυρότητα των δεδοµένων και θα εµφανίζει το κατάλληλο µήνυµα ('Illegal Operation', 'Non-positive integer') και όχι απλά µια συνθήκη επανάληψης. - Οι συναρτήσεις των πράξεων είναι σωστές αλλά θα είναι καλύτερο να χρησιµοποιείς περιγραφικές µεταβλητές για να είναι πιο κατανοητός ο κώδικάς σου. - Μετά την εµφάνιση του αποτελέσµατος θα έπρεπε να υπάρχει µια κενή γραµµή και στη συνέχεια να τερµατίζει το πρόγραµµα σου. - Λάθος έλεγχος εισόδου. - Λάθος αποτελέσµατα. - Μη αντιπροσωπευτικά ονόµατα µεταβλητών. - Μη επαρκή σχόλια. - Γενικά, µια συνάρτηση ορθότητας πρέπει να επιστρέφει κάποια τιµή που εκφράζει αν έχει γίνει λάθος ή όχι. Αν σκοπεύεις να µη χρησιµοποιήσεις αυτή την πληροφορία, κι απλά θέλεις να εκτυπώνει κάποιο µήνυµα λάθους, τότε δεν πρέπει να την κάνεις να επιστρέφει τίποτα (πρέπει δηλαδή το return type της να είναι void). Στη συγκεκριµένη άσκηση όµως, πρέπει οπωσδήποτε να επιστρέφει κάτι, και ανάλογα µε αυτή την τιµή να συνεχίζονται ή όχι οι επαναλήψεις. Από τη στιγµή που έχεις συνάρτηση ελέγχου ορθότητας πρέπει να την χρησιµοποιείς όπου χρειάζεται - δεν πρέπει να κάνεις τους ελέγχους δεύτερη φορά εκτός της συνάρτησης (όπως κάνεις εσύ στο while). - Η διαίρεση δεν έχει υλοποιηθεί αλλά το πρόγραµµα εµφανίζει έξοδο ακόµη κι αν ο χρήστης επιλέξει διαίρεση. - Δεν κάνει compile - σοβαρά προβλήµατα στον κώδικα - Λάθος χρήση συναρτήσεων. - Λάθος στο έλεγχο της εισόδου (χωρίς συνάρτηση) - Ενώ γράφεις κώδικα για τις συναρτήσεις της πρόσθεσης και της αφαίρεσης, στο κυρίως πρόγραµµα δεν τις χρησιµοποιείς καθόλου και έτσι δεν εµφανίζει κανένα αποτέλεσµα αν και υπολογίζει κάτι. - Και οι δύο συναρτήσεις έχουν αλγοριθµικά λάθη. Να µη γράφεις το πρόγραµµα µια κι έξω, αλλά ένα-ένα κοµµάτι που ολοκληρώνεις να το ελέγχεις πριν προχωρήσεις στο επόµενο. - Το πρόγραµµα πέφτει σε ατέρµονο loop. - Πολύ καλή δουλειά. - Για την στοίχιση να χρησιµοποιείς ΤΑΒ και όχι κενά. Καλή δουλειά. Σου ξέφυγε µέσα στη συνάρτηση στο loop αντί να βάλεις i έβαλες 1. Να ξαναδιαβάζεις τον κώδικά σου. Page 7
1341 1342 1345 1346 1353 1354 - Καλή δουλειά 1355 1361 9999 Αντιγραφή temp1 - Καλή δουλειά temp11 temp12 Καλή δουλειά αλλά δε δουλεύει η συνάρτηση της διαίρεσης. temp13 - Καλή δουλειά temp15 temp16 temp18 temp19 Αντιγραφή - Λάθος στον πολ/σµό, αλλά γενικά καλή δουλειά - Καλή δουλειά γενικά. - Να χρησιµοποιείς ΤΑΒ για την στοίχιση του κώδικά σου και όχι κενά. - Να χρησιµοποιείς περιγραφικές µεταβλητές στις συναρτήσεις ή να βάζεις σχόλια έτσι ώστε να είναι πιο κατανοητό το πρόγραµµά σου. - Όταν καλείς µια συνάρτηση πρόσεχε να βάζεις τις παραµέτρους µε την ίδια σειρά που είναι και οι τυπικές παράµετροι. - Λάθος αποτελέσµατα, αλλά καλή προσπάθεια γενικά - Στην συνάρτηση ελέγχου έπρεπε να ελέγχεις όλες τις συνθήκες και µετά να επιστρέφεις. - Δεν υλοποίησες κάθε πράξη σαν ξεχωριστή συνάρτηση. - Το πρόγραµµα δίνει πάντα Illegal operation, έπρεπε στη γραµµή 21, όπου 'f' -> 't' και στην 82, όπου 't' -> 'f'. - Η πρόσθεση θα δούλευε σωστά αν είχες πολ/σει το newnumb µε arith1. - Μη επαρκή σχόλια. - Η συνάρτηση ελέγχου δεν επιστρέφει τιµή. - Μη αντιπροσωπευτικά ονόµατα µεταβλητών. - Λάθος στη δηµιουργία του tgz αρχείου Η συνάρτηση ελέγχου είναι σωστή. Η αφαίρεση είναι λάθος: ο τελεστής ^ δεν είναι δύναµη, είναι XOR. Η δύναµη υπολογίζεται µε τη συνάρτηση pow. - Το σώµα της main είναι λάθος! Δε διαβάζεις τα δεδοµένα µε τον τρόπο που προσδιορίζει η εκφώνηση και δε χρησιµοποιείς σωστά την έξοδο του ελέγχου σου. Διάβασε ξανά τα functions. Καλή δουλειά αλλά η συνάρτηση της διαίρεσης δε δουλεύει σωστά. Μετά το γραµµατικό έλεγχο να κάνεις και λογικό πριν παραδώσεις τη δουλειά σου. - Δεν κάνει compile - σοβαρά προβλήµατα στον κώδικα - Δεν παραδόθηκε άσκηση Page 8
temp20 temp21 temp22 temp23 temp25 temp26 - Δεν παραδόθηκε άσκηση temp27 temp29 temp3 - Γενικά σωστή δοµή προγράµµατος, αλλά τα αποτελέσµατα είναι λάθος. - Λάθος υπολογισµός πλήθους ψηφίων ενός τελεστή, (σωστό είναι log10(telestaios)+1) - Στην πρόσθεση πρέπει ο τελεσταίος 1 να πολ/στει µε pow(10,ψηφία_τελεσταίου_2), όχι pow(10,ψηφία_τελεσταίου_1) - Η συνάρτηση elegxos() δε δουλεύει σωστά. Η scanf() δεν µπορεί να επιστρέψει στη main() αυτά που διάβασε (εκτός αν χρησιµοποιούσες δείκτες). Αν βάλω λάθος τελεστή µια φορά, αλλά µετά βάλω σωστό τελεστή, Τότε βγαίνει πάντα Illegal Operation. - Το πρόγραµµα λειτουργεί σωστά. - Στη main() η κλήση της printf(), έπρεπε να είναι µέσα στο do-while, ακριβώς πριν την scanf(). *Οι γραµµές 75-76 και 81-82 κάνουν το ίδιο πράγµα, µπορούσαν να υπάρχουν µια φορά µόνο. - Η συνθήκη στη γραµµή 60 είναι πάντα αληθής και έχουµε πάντα Illegal operation, έπρεπε && αντί για. - Η add() δίνει λάθος αποτελέσµατα -- η µεταβλητή psifia έπρεπε να είναι int και να αυξηθεί κατά 1. - Ξέχασες το printf() που τυπώνει το αποτέλεσµα. - Η afairesh() δεν υπολογίζει το σωστό αποτέλεσµα. - Το πρόγραµµα επιστρέφει πάντα Illegal operation, η συνθήκη της γραµµής 50 έπρεπε να έχει && σντί για. - Στην prosthesi2(), έπρεπε να υψώσεις το 10 στην x+1, όχι στην y, για να βγάζει σωστά αποτελέσµατα. - Η αφαίρεση δε λειτουργεί σωστά. - Δεν κάνει compile. Πρέπει στη main() να δηλώσεις int l, και να καλέσεις την elenxos(), όχι την ανύπαρκτη check(). - Η elenxos() δεν έπρεπε να καλεί τη scanf(), γιατί ό,τι και να διαβάσει, δεν µπορεί να το επιστρέψει στη main(), Εκτός αν το είχες κάνει µε δείκτες. Γι αυτό βγάζει πάντα Illegal Operation. - Έτσι κι αλλιώς, η pros8etw() και η ginomeno() δεν κάνουν αυτό που πρέπει. - Δεν κάνει compile. Έπρεπε η µετεβλητή telestis να είναι δηλωµένη µόνο µια φορά, να υπάρχει ένα } στη γραµµή 14 και να Σβηστεί το } της γραµµής 45. - Και πάλι όµως, επιστρέφει πάντα Illegal operation, η συνθήκη της γραµµής 6 έπρεπε να έχει && σντί για. - Οι συναρτήσεις άθροισης και αφαίρεσης δε λειτουργούν. - Το πρόγραµµά σου δεν έκανε compile. Το header file που κάνεις include είναι math.h και όχι math.c. - Δεν υλοποιείς τις συναρτήσεις τις πρόσθεσης και τις αφαίρεσης. - Δεν κάνει compile - σοβαρά προβλήµατα στον κώδικα Page 9
temp32 temp33 temp34 temp35 temp36 temp39 temp4 temp40 Καλή δουλειά αλλά δε δουλεύει η συνάρτηση της διαίρεσης. temp41 Αντιγραφή temp42 temp44 temp46 temp5 temp6 - Το πρόγραµµά σου δεν κάνει compile. Χρησιµοποιείς µια µεταβλητή χωρίς να την έχεις δηλώσει. - Να χρησιµοποιείς πιο περιγραφικά ονόµατα για τις µεταβλητές σου ή να βάζεις περισσότερα σχόλια έτσι ώστε να είναι πιο εύκολο να διαβαστεί ο κώδικάς σου. - Υλοποιείς µόνο την συνάρτηση της πρόσθεσης και δεν επιστρέφει σωστό αποτέλεσµα εφόσον της έχεις βάλει να επιστρέφει πάντα 0. - Χρησιµοποιείς συναρτήσεις για τον έλεγχο των δεδοµένων που εισάγει ο χρήστης (λάθος τελεστής, αρνητικός ακέραιος), αλλά δεν τις καλείς µέσα στο κυρίως πρόγραµµά σου µε αποτέλεσµα να µην γίνεται ποτέ ο έλεγχος. - Η συνάρτηση για έλεγχο της εισόδου δεν επιστρέφει τιµή. - Λάθος συνθήκη στο while. - Το πρόγραµµα δεν κάνει compile - Δεν υλοποίησες συνάρτηση ελέγχου της εισόδου. - Λάθος έλεγχος εισόδου. - Λάθος αποτελέσµατα. - Καθόλου σχόλια. - Δεν υλοποίησες συνάρτηση για έλεγχο της εισόδου. - Λάθος έλεγχος της εισόδου. - Λάθος αποτελέσµατα. - Δεν υλοποίησες συνάρτηση ελέγχου της εισόδου. - Λάθος αποτελέσµατα. - Καθόλου σχόλια. Καλή δουλειά. Παρατηρήσεις:Όταν κάνεις επιστροφή από µια συνάρτηση δεν είναι απαραίτητο το αποτέλεσµα να το αποθηκεύσεις σε µεταβλητή µπορείς να το κάνεις απευθείας. Να δώσεις µεγαλύτερη προσοχή στη δοµή του κώδικα. - Πρέπει να διορθώνεις και τα λάθη που υποδεικνύονται από warnings. - Η check1 πέφτει σε ατέρµονο βρόγχο. - Δεν παραδόθηκε άσκηση - Το πρόγραµµα έπρεπε να συνεχίζει την επανάληψη στην περίπτωση που υπήρχε λάθος στα δεδοµένα, όχι να τερµατίζει - Δεν παραδόθηκε άσκηση - Λάθος στο πολ/σµό, αλλά κατά τα άλλα καλή δουλειά - Λάθος στην αποστολή της άσκησης. Page 10
temp7 - Καλή δουλειά temp9 - Καλή δουλειά Page 11