lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

Σχετικά έγγραφα
lab14grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

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

Επεξεργασία Αρχείων Κειµένου

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

Επανάληψη για τις Τελικές εξετάσεις

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

lab3grades οριακό PASS

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

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

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

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

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

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

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

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

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

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

lab10grades Άσκηση 2η: - Δεν κάνει compile: Δείτε την λύση και ξανα προσπαθήστε τα υπόλοιπα στο σπίτι.

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

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

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Ενδεικτικές λύσεις και στατιστικά

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

Προγραμματισμός Υπολογιστών με C++

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Πρόγραμμα όρασης. Στη συνέχεια θα περιγράψουμε πώς δουλεύει το ρομπότ.

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Transcript:

ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1

1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2

1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3

1927 PASS 1928 Οριακό PASS 1931 PASS 1932 PASS 1934-1946 - 1947 - Page 4

1949 PASS 1950 PASS 1959-1960 - 1962-1964 PASS Page 5

1965 PASS 1973 PASS 1975 PASS 1980 PASS 1983-1984 - 1985 - Page 6

1986 PASS 1988 PASS 1992 PASS 1994 - Page 7

1996 PASS 2001 PASS 2007-2010 PASS Page 8

2012 PASS 2013 PASS 2017-2020 PASS 2026-2028 PASS Page 9

2029 PASS 2030 PASS 2031 PASS 2033-2034 PASS Page 10

2036 PASS 2041 PASS 2045-2046 PASS 2047 PASS 2048 - Page 11

2052 PASS 2054-2055 - 2056-2060 PASS 2062 PASS Page 12

2071 PASS 2074-2075 PASS 2076 PASS Page 13

2084 PASS 2088 PASS 2089 PASS Page 14

ΣΧΟΛΙΑ - Καλή δουλειά! - Σωστή στοίχιση και ονόµατα µεταβλητών. Δεν εστάλη άσκηση Δεν εστάλη άσκηση lab13grades - Καλή δουλειά - Σωστή υλοποίηση της bin2dec αλλά έχετε ένα µικρό bug. Ελέγχετε if( str[0] == 0) κάτι που θα είναι πάντα false στην συγκεκριµένη άσκηση. Είναι σαν να ελέγχετε εάν θα δοθεί ποτέ ο χαρακτήρας µε ascii 0. To σωστό είναι if( str[0] == '0'). - Καλή δουλειά! - Σωστή στοίχιση και ονόµατα µεταβλητών. - Καλή δουλειά - Σωστή υλοποίηση της bin2dec αλλά έχετε ένα µικρό bug. Ελέγχετε if( str[0] == 0) κάτι που θα είναι πάντα false στην συγκεκριµένη άσκηση. Είναι σαν να ελέγχετε εάν θα δοθεί ποτέ ο χαρακτήρας µε ascii 0. To σωστό είναι if( str[0] == '0'). : -Καλή στοίχιση -Σωστή χρήση srand/rand -Σωστή αναδροµή -Σωστό αποτέλεσµα -Σωστά χρησιµοποιείται η define για τον ορισµό του µεγέθους : -Καλή στοίχιση -Σωστά χρησιµοποιείτε argv για την είσοδο στο πρόγραµµα -Δεν κάνετε έλεγχο της argc όµως -Το πρόγραµµα αν δώσεις τα σωστά ορίσµατα δουλεύει σωστά -Σωστά χρησιµοποιείται η αναδροµή -Αν µπορείτε λύστε την για εξάσκηση χωρίς την χρήση της pow(), µε τον τρόπο που είδατε στο εργασ Page 15

-Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα -Ένα λάθος που είχατε είναι ότι δεν εκτυπώσατε όλα τα στοιχεία του πίνακα αλλά µόνο το max. Έτσι δεν µπορούµε να καταλάβουµε αν είναι πραγµατικά το µεγαλύτερο στοιχείο του πίνακα παρά µόνο αν κοιτάξουµε ότι είναι σωστός ο κώδικας. ' -Η είσοδος που διαβάζετε από τη γραµµή εντολών είναι αποθηκευµένη στον πίνακα argv[] ο οποίος είναι τύπου char* και όχι τύπου int. αυτό σηµαίνει ότι η καταχώρηση num = *argv[1] δεν είναι σωστή καθώς παίρνει σαν τιµή τον αριθµό που αντιστοιχεί στο πρώτο γράµµα της εισόδου. Πρέπει λοιπόν να µετασχηµατίσετε τον αριθµό που παίρνετε σαν είσοδο σε µορφή κειµένου, σε µορφή αριθµού. Για να το κάνετε αυτό υπάρχουν πολλοί τρόποι όπως για παράδειγµα να χρησιµοποιήσετε την συνάρτηση atoi ή sscanf. Να κάνετε οπωσδήποτε αυτή την αλλαγή καθώς αποτελεί πολύ σηµαντικό κοµµάτι του προγραµµατισµού και της άσκησης. -Αν γίνει η παραπάνω αλλαγή τότε κάποια από τα αποτελέσµατα είναι σωστά και έχουν να κάνουν µε την είσοδο που δίνει ο χρήστης. Προσπαθήστε να διορθώσετε τη λύση σας έτσι ώστε να λειτουργεί για όλες τις εισόδους του χρήστη. -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Σωστή η αναδροµή. -Αρκετά περίπλοκη αλλά σωστή η µετατροπή του αριθµού που δίνεται σαν string σε int που χρειάζεστε εσείς για το πρόγραµµά σας. Υπάρχουν τουλάχιστον 2 συναρτήσεις που παρέχονται από διάφορες βιβλιοθήκες για να κάνετε αυτή τη µετατροπή! Μπορείτε να βρείτε κάποια από αυτές και να τις προσαρµόσετε στη λύση σας; -Σωστό αποτέλεσµα. -Θα µπορούσατε να ελέγξετε αν ο χρήστης δίνει κάποια είσοδο πριν πάτε να διαβάσετε από την γραµµή εντολών και έτσι να σκάσει το πρόγραµµά σας σε περίπτωση που ο χρήστης δεν δίνει είσοδο - Ορθή στοίχιση. - Ορθά σχόλια. - Ορθή χρήση srand()/rand(). - Σωστή αναδροµή. Το πρόγραµµα λειτουργεί σωστά για διαφορετικά µεγέθη του πίνακα. - Καλή στοίχιση και ονόµατα µεταβλητών. - Ελλιπής υλοποίηση, µε warnings του compiler. - Προσπαθήστε να λύσετε την άσκηση για εξάσκηση. Page 16

- Καλή στοίχιση και ονόµατα µεταβλητών. - Καλή δουλειά. lab13grades - Σωστή στοίχιση και ονόµατα µεταβλητών. - Στον έλεγχο της µεταβλητής argc το σωστό θα ήταν να ελέγχετε για ισότητα µε το 2 µόνο. - Σωστή αναδροµή. - Καλή δουλειά. - Ορθή στοίχιση. - Ορθά σχόλια. - Ορθή χρήση srand()/rand(). - Εν µέρη σωστή αναδροµή. Εάν προσθέσω στην γραµµή 22 τον παρακάτω κώδικα if(i==0) randomnumbers[0] = 9999999; τότε το πρόγραµµα σας δεν πιάνει αυτό το µεγάλο νούµερο ως µέγιστο, αλλά το αµέσως επόµενο. Αυτό συµβαίνει διότι είσοδο της αναδροµή βάζετε στο 2ο όρισµα ++index αντί για index+1, µε αποτέλεσµα να αγνοείτε την µηδενική θέση του πίνακα. -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Το πρόγραµµα έχει error κατά το compilation καθώς δεν έχετε δηλώσει µια µεταβλητή. - Εάν δηλωθεί η µεταβλητή το πρόγραµµα τρέχει σωστά!!! - Προσέχετε πριν στείλετε µια εργασία να είναι σε κατάσταση που να τρέχει! -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Δεν ελέγχεται το argc -Σωστή χρήση του argv Page 17

- Καλή δουλειά! - Σωστή στοίχιση και ονόµατα µεταβλητών. lab13grades - Καλή δουλειά! - Σωστή υλοποίηση της bin2dec - Σωστή χρήση της pow. Δοκιµάστε στο σπίτι να την λύσετε χρησιµοποιώντας τον δεύτερο τρόπο (µε τα αθροίσµατα) που δείξαµε στον πίνακα - Ορθή στοίχιση. - Ορθά σχόλια. - Ορθή χρήση srand()/rand(). - Εν µέρη σωστή αναδροµή. Εάν προσθέσω στην γραµµή 22 τον παρακάτω κώδικα if(i==0) randomnumbers[0] = 9999999; τότε το πρόγραµµα σας δεν πιάνει αυτό το µεγάλο νούµερο ως µέγιστο, αλλά το αµέσως επόµενο. Αυτό συµβαίνει διότι είσοδο της αναδροµή βάζετε στο 2ο όρισµα ++index αντί για index+1, µε αποτέλεσµα να αγνοείτε την µηδενική θέση του πίνακα. - Καλή στοίχιση και ονόµατα µεταβλητών. - Καλή στοίχιση και ονόµατα µεταβλητών. - Δεν ελέγχετε την τιµή του argc πριν την προσπέλαση του πίνακα argv[]. Εάν ο χρήστης δεν δώσει παράµετρο από την γραµµή εντολών, τότε το πρόγραµµα τερµατίζει µε segmentation fault λόγω προσπέλασης πίνακα εκτός ορίων. - Εάν η είσοδος είναι αρνητικός αριθµός, η συνάρτηση δεν υπολογίζει σωστά τη δυαδική αναπαράσταση. - Ορθή στοίχιση. - Ορθά σχόλια. - Ορθή χρήση srand()/rand(). - Σωστή αναδροµή. Το πρόγραµµα λειτουργεί σωστά για διαφορετικά µεγέθη του πίνακα. Page 18

: - στοίχιση: ΟΚ - ονόµατα µεταβλητών: ΟΚ - χρήση srand/rand: ΟΚ - ορθότητα αναδροµής: Σωστή είναι, αλλά δεν τη έχετε ορίσει ωραία. πχ το sum=0 δεν χρειαζόταν. Να σκέφτεστε πάντα δύο πράγµατα. Τι κάνετε αν ξέρετε την λύση ενός υποπροβλήµατος και τι κάνετε στην ακραία περίπτωση που το πρόβληµά σας είναι το ελάχιστο δυνατό. - ορθότητα προγράµµατος: ΟΚ : - στοίχιση: OK - ονόµατα µεταβλητών:ok - έλεγχος argc: Δεν γίνεται έλεγχος. - χρήση argv: OK - ορθότητα αναδροµής:ok - γενικά: δοκιµάστε να το κάνετε και µε την εξής αναδροµή, πχ για το 1010 = 0 + 2(1 +2(0 + 2(1))) - Καλή στοίχιση και ονόµατα µεταβλητών. - Καλή δουλειά. - Σωστή στοίχιση και ονόµατα µεταβλητών. - Σωστή χρήση argc/argv. - Δεν χρειαζόταν να αντιγράψετε το argv[1] στο number για να καλέσετε την atoi. - Σωστή αναδροµή. - Καλή δουλειά. - Καλή στοίχιση και ονόµατα µεταβλητών. - Καλή δουλειά. - Σωστή στοίχιση και ονόµατα µεταβλητών. - Στον έλεγχο της µεταβλητής argc το σωστό θα ήταν να ελέγχετε για ισότητα µε το 2 µόνο. - Σωστή αναδροµή. - Καλή δουλειά. Page 19

: -Καλή στοίχιση -Χρήση srand/rand: ΟΚ -Ορθότητα αναδροµής: Σωστή αναδροµή -Το µέγεθος του πίνακα αλλάζει από το define -To πρόγραµµα λειτουργεί σωστά lab13grades -: -Καλή στοίχιση -Το πρόγραµµα δεν χρησιµοποιεί τις argc και argv για να πάρει όρισµα. -Δεν τυπώνει κάποιο µήνυµα πριν την scanf -Δουλεύει σωστά -Χρησιµοποιεί αναδροµή σωστά : - στοίχιση: OK - ονόµατα µεταβλητών: OK - χρήση srand/rand: OK - ορθότητα αναδροµής: OK - ορθότητα προγράµµατος: OK : Δεν έγινε (το αρχείο lab13b.c είναι ίδιο µε το lab13a.c -Δεν έχετε καλά ονόµατα µεταβλητών -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Το πρόγραµµα έχει warnings -Δεν ελέγχεται το argc -Δεν υλοποιείται σωστά το πρόγραµµα : - στοίχιση: ένα κακό return 0 - ονόµατα µεταβλητών: µονογραµµατικά - χρήση srand/rand: ΟΚ - ορθότητα αναδροµής: ΟΚ - ορθότητα προγράµµατος: ΟΚ : - στοίχιση: OK - ονόµατα µεταβλητών: Μονογραµµατικά - έλεγχος argc: Δεν γίνεται - χρήση argv: Δεν γίνεται - ορθότητα αναδροµής: ΟΚ - γενικά: δοκιµάστε να το κάνετε και µε την εξής αναδροµή, πχ για το 1010 = 0 + 2(1 +2(0 + 2(1))). Επίσης η άσκηση έλεγε να δίνεται είσοδο από την *γραµµή εντολών* (argc, argv) Page 20

- Καλή στοίχιση και ονόµατα µεταβλητών. - Καλή στοίχιση και ονόµατα µεταβλητών. - Δεν ελέγχετε την τιµή του argc πριν την προσπέλαση του πίνακα argv[]. Εάν ο χρήστης δεν δώσει παράµετρο από την γραµµή εντολών, τότε το πρόγραµµα τερµατίζει µε segmentation fault λόγω προσπέλασης πίνακα εκτός ορίων. - Εάν η είσοδος είναι αρνητικός αριθµός, η συνάρτηση δεν υπολογίζει σωστά τη δυαδική αναπαράσταση. -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Σωστός ο έλεγχος του argc -Σωστή χρήση του argv -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Σωστή η αναδροµή. -Αρκετά περίπλοκη αλλά σωστή η µετατροπή του αριθµού που δίνεται σαν string σε int που χρειάζεστε εσείς για το πρόγραµµά σας. Υπάρχουν τουλάχιστον 2 συναρτήσεις που παρέχονται από διάφορες βιβλιοθήκες για να κάνετε αυτή τη µετατροπή! Μπορείτε να βρείτε κάποια από αυτές και να τις προσαρµόσετε στη λύση σας; -Σωστό αποτέλεσµα. -Θα µπορούσατε να ελέγξετε αν ο χρήστης δίνει κάποια είσοδο πριν πάτε να διαβάσετε από την γραµµή εντολών και έτσι να σκάσει το πρόγραµµά σας σε περίπτωση που ο χρήστης δεν δίνει είσοδο! Page 21

-Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Σωστός ο έλεγχος του argc -Σωστή χρήση του argv - Καλή δουλειά! - Σωστή στοίχιση και ονόµατα µεταβλητών. lab13grades - Προσέξτε λίγο την στοίχιση. - Σωστή υλοποίηση, αλλά χωρίς αναδροµή. Προσπαθήστε να λύσετε την άσκηση στο σπίτι. -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα -Ένα λάθος που είχατε είναι ότι δεν εκτυπώσατε όλα τα στοιχεία του πίνακα αλλά µόνο το max. Έτσι δεν µπορούµε να καταλάβουµε αν είναι πραγµατικά το µεγαλύτερο στοιχείο του πίνακα παρά µόνο αν κοιτάξουµε ότι είναι σωστός ο κώδικας. ' -Το πρόγραµµά σας έπρεπε να διαβάζει είσοδο από τη γραµµή εντολών όπως έλεγε η εκφώνηση το οποίο σηµαίνει ότι κατά την εκτέλεση δίπλα από το σηµείο που καλείτε το πρόγραµµά σας θα έπρεπε να βάλετε τον αριθµό εισόδου. Η προσπέλαση της εισόδου θα έπρεπε να γίνει µε τη χρήση του πίνακα argv[] ο οποίος περιέχει όλα τα στοιχεία που γράφονται στη γραµµή εντολών δίπλα από το εκτελέσιµο! -Η έξοδός σας είναι πολύ πρόχειρη καθώς δεν υπάρχει ούτε µία αλλαγή γραµµής ή κάποιο κενό µεταξύ των στοιχείων για να εµφανίζονται πιο ευδιάκριτα τα νούµερα. -Σωστό αποτέλεσµα! Page 22

-Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Δεν ελέγχεται το argc -Σωστή χρήση του argv -Δεν έχετε καλά ονόµατα µεταβλητών -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Το πρόγραµµα έχει warnings -Δεν ελέγχεται το argc -Δεν υλοποιείται σωστά το πρόγραµµα : - στοίχιση: OK - ονόµατα µεταβλητών: OK - χρήση srand/rand: OK - ορθότητα αναδροµής: OK - ορθότητα προγράµµατος: OK : Δεν έγινε (το αρχείο lab13b.c είναι ίδιο µε το lab13a.c - Καλή στοίχιση και ονόµατα µεταβλητών. - Καλή δουλειά. lab13grades - Σωστή στοίχιση και ονόµατα µεταβλητών. - Σωστή χρήση argc/argv. - Δεν χρειαζόταν να αντιγράψετε το argv[1] στο number για να καλέσετε την atoi. - Σωστή αναδροµή. - Καλή δουλειά. Page 23

: - στοίχιση: ΟΚ - ονόµατα µεταβλητών: ΟΚ - χρήση srand/rand: ΟΚ - ορθότητα αναδροµής: Σωστή είναι, αλλά δεν τη έχετε ορίσει ωραία. πχ το sum=0 δεν χρειαζόταν. Να σκέφτεστε πάντα δύο πράγµατα. Τι κάνετε αν ξέρετε την λύση ενός υποπροβλήµατος και τι κάνετε στην ακραία περίπτωση που το πρόβληµά σας είναι το ελάχιστο δυνατό. - ορθότητα προγράµµατος: ΟΚ : - στοίχιση: OK - ονόµατα µεταβλητών:ok - έλεγχος argc: Δεν γίνεται έλεγχος. - χρήση argv: OK - ορθότητα αναδροµής:ok - γενικά: δοκιµάστε να το κάνετε και µε την εξής αναδροµή, πχ για το 1010 = 0 + 2(1 +2(0 + 2(1))) - Καλή στοίχιση και ονόµατα µεταβλητών. - Εφόσον χρησιµοποιείτε unsigned int πίνακα θα έπρεπε και η συνάρτηση να επιστρέφει unsigned int, όπως επίσης και η µεταβλητή max θα έπρεπε να είναι τύπου unsigned int. Είναι πολύ κακή πρακτική να συγκρίνετε ανόµοια πράγµατα µεταξύ τους. - Σωστή στοίχιση και ονόµατα µεταβλητών. - Λάθος χρήση argc/argv, πρώτα πρέπει να ελέγξετε το argc και µετά να χρησιµοποιήσετε το argv. Αλλιώς µπορεί να οδηγηθεί το πρόγραµµα σε segmentation fault. - Σωστή αναδροµή. - Καλή δουλειά. : -Καλή στοίχιση -Χρήση srand/rand: ΟΚ -Ορθότητα αναδροµής: Σωστή αναδροµή -Το µέγεθος του πίνακα αλλάζει από το define -To πρόγραµµα λειτουργεί σωστά -: -Καλή στοίχιση -Το πρόγραµµα δεν χρησιµοποιεί τις argc και argv για να πάρει όρισµα. -Δεν τυπώνει κάποιο µήνυµα πριν την scanf -Δουλεύει σωστά -Χρησιµοποιεί αναδροµή σωστά - Ορθή στοίχιση. - Ορθά σχόλια. - Ορθή χρήση srand()/rand(). - Σωστή αναδροµή. Το πρόγραµµα λειτουργεί σωστά για διαφορετικά µεγέθη του πίνακα. Page 24

: - Καλή στοίχιση - Σωστή χρήση srand/rand - Χρησιµοποιεί σωστά αναδροµή - Το πρόγραµµα χρησιµοποιεί define για το µέγεθος του πίνακα - Το πρόγραµµα τρέχει σωστά : -Καλή στοίχιση -Το πρόγραµµα χρησιµοποιεί argc argv για το πρόγραµµα - Το πρόγραµµα κάνει σωστά έλεγχο για την ορθότητα των ορισµάτων -Το πρόγραµµα βγάζει σωστό αποτέλεσµα -Χρησιµοποιεί αναδροµή : -Καλή στοίχιση -Σωστή χρήση srand/rand -Σωστή αναδροµή -Σωστό αποτέλεσµα -Σωστά χρησιµοποιείται η define για τον ορισµό του µεγέθους : -Καλή στοίχιση -Σωστά χρησιµοποιείτε argv για την είσοδο στο πρόγραµµα -Δεν κάνετε έλεγχο της argc όµως -Το πρόγραµµα αν δώσεις τα σωστά ορίσµατα δουλεύει σωστά -Σωστά χρησιµοποιείται η αναδροµή -Αν µπορείτε λύστε την για εξάσκηση χωρίς την χρήση της pow(), µε τον τρόπο που είδατε στο εργαστήριο : - Καλή στοίχιση - Σωστή χρήση srand/rand - Χρησιµοποιεί σωστά αναδροµή - Το πρόγραµµα χρησιµοποιεί define για το µέγεθος του πίνακα - Το πρόγραµµα τρέχει σωστά : -Καλή στοίχιση -Το πρόγραµµα χρησιµοποιεί argc argv για το πρόγραµµα - Το πρόγραµµα κάνει σωστά έλεγχο για την ορθότητα των ορισµάτων -Το πρόγραµµα βγάζει σωστό αποτέλεσµα -Χρησιµοποιεί αναδροµή - Καλή δουλειά! - Σωστή στοίχιση και ονόµατα µεταβλητών. - Προσέξτε λίγο την στοίχιση. - Σωστή υλοποίηση, αλλά χωρίς αναδροµή. Προσπαθήστε να λύσετε την άσκηση στο σπίτι. Page 25

-Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα -Ένα λάθος που είχατε είναι ότι δεν εκτυπώσατε όλα τα στοιχεία του πίνακα αλλά µόνο το max. Έτσι δεν µπορούµε να καταλάβουµε αν είναι πραγµατικά το µεγαλύτερο στοιχείο του πίνακα παρά µόνο αν κοιτάξουµε ότι είναι σωστός ο κώδικας. ' -Το πρόγραµµά σας έπρεπε να διαβάζει είσοδο από τη γραµµή εντολών όπως έλεγε η εκφώνηση το οποίο σηµαίνει ότι κατά την εκτέλεση δίπλα από το σηµείο που καλείτε το πρόγραµµά σας θα έπρεπε να βάλετε τον αριθµό εισόδου. Η προσπέλαση της εισόδου θα έπρεπε να γίνει µε τη χρήση του πίνακα argv[] ο οποίος περιέχει όλα τα στοιχεία που γράφονται στη γραµµή εντολών δίπλα από το εκτελέσιµο! -Η έξοδός σας είναι πολύ πρόχειρη καθώς δεν υπάρχει ούτε µία αλλαγή γραµµής ή κάποιο κενό µεταξύ των στοιχείων για να εµφανίζονται πιο ευδιάκριτα τα νούµερα. -Σωστό αποτέλεσµα! : - στοίχιση: ένα κακό return 0 - ονόµατα µεταβλητών: µονογραµµατικά - χρήση srand/rand: ΟΚ - ορθότητα αναδροµής: ΟΚ - ορθότητα προγράµµατος: ΟΚ : - στοίχιση: OK - ονόµατα µεταβλητών: Μονογραµµατικά - έλεγχος argc: Δεν γίνεται - χρήση argv: Δεν γίνεται - ορθότητα αναδροµής: ΟΚ - γενικά: δοκιµάστε να το κάνετε και µε την εξής αναδροµή, πχ για το 1010 = 0 + 2(1 +2(0 + 2(1))). Επίσης η άσκηση έλεγε να δίνεται είσοδο από την *γραµµή εντολών* (argc, argv) - Ορθή στοίχιση. - Ορθά σχόλια. - Ορθή χρήση srand()/rand(). - Σωστή αναδροµή. Το πρόγραµµα λειτουργεί σωστά για διαφορετικά µεγέθη του πίνακα. Page 26

- Καλή δουλειά! - Σωστή στοίχιση και ονόµατα µεταβλητών. lab13grades - Καλή δουλειά! - Σωστή υλοποίηση της bin2dec - Σωστή χρήση της pow. Δοκιµάστε στο σπίτι να την λύσετε χρησιµοποιώντας τον δεύτερο τρόπο (µε τα αθροίσµατα) που δείξαµε στον πίνακα -Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα ' -Το πρόγραµµα έχει error κατά το compilation καθώς δεν έχετε δηλώσει µια µεταβλητή. - Εάν δηλωθεί η µεταβλητή το πρόγραµµα τρέχει σωστά!!! - Προσέχετε πριν στείλετε µια εργασία να είναι σε κατάσταση που να τρέχει! - Καλή στοίχιση και ονόµατα µεταβλητών. - Εφόσον χρησιµοποιείτε unsigned int πίνακα θα έπρεπε και η συνάρτηση να επιστρέφει unsigned int, όπως επίσης και η µεταβλητή max θα έπρεπε να είναι τύπου unsigned int. Είναι πολύ κακή πρακτική να συγκρίνετε ανόµοια πράγµατα µεταξύ τους. - Σωστή στοίχιση και ονόµατα µεταβλητών. - Λάθος χρήση argc/argv, πρώτα πρέπει να ελέγξετε το argc και µετά να χρησιµοποιήσετε το argv. Αλλιώς µπορεί να οδηγηθεί το πρόγραµµα σε segmentation fault. - Σωστή αναδροµή. - Καλή δουλειά. Page 27

-Σωστή χρήση του srand/rand -Σωστή υλοποίηση για οποιοδήποτε µέγεθος πίνακα -Ένα λάθος που είχατε είναι ότι δεν εκτυπώσατε όλα τα στοιχεία του πίνακα αλλά µόνο το max. Έτσι δεν µπορούµε να καταλάβουµε αν είναι πραγµατικά το µεγαλύτερο στοιχείο του πίνακα παρά µόνο αν κοιτάξουµε ότι είναι σωστός ο κώδικας. ' -Η είσοδος που διαβάζετε από τη γραµµή εντολών είναι αποθηκευµένη στον πίνακα argv[] ο οποίος είναι τύπου char* και όχι τύπου int. αυτό σηµαίνει ότι η καταχώρηση num = *argv[1] δεν είναι σωστή καθώς παίρνει σαν τιµή τον αριθµό που αντιστοιχεί στο πρώτο γράµµα της εισόδου. Πρέπει λοιπόν να µετασχηµατίσετε τον αριθµό που παίρνετε σαν είσοδο σε µορφή κειµένου, σε µορφή αριθµού. Για να το κάνετε αυτό υπάρχουν πολλοί τρόποι όπως για παράδειγµα να χρησιµοποιήσετε την συνάρτηση atoi ή sscanf. Να κάνετε οπωσδήποτε αυτή την αλλαγή καθώς αποτελεί πολύ σηµαντικό κοµµάτι του προγραµµατισµού και της άσκησης. -Αν γίνει η παραπάνω αλλαγή τότε κάποια από τα αποτελέσµατα είναι σωστά και έχουν να κάνουν µε - Καλή στοίχιση και ονόµατα µεταβλητών. - Ελλιπής υλοποίηση, µε warnings του compiler. - Προσπαθήστε να λύσετε την άσκηση για εξάσκηση. - Καλή στοίχιση και ονόµατα µεταβλητών. Ο έλεγχος για index == 0, είναι περιττός από την στιγµή που για index < N, εκτελείται το index++ και η ελάχιστη τιµή του είναι 0 (κατά την πρώτη κλήση της arraymax() από την main). - Ελλιπής υλοποίηση, µε warnings του compiler. - Προσπαθήστε να λύσετε την άσκηση για εξάσκηση. Page 28