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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

to post PASS PASS FAIL

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Τετάρτη 7/12/2016, 21:00

char name[5]; /* define a string of characters */

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

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

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

lab3grades οριακό PASS

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

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

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

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

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

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

LAB1 ΛΥΣΗ. Ευρετήριο απαντήσεων ανά τµήµα: Ευρετήριο απαντήσεων ανά µήνυµα λάθους/προειδοποίησης

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

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

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

Μ.Σ. lab12grades FAIL. η συνθήκη για έξοδο είναι και αυτή σωστή. Οριακό PASS. στα string. - σωστή και η κλήση της συνάρτησης.

Ψευδοκώδικας. November 7, 2011

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

Transcript:

Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 321 FAIL Άσκηση 1η: - Δεν βάζετε σχόλια στην αρχή του κώδικα - Στοίχιση οκ, τα ονόµατα των µεταβλητών καλό είναι να είναι πιο περιγραφικά - Δεν χρησιµοποιείτε #define για να ορίσετε τα µεγέθη των πινάκων - Δεν κάνετε αρχικοποίηση των πινάκων - Η scanf είναι λάθος, δεν χρειάζεται να χρησιµοποιήσουµε βοηθητική µεταβλητή για να διαβάζει το space, αρκεί να γράψουµε scanf(" %c %d"); - Στην for(len=0;pinakas[len]!=0;len++){} αν ο χρήστης δεν βάλει καθόλου συχνότητα εµφάνισης για το a, η τιµή του len θα παραµείνει µηδέν - Στην επόµενη for(i=0;j<=len;j++), η µεταβλητή j δεν αρχικοποιείται πουθενά 1058 FAIL 1349 PASS : - Δεν παραδώθηκε - Ο κώδικας έχει warnings από unused variables που είναι σε κώδικα που έχετε µέσα στα σχόλια. -Κακή στοίχιση κώδικα. Το while γιατί τόσες γραµµές κάτω µετά τη do; -To πρόγραµµα βάζει segmentation fault µετά το πρώτο input, π.χ d 7. Ο λόγος είναι η γραµµή 20, η οποία θα έπρεπε να είναι deiktis = xaraktiras - 'a'; αντί για deiktis = 'xaraktiras' - 'a'; που έχετε. -Όσων αφορά τον κώδικα που έχετε µέσα σε σχόλια για τη δηµιουργία του πίνακα µε τη νέα συµβολοσειρά είναι µία καλή αρχή, διατρέχοντας σωστά τους δύο πίνακες. Λείπε η εγγραφή στον πίνακα str. Άσκηση 1η: - Πολύ καλή στοίχιση και καλά ονόµατα µεταβλητών - Η βιβλιοθήκη time.h δεν χρειάζεται - Ο κώδικας είναι σωστός, τα µόνα σηµεία που δεν καλύψατε είναι: 1. χρήση #define για τα µεγέθη των πινάκων 2. Στην εκτύπωση του πίνακα symboloseira έπρεπε στην printf να κάνετε εκτύπωση του αλφαριθµητικού ( printf("%s\n", symboloseira);) αντί για το βρόχο for. Αυτό απαιτεί το αλφαριθµητικό να τελειώνει µε '\0'(άρα µια θέση ακόµη στον πίνακα για το \0). - Κατά τα άλλα µπράβο σας! : - Δεν παραδώθηκε

Άσκηση 1η 1482 PASS -Πολύ καλή προσπάθεια. -Σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Καλή στοίχιση και καλά ονόµατα µεταβλητών εκτός του χ. -Η άσκηση είναι ηµιτελής. -Αυτά που έχετε κάνει είναι αρκετά σωστά µέχρι στιγµής. 1556 FAIL -Κακή στοίχιση κώδικα, καθώς το kate είναι αρύθµιστο. -Μέχρι το σηµείο που φτάσατε, δηλαδή πριν τη δηµιουργία του πίνακα-string είναι οκ ο κώδικας. Η λογική σας για µε το for και if για τη δηµιουργία του πίνακα-string είναι σωστή. Έµενε η τοποθέτηση των σωστών γραµµάτων και του %. -Οι σταθερές (26) να δηλώνονται µε define. 1559 PASS 1561 PASS -Πολυ καλή προσπάθεια. Ο κώδικας σας δεν τρέχει σωστά επειδή δεν έχετε αρικοποιήσει τον πίνακα σε 0. Κατά τα άλλα άριστα. - Μη χρησιµοποιείς ποτέ καθολικές µεταβλητές. Οι first_char, last_char θα έπρεπε να είχαν δηλωθεί ως σταθερές (είτε µε const είτε µε #define) και οι υπόλοιπες έπρεπε να είχαν δηλωθεί ως τοπικές µεταβλητές µέσα στη main. Επίσης, συνηθίζεται τα ονόµατα των σταθερών να γράφονται µε όλα τα γράµµατα κεφαλαία για να είναι άµεσα εµφανής η λειτουργία τους στο πρόγραµµα. - Σωστή η συνθήκη της while. - Σχετικά µε το σχόλιό σου για το '0 -' : αφού διαβάσεις µε scanf, κάνεις έλεγχο για το αν αυτό που διάβασες είναι 0 και αν ναι break. - Τα δύο if θα µπορούσες να τα είχες γράψει ως ένα: if (printed_char >= first_char && printed_char <= last_char) - Πριν καν ξεκινήσει το while έπρεπε να είχες αρχικοποιήσει το times_seen_arr ώστε να περιέχει µηδέν σε όλα τα κελιά, διαφορετικά την πρώτη φορά που γίνεται η ανάθεση one_more = times_seen_arr[find_pos], η τιµή του one_more θα είναι "σκουπίδια". - Δες τη λύση για το υπόλοιπο κοµµάτι της άσκησης.

1562 PASS 1563 PASS -Πολύ καλή προσπάθεια, µπράβο. -Το lower_card αποτιµάται σε 26 και µέγιστη συχνότητα γραµµάτων 10. Αν ο πίνακας output_string έχει µέγεθος 26*10 τότε τα % και το '\0' δε θα χωράνε στη χειρότερη περίπτωση. Θέλεις 26*11 + 1. -Αν µετά την εντολή output_string[k] = '%'; έβαζες και k++, θα έπαιρνες σωστό output. Τώρα, απλά την επόµενη φορά κάνεις overwrite αυτό το χαρακτήρα. Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία σχόλια -Πολύ ωραία η έξοδος του προγράµµατος 1565 οριακό PASS -Έχετε συλλάβει περίπου σωστά το νόηµα της άσκησης, αλλά η υλοποίηση σας θα µπορούσε να είναι πολύ πιο απλή. -Καταρχήν ο πινακας έπρεπε να δηλωθεί ως int και όχι ως char, αφού πρέπει να κρατάει το πλήθος κάθε βαθµου και θα έπρεπε να έχει οπωσδήποτε αρχικοποιηθεί σε 0. -Το n έπρεπε να δηλωθεί ως const int n=6 και όχι cost n=6. -Δεν χρειάζονται πίνακες για τα αστεράκια και τις παύλες. -Χρησιµοποιείτε 12 for για την εκτύπωση των αποτελεσµάτων τη στιγµή που θα µπορούσατε να έχετε µόλις 3. Χρησιµοποιώντας αριθµητική χαρακτήρων στην printf θα µπορούσατε να τυπώνετε κάθε φορά το επόµενο γράµµα ( 'A' + i ). Κοιτάξτε την ενδεικτική λύση. -Όσον αφορά τη στοίχιση, προσέξτε που κλείνουν οι αγκύλες. Π.χ. στη for πρεπει να κλείνει κάτω από το for. -Σωστή χρήση / και %. -Το αρχικό σχόλιο είναι φτωχό. Άσκηση 2: -Στάλθηκε αλλά περιέχει µόνο τη main και δύο δηλώσεις.

1566 οριακό PASS -Κακό αρχικό σχόλιο. Θα πρέπει να γίνεται συνοπτική περιγραφή του προγράµµατος. -Καλή προσπάθεια, ωστόσο η έξοδος του προγράµµατος σας δεν είναι σωστή. -Σωστή χρήση define καθώς και των / και %. -Γίνεται σωστά αρχικοποίηση του πίνακα σε 0. Μπορούσε να γίνει και ως εξής πιο απλά: size[n] = {0} -Σωστή χρήση αριθµητικής χαρακτήρων -Η έξοδος σας δεν είναι σωστή γιατί καταρχήν βάζετε \n κάθε φορά που τυπώνετε το βαθµό και το πλήθος και κατα δεύτερον διότι οι for για τις παύλες και τα αστεράκια έπρεπε να είναι ανεξάρτητες και όχι η µία µέσα στην άλλη. 1567 FAIL -Το όνοµα του αρχείου είναι λάθος. Θα έπρεπε να είναι "lab1.c" και όχι "lab5 1.c". Ποτέ κενά µέσα σε ονόµατα φακέλων ή αρχείων στα linux. Χρησιµοποιείστε "_" αντί κενού. -Σε κάποια σηµεία κακή στοίχιση κώδικα, µε περιττά κενά κάτω από κάποιες εντολές. -Το πρόγραµµα περιέχει warnings, τα οποία δείχνουν ότι δεν έχετε καταλάβει πίνακες και πώς τους διαχειριζόµαστε. Αναλυτικά: -ln46--> δεν υπάρχει \0. Μόνο \n, \t,... -ln43--> Στο τέλος υπάρχει ένα % που το πρόγραµµα δεν ξέρει τι να το κάνει, και βγάζει σχετικό warning. -ln43--> Στο printf τo %c περιµένει χαρακτήρα και το %d ακέραιο, αλλά εσείς περνάτε αναφορά σε πίνακα χαρακτήρων (&final_word) και αναφορά σε ακέραιο (&frequency). Ο compiler βγάζει δύο σχετικά warning. -Παρόλα αυτά το πρόγραµµα κατά τύχη εκτυπώνει κάποιες διευθύνσεις µνήµης. Όµως υπάρχουν πολύ πιο σοβαρά προβλήµατα. Αναλυτικά: -Ο πίνακας sum[m] δεν έπρεπε να δηλώνεται. -Η εκφώνηση ζητούσε ρητά να υπάρχει ένας µόνο πίνακας που να αποθηκεύει τα πλήθη εµφανίσεων χαρακτήρα, όχι και πίνακας char word[n] που να αποθηκεύει τα γράµµατα που διαβάστηκαν. Ακόµα και έτσι γιατί ο word έχει µέγεθος Ν και ο άλλος Μ. -Το 2πλό for στις γραµµές 29-30 τι κάνει ή τι θα θέλατε να κάνει; -Δηλώσεις µεταβλητών πάντα στην αρχή του κώδικα. Το sum[i] είναι µεταβλητό. Σε στατική δήλωση πίνακα δε µπορείτε να περνάτε σα µέγεθος κάτι που θα αλλάξει κατά το τρέξιµο του προγράµµατος. Μεταβλητό µέγεθος πίνακα µπορούµε να έχουµε ΜΟΝΟ µε δυναµική δέσµευση π.χ. µε malloc. -Τέλος το πρόγραµµα αφού δώσουµε τα "- 0" θέλει και µία ακόµα φορά να δοθεί αυτό. Ο λόγος είναι το επιπλέον \n που υπάρχει στη scanf.

1568 οριακό PASS Το θέµα του email καθώς και το όνοµα του tgz δεν είναι σωστά! - Το πρόγραµµα µέχρι εκεί που έχεις φτάσει δουλεύει σωστά, αλλά δεν κατασκευάζεται το ιστόγραµµα. -Σωστή χρήση του define. -Έγινε αρχικοποίηση του πίνακα σε 0 -Σωστή χρήση αριθµητικής χαρακτήρων στην printf. Άσκηση 1η 1571 FAIL -Αρκετά καλή προσπάθεια. -Το πρόγραµµα σας έχει συντακτικά λάθη. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Λάθος χρήση scanf. -Σωστή χρήση / και % αλλά µη σωστή χρήση του πίνακα. -Στη printf για να εµφανίσετε * και αντίστοιχα χρειάζεται επανάληψη µε πράξεις που έχετε ήδη βρει. -Μέτρια στοίχιση και καλά ονόµατα µεταβλητών. 1572 οριακό PASS -Έχετε συλλάβει περίπου σωστά το νόηµα της άσκησης, αλλά η υλοποίηση σας θα µπορούσε να είναι πολύ πιο απλή. -Καταρχήν ο πινακας έπρεπε να δηλωθεί ως int και όχι ως char, αφού πρέπει να κρατάει το πλήθος κάθε βαθµου και θα έπρεπε να έχει οπωσδήποτε αρχικοποιηθεί σε 0. -Το n έπρεπε να δηλωθεί ως const int n=6 και όχι cost n=6. -Δεν χρειάζονται πίνακες για τα αστεράκια και τις παύλες. -Χρησιµοποιείτε 12 for για την εκτύπωση των αποτελεσµάτων τη στιγµή που θα µπορούσατε να έχετε µόλις 3. Χρησιµοποιώντας αριθµητική χαρακτήρων στην printf θα µπορούσατε να τυπώνετε κάθε φορά το επόµενογράµµα ( 'A' + i ). Κοιτάξτε την ενδεικτική λύση. -Όσον αφορά τη στοίχιση, προσέξτε που κλείνουν οι αγκύλες. Π.χ. στη for πρεπει να κλείνει κάτω από το for. -Σωστή χρήση / και %. -Το αρχικό σχόλιο είναι φτωχό. Άσκηση 2: -Στάλθηκε αλλά περιέχει µόνο τη main και δύο δηλώσεις.

1573 PASS -Μπράβο, πολύ καλή προσπάθεια. -Πολύ καλο αρχικό σχόλιο. -Σωστή χρήση του define, όπως και των / και %. -Σωστή στοίχιση, µεταβλητές και έξοδος Άσκηση 2: -Περιέχει µόνο τη main. 1574 οριακό PASS 1575 FAIL -Σε γενικές γραµµές φαίνεται να έχει γίνει µία καλή προσπάθεια, αν και η άσκηση δεν έχει ολοκληρωθεί. -Ο str[limit] δηλώθηκε αλλά δεν προλάβατε να γράψετε σε αυτό, εξού και το warning. - Στον υπολογισµό της θέσης του πίνακα όπου θα αποθηκευτούν οι πληθυκότητες, κανονικά η πράξη είναι plithos_grammaton[gramma -'a'] αντί για plithos_grammaton[gramma %'a'] αλλά εφόσον σας δουλεύει κανονικά, είναι οκ. -Παρόλο που δεν προλάβατε να ολοκληρώσετε την άσκηση, καλά κάνατε να τυπώσετε τον πίνακα plithos_grammaton, για να δείξετε ότι υπολογίστηκε σωστά. Άσκηση 1η: - Έχετε καλή στοίχιση και καλά ονόµατα µεταβλητών - Χρησιµοποιείτε #define Ν (πρέπει να είναι 26 όµως, όσο τα γράµµατα της αγγλικής αλφαβήτας), όµως γιατί δεν βάζετε και το µέγεθος του πίνακα str[] µε #define; - Η χρήση της scanf είναι λανθασµένη, γι' αυτό και το πρόγραµµα δεν τερµατίζει. Δεν χρειάζεται να ορίσετε char space για το κενό που πληκτρολογεί ο χρήστης, αρκεί να αφήσετε στην scanf ένα space ανάµεσα στους χαρακτήρες που διαβάζετε (δηλαδή scanf(" %c %d", &gramma, & syxnothta);) - Στη συνθήκη της while έχετε συντακτικό λάθος (πρέπει να βάζετε µονά ' ' όταν συγκρίνετε χαρακτήρες (δηλαδή gramma!= '-' )) - Στην for, µετά το πρώτο µέρος i=0 βάζουµε ; όχι κόµµα - Η συνθήκη ελέγχου της for (emfanisis[i]>0) είναι λάθος, γιατί ξεκινώντας από το χαρακτήρα a, αν αυτό ή µε τη σειρά τα υπόλοιπα έχουν συχνότητα µηδέν, τότε η for τερµατίζει, ενώ αυτό που θέλουµε είναι να προχωρήσει στον επόµενο χαρακτήρα της αλφαβήτας. - Στην printf στο τέλος δεν πρέπει να βάλετε %285s από τη στιγµή που εκτυπώνετε το αλφαριθµητικό, αρκεί να έχετε προσθέσει στο τέλος του string \0(που δεν το κάνετε). : - Δεν παραδώθηκε

1577 οριακό PASS 1578 PASS -Κακό αρχικό σχόλιο. Θα πρέπει να γίνεται συνοπτική περιγραφή του προγράµµατος. -Καλή προσπάθεια, ωστόσο η έξοδος του προγράµµατος σας δεν είναι σωστή. -Σωστή χρήση define καθώς και των / και %. -Γίνεται σωστά αρχικοποίηση του πίνακα σε 0. Μπορούσε να γίνει και ως εξής πιο απλά: size[n] = {0} -Σωστή χρήση αριθµητικής χαρακτήρων -Η έξοδος σας δεν είναι σωστή γιατί καταρχήν βάζετε \n κάθε φορά που τυπώνετε το βαθµό και το πλήθος και κατα δεύτερον διότι οι for για τις παύλες και τα αστεράκια έπρεπε να είναι ανεξάρτητες και όχι η µία µέσα στην άλλη. Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Πολυ ωραία σχόλια -Σωστή χρήση του define για το µέγεθος του πίνακα. -Αρχικοποιούµε πίνακες σε for loop -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία η έξοδος του προγράµµατος 1579 PASS 1580 FAIL -Μπράβο, πολύ καλή προσπάθεια. -Πολύ καλο αρχικό σχόλιο. -Σωστή χρήση του define, όπως και των / και %. -Σωστή στοίχιση, µεταβλητές και έξοδος Άσκηση 2: -Περιέχει µόνο τη main. Πάρα πάρα πολλά συντακτικά λάθη!! - Στο τέλος των εντολών βάζουµε ; - Οι βρόχοι (for, while) θέλουν αγκύλες πχ. while(<συνθήκη>) { <εδώ γράφω τον κώδικα του βρόχου>} - Γενικότερα, διαβάστε όλη την θεωρία από την αρχή και κάντε ΠΟΛΛΗ εξάσκηση κώδικα.

1581 FAIL -Το πρόγραµµα δεν κάνει compile γιατί περιεχέι πολλά errors. Στην ουσία είναι το ίδιο λάθος αλλά επαναλαµβάνεται πολλές φορές και θα µπορούσατε να το είχατε διορθώσει. Το πρόβληµα είναι ότι στην printf δεν έχετε βάλλει το %d για να ξέρει που θα τυπώσει το αποτέλεσµα. -Γενικά έχει γίνει ελάχιστη προσπάθεια. Αναλυτικά: -- Το grades[6] θα έπρεπε να είναι τύπου int και όχι char εφόσον εκεί αποθηκεύουµε αριθµούς. -- Επίσης, θα έπρεπε να προηγηθεί αρχικοποίηση αυτού του πίνακα µε 0. -- Ο λόγος που το πρόγραµµα δε µπορεί να τερµατίσει µε την είσοδο της - είναι αφενός το scanf(" %c ", &grade); που έπρεπε να είναι scanf(" %c", &grade); και αφετέρου το do-while που έχει εµφωλευµένο το for. To for είναι τελείως άχρηστο εφόσον η συνθήκη τερµατισµού ελέγχεται ήδη από το while. --Η εκτύπωση των αποτελεσµάτων δε µπορεί να δουλέψει εφόσον ο κώδικας περιέχει errors. -Όταν θα στέλνετε ασκήσεις, φροντίστε ο κώδικας που παραδίδετε να περνάει από compile. Κώδικας που δεν κάνει compile, δε βαθµολογείται. Φροντίστε τουλάχιστον να βάλλετε σε σχόλια τις γραµµές που δεν κάνουν compile!! Άσκηση 1η 1582 FAIL -Αρκετά καλή προσπάθεια. -Το πρόγραµµα σας έχει συντακτικά λάθη. -Δεν υπάρχει σχόλιο. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Λάθος χρήση scanf. -Λάθος σύνταξη for,επίσης να χρησιµοποιήτε και τις υπόλοιπες δοµές όταν χρειάζεται. -Χάλια στοίχιση αλλά καλά ονόµατα µεταβλητών. -Δεν έχετε βάλει στην καταχώρηση του string το % για το διαχωρισµό γραµµάτων και το \0 στο τέλος.

1583 FAIL -Το πρόγραµµα δεν κάνει compile γιατί περιεχέι πολλά errors. Στην ουσία είναι το ίδιο λάθος αλλά επαναλαµβάνεται πολλές φορές και θα µπορούσατε να το είχατε διορθώσει. Το πρόβληµα είναι ότι στην printf δεν έχετε βάλλει το %d για να ξέρει που θα τυπώσει το αποτέλεσµα. -Γενικά έχει γίνει ελάχιστη προσπάθεια. Αναλυτικά: -- Το grades[6] θα έπρεπε να είναι τύπου int και όχι char εφόσον εκεί αποθηκεύουµε αριθµούς. -- Επίσης, θα έπρεπε να προηγηθεί αρχικοποίηση αυτού του πίνακα µε 0. -- Ο λόγος που το πρόγραµµα δε µπορεί να τερµατίσει µε την είσοδο της - είναι αφενός το scanf(" %c ", &grade); που έπρεπε να είναι scanf(" %c", &grade); και αφετέρου το do-while που έχει εµφωλευµένο το for. To for είναι τελείως άχρηστο εφόσον η συνθήκη τερµατισµού ελέγχεται ήδη από το while. --Η εκτύπωση των αποτελεσµάτων δε µπορεί να δουλέψει εφόσον ο κώδικας περιέχει errors. 1584 οριακό PASS -Όταν θα στέλνετε ασκήσεις, φροντίστε ο κώδικας που παραδίδετε να περνάει από compile. Κώδικας που δεν κάνει compile, δε βαθµολογείται. Φροντίστε τουλάχιστον να βάλλετε σε σχόλια τις γραµµές που δεν κάνουν compile!! Δεν έχετε θέµα στο mail. -Το σχόλιο θα µπορούσε να είναι καλύτερο. -Οι µεταβλητές δεν είναι όλες περιγραφικές. -Αρκετά καλή στοίχιση. -Στη scanf σας λείπει ένα κένο δηλαδή " %c". -Και σας λείπει ακριβώς αυτό που λέτε στο σχόλιο. -Καλή προσπάθεια. 1587 PASS Άσκηση 2: Δεν εστάλη. -Πολύ καλές µεταβλητές και στοίχιση. -Το σχόλιο είναι κάπως φτωχό. -Λείπει το κενό στη scanf, δηλαδή πρέπει " %c" επειδή διαβάζεις χαρακτήρα. -Σωστός κώδικας και πολύ καλή δουλειά. Άσκηση 2: Δεν εστάλη.

Άσκηση 1η 1589 PASS -Πάρα πολύ καλή προσπάθεια. -Λείπει το σχόλιο στη πρώτη γραµµή. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Στη scanf έπρεπε να έχετε κενό µεταξύ και %. -Σωστή χρήση / και %. -Στη printf για το πλήθος το γραµµάτων έπρεπε να είχατε %3d. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Το πρόγραµµα σας δεν έχει τελειώσει, έχει συντακτικά λάθη, για παράδειγµα string.h και strings.h. -Σωστή χρήση του define. 1590 PASS Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία η έξοδος του προγράµµατος

Άσκηση 1η 1591 FAIL -Καλή προσπάθεια. Το πρόγραµµα έχει όµως λογικά λάθη και προειδοποιήσεις. -Λάθος χρήση scanf, λείπει ένα κενό µεταξύ του 1ου % και της παρένθεσης, επίσης έχετε λάθος τη σύνταξη της 2ης scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Χάλια στοίχιση αλλά καλά ονόµατα µεταβλητών. -Λάθος έλεγχος. -Λάθος στο τρόπο εκτύπωσης. -Το πρόγραµµα έχει µόνο µια printf ούτε καν scanf.

1592 FAIL Άσκηση 1η: - Έχετε καλή στοίχιση και καλά ονόµατα µεταβλητών - Χρησιµοποιείτε #define Ν (πρέπει να είναι 26 όµως, όσο τα γράµµατα της αγγλικής αλφαβήτας), όµως γιατί δεν βάζετε και το µέγεθος του πίνακα str[] µε #define; - Η χρήση της scanf είναι λανθασµένη, γι' αυτό και το πρόγραµµα δεν τερµατίζει. Δεν χρειάζεται να ορίσετε char space για το κενό που πληκτρολογεί ο χρήστης, αρκεί να αφήσετε στην scanf ένα space ανάµεσα στους χαρακτήρες που διαβάζετε (δηλαδή scanf(" %c %d", &gramma, & syxnothta);) - Στη συνθήκη της while έχετε συντακτικό λάθος (πρέπει να βάζετε µονά ' ' όταν συγκρίνετε χαρακτήρες (δηλαδή gramma!= '-' )) - Στην for, µετά το πρώτο µέρος i=0 βάζουµε ; όχι κόµµα - Η συνθήκη ελέγχου της for (emfanisis[i]>0) είναι λάθος, γιατί ξεκινώντας από το χαρακτήρα a, αν αυτό ή µε τη σειρά τα υπόλοιπα έχουν συχνότητα µηδέν, τότε η for τερµατίζει, ενώ αυτό που θέλουµε είναι να προχωρήσει στον επόµενο χαρακτήρα της αλφαβήτας. - Στην printf στο τέλος δεν πρέπει να βάλετε %285s από τη στιγµή που εκτυπώνετε το αλφαριθµητικό, αρκεί να έχετε προσθέσει στο τέλος του string \0(που δεν το κάνετε). : - Δεν παραδώθηκε Λάθος θέµα e-mail. Άσκηση 1η 1593 FAIL -Δεν υπάρχει το αρχικό σχόλιο. -Το πρόγραµµα έχει πολλά συντακτικά λάθη και είναι ηµιτελές. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -ΛΑΘΟΣ: οι δηλώσεις είναι λάθος! Δεν έχουµε πίνακα χαρακτήρων αλλά ακεραίων. -Σωστή χρήση scanf. -Καλή στοίχιση και ονόµατα µεταβλητών. 1594 FAIL Δεν εστάλη άσκηση

Άσκηση 1η 1595 FAIL -Αρκετά καλή προσπάθεια. -Το πρόγραµµα σας έχει συντακτικά λάθη. -Δεν υπάρχει σχόλιο. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Λάθος χρήση scanf. -Λάθος σύνταξη for,επίσης να χρησιµοποιήτε και τις υπόλοιπες δοµές όταν χρειάζεται. -Χάλια στοίχιση αλλά καλά ονόµατα µεταβλητών. -Δεν έχετε βάλει στην καταχώρηση του string το % για το διαχωρισµό γραµµάτων και το \0 στο τέλος. 1596 FAIL Άσκηση 1η: - Βάζετε σχόλια στην αρχή του κώδικα και καλά ονόµατα στις µεταβλητές - Καλά ορίζετε µε #define το µέγεθος Ν του πίνακα συχνοτήτων, όµως ο τελικός πίνακας θα είναι µεγέθους Ν*10+25+1(10 η max εµφάνιση κάθε χαρακτήρα, 25 θέσεις για max σύβµολα % και µια θέση για το \0) - Κάνετε σωστά την πράξη για να βρείτε την θέση του πίνακα συχνοτήτων ανάλογα µε την είσοδο κάθε φορά - Σε βρόχο do {...} while(...); στο τέλος θέλει ; - Η συνθήκη στην while (gramma!= -0) είναι λάθος, για να δούµε αν ο χρήστης έβαλε "- 0" ως είσοδο πρέπει να γράψουµε (gramma!= '-' ) - Ο βρόχος for δεν κλείνει. λείπει η }, αυτό προκαλεί compile error - Μέσα στο for, εκτυπώνεται Ν φορές το µήνυµα pinakas2 ( µέσω της printf("pinakas2"); )... - Η πράξη pinakas2[i]= gramma * pinakas[i]; είναι πολύ λάθος (η µεταβλητή gramma περιέχει την παύλα '-' και το πολ/ζετε µε το frequency?? ) : - Δεν παραδώθηκε

Άσκηση 1η 1597 FAIL -Δεν είναι κατανοητό το αρχικό σχόλιο. -Το πρόγραµµα έχει πολλά συντακτικά λάθη και είναι ηµιτελές. -Λάθος χρήση του define για το µέγεθος του πίνακα. -ΛΑΘΟΣ: δε βάζουµε το ίδιο όνοµα για πίνακα (το οποίο δεν είναι και σωστό Ρ) µε το µέγεθος του define (P επίσης). -Λάθος χρήση scanf. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. 1598 PASS Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία η έξοδος του προγράµµατος 1599 FAIL -Το πρόγραµµα σου δεν κάνει compile. -Δηλώνεις σταθερά 6 και δεν τη χρησιµοποιείς πουθενά. -Η main δεν κλείνει πουθενά και στο βρόχο do δεν υπάρχει συνθήκη. -Ο κώδικας στην ουσία δεν κάνει τίποτα. Ο τρόπος σκέψης σου είναι λανθασµένος.

1600 οριακό PASS Άσκηση 1η -Πολύ καλή προσπάθεια. -Σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Καλή στοίχιση και καλά ονόµατα µεταβλητών. -Η άσκηση είναι ηµιτελής. -Λάθος στo include του string.h. -Σύνταξη scanf? -Όχι και τόσο καλά ονόµατα αρχείων, αλλά καλή στοίχιση. -Δείτε λύση. Το θέµα του email καθώς και το όνοµα του tgz δεν είναι σωστά! 1601 οριακό PASS 1602 FAIL Δεν ελήφθη άσκηση 1604 PASS - Το πρόγραµµα µέχρι εκεί που έχεις φτάσει δουλεύει σωστά, αλλά δεν κατασκευάζεται το ιστόγραµµα. -Σωστή χρήση του define. -Έγινε αρχικοποίηση του πίνακα σε 0 -Σωστή χρήση αριθµητικής χαρακτήρων στην printf. -Καλό σχόλιο και καλές µεταβλητές. -Όχι πολυ καλή µορφοποίηση κώδικα. Να αφήνετε καµιά κενή σειρά στις εντολές. -Γενικά σωστός κώδικας και πάρα πολύ καλή δουλειά, µπράβο. Άσκηση 2:

1605 οριακό PASS Ασκηση 1η: - Πολύ καλά σχόλια στο πρόγραµµα - Στην γραµµή 5, έχετε γράψει λάθος το #include - Πολύ σωστά δηλώνετε µε #define τα µεγέθη των πινάκων, για τον τελικό πίνακα χρειάζονται 286 θέσεις, όχι 287(σωστά όµως λέτε τις πράξεις) - Οι scanf στην αρχή του κώδικα είναι λάθος, για να διαβάσουµε την είσοδο αρκεί µια scanf(" %c %d", &x, &num); Μάλιστα, προκαλείται segmentation fault έτσι όπως είναι γραµµένες - Σας βγάζει πολλά warnings γιατί: 1. η µεταβλητή x είναι τύπου char, ενώ οι θέσεις ενός πίνακα (όπως στον πίνακα fr[ ]) δηλώνονται µε αριθµούς (πρώτη, δεύτερη κλπ), συνεπώς η δήλωση fr[x]!= 10 είναι λάθος. Το σωστό είναι fr['x']!= 10, δηλαδή να ερµηνεύσουµε το x σαν αριθµό. Όµως αυτή η έκφραση δεν στέκει λογικά. Προφανώς θέλατε το num (συχνότητα εµφάνισης) του χαρακτήρα x να είναι!=10 και βασικά το!= 10 επίσης δεν στέκει λογικά, το σωστό θα ήταν <=10. (αυτό σε συνδιασµό µε το σηµείο 2) 2. Αυξάνετε την συχνότητα εµφάνισης ενός χαρακτήρα κατά ένα, γιατί; Αφού ο χρήστης µας δίνει την συχνότητα εµφάνισης από την είσοδο - Επίσης η scanf(" %c ",x); είναι λάθος γραµµένη, σας λείπει το & µπροστά από το x, αλλά γιατί να διαβάζετε έναν χαρακτήρα µόνο; - Στις γραµµές 29 & 33 έχετε το ίδιο λάθος: όταν αναφερόµαστε σε χαρακτήρα βάζουµε µονά εισαγωγικά, ενώ για αλφαριθµητικό διπλά - ΠΡΟΣΟΧΗ: αν έχω διπλά εισαγωγικά και κενά µέσα σε αυτά (πχ. " φρ " ) τότε θα πάρει ως µέρος του αλφαριθµητικό ΚΑΙ όλα τα spaces - Στην γραµµή 29 επίσης, η µεταβλητή j δεν έχει αρχικοποιηθεί (apotelesma[j+1] = '%';), αυτό οδηγεί στο να βάλουµε το χαρακτήρα % σε τυχαία θέση στον πίνακα 1606 FAIL : - Δεν παραδώθηκε Πάρα πάρα πολλά συντακτικά λάθη!! - Στο τέλος των εντολών βάζουµε ; - Οι βρόχοι (for, while) θέλουν αγκύλες πχ. while(<συνθήκη>) { <εδώ γράφω τον κώδικα του βρόχου>} - Γενικότερα, διαβάστε όλη την θεωρία από την αρχή και κάντε ΠΟΛΛΗ εξάσκηση κώδικα.

1607 οριακό PASS 1608 FAIL -Σε γενικές γραµµές φαίνεται να έχει γίνει µία καλή προσπάθεια, αν και η άσκηση δεν έχει ολοκληρωθεί. -Ο str[limit] δηλώθηκε αλλά δεν προλάβατε να γράψετε σε αυτό, εξού και το warning. - Στον υπολογισµό της θέσης του πίνακα όπου θα αποθηκευτούν οι πληθυκότητες, κανονικά η πράξη είναι plithos_grammaton[gramma -'a'] αντί για plithos_grammaton[gramma %'a'] αλλά εφόσον σας δουλεύει κανονικά, είναι οκ. -Παρόλο που δεν προλάβατε να ολοκληρώσετε την άσκηση, καλά κάνατε να τυπώσετε τον πίνακα plithos_grammaton, για να δείξετε ότι υπολογίστηκε σωστά. -Το όνοµα του αρχείου είναι λάθος. Θα έπρεπε να είναι "lab1.c" και όχι "lab5 1.c". Ποτέ κενά µέσα σε ονόµατα φακέλων ή αρχείων στα linux. Χρησιµοποιείστε "_" αντί κενού. -Σε κάποια σηµεία κακή στοίχιση κώδικα, µε περιττά κενά κάτω από κάποιες εντολές. -Το πρόγραµµα περιέχει warnings, τα οποία δείχνουν ότι δεν έχετε καταλάβει πίνακες και πώς τους διαχειριζόµαστε. Αναλυτικά: -ln46--> δεν υπάρχει \0. Μόνο \n, \t,... -ln43--> Στο τέλος υπάρχει ένα % που το πρόγραµµα δεν ξέρει τι να το κάνει, και βγάζει σχετικό warning. -ln43--> Στο printf τo %c περιµένει χαρακτήρα και το %d ακέραιο, αλλά εσείς περνάτε αναφορά σε πίνακα χαρακτήρων (&final_word) και αναφορά σε ακέραιο (&frequency). Ο compiler βγάζει δύο σχετικά warning. -Παρόλα αυτά το πρόγραµµα κατά τύχη εκτυπώνει κάποιες διευθύνσεις µνήµης. Όµως υπάρχουν πολύ πιο σοβαρά προβλήµατα. Αναλυτικά: -Ο πίνακας sum[m] δεν έπρεπε να δηλώνεται. -Η εκφώνηση ζητούσε ρητά να υπάρχει ένας µόνο πίνακας που να αποθηκεύει τα πλήθη εµφανίσεων χαρακτήρα, όχι και πίνακας char word[n] που να αποθηκεύει τα γράµµατα που διαβάστηκαν. Ακόµα και έτσι γιατί ο word έχει µέγεθος Ν και ο άλλος Μ. -Το 2πλό for στις γραµµές 29-30 τι κάνει ή τι θα θέλατε να κάνει; -Δηλώσεις µεταβλητών πάντα στην αρχή του κώδικα. Το sum[i] είναι µεταβλητό. Σε στατική δήλωση πίνακα δε µπορείτε να περνάτε σα µέγεθος κάτι που θα αλλάξει κατά το τρέξιµο του προγράµµατος. Μεταβλητό µέγεθος πίνακα µπορούµε να έχουµε ΜΟΝΟ µε δυναµική δέσµευση π.χ. µε malloc. -Τέλος το πρόγραµµα αφού δώσουµε τα "- 0" θέλει και µία ακόµα φορά να δοθεί αυτό. Ο λόγος είναι το επιπλέον \n που υπάρχει στη scanf.

1611 οριακό PASS Άσκηση 1η -Αρκετά καλή προσπάθεια. -Λείπει το αρχικό σχόλιο. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση scanf. -Σωστή χρήση / και %. -Στη printf για να εµφανίσετε * και αντίστοιχα χρειάζεται επανάληψη µε πράξεις που έχετε ήδη βρει. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. 1612 FAIL 1613 PASS Έστάλη το lab4 Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία σχόλια -Πολύ ωραία η έξοδος του προγράµµατος

Άσκηση 1η 1615 FAIL -Το πρόγραµµα έχει λογικά λάθη και προειδοποιήσεις. -Λάθος χρήση scanf, λείπει ένα κενό µεταξύ του 1ου % και της παρένθεσης, επίσης έχετε λάθος τη σύνταξη της 2ης scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Χάλια στοίχιση αλλά καλά ονόµατα µεταβλητών. -Λάθος έλεγχος. -Λάθος στο τρόπο εκτύπωσης. -Το πρόγραµµα έχει µόνο µια printf ούτε καν scanf. Προσοχή!! Έχετε κάνει λάθος στην ονοµασία του αρχείου προφανώς κατά την αποστολή και το ονοµάσατε xxx_1617_xxx_1656 και χωρίς κατάληξη.c. Επίσης το ρίξατε χύµα στο tgz. 1617 PASS 1618 PASS - Πολύ καλή προσπάθεια -Πολύ καλό σχόλιο -Αφού έχετε χρησιµοποιήσει define για το µέγεθος του πίνακα, θα έπρεπε να το χρησιµοποιήσετε στη δήλωση του πίνακα. -Σωστή αρχικοποίηση του πίνακα σε 0. Μπορούσε να γίνει και χωρίς for πιο απλά, ως εξής: sum[n] = {0} στη δήλωση. -Καλή χρήση των / και %. -Σωστή έξοδος. -Καλό σχόλιο και καλές µεταβλητές. -Όχι πολυ καλή µορφοποίηση κώδικα. Να αφήνετε καµιά κενή σειρά στις εντολές. -Γενικά σωστός κώδικας και πάρα πολύ καλή δουλειά, µπράβο. Άσκηση 2:

1619 PASS 1622 FAIL -Πολύ καλό σχόλιο, µεταβλητές και στοίχιση. -Σωστός κώδικας. -Πάρα πολύ καλή δουλειά, µπράβο. 'Ασκηση 2: -Το ξεκινάτε σωστά, αλλά λογικά δε θα σας έφτασε ο χρόνος να το τελειώσατε. Οπότε δείτε την ενδεικτική λύση. -Κακή στοίχιση κώδικα, καθώς το kate είναι αρύθµιστο. -Μέχρι το σηµείο που φτάσατε, δηλαδή πριν τη δηµιουργία του πίνακα-string είναι οκ ο κώδικας. Η λογική σας για µε το for και if για τη δηµιουργία του πίνακα-string είναι σωστή. Έµενε η τοποθέτηση των σωστών γραµµάτων και του %. -Οι σταθερές (26) να δηλώνονται µε define. Άσκηση 1η 1624 PASS -Πάρα πολύ καλή προσπάθεια. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Μπορούσατε να χρησιµοποιήσετε scanf αντί για getchar. -Σωστή χρήση / και %. -Στη printf για το πλήθος το γραµµάτων έπρεπε να είχατε %3d. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Καλή προσπάθεια, η λογική είναι σωστή. -Το πρόγραµµα σας έχει συντακτικά λάθη, για παράδειγµα string.h και strings.h. -Σωστή χρήση του define αυτή τη φορά. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών.

1625 FAIL - Πολύ κακή στοίχιση κώδικα. Έχουν γίνει οι ρυθµίσεις στο kate; - Οι σταθερές πρέπει να δηλώνονται µε καφαλαία. -Το πρόγραµµα πέφτει σε ατέρµονο βρόχο. Δοκιµάσατε να δείτε ποια η τιµή του xaraktiras που διαβάζετε από το πληκτρολόγιο; Αν το είχατε δοκιµάσει πιθανώς θα λύνατε και το πρόβληµα. - Για την ανάγνωση του χαρακτήρα δεν προτιµάται η getchar, αλλά η scanf ως εξής: scanf(" %c %d", &xaraktiras, &plithos); -ln 24: for(i=0; i=25; i++)??? - Να υποθέσω ότι αυτό το for το κάνετε για να δηλώσετε τον απαιτούµενο χώρο για την αποθήκευση του string. Αυτό είναι τελείως λάθος. Πίνακας που δηλώνεται στατικά, ΔΕ ΜΠΟΡΕΙ να έχει µέγεθος που να έχει σταθερό µέγεθος όταν θα δηλωθεί, δηλαδή η τιµή του να µην έχει υπολογιστεί λίγο νωρίτερα στο πρόγραµµα. Σε αντίθετη περίπτωση κάνουµε δυναµική δέσµευση µνήµης µε malloc,... Πρόσεξτε το θέµα του mail να το έχετε σωστά. 1627 PASS -Πολύ καλές µεταβλητές και στοίχιση. -Το σχόλιο είναι λίγο φτωχό. -Θα ήταν καλύτερο να χρησιµοποιήσετε scanf αντί για getchar(). Έτσι όπως διαβάζετε µε τη getchar αποθηκεύετε και την αλλαγή σειράς από το αρχείο στη character. -To i=i+1 µέσα στη while δε χρησιµεύει κάπου. -Η επάναληψη για την εκτύπωση για αστεράκια και παύλες θα µπορούσε να γίνει µε for και µε τον υπολογισµό του mod και της ακέραιας διαίρεσης της κάθε θέσης του πίνακα. -Σωστός κώδικας. Άσκηση 2: -Ο κώδικας δεν κάνει compile. -Αν διορθώνατε το λάθος στο compile και αντικαταστούσατε τη strcpy µε strcat o κώδικας θα δούλευε σωστά και θα έβγαζε το απαιτούµενο αποτέλεσµα, αν και η έξοδος θα χρειαζόταν µια µικρή µορφοποίηση. -Πολύ καλή προσπάθεια.

1628 PASS 1629 FAIL Άσκηση 1η: - Πολύ καλή στοίχιση και καλά ονόµατα µεταβλητών - Η βιβλιοθήκη time.h δεν χρειάζεται - Ο κώδικας είναι σωστός, τα µόνα σηµεία που δεν καλύψατε είναι: 1. χρήση #define για τα µεγέθη των πινάκων 2. Στην εκτύπωση του πίνακα symboloseira έπρεπε στην printf να κάνετε εκτύπωση του αλφαριθµητικού ( printf("%s\n", symboloseira);) αντί για το βρόχο for. Αυτό απαιτεί το αλφαριθµητικό να τελειώνει µε '\0'(άρα µια θέση ακόµη στον πίνακα για το \0). - Κατά τα άλλα µπράβο σας! : - Δεν παραδώθηκε Άσκηση 1η: - Δεν γράφετε σχόλια στην αρχή του κώδικα - Σωστά δηλώνετε µε #define το πλήθος των γραµµάτων, όµως δεν υπολογίζετε χώρο στον τελικό πίνακα για τα σύµβολα %(+25 θέσεις). - Η scanf έτσι όπως τη γράφετε περιµένει να διαβάσει περισσότερους χαρακτήρες από αυτό που δίνουµε ως είσοδο. Η σωστή scanf θα ήταν: scanf(" %c %d", &xarakthras, &total); Για να διαβάσει το space αρκεί να αφήσουµε ένα space ανάµεσα στα %c %d. - Δεν κάνετε αρχικοποίηση των πινάκων - Δεν υλοποιήσατε το γέµισµα του τελικού πίνακα µε τα γράµµατα που πρέπει - Κάνετε σωστή χρήση της printf("%s",str); στο τέλος : - Δεν παραδώθηκε

1630 οριακό PASS Ασκηση 1η: - Πολύ καλά σχόλια στο πρόγραµµα - Στην γραµµή 5, έχετε γράψει λάθος το #include - Πολύ σωστά δηλώνετε µε #define τα µεγέθη των πινάκων, για τον τελικό πίνακα χρειάζονται 286 θέσεις, όχι 287(σωστά όµως λέτε τις πράξεις) - Οι scanf στην αρχή του κώδικα είναι λάθος, για να διαβάσουµε την είσοδο αρκεί µια scanf(" %c %d", &x, &num); Μάλιστα, προκαλείται segmentation fault έτσι όπως είναι γραµµένες - Σας βγάζει πολλά warnings γιατί: 1. η µεταβλητή x είναι τύπου char, ενώ οι θέσεις ενός πίνακα (όπως στον πίνακα fr[ ]) δηλώνονται µε αριθµούς (πρώτη, δεύτερη κλπ), συνεπώς η δήλωση fr[x]!= 10 είναι λάθος. Το σωστό είναι fr['x']!= 10, δηλαδή να ερµηνεύσουµε το x σαν αριθµό. Όµως αυτή η έκφραση δεν στέκει λογικά. Προφανώς θέλατε το num (συχνότητα εµφάνισης) του χαρακτήρα x να είναι!=10 και βασικά το!= 10 επίσης δεν στέκει λογικά, το σωστό θα ήταν <=10. (αυτό σε συνδιασµό µε το σηµείο 2) 2. Αυξάνετε την συχνότητα εµφάνισης ενός χαρακτήρα κατά ένα, γιατί; Αφού ο χρήστης µας δίνει την συχνότητα εµφάνισης από την είσοδο - Επίσης η scanf(" %c ",x); είναι λάθος γραµµένη, σας λείπει το & µπροστά από το x, αλλά γιατί να διαβάζετε έναν χαρακτήρα µόνο; - Στις γραµµές 29 & 33 έχετε το ίδιο λάθος: όταν αναφερόµαστε σε χαρακτήρα βάζουµε µονά εισαγωγικά, ενώ για αλφαριθµητικό διπλά - ΠΡΟΣΟΧΗ: αν έχω διπλά εισαγωγικά και κενά µέσα σε αυτά (πχ. " φρ " ) τότε θα πάρει ως µέρος του αλφαριθµητικό ΚΑΙ όλα τα spaces - Στην γραµµή 29 επίσης, η µεταβλητή j δεν έχει αρχικοποιηθεί (apotelesma[j+1] = '%';), αυτό οδηγεί στο να βάλουµε το χαρακτήρα % σε τυχαία θέση στον πίνακα 1632 PASS : - Δεν παραδώθηκε -Πολυ καλή προσπάθεια. Ο κώδικας σας δεν τρέχει σωστά επειδή δεν έχετε αρικοποιήσει τον πίνακα σε 0. Κατά τα άλλα άριστα.

Άσκηση 1η 1633 FAIL -Η συνθήκη στο while έπρεπε να είχε && -Σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Έχετε δηµιουργήσει ατέρµων βρόχο. -Καλή στοίχιση και καλά ονόµατα µεταβλητών. - Το for loop δεν έπρεπε να πηγαίνει µέχρι και SIZE Δεν εστάλη. 1634 PASS -Πολύ καλή προσπάθεια µπράβο. Η άσκηση είναι πλήρης και εκτυπώνει σωστά αποτελέσµατα. 2 παρατηρήσεις: --Να θυµάστε να βάζετε \n στην εκτύπωση του τελευταίου string. --Επίσης, εφόσον το µέγεθος του pinakas (btw κακό όνοµα), είναι κάτι σταθερό, προτιµήστε να κάνετε αυτή την τιµή define 1635 FAIL Εστάλη λάθος άσκηση (lab4a & lab4b) Λάθος θέµα στο email. Άσκηση 1η 1636 FAIL -Το πρόγραµµα έχει συντακτικά λάθη και είναι ηµιτελές. -Λάθος όνοµα αρχείου. -Θα πρέπει να κάνετε χρήση του define για το µέγεθος του πίνακα. -Λάθος χρήση scanf. -Λάθος καταχώρηση δεδοµένων στο πίνακα. -Καλή στοίχιση και ονόµατα µεταβλητών.

Άσκηση 1η 1637 PASS -Πάρα πολύ καλή προσπάθεια. -Λείπει το σχόλιο στη πρώτη γραµµή. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Στη scanf έπρεπε να έχετε κενό µεταξύ και %. -Σωστή χρήση / και %. -Στη printf για το πλήθος το γραµµάτων έπρεπε να είχατε %3d. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Το πρόγραµµα σας δεν έχει τελειώσει, έχει συντακτικά λάθη, για παράδειγµα string.h και strings.h. -Σωστή χρήση του define. Λάθος θέµα στο email. Άσκηση 1η 1641 FAIL -Το πρόγραµµα έχει συντακτικά λάθη και είναι ηµιτελές. -Λάθος όνοµα αρχείου. -Θα πρέπει να κάνετε χρήση του define για το µέγεθος του πίνακα. -Λάθος χρήση scanf. -Λάθος καταχώρηση δεδοµένων στο πίνακα. -Καλή στοίχιση και ονόµατα µεταβλητών. 1642 FAIL Ο φάκελος από το επισυναπτόµενο αρχείο ήταν κενός, και το θέµα του email ήταν λάθος.

Άσκηση 1η 1643 FAIL -Το πρόγραµµα έχει συντακτικά λάθη και είναι ηµιτελές. Η λογική του όµως είναι αρκετά σωστή. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση scanf. -Σωστή χρήση / και %. -Καλή στοίχιση και ονόµατα µεταβλητών. 1644 FAIL Εστάλη το lab4 1645 PASS -Μπράβο σας, πολύ καλή προσπάθεια και σωστό αποτέλεσµα. -Καλές µεταβλητές και υπάρχει αρχικό σχόλιο. -Θα έπρεπε να χρησιµοποιήσετε define για το µέγεθος του πίνακα. -Προσέξτε λίγο περισσότερο τη στοίχιση (ο κώδικας στη for θα έπρεπε να είναι πιο µέσα) -Λείπει το %3d στην εκτύπωση του ακεραίου και επισης η αρχικοποίηση του πίνακα θα µπορούσε να γίνει µε ένα µόνο {0}: va8moi[6]={0} Άσκηση 1η 1646 FAIL -Το πρόγραµµα έχει συντακτικά λάθη και είναι ηµιτελές. Η λογική του όµως είναι αρκετά σωστή. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση scanf. -Σωστή χρήση / και %. -Καλή στοίχιση και ονόµατα µεταβλητών.

1648 PASS 1649 PASS -Πολύ καλή στοίχιση. -Δεν έχετε σχόλιο. -Κάποιες µεταβλητές δεν είναι και τόσο περιγραφικές. -Στην έξοδο δε χρειάζονται κενά ανάµεσα στα αστεράκια και τις παύλες. -Σωστός κώδικας και πολύ καλή δουλειά. Άσκηση 2: -Δεν κάνει compile. -Δείτε την ενδεικτική λύση. Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Στη printf για το πλήθος το γραµµάτων έπρεπε να είχατε %3d. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Τους ξέφυγε ελαφρώς η έξοδος του προγράµµατος 1650 FAIL Ο φάκελος από το επισυναπτόµενο αρχείο ήταν κενός, και το θέµα του email ήταν λάθος. Άσκηση 1η 1651 οριακό PASS -Αρκετά καλή προσπάθεια. -Το πρόγραµµα σας είναι ηµιτελές αλλά δουλεύει µέχρι εκεί σωστά -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση scanf. -Λάθος σύνταξη for,επίσης να χρησιµοποιήτε και τις υπόλοιπες δοµές όταν χρειάζεται. -Μέτρια στοίχιση αλλά καλά ονόµατα µεταβλητών.

1652 PASS 1653 PASS LAB5: -Προσέξτε λίγο τη στοίχιση. -Καλές µεταβλητές. -Λίγο φτωχό σχόλιο. -Σωστός κώδικας και πολύ καλή δουλειά. Άσκηση 2: Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία η έξοδος του προγράµµατος 1654 PASS 1655 FAIL -Πολύ καλό σχόλιο, µεταβλητές και στοίχιση. -Σωστός κώδικας. -Πάρα πολύ καλή δουλειά, µπράβο. 'Ασκηση 2: -Το ξεκινάτε σωστά, αλλά λογικά δε θα σας έφτασε ο χρόνος να το τελειώσατε. Οπότε δείτε την ενδεικτική λύση. Άσκηση 1η: - Δεν γράφετε σχόλια στην αρχή του κώδικα - Σωστά δηλώνετε µε #define το πλήθος των γραµµάτων, όµως δεν υπολογίζετε χώρο στον τελικό πίνακα για τα σύµβολα %(+25 θέσεις). - Η scanf έτσι όπως τη γράφετε περιµένει να διαβάσει περισσότερους χαρακτήρες από αυτό που δίνουµε ως είσοδο. Η σωστή scanf θα ήταν: scanf(" %c %d", &xarakthras, &total); Για να διαβάσει το space αρκεί να αφήσουµε ένα space ανάµεσα στα %c %d. - Δεν κάνετε αρχικοποίηση των πινάκων - Δεν υλοποιήσατε το γέµισµα του τελικού πίνακα µε τα γράµµατα που πρέπει - Κάνετε σωστή χρήση της printf("%s",str); στο τέλος : - Δεν παραδώθηκε

1656 PASS 1657 FAIL Στείλατε λάθος αρχείο 1658 PASS Προσοχή!! Έχετε κάνει λάθος στην ονοµασία του αρχείου προφανώς κατά την αποστολή και το ονοµάσατε xxx_1617_xxx_1656 και χωρίς κατάληξη.c. Επίσης το ρίξατε χύµα στο tgz. - Πολύ καλή προσπάθεια -Πολύ καλό σχόλιο -Αφού έχετε χρησιµοποιήσει define για το µέγεθος του πίνακα, θα έπρεπε να το χρησιµοποιήσετε στη δήλωση του πίνακα. -Σωστή αρχικοποίηση του πίνακα σε 0. Μπορούσε να γίνει και χωρίς for πιο απλά, ως εξής: sum[n] = {0} στη δήλωση. -Καλή χρήση των / και %. -Σωστή έξοδος. Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Σωστή χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία η έξοδος του προγράµµατος 1659 PASS 1660 PASS -Πολύ καλή στοίχιση. -Δεν έχετε σχόλιο. -Κάποιες µεταβλητές δεν είναι και τόσο περιγραφικές. -Στην έξοδο δε χρειάζονται κενά ανάµεσα στα αστεράκια και τις παύλες. -Σωστός κώδικας και πολύ καλή δουλειά. Άσκηση 2: -Δεν κάνει compile. -Δείτε την ενδεικτική λύση. Ασκηση 1: -Πάρα πολύ καλή προσπάθεια. -Πολυ ωραία σχόλια -Σωστή χρήση του define για το µέγεθος του πίνακα. -Αρχικοποιούµε πίνακες σε for loop -Σωστή χρήση / και %. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. -Πολύ ωραία η έξοδος του προγράµµατος

1661 PASS 1662 FAIL 1663 PASS 1664 FAIL Πρόσεξτε το θέµα του mail να το έχετε σωστά. -Πολύ καλές µεταβλητές και στοίχιση. -Το σχόλιο είναι λίγο φτωχό. -Θα ήταν καλύτερο να χρησιµοποιήσετε scanf αντί για getchar(). Έτσι όπως διαβάζετε µε τη getchar αποθηκεύετε και την αλλαγή σειράς από το αρχείο στη character.-to i=i+1 µέσα στη while δε χρησιµεύει κάπου. -Η επάναληψη για την εκτύπωση για αστεράκια και παύλες θα µπορούσε να γίνει µε for και µε τον υπολογισµό του mod και της ακέραιας διαίρεσης της κάθε θέσης του πίνακα. -Σωστός κώδικας. Άσκηση 2: -Ο κώδικας δεν κάνει compile. -Αν διορθώνατε το λάθος στο compile και αντικαταστούσατε τη strcpy µε strcat o κώδικας θα δούλευε σωστά και θα έβγαζε το απαιτούµενο αποτέλεσµα, αν και η έξοδος θα χρειαζόταν µια µικρή µορφοποίηση. -Πολύ καλή προσπάθεια. Ασκηση 1: - δεν υπαρχει σχολιο στην αρχη του προγραµµατος - οριζουµε πινακα ακαιρεων οχι χαρακτηρων - η λειτουργικοτητα του while loop σωστη εν µερει - συντακτικα λαθη - το προγραµµα δεν περναει καν το compiling Ασκηση 2: - δεν εσταλει -Πολύ καλή προσπάθεια µπράβο. Η άσκηση είναι πλήρης και εκτυπώνει σωστά αποτελέσµατα. 2 παρατηρήσεις: --Να θυµάστε να βάζετε \n στην εκτύπωση του τελευταίου string. --Επίσης, εφόσον το µέγεθος του pinakas (btw κακό όνοµα), είναι κάτι σταθερό, προτιµήστε να κάνετε αυτή την τιµή define - Ο κώδικας έχει warnings από unused variables που είναι σε κώδικα που έχετε µέσα στα σχόλια. -Κακή στοίχιση κώδικα. Το while γιατί τόσες γραµµές κάτω µετά τη do; -To πρόγραµµα βάζει segmentation fault µετά το πρώτο input, π.χ d 7. Ο λόγος είναι η γραµµή 20, η οποία θα έπρεπε να είναι deiktis = xaraktiras - 'a'; αντί για deiktis = 'xaraktiras' - 'a'; που έχετε. -Όσων αφορά τον κώδικα που έχετε µέσα σε σχόλια για τη δηµιουργία του πίνακα µε τη νέα συµβολοσειρά είναι µία καλή αρχή, διατρέχοντας σωστά τους δύο πίνακες. Λείπε η εγγραφή στον πίνακα str.

Το email εστάλη χωρίς subject και το αρχείο του lab5 ήταν χύµα, όχι σε συµπιεσµένο φάκελο όπως σας ζητείται. 1665 FAIL 1666 FAIL Άσκηση 1η: - Η στοίχιση δεν είναι καθόλου καλή, αφήνεις πολλά κενά ή tabs χωρίς λόγο. - Δεν ορίζεις µε #define τις σταθερές του προγράµµατος (πχ µέγεθος πίνακα) - Η main καθώς και ο βρόχος while δεν κλείνουν στο τέλος µε } - Ο πίνακας grades[] δεν αρχικοποιείται - Η scanf είναι εκτός βρόχου και εκτελείται µόνο µια φορά - Στην scanf έχεις ξεχάσει να βάλεις &gr. (Μόνο όταν αποθηκεύουµε σε πίνακα δεν χρειάζεται να βάλουµε το σύµβολο & στην scanf) - Χρησιµοποιώντας διπλά εισαγωγικά,(πχ. "Α") αναφερόµαστε σε ένα αλφαριθµητικό, για να διαβάσουµε έναν χαρακτήρα µόνο, πρέπει να βάζουµε µονά εισαγωγικά (για τις συγκρίσεις gr == "Α", το σωστό είναι gr == 'Α'). Αυτό προκαλεί πολλά warnings - Στην γραµµή 34 (sumf=sumf=1:) µάλλον εννοείς sumf=sumf+1; : - Δεν παραδώθηκε Άσκηση 1η: - Βάζετε σχόλια στην αρχή του κώδικα και καλά ονόµατα στις µεταβλητές - Καλά ορίζετε µε #define το µέγεθος Ν του πίνακα συχνοτήτων, όµως ο τελικός πίνακας θα είναι µεγέθους Ν*10+25+1(10 η max εµφάνιση κάθε χαρακτήρα, 25 θέσεις για max σύβµολα % και µια θέση για το \0) - Κάνετε σωστά την πράξη για να βρείτε την θέση του πίνακα συχνοτήτων ανάλογα µε την είσοδο κάθε φορά - Σε βρόχο do {...} while(...); στο τέλος θέλει ; - Η συνθήκη στην while (gramma!= -0) είναι λάθος, για να δούµε αν ο χρήστης έβαλε "- 0" ως είσοδο πρέπει να γράψουµε (gramma!= '-' ) - Ο βρόχος for δεν κλείνει. λείπει η }, αυτό προκαλεί compile error - Μέσα στο for, εκτυπώνεται Ν φορές το µήνυµα pinakas2 ( µέσω της printf("pinakas2"); )... - Η πράξη pinakas2[i]= gramma * pinakas[i]; είναι πολύ λάθος (η µεταβλητή gramma περιέχει την παύλα '-' και το πολ/ζετε µε το frequency?? ) : - Δεν παραδώθηκε

Άσκηση 1η 1667 FAIL -Καλή προσπάθεια. Το πρόγραµµα έχει όµως συντακτικά λάθη. -Όχι και τόσο σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Όχι και τόσο καλή στοίχιση και καλά ονόµατα µεταβλητών. -Κάνετε λάθος έλεγχο στη while. Δεν εστάλη. 1668 οριακό PASS Άσκηση 1η -Αρκετά καλή προσπάθεια. -Λείπει το αρχικό σχόλιο. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση scanf. -Σωστή χρήση / και %. -Στη printf για να εµφανίσετε * και αντίστοιχα χρειάζεται επανάληψη µε πράξεις που έχετε ήδη βρει. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών.

Άσκηση 1η 1669 FAIL -Καλή προσπάθεια. Το πρόγραµµα έχει όµως λογικά λάθη και προειδοποιήσεις. -Όχι και τόσο σωστή χρήση scanf, λείπει ένα κενό µεταξύ του 1ου % και της παρέθεσης, -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Καλή στοίχιση και καλά ονόµατα µεταβλητών. ΕΝΤΕΛΩΣ ΛΑΘΟΣ! Και ονόµατα αρχείων και λάθος άσκηση. 1670 FAIL - Πολύ κακή στοίχιση κώδικα. Έχουν γίνει οι ρυθµίσεις στο kate; - Οι σταθερές πρέπει να δηλώνονται µε καφαλαία. -Το πρόγραµµα πέφτει σε ατέρµονο βρόχο. Δοκιµάσατε να δείτε ποια η τιµή του xaraktiras που διαβάζετε από το πληκτρολόγιο; Αν το είχατε δοκιµάσει πιθανώς θα λύνατε και το πρόβληµα. - Για την ανάγνωση του χαρακτήρα δεν προτιµάται η getchar, αλλά η scanf ως εξής: scanf(" %c %d", &xaraktiras, &plithos); -ln 24: for(i=0; i=25; i++)??? - Να υποθέσω ότι αυτό το for το κάνετε για να δηλώσετε τον απαιτούµενο χώρο για την αποθήκευση του string. Αυτό είναι τελείως λάθος. Πίνακας που δηλώνεται στατικά, ΔΕ ΜΠΟΡΕΙ να έχει µέγεθος που να έχει σταθερό µέγεθος όταν θα δηλωθεί, δηλαδή η τιµή του να µην έχει υπολογιστεί λίγο νωρίτερα στο πρόγραµµα. Σε αντίθετη περίπτωση κάνουµε δυναµική δέσµευση µνήµης µε malloc,...

Άσκηση 1η 1671 FAIL -Καλή προσπάθεια. Το πρόγραµµα έχει όµως συντακτικά λάθη. -Όχι και τόσο σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Όχι και τόσο καλή στοίχιση και καλά ονόµατα µεταβλητών. -Κάνετε λάθος έλεγχο στη while. Δεν εστάλη. Άσκηση 1η 1672 FAIL -Το πρόγραµµα σας έχει συντακτικά λάθη. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Λάθος χρήση scanf. -Σωστή χρήση / και % αλλά µη σωστή χρήση του πίνακα. -Στη printf για να εµφανίσετε * και αντίστοιχα χρειάζεται επανάληψη µε πράξεις που έχετε ήδη βρει. -Μέτρια στοίχιση και καλά ονόµατα µεταβλητών. 1673 FAIL -Ο κώδικας σας περιέχει υπερβολικά πολλά errors και warnings και η στοίχιση του κώδικα πολύ κακή. -Προσπαθήσατε να κάνετε κάποιο compile στο ενδιάµεσο;;; -Ενδεικτικά λάθη Define αντί για define. Στο for οι συνθήκες διαχωρίζονται µε ; και όχι µε,

1674 οριακό PASS Άσκηση 1η: - Δεν βάζετε σχόλια στην αρχή του κώδικα - Η στοίχιση και τα ονόµατα των µεταβλητών είναι οκ - Τα µεγέθη των πινάκων καλό θα ήταν να είναι ορισµένα µε #define στην αρχή του κώδικα - Ο τελικός πίνακας δεν µπορεί είναι Ν θέσεων.. (θέλουµε χώρο για Ν*10 (max εµφάνιση κάθε χρακτήρα)+25(max σύµβολα %)+1(για το \0)) - Σωστά αρχικοποιείτε τον πίνακα για τη συχνότητα εµφάνισης των γραµµάτων - Στην while δεν χρειάζεται ο έλεγχος if, θεωρούµε ότι η είσοδος θα είναι είτε γράµµα<κενό>αριθµός είτε -<κενό>0 και όχι κάτι άλλο - Στην for πιο κάτω σας λείπουν δυο } (της for και της if), καλό είναι να µην ξεχνάτε να τα γράφετε αυτά καθώς προκαλούν compilation errors, ασχέτως αν έχετε συµπληρώσει µέσα τον κώδικα που σκέφτεστε. - Δεν υλοποιήθηκε η συµπλήρωση του τελικού πίνακα : - Δεν παραδώθηκε Άσκηση 1η 1676 FAIL -Η συνθήκη στο while έπρεπε να είχε && -Σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Έχετε δηµιουργήσει ατέρµων βρόχο. -Καλή στοίχιση και καλά ονόµατα µεταβλητών. - Το for loop δεν έπρεπε να πηγαίνει µέχρι και SIZE Δεν εστάλη. 1677 FAIL Εστάλη το lab2

Άσκηση 1η 1678 FAIL -Δεν είναι κατανοητό το αρχικό σχόλιο. -Το πρόγραµµα έχει πολλά συντακτικά λάθη και είναι ηµιτελές. -Λάθος χρήση του define για το µέγεθος του πίνακα. -ΛΑΘΟΣ: δε βάζουµε το ίδιο όνοµα για πίνακα (το οποίο δεν είναι και σωστό Ρ) µε το µέγεθος του define (P επίσης). -Λάθος χρήση scanf. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. 1679 οριακό PASS Άσκηση 1η -Πολύ καλή προσπάθεια. -Σωστή χρήση scanf. -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Καλή στοίχιση και καλά ονόµατα µεταβλητών. -Η άσκηση είναι ηµιτελής. -Λάθος στo include του string.h. -Σύνταξη scanf? -Όχι και τόσο καλά ονόµατα αρχείων, αλλά καλή στοίχιση. -Δείτε λύση.

Άσκηση 1η -Πάρα πολύ καλή προσπάθεια. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Μπορούσατε να χρησιµοποιήσετε scanf αντί για getchar. -Σωστή χρήση / και %. -Στη printf για το πλήθος το γραµµάτων έπρεπε να είχατε %3d. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. 1681 PASS -Καλή προσπάθεια, η λογική είναι σωστή. -Το πρόγραµµα σας έχει συντακτικά λάθη, για παράδειγµα string.h και strings.h. -Σωστή χρήση του define αυτή τη φορά. -Αρκετά καλή στοίχιση και ονόµατα µεταβλητών. 1682 οριακό PASS Άσκηση 1η: - Δεν βάζετε σχόλια στην αρχή του κώδικα - Η στοίχιση και τα ονόµατα των µεταβλητών είναι οκ - Τα µεγέθη των πινάκων καλό θα ήταν να είναι ορισµένα µε #define στην αρχή του κώδικα - Ο τελικός πίνακας δεν µπορεί είναι Ν θέσεων.. (θέλουµε χώρο για Ν*10 (max εµφάνιση κάθε χρακτήρα)+25(max σύµβολα %)+1(για το \0)) - Σωστά αρχικοποιείτε τον πίνακα για τη συχνότητα εµφάνισης των γραµµάτων - Στην while δεν χρειάζεται ο έλεγχος if, θεωρούµε ότι η είσοδος θα είναι είτε γράµµα<κενό>αριθµός είτε -<κενό>0 και όχι κάτι άλλο - Στην for πιο κάτω σας λείπουν δυο } (της for και της if), καλό είναι να µην ξεχνάτε να τα γράφετε αυτά καθώς προκαλούν compilation errors, ασχέτως αν έχετε συµπληρώσει µέσα τον κώδικα που σκέφτεστε. - Δεν υλοποιήθηκε η συµπλήρωση του τελικού πίνακα : - Δεν παραδώθηκε

Λάθος θέµα e-mail. Άσκηση 1η 1683 FAIL -Δεν υπάρχει το αρχικό σχόλιο. -Το πρόγραµµα έχει πολλά συντακτικά λάθη και είναι ηµιτελές. -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -ΛΑΘΟΣ: οι δηλώσεις είναι λάθος! Δεν έχουµε πίνακα χαρακτήρων αλλά ακεραίων. -Σωστή χρήση scanf. -Καλή στοίχιση και ονόµατα µεταβλητών. 1684 PASS 1689 FAIL -Μπράβο σας, πολύ καλή προσπάθεια και σωστό αποτέλεσµα. -Καλές µεταβλητές και υπάρχει αρχικό σχόλιο. -Θα έπρεπε να χρησιµοποιήσετε define για το µέγεθος του πίνακα. -Προσέξτε λίγο περισσότερο τη στοίχιση (ο κώδικας στη for θα έπρεπε να είναι πιο µέσα) -Λείπει το %3d στην εκτύπωση του ακεραίου και επισης η αρχικοποίηση του πίνακα θα µπορούσε να γίνει µε ένα µόνο {0}: va8moi[6]={0} -Ο κώδικας σας περιέχει υπερβολικά πολλά errors και warnings και η στοίχιση του κώδικα πολύ κακή. -Προσπαθήσατε να κάνετε κάποιο compile στο ενδιάµεσο;;; -Ενδεικτικά λάθη Define αντί για define. Στο for οι συνθήκες διαχωρίζονται µε ; και όχι µε,

Άσκηση 1η 1690 FAIL -Καλή προσπάθεια. Το πρόγραµµα έχει όµως λογικά λάθη και προειδοποιήσεις. -Όχι και τόσο σωστή χρήση scanf, λείπει ένα κενό µεταξύ του 1ου % και της παρέθεσης, -Έπρεπε τη συµβολοσειρά να την καταχωρείτε σε πίνακα και κατόπιν να εκτυπώνετε ολόκληρη τη συµβολοσειρά µε % s. -Καλή στοίχιση και καλά ονόµατα µεταβλητών. ΕΝΤΕΛΩΣ ΛΑΘΟΣ! Και ονόµατα αρχείων και λάθος άσκηση. 1691 FAIL 1692 PASS Ασκηση 1: - δεν υπαρχει σχολιο στην αρχη του προγραµµατος - οριζουµε πινακα ακαιρεων οχι χαρακτηρων - η λειτουργικοτητα του while loop σωστη εν µερει - συντακτικα λαθη - το προγραµµα δεν περναει καν το compiling Ασκηση 2: - δεν εσταλει -Πολύ καλές µεταβλητές και στοίχιση. -Λείπει το αρχικό σχόλιο. -Σωστός κώδικας και πάρα πολύ καλή δουλειά, µπράβο. Άσκηση 2:

1693 οριακό PASS Δεν έχετε θέµα στο mail. -Το σχόλιο θα µπορούσε να είναι καλύτερο. -Οι µεταβλητές δεν είναι όλες περιγραφικές. -Αρκετά καλή στοίχιση. -Στη scanf σας λείπει ένα κένο δηλαδή " %c". -Και σας λείπει ακριβώς αυτό που λέτε στο σχόλιο. -Καλή προσπάθεια. Άσκηση 2: Δεν εστάλη. 1694 FAIL Εστάλη λάθος άσκηση (lab4a & lab4b) Άσκηση 1η 1695 οριακό PASS -Αρκετά καλή προσπάθεια. -Το πρόγραµµα σας είναι ηµιτελές αλλά δουλεύει µέχρι εκεί σωστά -Θα έπρεπε να κάνετε χρήση του define για το µέγεθος του πίνακα. -Σωστή χρήση scanf. -Λάθος σύνταξη for,επίσης να χρησιµοποιήτε και τις υπόλοιπες δοµές όταν χρειάζεται. -Μέτρια στοίχιση αλλά καλά ονόµατα µεταβλητών. 1698 PASS LAB5: -Προσέξτε λίγο τη στοίχιση. -Καλές µεταβλητές. -Λίγο φτωχό σχόλιο. -Σωστός κώδικας και πολύ καλή δουλειά. Άσκηση 2: