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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

Διάλεξη 8η: Αλφαριθμητικά (strings)

Μεθόδων Επίλυσης Προβλημάτων

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

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

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

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Δείκτες στην C (επανάληψη)

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

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

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

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

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

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

Συµβολοσειρές - Strings

Προγραμματισμός Ι. Θεματική ενότητα 6: Πίνακες αλφαριθμητικά

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Transcript:

Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 - Πολύ καλή δουλειά κατά τα άλλα, µπράβο. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.h - Πολύ καλή δουλειά κατά τα άλλα. - Η συνθήκη στο if είναι λάθος. Δεν έπρεπε να χρησιµοποιείς strcmp σε εκείνο το σηµείο, αλλά strstr. Μπορεί να λυθεί και µε strncmp η άσκηση, αλλά τότε θα χρειαζόταν να διατρέξεις το str1. Δοκίµασε να το διορθώσεις, κι αν έχεις απορίες ζήτα βοήθεια. - Έπρεπε να µεταβάλλεις το αρχικό string, όχι απλά να το εκτυπώνεις όσες φορές χρειάζεται. - Σχετικά µε το σχόλιό σου: επικοινώνησε µε τον κύριο Αντωνόπουλο ή την κυρία Ντουφεξή να σου λύσουν τις απορίες σε ώρες γραφείου. - Υπάρχει συνάρτηση (strlen) για τον υπολογισµό του µήκους ενός string - Στη C, οι µεταβλητές πρέπει πάντα να δηλώνονται στην αρχή του block της συνάρτησης - Καλή δουλειά κατά τα άλλα Page 1

1244 - Αντιγραφή 1246 1247 - Δεν παραδόθηκε άσκηση 1248 1249 1250 - Δεν παραδόθηκε άσκηση 1251 1252 - Αφού το µέγεθος του string είναι 50, στο scanf έπρεπε να έχεις "%49s" (διαβάζεις το πολύ 49 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! - Καλή δουλειά κατά τα άλλα - Γιατί το str έχει µέγεθος 200? Μόνο 10 θέλουµε. - Το pinakas[10] είναι εκτός ορίων του πίνακα! - Το pinakas περιέχει χαρακτήρες, οπότε είναι πιο σωστό να πεις pinakas[i]='\0' αντί για pinakas[i]=0 - Ο αλγόριθµός σου θέλει δουλειά, αλλά δεν είναι άσχηµη προσπάθεια. Δοκίµασε να το διορθώσεις κι αν δυσκολεύεσαι ζήτα βοήθεια. - Αντί για &str1[0] µπορείς να γράψεις απλά str1. Είναι ακριβώς το ίδιο πράγµα. - Το πρόγραµµα έπρεπε να εκτυπώνει το πρώτο string και στην περίπτωση που το δεύτερο string δεν εµφανίζεται στο πρώτο. - Καλή δουλειά γενικά - Να προσέχεις το operator precedence. Όταν υπολογίζεις N-1 / length γίνεται πρώτα η διαίρεση (η οποία βγάζει µηδέν) και µετά η αφαίρεση. Έπρεπε να είχες χρησιµοποιήσει παρενθέσεις. - Το for έπρεπε να τρέχει copies φορές, όχι upoloipa, και µετά να προσθέτεις µε strncpy τους υπόλοιπους χαρακτήρες στο string. - Τα αντίγραφα έπρεπε να "γραφτούν" στο αρχικό string που διαβάστηκε από το πληκτρολόγιο, όχι σε βοηθητικό string. - Γιατί έκανες το str να έχει µέγεθος 100 και όχι 10? - Πολύ καλή δουλειά γενικά, µπράβο Page 2

1253 1254 - Δεν παραδόθηκε άσκηση 1255 1256 1258 1260 1261 - Αντί για &string1[0] µπορείς να γράψεις απλά string1. Είναι ακριβώς το ίδιο πράγµα. - Το πρόγραµµα έπρεπε να εκτυπώνει το πρώτο string και στην περίπτωση που το δεύτερο string δεν εµφανίζεται στο πρώτο. - Πολύ καλή δουλειά, µπράβο! Δοκίµασε να το γράψεις και µε χρήση της strncpy. - Αφού το µέγεθος του string είναι 100, στο scanf έπρεπε να έχεις "%99s" (διαβάζεις 9 το πολύ 9 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! - H άσκηση ζητούσε να µεταβληθεί το αρχικό string. Έπρεπε στο τέλος να αντιγράψεις το copy_board στο word. - Γιατί έκανες το copy_board να έχει µέγεθος 100? - Καλή δουλειά κατά τα άλλα - Στην περίπτωση που το string2 δεν εµφανίζεται στο String1 το πρόγραµµά σου έχει segmentation fault. Έπρεπε να ελέγχεις αν το αποτέλεσµα της strstr είναι NULL. Να κάνεις πάντα εκτεταµένους - Μόνο οι σταθερές γράφονται µε κεφαλαία - Αφού έχεις τη detector να επιστρέφει 0 ή 1, έπρεπε το return type της να είναι int, κι όχι char. Αλλά, ακόµη καλύτερα, έπρεπε να είναι void και να µην επιστρέφεις τίποτα, αφού δεν έχεις σκοπό να χρησιµοποιήσεις το αποτέλεσµά της πουθενά. Το πρόγραµµα δεν κάνει compile και περιέχει πολύ σοβαρά λάθη (ειδικά ο τρόπος µε τον οποίο χρησιµοποιείται η strcmp) - Η συµπεριφορά των συναρτήσεων που αντιγράφουν ή επικολλούν strings είναι απροσδιόριστη όταν τα strings επικαλύπτονται (δηλαδή όταν το source και το destination έχουν κοινά κοµµάτια). Το ότι λειτουργεί το πρόγραµµά σου είναι απλή σύµπτωση, αλλά θα πάρεις επειδή δεν το ήξερες. Προσπάθησε πάντως να ξανακάνεις την άσκηση µε άλλο τρόπο. - Η strstr επιστρέφει δείκτη. Είναι πιο σωστό να συγκρίνεις το αποτέλεσµα µε τη διεύθυνση NULL, κι όχι µε 0 - Στην strncpy έπρεπε να γράφεις στο emfanish, όχι στο string1 Page 3

1262 1265 - Δεν παραδόθηκε άσκηση 1267 - Όταν βλέπεις σε ένα πρόγραµµα ότι επαναλαµβάνεις τον ίδιο κώδικα µε µόνη αλλαγή κάτι απλό (πχ µια ακέραια τιµή), τότε πρέπει να προσπαθείς να κάνεις την ίδια δουλειά χρησιµοποιώντας επανάληψη. - Το πρόγραµµα έπρεπε να είναι γραµµένο έτσι ώστε να λειτουργεί για πίνακες µεγέθους SIZE, όχι για συγκεκριµένη τιµή του SIZE. Ο τρόπος µε τον οποίο προσπαθείς να λύσεις το πρόβληµα τελικά δεν έχει αποτέλεσµα - αν ο χρήστης δώσει µεγαλύτερο string από ότι πρέπει, θα βγει εκτός ορίων. Αν δεν καταλαβαίνεις γιατί δεν είναι σωστή η µέθοδός σου, ρώτα! - Η συµπεριφορά των συναρτήσεων που αντιγράφουν ή επικολλούν strings είναι απροσδιόριστη όταν τα strings επικαλύπτονται (δηλαδή όταν το source και το destination έχουν κοινά κοµµάτια). Το ότι λειτουργεί το πρόγραµµά σου είναι απλή σύµπτωση, αλλά θα πάρεις επειδή δεν το ήξερες. Προσπάθησε πάντως να ξανακάνεις την άσκηση µε άλλο τρόπο. 1269 1271 1273 1274 - Η άσκηση ζητούσε το πρόγραµµα να δουλεύει για πίνακα µεγέθους SIZE. Το πρόγραµµά σου λειτουργεί µόνο αν ο πίνακας έχει µέγεθος 10 - Στην περίπτωση που το str2 δεν εµφανίζεται στο str1 το πρόγραµµά σου έχει segmentation fault. Έπρεπε να ελέγχεις αν το αποτέλεσµα της strstr είναι NULL. Να κάνεις πάντα εκτεταµένους ελέγχους για οριακές περιπτώσεις, για να εντοπίζεις τέτοια προβλήµατα. - Η συµπεριφορά των συναρτήσεων που αντιγράφουν ή επικολλούν strings είναι απροσδιόριστη όταν τα strings επικαλύπτονται (δηλαδή όταν το source και το destination έχουν κοινά κοµµάτια). Το ότι λειτουργεί το πρόγραµµά σου είναι απλή σύµπτωση, αλλά θα πάρεις επειδή δεν το ήξερες. Προσπάθησε πάντως να ξανακάνεις την άσκηση µε άλλο τρόπο. Page 4

1276 - Δεν παραδόθηκε άσκηση 1277 - Δεν παραδόθηκε άσκηση 1278 1279 - Δεν παραδόθηκε άσκηση 1280 1281 1282 1283 1284 - Η strstr επιστρέφει δείκτη. Είναι πιο σωστό να συγκρίνεις το αποτέλεσµα µε τη διεύθυνση ΝULL, κι όχι µε 0 - Στην strncpy έπρεπε να γράφεις στο emfanish, όχι στο string1 - Η σύγκριση string1!='\0' προκαλεί ατέρµονο loop. Η χρήση gdb βοηθά πολύ σε αυτές τις περιπτώσεις. - Η επιτυχία της σύγκρισης if(string1[i]==string2[0]) { δε σηµαίνει ότι βρέθηκε το string2 στο string1, αλλά απλά ότι βρέθηκε ο πρώτος χαρακτήρας του string2 στο string1. Τελικά, το πρόγραµµά σου καταφέρνει (αφού διορθωθεί το λάθος στο loop) να αφαιρέσει µόνο ένα χαρακτήρα. - Αφού το µέγεθος του string είναι 10, στο scanf έπρεπε να έχεις "%9s" (διαβάζεις 9 το πολύ 9 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! Ακόµη χειρότερα, λίγο πιο κάτω στο πρόγραµµα προσπελαύνεις το pinakas[11] το οποίο είναι εκτός ορίων. - Αφού το µέγεθος του string είναι 50, στο scanf έπρεπε να έχεις "%49s" (διαβάζεις το πολύ 49 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.h - Απαράδεκτα ονόµατα µεταβλητών - Τι ακριβώς είναι τα str1, str2? - Η άσκηση ζητούσε να κατασκευάσεις ένα νέο string, όχι απλά να εκτυπώσεις κοµµάτια από τα ήδη υπάρχοντα. - Το πρόγραµµα έπρεπε να εκτυπώνει το πρώτο string και στην περίπτωση που το δεύτερο string δεν εµφανίζεται στο πρώτο. - Η άσκηση ζητούσε να αλλάξεις τα περιεχόµενα του πρώτου string, όχι απλά να εκτυπώσεις κοµµάτια από τα ήδη υπάρχοντα. - Δοκίµασε να το ξανακάνεις και µε συναρτήσεις από το string.h. Page 5

1286 - Πολύ καλή δουλειά 1288 - Ελλιπής λύση. 1289 1292 1293 1294 1295 1297 1299 - Δεν παραδόθηκε άσκηση 1300 1303 - Αφού το µέγεθος του string είναι 50, στο scanf έπρεπε να έχεις "%49s" (διαβάζεις το πολύ 49 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! - Τα αντίγραφα έπρεπε να "γραφτούν" στο αρχικό string που διαβάστηκε από το πληκτρολόγιο, όχι σε βοηθητικό string. - Γιατί έκανες το str να έχει µέγεθος 50 και όχι 10? - Πολύ καλή δουλειά γενικά, µπράβο - Πολύ µπερδεµένη λύση και τελικά δεν κάνει αυτό που πρέπει: αντί να µεταβάλλεις το πρώτο string προσπαθείς (χωρίς επιτυχία) να εκτυπώσεις κοµµάτια από όλα τα strings. - Η άσκηση ζητούσε να αφαιρεθεί ένα κοµµάτι από το πρώτο string, όχι απλά να εκτυπωθούν στην οθόνη τα κοµµάτια που θέλουµε. - Όταν χρησιµοποιείς "%49s" στο printf, αυτό που εκτυπώνεται καταλαµβάνει 49 θέσεις, οι πιο πολλές εκ των οποίων είναι κενά. Δεν υπήρχε λόγος να το τυπώσεις έτσι. - Καλή δουλειά κατά τα άλλα. - Το πρόγραµµα δεν κάνει compile. Ξαναδιάβασε πώς καλούµε συναρτήσεις. - Στην περίπτωση που το str2 δεν εµφανίζεται στο str1 το πρόγραµµά σου έχει segmentation fault. Έπρεπε να ελέγχεις αν το αποτέλεσµα της strstr είναι NULL. Να κάνεις πάντα εκτεταµένους ελέγχους για οριακές περιπτώσεις, για να εντοπίζεις τέτοια προβλήµατα. - Πριν παραδώσεις µια άσκηση, να σβήνεις όλα τα περιττά printf - Αλγοριθµικό λάθος. Προσπάθησε να ξανακάνεις την άσκηση στο σπίτι. - Το str[mege8os] είναι ο χαρακτήρας '\0' - Καλή η ιδέα σου, αλλά η υλοποίηση θέλει δουλειά. Θα σε είχε διευκολύνει πολύ αν είχες χρησιµοποιήσει την strcpy ή την strncpy. - Ο υπολογισµός του πλήθους των αντιγράφων δε γίνεται σωστά Page 6

1304 1305 1306 1307 1309 - Πολύ καλή δουλειά, µπράβο! 1310 1311 1312 - Δεν παραδόθηκε άσκηση 1314 - Για ποιο λόγο χρησιµοποιείς isalnum? Η εκφώνηση δε λέει τίποτα για το περιεχόµενο του string. - Κάθε εντολή πρέπει να βρίσκεται σε διαφορετική γραµµή. - Τα ονόµατα των σταθερών γράφονται µε κεφαλαία - Καλή δουλειά κατά τα άλλα. - Τα νούµερα 51 και 50 έπρεπε να είναι 50 και 49 αντίστοιχα - Το πρόγραµµα δε λειτουργεί σωστά, αλλά είναι καλή προσπάθεια. - Προσπάθησε να το διορθώσεις και ζήτα βοήθεια αν δυσκολεύεσαι. - Τα νούµερα 51 και 50 έπρεπε να είναι 50 και 49 αντίστοιχα - Στην περίπτωση που το δεύτερο string δεν εµφανίζεται στο πρώτο, το πρόγραµµα έπρεπε απλά να εκτυπώνει ξανά το πρώτο string, και όχι κάτι άλλο. Να ακολουθείς τις προδιαγραφές. - Καλή δουλειά κατά τα άλλα - Το πρόγραµµα έπρεπε να εκτυπώνει το πρώτο string και στην περίπτωση που το δεύτερο string δεν εµφανίζεται στο πρώτο. - Πολύ καλή δουλειά, µπράβο! - Αν δεν το επιτρέπει ξεκάθαρα η εκφώνηση, µη χρησιµοποιείς ΠΟΤΕ καθολικές µεταβλητές - Διαβάζεις λάθος τη λέξη. - Λάθος στη χρήση for. - Το A[SIZE] είναι εκτός των ορίων του πίνακα. - Έχεις πολύ σοβαρά λάθη που δεν έπρεπε να γίνονται σε αυτό το στάδιο. Ξαναδιάβασε την ύλη για πίνακες, και ζήτα βοήθεια από τους διδάσκοντες για ότι απορίες έχεις. - Αφού το µέγεθος του string είναι 10, στο scanf έπρεπε να έχεις "%9s" (διαβάζεις το πολύ 9 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! - Όταν θες να τυπώσεις ένα string δε χρειάζεται να το κάνεις έναν-ένα χαρακτήρα. Μπορείς να χρησιµοποιήσεις printf("%s\n", str) - Πολύ καλή δουλειά κατά τα άλλα Page 7

1315 1316 1317 - Δυστυχώς το θαύµα δεν έγινε :) Το πρόγραµµα έπρεπε να µεταβάλλει το string1 όχι απλά να εκτυπώνει στην οθόνη. - Το πρόγραµµά σου σκάει µε segfault στη γραµµή 13 γιατί δεν έχει δεσµευθεί µνήµη για το str. Καλύτερα να το είχες δηλώσει και αυτό ως πίνακα - Το i δεν πρέπει να ξεκινά από a*length και το j πρέπει να αυξάνεται. - Τι είναι αυτά τα getchar στο τέλος? - Μην αγνοείς τα warnings - στην πλειοψηφία των περιπτώσεων σε ενηµερώνουν για σηµαντικά λάθη. - Το res είναι δείκτης (διεύθυνση) κι όχι ακέραιος. Γι αυτό υπήρχε πρόβληµα µε το s1[res] και µε το i>res. Ακόµη κι αν αυτό ήταν συντακτικά σωστό, το πρόγραµµά σου θα είχε πρόβληµα στο loop: το s1[res]=s1[res+pli8os2]; κάνει συνέχεια το ίδιο πράγµα. Για να δουλεύει σωστά θα έπρεπε να µεταβάλλεται το res µε κάποιο τρόπο. - Η strstr επιστρέφει δείκτη. Είναι πιο σωστό να συγκρίνεις το αποτέλεσµα µε τη διεύθυνση NULL, κι όχι µε 0 - Όταν χρησιµοποιείς "%49s" στο printf, αυτό που εκτυπώνεται καταλαµβάνει 49 θέσεις, οι πιο πολλές εκ των οποίων είναι κενά. Δεν υπήρχε λόγος να το τυπώσεις έτσι. 1319 1320 - Δεν παραδόθηκε άσκηση 1321 1324 - Καλή δουλειά κατά τα άλλα - Τα νούµερα 51 και 50 έπρεπε να είναι 50 και 49 αντίστοιχα - Το πρόγραµµα έπρεπε να εκτυπώνει το πρώτο string και στην περίπτωση που το δεύτερο string δεν εµφανίζεται στο πρώτο. - Το πρόγραµµα δε λειτουργεί σωστά όταν το δεύτερο string είναι µεγαλύτερο από το πρώτο. Να κάνεις πάντα εκτεταµένους ελέγχους για οριακές περιπτώσεις για να εντοπίζεις τέτοια προβλήµατα. - Στην περίπτωση που το String2 δεν εµφανίζεται στο String1 το πρόγραµµά σου έχει segmentation fault. Έπρεπε να ελέγχεις αν το αποτέλεσµα της strstr είναι NULL. Να κάνεις πάντα εκτεταµένους ελέγχους για οριακές περιπτώσεις, για να εντοπίζεις τέτοια προβλήµατα. Page 8

1325 1327 1328 1329 - Απουσία από το εργαστήριο. 1330 1332 - Δεν παραδόθηκε άσκηση 1334 - Αντιγραφή 1336 1337 - Το πρόγραµµα δεν κάνει compile. Το βασικό πρόβληµα είναι ότι κάνεις ανάθεση δείκτη (pos) σε ακέραιο (i) πράγµα που απαγορεύεται. Για να δουλέψει σωστά το πρόγραµµά σου, το βασικό for έπρεπε να είναι for (i=pos-prwto_string ; i<length2+pos-prwto_string; i++) { - Στην περίπτωση που το str2 δεν εµφανίζεται στο str1 το πρόγραµµά σου έχει segmentation fault. Έπρεπε να ελέγχεις αν το αποτέλεσµα της strstr είναι NULL. Να κάνεις πάντα εκτεταµένους ελέγχους για οριακές περιπτώσεις, για να εντοπίζεις τέτοια προβλήµατα. - Στην strcmp έπρεπε να έχεις str3 αντί για str2. Δεν έτρεξες το πρόγραµµά σου να δεις τι αποτελέσµατα βγάζει? - Υπάρχει συνάρτηση (strlen) για τον υπολογισµό του µήκους ενός string - Ο αλγόριθµός σου είναι λάθος. Προσπάθησε να ξανακάνεις την άσκηση και µε πίνακες (όπως ξεκίνησες) αλλά και χρησιµοποιώντας συναρτήσεις από το string.h. Αν δυσκολεύεσαι ζήτα βοήθεια. - Το πρόγραµµα δεν κάνει compile - Ο χαρακτήρας που τερµατίζει ένα string είναι '\0' κι όχι '' - Προσπαθείς απλά να εκτυπώσεις τα κοµµάτια του string που µας ενδιαφέρουν, αντί να "χτίσεις" το string. - Η άσκηση ζητούσε να αφαιρεθεί ένα κοµµάτι από το πρώτο string, όχι απλά να εκτυπωθούν στην οθόνη τα κοµµάτια που θέλουµε. - Η strstr επιστρέφει δείκτη. Είναι πιο σωστό να συγκρίνεις το αποτέλεσµα µε τη διεύθυνση ΝULL, κι όχι µε 0 - Τι ακριβώς προσπαθείς να κάνεις µε το end και το for? Εκείνο το κοµµάτι του προγράµµατός σου δεν έχει νόηµα. Page 9

1338 - Δεν παραδόθηκε άσκηση 1339 - Δεν παραδόθηκε άσκηση. 1341 1342 1345 1346 1353 1354 1355 - Ο αλγόριθµός σου δε λειτουργεί σωστά: Αντιγράφει το str συνέχεια στην αρχή του πίνακα, αντί να τοποθετεί τα αντίγραφα διαδοχικά. Έπρεπε να χρησιµοποιήσεις ή strncpy ή strcpy µε έξυπνη αριθµητική δεικτών. - Αν το SIZE αλλάξει, το πρόγραµµά σου δε θα λειτουργεί γιατί σε κάποια σηµεία χρησιµοποιείς 9 αντί για SIZE-1. - Πολύ καλή δουλειά. - Τα printf(str1); return(0); δε χρειαζόταν να βρίσκονται µέσα στο if αφού εκτελούνται ανεξαρτήτως του αν το change είναι NULL ή όχι. - Καλή δουλειά, αλλά γιατί γράφεις 10 γραµµές κώδικα για να διαβάσεις ένα string ενώ θα µπορούσες απλά να γράψεις scanf("%9s", string); - Γιατι χρησιµοποιείς size+1? Θέλουµε το πολύ 10 χαρακτήρες (µαζί µε το '\0' - Η strncpy έπρεπε να γράφει στο position όχι στο string1. - Το αρχικό string έπρεπε να εκτυπώνεται ακόµη κι αν δεν έχει αλλάξει - Το πρόγραµµα δε λειτουργεί σωστά, αλλά είναι καλή προσπάθεια. Προσπάθησε να το διορθώσεις και ζήτα βοήθεια αν δυσκολεύεσαι - Υπολογίζεται λάθος το πλήθος των αντιγράφων. - Η άσκηση ζητούσε να µεταβληθούν τα περιεχόµενα του αρχικού string κι όχι απλά να εκτυπωθεί µια σειρά από αντίγραφα στην οθόνη. Page 10

9999 - Απουσία από το εργαστήριο. temp1 temp12 temp13 temp15 temp19 temp20 temp21 - Πολύ καλή δουλειά, µπράβο! temp22 - Πολύ καλή δουλειά, µπράβο! - Μη γράφεις περισσότερες από µια εντολή σε κάθε γραµµή - Πολύ καλή δουλειά, µπράβο - Αφού το µέγεθος του string είναι 10, στο scanf έπρεπε να έχεις "%9s" (διαβάζεις το πολύ 9 χαρακτήρες, και µένει µια θέση για το '\0'). Αυτό είναι πολύ σηµαντικό λάθος. Πρόσεχέ το! - Ξεκίνησες καλά µε τον υπολογισµό του num_cop1 και του num_cop2 αλλά το while σου δε βγάζει νόηµα. Θα βοηθούσε αν είχες κάποια σχόλια που να εξηγούν τι προσπαθείς να κάνεις. - Καλή προσπάθεια, αν και η άσκηση ζητούσε να µεταβληθεί το πρώτο string. Έπρεπε στο τέλος να αντιγράψεις το copied_table στο table. - Για ποιο λόγο δηλώνεις το string να έχει µέγεθος SIZE+1 και όχι SIZE? Θέλουµε το πολύ SIZE χαρακτήρες µαζί µε το '\0' - Έχεις λάθος στα όρια του for. Να προσέχεις πολύ να µη βγαίνεις από τα όρια πινάκων. - Ξεκινάς καλά, αλλά µετά ο αλγόριθµος έχει προβλήµατα, κυρίως µε τα όρια των strings - Τα (char*) και & στο (char*)&firststring αλληλοαναιρούνται. Μπορούσες να έχεις γράψει απλά FirstString - Το πρόγραµµα έπρεπε να εκτυπώνει το πρώτο string και στην περίπτωση που len1<len2 len1<len3 - Πολύ καλή δουλειά, µπράβο! Δοκίµασε να το γράψεις και µε χρήση της strncpy. - Το pinakas[10] είναι εκτός των ορίων του πίνακα. Να προσέχεις πολύ τέτοια λάθη! - Η ιδέα σου θέλει αρκετή δουλειά ακόµη για να δουλέψει. Η strcpy δε χρησιµοποιείται σωστά : το str αντιγράφεται πάντα στην αρχή του πίνακα. Πιο σωστό θα ήταν να έλεγες: strcpy(pinakas+size-1, str) Page 11

temp23 - Πολύ καλή δουλειά, µπράβο! temp25 - Πρώτη φορά βλέπω πρόγραµµα C γραµµένο σαν SMS! temp29 temp32 temp33 temp35 temp36 temp39 temp4 temp40 temp41 - Θα µπορούσες να χρησιµοποιήσεις τη συνάρτηση strlen για να υπολογίσεις το µήκος. - Ελλιπής λύση. - Θα µπορούσες να χρησιµοποιήσεις τη συνάρτηση strlen για να υπολογίσεις το µήκος. - Ελλιπής λύση. Το πρόγραµµα δεν κάνει compile και περιέχει πολύ σοβαρά λάθη (ειδικά ο τρόπος µε τον οποίο χρησιµοποιείται η strcmp) - Το πρόγραµµα έπρεπε να τερµατίζει όταν τα µεγέθη του δεύτερου και τρίτου string είναι άνισα. - Το πρόγραµµα δεν κάνει αυτό που ζητά η άσκηση. - Στην περίπτωση size2!= size3 το πρόγραµµα έπρεπε να τερµατίζει. Η χρήση while σε αυτό το σηµείο είναι λάθος. Αν δεν καταλαβαίνεις γιατί, ζήτα βοήθεια από την κ. Ντουφεξή - Τι είναι το "NULL(0)"? Ξαναδιάβασε τη θεωρία σχετικά µε το NULL - Δεν παραδόθηκε άσκηση - Το πρόγραµµα δεν κάνει compile και το λάθος που έχεις έπρεπε να είχες καταφέρει να το διορθώσεις. - Καλή ιδέα να χρησιµοποιήσεις strspn, αλλά αυτό που επιστρέφει είναι µήκος, όχι string. Αρκούσε να έχεις γράψει len = strspn(p, K) - Πολύ άσχηµα ονόµατα µεταβλητών. - Το πρόγραµµα που παρέδωσες αντιστοιχεί σε άλλο τµήµα. - Το πρόγραµµα δε λειτουργεί και δεν είναι ξεκάθαρο τι προσπαθείς να κάνεις. Page 12

temp42 temp44 temp46 temp5 temp6 temp7 temp9 - Το πρόγραµµα δεν κάνει compile - Λάθος στον τρόπο διαβάσµατος του stirng - Ελλιπής λύση - Δεν παραδόθηκε άσκηση - Απουσία από το εργαστήριο. - Η strstr επιστρέφει δείκτη. Έπρεπε να συγκρίνεις το αποτέλεσµα µε τη διεύθυνση ΝULL, όχι µε το χαρακτήρα '\0' - Τα νούµερα 51 και 50 έπρεπε να είναι 50 και 49 αντίστοιχα - Πολύ καλή δουλειά κατά τα άλλα. Δοκίµασε να χρησιµοποιήσεις strncpy για την τελική αντικατάσταση. - Μη βάζεις ποτέ \n στο scanf! Δε λειτουργεί σωστά όπως νοµίζεις. - Το πρόγραµµα δε λειτουργεί σωστά, αλλά είναι καλή προσπάθεια. - Προσπάθησε να το διορθώσεις και ζήτα βοήθεια αν δυσκολεύεσαι. - Τα νούµερα 51 και 50 έπρεπε να είναι 50 και 49 αντίστοιχα - Στην περίπτωση που το str2 δεν εµφανίζεται στο str1 το πρόγραµµά σου έχει segmentation fault. Έπρεπε να ελέγχεις αν το αποτέλεσµα της strstr είναι NULL. Να κάνεις πάντα εκτεταµένους ελέγχους για οριακές περιπτώσεις, για να εντοπίζεις τέτοια προβλήµατα. - Λάθος στον αλγόριθµο. Πρόσεχε τα όρια των loops. - Η χρήση της strcpy δεν είναι κατάλληλη γιατί αντιγράφει πάντα στην αρχή του board. - Αν το SIZE αλλάξει, το πρόγραµµά σου δε θα λειτουργεί γιατί σε κάποια σηµεία χρησιµοποιείς 9 αντί για SIZE-1. - Το printf έπρεπε να βρίσκεται έξω από το loop. Page 13