ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 lab14grades - Σωστός έλεγχος του argc για όλες τις περιπτώσεις. - Θα έπρεπε να καλέσεις τη συνάρτηση strlen_r και στην περίπτωση του κενού string, strlen_r("\0"). - Σωστή χρήση της αναδροµής στην strlen_r. - Επιστρέφει και εκτυπώνει σωστά το µήκος στη main. - Σωστά ελέγχεις και εδώ το argc! - Σωστή divisors, καλή λογική στην υλοποίηση της αναδροµής. - Σωστά εκτυπώνει στην divisors και επιστρέφει το πλήθος των διαιρετών στη main. 02104 02109 02111 - Σωστή αναδροµική συνάρτηση - Σωστός υπολογισµός αστερίσκων - Σωστή έξοδος Page 1
- Σωστά ελέγχετε το argc πρίν χρησιµοποιήσετε το argv. - Σωστή η αναδροµική κλήση - Σωστά επιστρέφετε το αποτέλεσµα - Σωστή κλήση απο τη main και εκτύπωση του αποτελέσµατος 02113 02115 Άσκηση 2 - Σωστά ελέγχετε το argc πρίν χρησιµοποιήσετε το argv. - Σωστή χρήση της atoi - Σωστή η αναδροµική συνάρτηση. - Σωστή η εκτύπωση των αποτελεσµάτων - Σωστά επιστρέφετε το αποτέλεσµα - Σωστή η κλήση απο τη main και η εκτύπωση των αποτελεσµάτων Άσκηση 3 - Δεν κάνετε έλεγχο του argc πρίν χρησιµοποιήσετε το argv - Σωστή η κλήση απο τη main. - Τελειώστε την άσκηση σπίτι " - Καλός σχολιασµός. - Σωστή έξοδος" 02116 - Ελλιπής σχολιασµός. 02117 Page 2
02121 FAIL - Ελλιπής σχολιασµός. - Έχετε σκεφτεί εξολοκλήρου λάθος την αναδροµική συνάρτηση ξαναδείτε την άσκηση σπίτι. 02122 - Σωστή αναδροµική συνάρτηση - Σωστός υπολογισµός αστερίσκων - Σωστή έξοδος 02123 -Το πρόγραµµά σας δεν κάνει compile από απροσεξία έχετε βάλει διπλό ); στο τέλος της συνάρτησης. Να προσέχετε, γιατί στις εξετάσεις κώδικας που δεν κάνει compile, µηδενίζεται. -Ελέγχετε µόνο αν το argc είναι 2, έπρεπε να ελέγχετε αν ήταν και µικρότερο του δύο να τυπώνετε το 0. 02128 02129 Page 3
02130 02131 02139 lab14grades - Εδώ γιατί δεν ελέγχετε το argc? - Μπερδεµένοι έλεγχοι στη main: έπρεπε να τερµατίζετε το πρόγραµµα αν το argc είναι!= 2, και σε κάθε άλλη περίπτωση να προχωράτε. Επίσης, τι σκοπό εξυπηρετεί η τελική if? Αφού ακριβώς το ίδιο πράγµα εκτυπώνεται και στις δύο περιπτώσεις. - Καλείτε δύο φορές την αναδροµική συνάρτηση, χωρίς λόγο. Γιατί? Αυτό δείχνει πρόβληµα στην κατανόηση συναρτήσεων.. Το base case είναι σωστό, αλλά λίγο µπερδεµένο. Αντί για handshakes + 1 γιατί δεν επιστρέφατε απλά 1? 02140 FAIL Δεν ελήφθη άσκηση 02143 02144 Ασκηση 1: 'Ασκηση 2: - Σωστή χρήση atoi. - Σωστά ελέγχετε το argc πρίν χρησιµοποιήσετε το argv. - Σωστή η αναδροµική κλήση - Σωστά επιστρέφετε το αποτέλεσµα - Σωστή κλήση απο τη main και εκτύπωση του αποτελέσµατος Άσκηση 2 - Σωστά ελέγχετε το argc πρίν χρησιµοποιήσετε το argv. - Σωστή χρήση της atoi - Σωστή η αναδροµική συνάρτηση. - Σωστή η εκτύπωση των αποτελεσµάτων - Σωστά επιστρέφετε το αποτέλεσµα - Σωστή η κλήση απο τη main και η εκτύπωση των αποτελεσµάτων Άσκηση 3 - Δεν κάνετε έλεγχο του argc πρίν χρησιµοποιήσετε το argv - Σωστή η κλήση απο τη main. - Τελειώστε την άσκηση σπίτι Page 4
02145 02146 02148 02153 FAIL Ασκηση 1: 'Ασκηση 2: - Σωστή χρήση atoi. Ασκηση 1: - Για την κενή συµβολοσειρά έπρεπε επίσης να την στέλνετε για υπολογισµό. 'Ασκηση 2: - Σωστή χρήση atoi. - Απαγορευόταν ΑΥΣΤΗΡΑ η χρήση static µεταβλητών. Να διαβάζεις προσεκτικά την εκφώνηση. - Εκτυπώνονται µεν οι διαιρέτες, αλλά δεν επιστρέφεις τον αριθµό τους. Βγάζει και ο compiler σχετικό warning το οποίο δεν έπρεπε να είχε αγνοηθεί. 02156 - Σωστός έλεγχος του argc και χειρισµός της περίπτωσης κενού string. - Σωστή χρήση της αναδροµής στην strlen_r. - Επιστρέφετε και εκτυπώνετε σωστά το µήκος στη main. 02158 - Σωστή divisors, καλή λογική στην υλοποίηση της αναδροµής. - Σωστά εκτυπώνετε στην divisors και επιστρέφετε το πλήθος των διαιρετών στη main. Page 5
02159 - Σωστός ο έλεγχος για το πλήθος των ορισµάτων του προγραάµµατος. - Σωστή η χρήση της atoi. - Σωστό το base case και η χρήση της αναδροµικής κλήσης. - Σωστή η επιστροφή των αποτελεσµάτων. - Σωστή η κλήση της αναδροµικής συνάρτησης από τη main. - Η έξοδος είναι σωστή. Άσκηση 2 02160 - Το πρόγραµµα δεν έπρεπε εξ'αρχής να παίρνει σαν όρισµα τη στήλη όπου ζωγραφίζεται εκείνη τη στιγµή η κλεψύδρα. - Σωστό το base case και η χρήση της αναδροµικής κλήσης. - Σωστή η επιστροφή των αποτελεσµάτων. - Σωστή η κλήση της αναδροµικής συνάρτησης από τη main. - Η έξοδος είναι σωστή. - Σωστός έλεγχος του argc. - Θα έπρεπε να καλέσετε τη συνάρτηση strlen_r και στην περίπτωση του κενού string, strlen_r("\0"). - Σωστή χρήση της αναδροµής στην strlen_r. - Επιστρέφει και εκτυπώνει σωστά το µήκος στη main. - Λάθος στη χρήση της αναδροµής: Η divisors επιστρέφει το count. Το count θα πρέπει να ανανεώνεται σύµφωνα µε την αναδροµή και σε κάθε περίπτωση: είτε έχει βρει διαιρέτης είτε όχι. int count=0; if(i<=number){ if((number%i)==0){ printf("%d\n",i); count= 1 + divisors(number,++i); } else count = divisors(number,++i); } return(count); 02161 Ασκηση 1: - Για την κενή συµβολοσειρά έπρεπε επίσης να την στέλνετε για υπολογισµό. 'Ασκηση 2: - Σωστή χρήση atoi. Page 6
02162 lab14grades - Σωστός έλεγχος του argc. - Θα έπρεπε να καλέσετε τη συνάρτηση strlen_r και στην περίπτωση του κενού string, strlen_r("\0"). - Σωστή χρήση της αναδροµής στην strlen_r. - Επιστρέφει και εκτυπώνει σωστά το µήκος στη main. - Λάθος στη χρήση της αναδροµής: Η divisors επιστρέφει το count. Το count θα πρέπει να ανανεώνεται σύµφωνα µε την αναδροµή και σε κάθε περίπτωση: είτε έχει βρει διαιρέτης είτε όχι. int count=0; if(i<=number){ if((number%i)==0){ printf("%d\n",i); count= 1 + divisors(number,++i); } else count = divisors(number,++i); } return(count); 02163 02166 02168 FAIL - Ελλιπής σχολιασµός. - Έχετε σκεφτεί εξολοκλήρου λάθος την αναδροµική συνάρτηση ξαναδείτε την άσκηση σπίτι. 02169 Page 7
02171 02172 - Σωστή χρήση argc/argv - Προσοχή στη στοίχιση. Σχεδόν όλος ο κώδικας της συνάρτησης είναι πιο "δεξιά" από ότι θα έπρεπε - Δεν έχετε βάλει κάποιο µύνηµα πριν την scanf() έτσι ώστε να ξέρει ο χρήστης τι να εισάγει. 02173 02180 FAIL - Ελλιπής σχολιασµός. 02183 - - Η άσκηση σας έχει πολλά λάθη ξανακοιτάξτε την σπίτι. 02184 Page 8
02185 lab14grades -Το πρόγραµµά σας δεν κάνει compile από απροσεξία έχετε βάλει διπλό ); στο τέλος της συνάρτησης. Να προσέχετε, γιατί στις εξετάσεις κώδικας που δεν κάνει compile, µηδενίζεται. -Ελέγχετε µόνο αν το argc είναι 2, έπρεπε να ελέγχετε αν ήταν και µικρότερο του δύο να τυπώνετε το 0. 02187 FAIL Δεν ελήφθη άσκηση 02191 - Σωστός έλεγχος του argc και χειρισµός της περίπτωσης κενού string. - Σωστή χρήση της αναδροµής στην strlen_r. - Επιστρέφετε και εκτυπώνετε σωστά το µήκος στη main. 02193 - Σωστή divisors, καλή λογική στην υλοποίηση της αναδροµής. - Σωστά εκτυπώνετε στην divisors και επιστρέφετε το πλήθος των διαιρετών στη main. 02198 02202 02203 - Ελλιπής σχολιασµός. 02205 Page 9
02208 - Δεν έχετε βάλει κάποιο µύνηµα πριν την scanf() έτσι ώστε να ξέρει ο χρήστης τι να εισάγει. 02209 02212 02218-02220 - Καλός σχολιασµός. - Σωστή έξοδος - Δεν µεταγλωττίζεται. 02222 FAIL Άσκηση 2 - Δεν κάνεις έλεγχο εάν ο χρήστης δεν δώσει κανένα όρισµα. - Σωστή χρήση atoi. - Η αναδροµική συνάρτηση δεν υπολογίζει σωστά τον αριθµό των διαιρετέων. - Σωστή κλήση της αναδροµικής συνάρτησης και σωστή εκτύπωση του αποτελέσµατος. 02229 Page 10
02232 - Σωστός έλεγχος του argc και χειρισµός της περίπτωσης κενού string. - Σωστή χρήση της αναδροµής στην strlen_r. - Επιστρέφετε και εκτυπώνετε σωστά το µήκος στη main. 02235 - Σωστή divisors, καλή λογική στην υλοποίηση της αναδροµής. - Σωστά εκτυπώνετε στην divisors και επιστρέφετε το πλήθος των διαιρετών στη main. 02236 02242 FAIL - Ελλιπής σχολιασµός. - Η άσκηση σας έχει πολλά λάθη ξανακοιτάξτε την σπίτι. 02243 02246 02249 - Μπερδεµένοι έλεγχοι στη main: έπρεπε να τερµατίζετε το πρόγραµµα αν το argc είναι!= 2, και σε κάθε άλλη περίπτωση να προχωράτε. Επίσης, τι σκοπό εξυπηρετεί η τελική if? Αφού ακριβώς το ίδιο πράγµα εκτυπώνεται και στις δύο περιπτώσεις. - Καλείτε δύο φορές την αναδροµική συνάρτηση, χωρίς λόγο. Γιατί? Αυτό δείχνει πρόβληµα στην κατανόηση συναρτήσεων.. Το base case είναι σωστό, αλλά λίγο µπερδεµένο. Αντί για handshakes + 1 γιατί δεν επιστρέφατε απλά 1? Page 11
02251 lab14grades - Εδώ γιατί δεν ελέγχετε το argc? 02254 - Σωστή χρήση argc/argv - Προσοχή στη στοίχιση. Σχεδόν όλος ο κώδικας της συνάρτησης είναι πιο "δεξιά" από ότι θα έπρεπε - Το αρχείο έπρεπε να είχε κατάληξη.tgz 02257 02258 02260 02261 - Η άσκηση ζητούσε χρήση argc/argv. Παρόλο που έλλειπες στο προηγούµενο lab, έπρεπε να είχες διαβάσει έστω τα σηµεία για τα οποία έγιναν παρατηρήσεις µετά τη βαθµολόγηση. 02263 - Έλεγχος argc. Προφορικά αναφέραµε στο εργαστήριο ότι όταν δεν εισάγει ο χρήστης κανένα όρισµα θα εισάγετε το κενό string στην αναδροµική συνάρτηση. Το να γράψεις απευθείας το αποτέλεσµα (0) δεν είναι αυτό που ζητήθηκε. - Ορθή λειτουργία της αναδροµής. - Ορθή κλήση από τη main και ορθή εκτύπωση αποτελέσµατος. Άσκηση 2 - Δεν κάνεις έλεγχο εάν ο χρήστης δεν δώσει κανένα όρισµα. - Σωστή χρήση atoi. - Σωστή υλοποίηση της αναδροµικής συνάρτησης. - Σωστή κλήση της αναδροµικής συνάρτησης και σωστή εκτύπωση του αποτελέσµατος. Page 12
02275 Page 13