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

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

FAIL PASS PASS οριακά

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ.

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

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

ΑΕΜ ή username. Sheet2

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

ΣΧΟΛΙΑ ΓΙΑ ΤΟ LAB 1. Sheet3_2

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

Δομημένος Προγραμματισμός

403 FAIL Λάθος στο πακετάρισµα του αρχείου.

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

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

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

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

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

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

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

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

Εργαστήριο 5. Εαρινό Εξάμηνο

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

Ορισμός μεταβλητών δεικτών και αρχικοποίηση

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

Ανάπτυξη και Σχεδίαση Λογισμικού

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

lab3grades οριακό PASS

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

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

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

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

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

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

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

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

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

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Ενδεικτική περιγραφή μαθήματος

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

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εισαγωγή στον Προγραμματισμό (με. τη C)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

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

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

Transcript:

Sheet1_2 AEM 0001 0002 0003 0004 0006 COMMENTS - Segmentation fault λόγω λάθους στην αναδροµή. Δες τη λύση, αλλά προσπάθησε να το ξανακάνεις και στο σπίτι για εξ - Πρόσεχε λίγο τη στοίχιση - Καλή δουλειά στα σχόλια, µπράβο - Δεν υπάρχει αναδροµή στο πρόγραµµα. - Η συνάρτηση δεν είναι αναδροµική - Το '\0' είναι ο τερµατικός χαρακτήρας (ο χαρακτήρας µε ASCII µηδέν) ενώ το NULL είναι δείκτης (διεύθυνση µηδέν). Δεν είναι το ίδιο πράγµα. - Ο τελεστής * χρησιµοποιείται για να προσπελάσουµε τα περιεχόµενα σε µια διεύθυνση - δεν έπρεπε να τον χρησιµοποιείς στην κλήση της replace. - Δεν ελευθερώνεις τη δυναµικά δεσµευµένη µνήµη - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η - Πρόσεχε λίγο τη στοίχιση - Δεν υπάρχει αναδροµή στο πρόγραµµα. - Λάθος στη scanf. Έπρεπε να διαβάζεις µε %100s (και να έχεις δεσµεύσει 101 bytes) - Στην strncpy έπρεπε να αντιγράφεις το replacement στο text, όχι στο to_go_away οριακά - Όταν η malloc επιστρέφει NULL, το πρόγραµµα πρέπει να τερµατίζει (γιατι αν δεν έχει δεσµευτεί µνήµη, θα γίνει segfault) - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη Page 1

Sheet1_2 0009 0010 0011 0012 0013 0014 - Δεν κάνει compile - Δεν έχει υλοποιηθεί η replace. Τα σχόλια που υπάρχουν δε δίνουν χρήσιµες πληροφορίες/. Διάβασε το φυλλάδιο σχολιασµού!!! - Λάθος στην αντιγραφή της συµβολοσειράς. Χρεάζεται ένα else πριν τη δεύτερη κλήση στη replace. - Πολύ καλή δουλειά αν και το παράκανες λίγο µε τα γενικά σχόλια :) Δε χρειάζεται να εξηγείς τι κάνουν οι συναρτήσεις της C. - Χρειάζεται να διαβάσεις και να καταλάβεις πώς λειτουργούν οι συναρτήσεις συµβολοσειρών, για να µπορείς να τις χρησιµοποιείς σωστά. - Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών (όχι m, keime, ktl), αλλά έχεις καλά σχόλια προγράµµατος - Πολύ καλή δουλειά κατά τα άλλα. Page 2

Sheet1_2 οριακά 0015 - Ελλειπή σχόλια - Να χρησιµοποιείς συναρτήσεις συµβολοσειρών όπου χρειάζεται. Για παράδειγµα, το µήκος µιας συµβολοσειράς µπορεί να υπολογιστεί µε την strlen - Πρώτα δεσµεύουµε µνήµη για τις συµβολοσειρές και µετά διαβάζουµε τις τιµές τους. - Ξαναδιάβασε για την αναδροµή και κάνε πολλά παραδείγµατα - φαίνεται 0018 να µπερδεύεις την αναδροµή µε την επανάληψη. οριακά - Λάθος στην αναδροµή. Στην περίπτωση που η κλήση στην strncmp 0019 επιστρέφει διάφορο του µηδενός δεν έπρεπε να τερµατίζεις. 0020 - Πολύ καλή δουλειά κατά τα άλλα. - Καλή δουλειά, αλλά στο µέλλον να γράφεις τα σχόλια συναρτήσεων 0021 όπως περιγράφεται στο σχετικό φυλλάδιο 0022 οριακά - Δεν έχεις σωστό base case. Επρεπε να τερµατίζεις όταν η strstr 0023 επιστρέφει NULL. 0026 - Τι σηµαίνει j? Επρεπε να έχεις πιο περιγραφικό όνοµα. 0027 - Ο έλεγχος if((emfanisi+strlen(replacement)+1)=='\0') είναι περιττός 0028 - Στο τελευταίο printf δε χρειαζόταν το 100. Page 3

Sheet1_2 0030 0033 1072 1073 1074 1075 1077 1079 - Ελειπή σχόλια - Έχεις πολύ περιττό κώδικα. Δες τη λύση όταν ανακοινωθεί για να δεις πόσο πιο απλά θα µπορούσες να το έχεις κάνει. Αυτό θα σε βοηθήσει και να καταλάβεις καλύτερα πώς λειτουργεί η αναδροµή. - Όταν η malloc επιστρέφει NULL, το πρόγραµµα πρέπει να τερµατίζει (γιατι αν δεν έχει δεσµευτεί µνήµη, θα γίνει segfault) - Ωραία σχόλια προγράµµατος, αλλά τα πιο πολλά από αυτά έπρεπε να είναι στη συνάρτηση. - Πολύ καλή δουλειά κατά τα άλλα. - Κατα τα άλλα, καλή δουλειά - Πολύ καλή δουλειά- Δε χρειάζεται να σχολιάζεις συναρτήσεις της C, όπως η strstr οριακά - Γιατί υπολογίζεις τα µήκη των δύο πρώτων strings? - Να δίνεις πιο περιγραφικά ονόµατα στις µεταβλητές - Τα σχόλια συνάρτησης πρέπει να βρίσκονται πάνω από τη συνάρτηση Page 4

1080 1081 1084 1085 1086 1087 1088 1089 1091 1093 Sheet1_2 - Όταν η malloc επιστρέφει NULL, το πρόγραµµα πρέπει να τερµατίζει (γιατι αν δεν έχει δεσµευτεί µνήµη, θα γίνει segfault) - Καλή προσπάθεια στα σχόλια, αλλά πρέπει να αντιστοιχούν στον κώδικα (για παράδειγµα, η replace έχει τρεις όχι δυο παραµέτρους) - Λάθος στην κλήση της malloc - Δεν υπάρχουν σχόλια - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη - Να δίνεις περιγραφικά ονόµατα στις µεταβλητές - Μπράβο, εξαιρετική δουλειά! - Εξαιρετική δουλειά - Καλή δουλειά, αλλά στο µέλλον να γράφεις τα σχόλια συναρτήσεων όπως περιγράφεται στο σχετικό φυλλάδιο - Καλή δουλειά κατα τα άλλα - Καλή δουλειά οριακά - Δεν απελευθερώνεις όλη τη δυναµικά δεσµευµένη µνήµη. οριακά Page 5

1097 1098 1100 1101 1102 1104 1105 1109 1110 Sheet1_2 - Τα === παραπλανούν τον αναγνώστη : δίνουν την εντύπωση ότι ξεκινά κάποιο πολύ διαφορετικό τµήµα του προγράµµατος. Είναι καλή ιδέα να τα χρησιµοποιείς ανάµεσα σε συναρτήσεις, αλλά όχι µέσα στην ίδια συνάρτηση - Έχεις πολλά σχόλια σε κάθε γραµµή, τα οποία δε δίνουν κάποια χρήσιµη πληροφορία. Επίσης, δεν έχεις καλά σχόλια συναρτήσεων. Διάβασε το φυλλάδιο σχολιασµού. - Δε γίνεται δυναµική δέσµευση µνήµης - Δεν έχει υλοποιηθεί σχεδόν καθόλου η replace - Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών. Τι σηµαίνει pch?. - Ξανακάνε την άσκηση στο σπίτι µε ακριβώς τις παραµέτρους που ζητούσε η εκφώνηση για να καταλάβεις καλύτερα πώς λειτουργούν οι αναδροµικές συναρτήσεις. - Το πρόγραµµα δεν κάνει compile - Δεν υπάρχουν σχόλια - Πολύ καλή δουλειά - Το loop στην getstring είναι περιττό και inefficient. Αρκούσε µια scanf. - Κατά τα άλλα, καλή δουλειά. - Εξαιρετική δουλειά Page 6

1111 1113 1114 1115 1116 1118 1119 1120 Sheet1_2 - Τα σχόλια συναρτήσεων δεν είναι σύµφωνα µε τις προδιαγραφές - Δε γίνεται δυναµική δέσµευση µνήµης - Να δίνεις περιγραφικά ονόµατα στις µεταβλητές - Το πρόγραµµα δε λειτουργεί σωστά: τα mikos3 και mikos1 έχουν πάντα την ίδια τιµή - Πολύ καλή δουλειά - Πολλά σχόλια αλλά δυστυχώς δε διαβάζονταν. Γράφε µε λατινικούς χαρακτήρες.. Επίσης, µην αφήνεις τόσο µεγάλα κενά ανάµεσα στις γραµµές του προγράµµατος. - Πρέπει κάθε εντολή να βρίσκεται σε νέα γραµµή - µη βάζεις πολλαπλές εντολές στην ίδια γραµµή - Πρώτα πρέπει να ελέγχεις αν το malloc επέστρεψε NULL και µετά να διαβάζεις κάτι στο string. Αν διαβάζεις πρώτα, τότε αν ήταν NULL θα έκανε segfault - Μη χρησιµοποιείς σχόλια C++ - Καλή δουλειά κατα τα άλλα - Λάθος στο base case και στην αναδροµική κλήση - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Εξαιρετική δουλειά Page 7

Sheet1_2 1121 1122 1124 1126 1127 1128 1129 1130 1131 - Πολύ καλή δουλειά οριακά -Άσχηµη στοίχιση - Καλή δουλειά, αλλά προσπάθησε να το κάνεις και χωρίς να χρησιµοποιείς τη sum. Θα σε βοηθήσει να καταλάβεις καλύτερα την αναδροµή - Τα σχόλια συνάρτησης πρέπει να βρίσκονται πριν τη συνάρτηση - Δεν έχει υλοποιηθεί αναδροµή - Όταν η malloc επιστρέφει NULL, το πρόγραµµα πρέπει να τερµατίζει (γιατι αν δεν έχει δεσµευτεί µνήµη, θα γίνει segfault) - Ωραία σχόλια - Να δίνεις πιο περιγραφικά ονόµατα στις µεταβλητές οριακά - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. Πολύ καλά! - Να χρησιµοποιείς πιο περιγραφικά ονόµατα για µεταβλητές. - Καλη δουλειά κατα τα άλλα. Page 8

1133 1135 1137 1138 1139 1141 1142 1144 1145 1148 Sheet1_2 - Τα σχόλια συνάρτησης πρέπει να βρίσκονται πάνω από τη συνάρτηση - Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών. Τι σηµαίνει pch? - Το πρόγραµµα δεν κάνει compile οριακά - Στη C οι µεταβλητές πρέπει να δηλώνονται στην αρχή κάθε συνάρτησης, πριν από οποιεσδήποτε άλλες εντολές - Τα σχόλια συνάρτησης πρέπει να βρίσκονται πάνω από τη συνάρτηση - Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών - Καλή δουλειά οριακά - Πρόσεχε λίγο τη στοίχιση - Καλή δουλειά στα σχόλια, µπράβο - Πολύ καλή δουλειά Page 9

1149 1150 1155 1157 1158 1159 1160 1161 Sheet1_2 - Δεν υπάρχουν σχόλια - Μην αγνοείς τα compilation warnings - σε προειδοποιούν για σηµαντικά λάθη. - Δε δεσµεύεται µνήµη για τα strings - Δεν υπάρχει τύπος void * - Το base case πρέπει πάντα να ελέγχεται στην αρχή της αναδροµικής συνάρτησης οριακά - Δεν υπάρχουν σχόλια - Δεν κάνει compile - Καλή δουλειά - Διάβασε το φυλλάδιο σχολιασµού - σχόλια όπως το "ελευθερώνει τη µνήµη" δεν προσφέρουν χρήσιµες πληροφορίες. Επιπλέον, πρέπει να βάζεις "σχόλια συναρτήσεων". - Τα σχόλια µέσα στη replace είναι καλά - Αντί για if (x>0 x<0) θα ήταν πιο "καθαρό" να είχες χρησιµοποιήσει else οριακά - Δεν απελευθερώνεις όλη τη δυναµικά δεσµευµένη µνήµη. Page 10

Sheet1_2 1171 1172 1177 1180 1181 1184 1185 - Το '\0' είναι ο τερµατικός χαρακτήρας (ο χαρακτήρας µε ASCII µηδέν) ενώ το NULL είναι δείκτης (διεύθυνση µηδέν). Δεν είναι το ίδιο πράγµα. - Δεν τερµατίζει ποτέ η αναδροµή - segmentation fault σε όλα εκτός από ένα testcase - To string είχε 100 χαρακτήρες και το τερµατικό, άρα έπρεπε να διαβάζεις µε %100s. - Όταν διαβάζεις string µε scanf πρέπει πάντα να προσδιορίζεις το µέγεθος - Τα σχόλια συναρτήσεων πρέπει να βρίσκονται πάνω από τη συνάρτηση. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη οριακά - Πρώτα πρέπει να ελέγχεις αν το malloc επέστρεψε NULL και µετά να διαβάζεις κάτι στο string. Αν διαβάζεις πρώτα, τότε αν ήταν NULL θα έκανε segfault - Όταν διαβάζεις ένα string µε scanf πρέπει να προσδιορίζεις το µέγεθος. - Πρέπει κάθε εντολή να βρίσκεται σε νέα γραµµή - µη βάζεις πολλαπλές εντολές στην ίδια γραµµή - Τα σχόλια συνάρτησης πρέπει να βρίσκονται πάνω από τη συνάρτηση - Πολύ καλή δουλειά οριακά - Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών. Τι σηµαίνει pch? Page 11

1186 1187 Sheet1_2 - Όταν η malloc επιστρέφει NULL, το πρόγραµµα πρέπει να τερµατίζει (γιατι αν δεν έχει δεσµευτεί µνήµη, θα γίνει segfault) - Πολύ καλή δουλειά - Δεν υπάρχουν σχόλια - Κατα τα άλλα, πολύ καλογραµµένο πρόγραµµα Page 12