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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 AEM COMMENTS οριακά -Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Έπρεπε να δεσµέυσεις δυναµικά και την µνήµη του αρχικού string και να το κάνεις free µετά. -Δεν αποδεσµέυεις µε free όλη την µνήµη που δέσµευσες. -Το νέο string δεν έχει σαν τελευταίο χαρακτήρα το '\0'. -Δεν έχεις καθόλου ΣΧΟΛΙΑ! -Δεν δηλώνεις σταθερά για το µέγιστο µέγεθος του πίνακα. -Ο πίνακας έπρεπε να έχει µήκος 101, όχι Υπολογίζεις λάθος το µέγεθος του νέου string. Ψάξτο µε gdb. - Το πρόγραµµα δεν κάνει compile 0004 Δεν παρέδωσε To πρόγραµµα δεν κάνει compile πολύ οριακά Αν το είχες κάνει θα έβρισκες εύκολα το λάθος που προκαλεί segmentation fault (αντι για part1-part2 έπρεπε να έχεις part2-part1) - Το τελικό string δεν έπρεπε να περιέχει το χαρακτήρα που το οριοθετεί - Δεν απελευθερώνεις τη µνήµη που είχες δεσµεύσει για το string που κατασκεύασες - Δεν υπάρχουν καθόλου σχόλια. - Μην αγνοείς τα warnings του compiler: σε ειδοποιούν για σοβαρά λάθη. Page 1

2 οριακά - Η υλοποίηση του εντοπισµού των δύο εµφανίσεων του χαρακτήρα στην συνάρτηση findpart είναι λανθασµένη. Η συνθήκη στην εντολή for όπου γίνεται η αντιγραφή δεν είναι σωστή καθώς µετά την αρχικοποίηση '' deytero_gramma = 0 '' είναι '' deytero_gramma == 0 ''. Εποµένως, το σώµα της εντολής for δεν εκτελείται ποτέ. Δες την αντίστοιχη λύση. - Ο χώρος που δεσµεύεται για το νέο αλφαριθµητικό είναι µεγαλύτερος από τον απαιτούµενο. - Η εντολή '' return 0; '' δεν θα έπρεπε να βρίσκεται στο σώµα της εντολής for. - Δεν απελευθερώνεις την µνήµη που έχει δεσµευτεί για το string που δηµιουργεί η συνάρτηση findpart. Η αποδέσµευση θα έπρεπε να γίνεται στην συνάρτηση main. - Η συνάρτηση findpart θα έπρεπε να καλείται αφού γίνει η λήψη των αντίστοιχων δεδοµένων από τον χρήστη. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. οριακά -Δε χρειάζεται να βάζεις σχόλια σε κάθε γραµµή. Για παράδειγµα, η λειτουργία των printf στη main είναι προφανής και δε χρειάζεται επεξήγηση. Αυτό που ΕΠΡΕΠΕ να έχεις είναι σχόλια συναρτήσεων. Διάβασε προσεκτικά το φυλλάδιο σχολιασµού - Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών. Τι σηµαίνει z? Beks? Γιατί να µη χρησιµοποιήσεις positions αντί για posit? - Το πρόγραµµά σου θα ήταν πιο efficient αν έβγαινες από το loop όταν το z γινόταν 2. Δεν υπάρχει λόγος να βρεις περισσότερες εµφανισεις του χαρακτήρα. - Έπρεπε να είχες τερµατίσει τη συµβολοσειρά µε '\0' - Τι ρόλο παίζουν οι τιµές 'a' και 'b'? Τι σηµαίνει check_2? Χρήση µεταβλητών µε άσχηµα ονόµατα και τιµών µη-προφανούς σηµασίας κάνουν το πρόγραµµά σου δυσνόητο. At the very least, έπρεπε να έχεις κάποια επεξηγηµατικά σχόλια σ'εκείνο το σηµείο - Δεν υπάρχουν σχόλια συναρτήσεων - Δεν απελευθερώνεις τη µνήµη που δέσµευσες δυναµικά. - Καλή δουλειά µε το "ταίριασµα" του output οριακά - Δεν υπάρχουν σχόλια - Δεσµεύεις λίγο περισσότερο χώρο από ότι χρειάζεται για το new_word - Το l έπρεπε να ξεκινά από 0. Γενικά το κοµµάτι αντιγραφής των χαρακτήρων στο νέο string είναι λάθος - Ο αλγόριθµος εύρεσης των θέσεων είναι λάθος. - Άσχηµα ονόµατα µεταβλητών (j, k) Page 2

3 οριακά - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Δεν ελέγχεις την τιµή που επιστρέφει η συνάρτηση malloc µετά την κλήση αυτής. Εάν η τιµή είναι ίση µε NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. - Δεν απελευθερώνεις την µνήµη που έχεις δεσµεύσει για το string που επιστρέφεται από την συνάρτηση findpart. - Η µνήµη για την µεταβλητή symvol θα έπρεπε να έχει δεσµευτεί δυναµικά και όχι στατικά. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Τα σχόλια των συναρτήσεων δεν συµµορφώνονται πλήρως µε αυτά του αντίστοιχου φυλλαδίου. - Το string που επιστρέφει η συνάρτηση findpart δεν δηµιουργείται σωστά. Αυτό οφείλεται στην εντολή j = 0 που βρίσκεται στο σώµα της εντολής for, οπότε σε κάθε επανάληψη είναι j = 0. Η εντολή θα έπρεπε να βρίσκεται εκτός του σώµατος της εντολής. - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Δεν ελέγχεις την τιµή που επιστρέφει η συνάρτηση malloc. Εάν η τιµή είναι ίση µε NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. - Δεν απελευθερώνεις την µνήµη που έχεις δεσµεύσει για το string που επιστρέφεται από την συνάρτηση findpart. - Η µνήµη για την µεταβλητή sumboloseira θα έπρεπε να έχει δεσµευτεί δυναµικά και όχι στατικά. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Τα σχόλια των συναρτήσεων δεν συµµορφώνονται πλήρως µε αυτά του αντίστοιχου φυλλαδίου. - Απαράδεκτα ονόµατα µεταβλητών - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Δεν απελευθερώνεις την µνήµη που έχεις δεσµεύσει για το string που επιστρέφεται από την συνάρτηση findpart. - Η µνήµη για την µεταβλητή string θα έπρεπε να έχει δεσµευτεί δυναµικά και όχι στατικά. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Τα σχόλια των συναρτήσεων δεν συµµορφώνονται πλήρως µε αυτά του αντίστοιχου φυλλαδίου. - Αρκετή προσοχή στην στοίχιση Μην αγνοείς τα warnings του compiler: σε ειδοποιούν για σοβαρά λάθη. Page 3

4 Sheet1_2 -Μην αγνοείς τα warnings-σε προειδοποιούν για σηµαντικά λάθη! -Το πρόγραµµα σου δεν λειτουργεί σωστά. Δεν εκτυπώνεται καθόλου η νέα συµβολοσειρά. -Βασικά λάθη σε συναρτήσεις. --Η συνάρτηση findpart επιστρέφει µια συµβολοσειρά, οπότε έπρεπε να είχε δηλωθεί ως char*. -Έπρεπε να χρησιµοποιήσεις την συνάρτηση strlen για να βρεις το µέγεθος της συµβολοσειράς. -Δεν έχεις καταλάβει την χρήση της malloc. Πρέπει πρώτα να την καλέσεις για να δεσµεύσεις δυναµικά µνήµη για την νέα συµβολοσειρά σου και µετά να αποθηκεύσεις τους χαρακτήρες που θέλεις στην συµβολοσειρά σου. -Μετά από την κλήση της malloc στην συνάρτηση findpart έπρεπε να ελέγχεις αν επιστρέφεται NULL, κι αν ναι, να τερµατίζεις το πρόγραµµα. -Δεν αποθηκεύεις στη νέα συµβολοσειρά το τµήµα της αρχικής συµβολοσειράς που βρίσκεται µεταξύ των δύο εµφανίσεων του χαρακτήρα αλλά ό,τι να ναι! Διάβασε καλά την εκφώνηση της άσκησης. -Δεν τερµατίζεις σωστά την συµβολοσειρά σου. -Ξαναδιάβασε τη θεωρία για τοπικές µεταβλητές. H new_str δεν έχει καµία σχέση µε τη main. Το free(new_str) έπρεπε να είναι free(str_new). -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",string); -Το output του προγράµµατος σου δεν ταιριάζει καθόλου µε το output που σας δίνεται! -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) - Τα όρια στα δύο for loops στην συνάρτηση findpart δεν είναι σωστά. Έπρεπε να έχεις χρησιµοποιήσει την συνάρτηση strlen ώστε να έχεις βρει το πραγµατικό µήκος της συµβολοσειράς. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Η σταθερά SIZE έχει τιµή ίση µε 100 οπότε θα έπρεπε να διαβάζεις 99 χαρακτήρες και όχι 100 στην αντίστοιχη εντολή scanf. - Δεν απελευθερώνεις την µνήµη που έχεις δεσµεύσει για το string που επιστρέφεται από την συνάρτηση findpart. - Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. - Αρκετή προσοχή στην στοίχιση Δεν παρέδωσε Page 4

5 οριακά - πρώτα δεσµεύουµε µνήµη µε malloc και µετά χρησιµοποιούµε τις µεταβλητές αυτές. Εσύ κάνεις ακριβώς το αντίθετο µε αποτέλεσµα το segmantation fault. - η αντιγραφή χαρακτήρων για τη νέα συµβολοσειρά θα έπρεπε να ξεκινά από το 0 και όχι από το pos[0] - δεν ελευθερώνεις τη µνήµη για τη δεύτερη συµβολοσειρά - θα έπρεπε να έχεις δείκτες και όχι πίνακες στις παραµέτρους των συναρτήσεων αλλά και στη main θα έπρεπε να χρησιµοποιήσεις δείκτη και δυναµική δέσµευση µνήµης για την αρχική συµβολοσειρά αντί για πίνακα - for ( k = i; k<n; k++ ) στο δεύτερο for θα έπρεπε να ξεκινάς από το i+1 γιατί στη θέση i είναι ο πρώτος χαρακτήρας και εσύ θα τον ξαναποθηκεύσεις σαν τη δεύτερη εµφάνιση. - θα έπρεπε να χρησιµοποιήσεις την strlen και όχι να φτάνεις µέχρι το Ν - στην αποθήκευση της νέας συµβoλοσειράς δε µπορείς να αυξάνεις το thesi αλλά να το χρησιµοποιείς και στη συνθήκη ελέγχου του for(i < (thesi1 - thesi ) θα έπρεπε πριν το for να αποθηκεύσεις το αποτέλεµα της διαφοράς σε µια µεταβλητή και αυτή να χρησιµοποιήσεις στον έλεγχο.) - Δεν τερµατίζεις το string µε '\0' - να βάζεις σχόλια σύµφωνα µε τα πρότυπα σχολιασµού - Το πρόγραµµα δεν κάνει compile - Πολλά warnings τα οποία δε θα έπρεπε να αγνοήσεις. - το str1 είναι µια µεταβλητή χαρακτήρας την οποία χρησιµοποιείς στη main µόνο για την τυπώσεις ώς συµβολοσειρά. Η µεταβλητή αυτή δεν έχει αρχικοποιηθεί πουθενά και ούτε έχει χρησιµοποιηθεί για την κλήση της συνάρτησης findpart. - h findpart έχει δηλωθεί να επιστρέφει char ενώ θα έπρεπε να επιστρέφει char * - καθόλου σχόλια - δε θα έπερεπε να χρησιµοποιήσεις πινακες αλλά παντού δείκτες και δυναµική δέσµευση µνήµης - στην αντιγραφή τυ ενδιάµεσου τµήµατος ξεκινάς την αντιγραφή από το 0 για την αρχική συµβολοσειρά ενώ θα έπρεπε να ξεκινήσεις µία θέση µετά την πρώτη εµφάνιση του χαρακτήρα Page 5

6 Sheet1_2 -Το πρόγραµµα σου δεν λειτουργεί σωστά. -Λάθος στον αλγόριθµο εύρεσης των θέσεων. Δεν βρίσκεις ούτε την πρώτη ούτε την δεύτερη εµφάνιση του χαρακτήρα µέσα στην συµβολοσειρά! -Έτσι όπως υλοποιείς το πρόγραµµα σου οι µεταβλητές pos1, pos2 δείχνουν πάντα στην ίδια θέση (στη θέση 1) µε αποτέλεσµα όταν κάνεις new = pos2 - pos1; η µεταβλητή new να παίρνει την τιµή 0. Αυτό έχει ως αποτέλεσµα να µην δεσµεύεται η µνήµη που απαιτείται για την νέα συµβολοσειρά και να εµφανίζεται το µήνυµα "Error: Could not allocate memory." -Δεν αποθηκεύεις στη νέα συµβολοσειρά το τµήµα της αρχικής συµβολοσειράς που βρίσκεται µεταξύ των δύο εµφανίσεων του χαρακτήρα αλλά ολόκληρη την συµβολοσειρά. -Δεν απελευθερώνεις την µνήµη που δεσµεύτηκε για τη συµβολοσειρά που επιστρέφει η findpart. Δηλαδή αφού κληθεί η συνάρτηση και επιστραφεί η συµβολοσειρά έπρεπε να είχες κάνει free(new); -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Το output του προγράµµατος σου δεν ταιριάζει µε το output που σας δίνεται! -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) -To πρόγραµµα σου δεν λειτουργεί σωστά. -Έτσι όπως υλοποιείς το πρόγραµµα σου µετά το τέλος της 1 ης for στην συνάρτηση findpart στην µεταβλητή pos κρατάς την δεύτερη εµφάνιση του χαρακτήρα ενώ στην µεταβλητή pos2 την πρώτη. Θα έπρεπε να κάνεις το αντίστροφο! Αυτό έχει ως αποτέλεσµα το πρόγραµµα σου να µην µπαίνει καθόλου µέσα στην 2 η for: for (i=pos;i<=pos2;i++){ k=k+1; } και να µην υπολογίζεται ποτέ το k και κατά συνέπεια και το new_len. Γι αυτό το λόγο δεν δεσµεύεται η µνήµη που απαιτείται για την νέα συµβολοσειρά και εµφανίζεται το µήνυµα "error couldn't allocate memory". -Δεν αποθηκεύεις στη νέα συµβολοσειρά το τµήµα της αρχικής συµβολοσειράς που βρίσκεται µεταξύ των δύο εµφανίσεων του χαρακτήρα αλλά ολόκληρη την συµβολοσειρά. -Δεν κάνεις free την µνήµη για το string που δέσµευσες στην main. -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών. -Το output του προγράµµατος σου δεν ταιριάζει µε το output που σας δίνεται! -Πρόσεχε πολύ την στοίχιση! -Δεν υπάρχουν σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) Μη χρησιµοποιείς σχόλια C++ και µην αφήνεις σπασµένο κώδικα µέσα σε σχόλια. Page 6

7 Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Γιατί στην main καλείς δυο φορές την findpart? -Δεσµεύεις περισσότερη µνήµη για τη νέα σου συµβολοσειρά. -Δεν τερµατίζεις σωστά το string. Έπρεπε str2[j-k-1]='\0'; και όχι str2[jk+1]=('\0'); -Δεν υπάρχουν καθόλου σχόλια. Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) - Και στη δεύτερη κλήση της malloc πρέπει να ελέγχεις αν επέστρεψε - Γενικά καλή δουλειά -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf ("%100s", string); -Δεν υπάρχουν επαρκή σχόλια! Δεν ακολουθείς ακριβώς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) Άσχηµη στοίχιση - Ελάχιστα σχόλια - Το µέγεθος στατικών πινάκων στη C πρέπει να είναι σταθερό. - Δε δεσµεύεις δυναµικά µνήµη για το αποτέλεσµα - Πολλά λάθη στον αλγόριθµο - Το πρόγραµµα δεν κάνει compile οριακά - Κάνεις free το new_str κι αµέσως µετά το επιστρέφεις. Είναι λάθος να χρησιµοποιείς µνήµη που έχει ελευθερωθεί. Το free(new_str) έπρεπε να είναι στη main. - Δεν κάνεις free τη µνήµη που δέσµευσες για το string στη main - Το output του προγράµµατός σου δεν είναι φορµαρισµένο ακριβώς όπως το σικό µας. - Δεσµεύεις περισσότερη µνήµη από όσο χρειάζεται. - Δεν υπάρχουν σχόλια συναρτήσεων. Page 7

8 οριακά - το j στο πρώτο while είναι περιττό θα µπορούσες να χρησιµοποιήσεις µόνο το i - *(str2+iend+1)='\0'; το iend δείχνει στη δεύτερη εµφάνιση του χαρακτήρα που µπορεί να είναι οπουδήποτε µέσα στο string. Θα έπρεπε να βάλεις τη διαφορά των θέσεων -1. Γι αυτό προκύπτει Segmentation fault - αντί για SIZE2=iend-istart+1; το σωστό µέγεθος για τη δέσµευση µνήµης είναι SIZE2=iend-istart; (οι ενδιάµεσοι χαρακτήρες +1 θέση για το '/0') -Το πρόγραµµα σου δεν λειτουργεί σωστά. Δεν εκτυπώνεται καθόλου η νέα συµβολοσειρά. -H printf() δεν συντάσσεται έτσι! -Βασικά λάθη σε συναρτήσεις. --Η συνάρτηση findpart επιστρέφει µια συµβολοσειρά, οπότε έπρεπε να είχε δηλωθεί ως char*. --Δεν επιστρέφεις σωστά την νέα σου συµβολοσειρά στην συνάρτηση findpart. -Ξαναδιάβασε τη θεωρία για τοπικές µεταβλητές. H str_new_len δεν έχει καµία σχέση µε τη main. Το free(str_new_len) έπρεπε να είναι free(new_string). -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) -θα έπρεπε να σπάσεις το διπλό for σε δύο ξεχωριστά ή να βάλεις break όταν βρει το δεύτερο χαρακτήρα και όταν επιστρέφει στο πρώτο for. Η δέσµευση µνήµης πρέπει να γίνεται µόνο µία φορά άρα δε µπορείς να την έχεις µέσα σε επανάληψη όπως και το for της αντιγραφής θα έπρεπε να είναι έξω από από το διπλό for. - έχεις string2[deuteri_emfanish] = '\0'; ενώ θα έπρεπε να είναι string2[deuteri_emfanish-prwti_emfanish -1] = '\0'; και φυσικά δε θα έπρεπε να έιναι µέσα στο for της αντιγραφής. Μια φορά βάζουµε τον τερµατικό χαρακτήρα στο τέλος του string. - καθόλου σχόλια -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε - Έπρεπε να κάνεις free το apotelesma στη main. Ξαναδιάβασε τη θεωρία σχετικά µε το εύρος των µεταβλητών. Η string2 είναι τοπική στη findpart και δεν έχει καµιά σχέση µε τη main. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη - Πρόσεχε τη στοίχιση - Η έξοδος δεν παρουσιάζεται ακριβώς όπως η δική µας. - Τα σχόλια συναρτήσεων πρέπει να βρίσκονται πριν τη συνάρτηση, όχι µέσα σε αυτή. - Τα σχόλια που έχεις µέσα στον κώδικα είναι πολύ καλογραµµένα,αλλά µη χρησιµοποιείς σύνταξη C++. Τα σχόλια C περικλείονται σε /* */ Page 8

9 πολύ οριακά - Λάθος υλοποιηση. Δε βρίσκεις την πρώτη και τη δεύετρη θέση. Με την πρώτη δοµή επανάληψης βρίσκεις την τελευταία εµφάνιση και στο δεύτερο for το pos2 δε παίρνει τιµή γιατί στην πρώτη επανάληψη βρίσκει το break το οποίο είναι έξω από την if και βγαίνει έξω από το for. Οπότε segmantation fault - αντί για SIZE_NEW=(pos2-pos1)+1; θα έπρεπε να δεµεύσεις SIZE_NEW=pos2-pos1 για τη malloc - δεν έχεις αποδεσµεύσει τη µνήµη για τη δεύτερη συµβολοσειρά - καλύτερα ονόµατα στις µεταβλητές σου. Τί είναι το D? - τα σχόλια για κάθε συνάτηση µπαίνουν πριν από τη συνάρτηση -Η σταθερά για το µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Στον υπολογισµό του µεγέθους του πίνακα δεν χρειαζόταν το -1. Όπως το έχεις δεσµεύεις λιγότερη µνήµη απ'όση χρειάζεσαι-- >ΠΡΟΒΛΗΜΑ! -Να βάζεις πιο πολλά σχόλια στον κώδικα. -Η εντολή malloc δεν συντάσσεται έτσι! Διάβασε την θεωρία!!! -Η συνάρτηση findpart δεν δουλεύει σωστά. Ενώ κάνεις γενικά καλή δουλειά σε κάποια λεπτά σηµεία, έχεις αδυναµία σε κάποια πιο βασικά. -Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Έλεγχο για NULL κάνουµε µετά από ΚΑΘΕ κλήση της malloc, όχι όµως και µετά την δήλωση ενός πίνακα. Αυτόν τον έλεγχο τον κάνει αυτόµατα ο compiler. -Έπρεπε να δεσµέυσεις δυναµικά και την µνήµη του αρχικού string και να το κάνεις free µετά. -Δεν αποδεσµέυεις µε free όλη την µνήµη που δέσµευσες. -Δεν έχεις καθόλου ΣΧΟΛΙΑ! - Μην αγνοείς τα warnings του compiler: σε ειδοποιούν για σοβαρά λάθη. - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Δεσµεύεις περισσότερο χώρο για το string new_str. Για το νέο string απαιτούνται length χαρακτήρες. - Δεν ελέγχεις την τιµή που επιστρέφει η συνάρτηση malloc µετά την κλήση αυτής στην συνάρτηση findpart. Εάν αυτή είναι ίση µε NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. - Τα σχόλια των συναρτήσεων δεν συµµορφώνονται πλήρως µε αυτά του αντίστοιχου φυλλαδίου. - Πολύ καλή δουλειά γενικά, αλλά µετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε Page 9

10 και στη δεύτερη κλήση της malloc πρέπει να ελέγχεις αν επέστρεψε - να σχολιάζεις τον κώδικά σου σύµφωνα µε το πρότυπο σχολιασµού - Λάθος στον αλγόριθµο εύρεσης θέσεων. Έπρεπε να βγαίνεις από το πρώτο for αµέσως µόλις εντόπιζες την πρώτη εµφάνιση, και το δεύτερο for έπρεπε να ξεκινά από one+1 - Υπερβολικά σχόλια. Δε χρειάζεται να βάζεις σχόλιο σε κάθε γραµµή, γιατί και ο κώδικας "χάνεται" και τα σχόλια δεν προσφέρουν χρήσιµες πληροφορίες. Αντίθετα, έπρεπε να έχεις σχόλια συναρτήσεων. Διάβασε το φυλλάδιο σχολιασµού. -Πρόσεχε πολύ την στοίχιση. -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε -Δεν τερµατίζεις το string µε '\0' -Δεν υπάρχουν σχόλια συναρτήσεων! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) - Άσχηµη στοίχιση - Δεν υπάρχουν σχόλια συναρτήσεων - Δεν απελευθερώνεται η µνήµη για το string που κατασκεύασες - Λάθος στον αλγόριθµο : τα pos1, pos2 έχουν την ίδια τιµή -Μετά από κάθε κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Δεν αποδεσµέυεις µε free όλη την µνήµη που δέσµευσες. -Η σταθερά για το µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Το µέγεθος του νέου string είναι πολύ µεγαλύτερο από όσο θα ήταν αρκετό. Έπρεπε να το υπολογίσεις σαν mikos=right-left. - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Δεν ελέγχεις την τιµή που επιστρέφει η συνάρτηση malloc µετά την κλήση αυτής στην συνάρτηση findpart. Εάν αυτή είναι ίση µε NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. Page 10

11 οριακά -Η σταθερά για το µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Δεν υπολογίζεις σωστά το µέγεθος του νέου string. Έπρεπε να το υπολογίσεις σαν µέγεθος="η διαφορά των θέσεων των δύο εµφανίσεων του χαρακτήρα που ψάχνουµε" και να δεσµεύσεις τον αντίστοιχο χώρο στην µνήµη.. -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). - Αντιγραφή - Δεν αποθηκεύεις το αποτέλεσµα της findpart - Δεν υλοποιείς τη findpart 1099 Δεν παρέδωσε Δεν απελευθερώνεις ποτέ τη δυναµικά δεσµευµένη µνήµη - Δε δηµιουργείς σωστά το νέο string (περιέχει επιπλέον χαρακτήρες) - Δεν τερµατίζεις το νέο string µε '\0' -Έπρεπε να δεσµέυσεις δυναµικά και την µνήµη του αρχικού string και να το κάνεις free µετά. -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). - Δεν απελευθερώνεις την µνήµη που έχει δεσµευτεί για το string που δηµιουργεί η συνάρτηση findpart. Η αποδέσµευση θα έπρεπε να γίνεται στην συνάρτηση main. - Σε περίπτωση που η συνάρτηση malloc επιστρέψει NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. - Το πρόγραµµα δεν κάνει compile -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε - αλλά γενικά καλή δουλειά Page 11

12 Δεν είναι λάθος ο τρόπος που δεσµεύεις µνήµη για το string, αλλά η συνεχής χρήση της realloc επιβαρύνει το πρόγραµµα υπολογιστικά, χωρίς τελικά να προσφέρει κάτι όσον αφορά τη µνήµη που χρησιµοποιείται. - Δεν υπάρχουν σχόλια συναρτήσεων. - Το str2 έπρεπε να είναι δυναµικός πίνακας - Δεν απελευθερώνεις µνήµη - Τα σχόλια συναρτήσεων έπρεπε να είναι πάνω από τη συνάρτηση - Άσχηµη στοίχιση - Δεσµεύεις λίγο παραπάνω µνήµη από όσο πρέπει - Λάθος στον αλγόριθµο εύρεσης των θέσεων. Τα pos2, pos1 είναι ίσα. - Δεν τερµατίζεις το string µε '\0' - Λάθος στον αλγόριθµο αντιγραφής: το νέο string περιέχει και τους χαρακτήρες που το οριοθετούν - Το output του προγράµµατός σου δεν παρουσιάζεται ακριβώς όπως το ζητούµενο οριακά -Το πρόγραµµα σου δεν λειτουργεί σωστά. Δεν εκτυπώνεται καθόλου η νέα συµβολοσειρά. -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε -Έπρεπε να χρησιµοποιήσεις την συνάρτηση strlen για να βρεις το µέγεθος της συµβολοσειράς. -Λάθος στον αλγόριθµο εύρεσης των 2 πρώτων εµφανίσεων του χαρακτήρα. --Οι thesi_1st και thesi_2nd παίρνουν την ίδια τιµή. -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Το output του προγράµµατος σου δεν ταιριάζει καθόλου µε το output που σας δίνεται! -Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο. (Διάβασε καλά το φυλλάδιο!) - Άσχηµη στοίχιση - Δεν υπάρχουν σχόλια συναρτήσεων - Δεν απελευθερώνεται η µνήµη για το string που κατασκεύασες - Λάθος στον αλγόριθµο εύρεσης των θέσεων και στην αντιγραφή των χαρακτήρων - Δεν τερµατίζεις το string µε '\0' - Ο έλεγχος στην εντολή for της συνάρτησης findpart θα έπρεπε να είναι '' i < thesi2 thesi1 '' ώστε να µην αντιγράφεις και την δεύτερη εµφάνιση του χαρακτήρα. Page 12

13 οριακά - Η µνήµη που δεσµεύεις στην συνάρτηση FindPart για το αλφαριθµητικό newstr δεν αποδεσµεύεται ποτέ καθώς η εντολή free στην συνάρτηση δεν εκτελείται ποτέ αφού βρίσκεται µετά την αντίστοιχη εντολή return. - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση FindPart. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Σε περίπτωση που η συνάρτηση malloc επιστρέψει NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. - Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. - Αρκετή προσοχή στην στοίχιση. - Η συνάρτηση έπρεπε να λέγεται findpart. Να ακολουθείς τις οδηγίες - Όταν η malloc επιστρέφει NULL, το πρόγραµµα πρέπει να τερµατίζει. Όπως το έχεις τώρα, αν η malloc αποτύχει (στη main), το πρόγραµµα θα προσπαθήσει έτσι κι αλλιώς να κάνει free το οποίο θα παράγει runtime error. Οµοίως στη findpart, αν η malloc επέστρεωε NULL, δεν πρέπει να κάνεις free (δε µπορεις να αποδεσµεύσεις µνήµη που δε δεσµεύτηκε ποτέ) - Το output δεν παρουσιάζεται ακριβώς όπως στα testcases - Δεν τερµατίζεις το string µε '\0' - Κατά τα άλλα, πολύ καλή δουλειά 1117 Δεν παρέδωσε Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Δεν αποδεσµέυεις µε free όλη την µνήµη που δέσµευσες. -Το νέο string δεν έχει σαν τελευταίο χαρακτήρα το '\0'. -Όταν πας να δεσµεύσεις δυναµικά την µνήµη, η µεταβλητή που θα βάλεις µέσα στην malloc πρέπει να έχει τιµή. Διαφορετικά, µπορεί να έχει οτιδήποτε µε αποτέλεσµα να µην τρέχει σωστά το πρόγραµµα, ΟΠΩΣ ΓΙΝΕΤΑΙ ΣΤΟ ΔΙΚΟ ΣΟΥ. -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). - Μην αγνοείς τα warnings του compiler: σε ειδοποιούν για σοβαρά λάθη. - Πολύ καλή δουλειά και µε την υλοποίηση αφού χρησιµοποιείς δείκτες για τις θέσεις των εµφανίσεων αλλά και µε τα σχόλια - Δεν τερµατίζεις το string µε '\0' Page 13

14 και στη δεύτερη κλήση της malloc πρέπει να ελέγχεις αν επέστρεψε - αντί για strncpy(str_new,str + thesh1,new); θα έπρεπε να έχεις strncpy(str_new,str + thesh1+1,new-1); για να ανιτγράφεις ακριβώς όλους τους ενδιάµεσους χαρακτήρες - αντί για str_new[thesh2 1]='\0'; θα έπρεπε να έχεις str_new[thesh2 - thesh1 1]='\0'; γιατί η thesh2 µπορεί να βρίσκεται οπουδήποτε µέσα στην αρχική συµβολοσειρά ενώ εσύ έχεις δεσµεύσει µόνο thesh2 thesh1 θέσεις για τη νέα συµβολοσειρά. - Η συνάρτηση findpart δεν λειτουργεί σωστά. Οι δύο εµφανίσεις του επιθυµητού χαρακτήρα δεν εντοπίζονται σωστά. Η εντολή break θα έπρεπε να βρίσκεται εντός της εντολής if ώστε να τερµατίζεις την επανάληψη µόλις βρεις την αντίστοιχη εµφάνιση. - Το νέο string δεν αρχικοποιείται σωστά. Ακόµη και εάν έβρισκες σωστά τις διευθύνσεις των θέσεων του χαρακτήρα, η αρχικοποίηση δεν θα ήταν σωστή καθώς οι µεταβλητές t και i δεν αρχικοποιούνται σωστά. - Δεν τερµατίζεις το string που δηµιουργείται. - Δεν ελέγχεις την τιµή που επιστρέφει η συνάρτηση malloc µετά τις δύο κλήσεις αυτής. Εάν η τιµή είναι ίση µε NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. - Τα όρια στα δύο for loops στην συνάρτηση findpart δεν είναι σωστά. Θα έπρεπε να έχεις χρησιµοποιήσει την συνάρτηση strlen ώστε να έχεις βρει το πραγµατικό µήκος της συµβολοσειράς. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης Δεν παρέδωσε Μην αγνοείς τα warnings-σε προειδοποιούν για σηµαντικά λάθη! -Το πρόγραµµα σου δεν λειτουργεί σωστά. -Από την στιγµή που δεν µπορείς να χειριστείς τόσο καλά τους δείκτες θα µπορούσες να είχες δηλώσει τις µεταβλητές thesi1,thesi2 ως int και να κρατούσαν έτσι την 1 η και 2 η αντίστοιχα εµφάνιση του χαρακτήρα στην συµβολοσειρά! -Έπρεπε να χρησιµοποιήσεις την συνάρτηση strlen για να βρεις το µέγεθος της συµβολοσειράς. -Δεσµεύεις λιγότερο χώρο από όσο χρειάζεσαι µε αποτέλεσµα να δηµιουργούνται προβλήµατα στο πρόγραµµα σου! -Δεν αποθηκεύεις στη νέα συµβολοσειρά το τµήµα της αρχικής συµβολοσειράς που βρίσκεται µεταξύ των δύο εµφανίσεων του χαρακτήρα. - Δεν τερµατίζεις το string µε '\0' -Δεν απελευθερώνεις την µνήµη για κανένα από τα string που δεσµεύεις. -Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών! -Το output του προγράµµατος σου δεν ταιριάζει καθόλου µε το output που σας δίνεται! -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) Page 14

15 Ξαναδιάβασε τη θεωρία για τοπικές µεταβλητές. H string_new δεν έχει καµία σχέση µε τη main. Το free(string_new) έπρεπε να είναι free(klisi) - Λάθος στον αλγόριθµο εύρεσης θέσεων (στο while) - Το "\0" ειναι string. Ο τερµατικός χαρακτήρας είναι '\0' - Η findpart δεν έπρεπε να εκτυπώνει τίποτα. - Άσχηµη στοίχιση -Ξαναδιάβασε τη θεωρία σχετικά µε τοπικές µεταβλητές και το εύρος τους. Το str2 της findpart δεν είναι "ορατό" στη main. - Μην αγνοείς τα warnings του compiler - σε ειδοποιούν για σηµαντικά λάθη. - Δεν τερµατίζεις το string µε '\0' - Λάθος στον αλγόριθµο εύρεσης θέσεων. Τα position1, position2 παίρνουν την ίδια τιµή - Καλή δουλειά στα σχόλια οριακά -Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Δεν αποδεσµέυεις µε free ΟΛΗ την µνήµη που δέσµευσες. -Το νέο string δεν έχει σαν τελευταίο χαρακτήρα το '\0'. -Στον υπολογισµό του µεγέθους του πίνακα δεν χρειαζόταν το -1. Όπως το έχεις δεσµεύεις λιγότερη µνήµη απ'όση χρειάζεσαι-- >ΠΡΟΒΛΗΜΑ! -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). -Η σταθερά για το µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Δεν έχεις καθόλου ΣΧΟΛΙΑ! οριακά - Δε δεσµεύεις αρκετή µνήµη για τη συµβολοσειρά - Δεν τερµατίζεις τη συµβολοσειρά µε '\0' Page 15

16 Sheet1_2 -Το πρόγραµµα σου δεν λειτουργεί σωστά. Συγκεκριµένα, δεν εκτυπώνει τον τελευταίο χαρακτήρα της νέας συµβολοσειράς. Αυτό οφείλεται σε λογικό λάθος στην for (έπρεπε i < pos[1]; Και όχι i < pos[1]-1;) -Πρόσεχε πως δηλώνεις την διάσταση του πίνακα pos! Οι πίνακες στη C πρέπει να έχουν σταθερό µέγεθος. -Δεν τερµατίζεις σωστά την συµβολοσειρά. Θα έπρεπε new_string[pos[1]- pos[0]-1]='\0'; -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",string); -Το output του προγράµµατος σου δεν ταιριάζει µε το output που σας δίνεται! -Πρόσεχε την στοίχιση! -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) - Τα όρια στις δύο πρώτες εντολές for της συνάρτησης findpart δεν είναι σωστά. Αντί του SIZE, έπρεπε να χρησιµοποιήσεις την συνάρτηση strlen ώστε να βρεις το πραγµατικό µήκος της συµβολοσειράς. - Δεσµεύεις περισσότερο χώρο από αυτόν που χρειάζεσαι πραγµατικά. Για το νέο string απαιτούνται thesi2 thesi1 χαρακτήρες. - Ο χαρακτήρας τερµατισµού δεν τοποθετείται στην σωστή θέση. Η σωστή θέση είναι istr[ thesi2 thesi1 1 ]. - Δεν αποδεσµεύεις την µνήµη που έχεις δεσµεύσει για την µεταβλητή str στην συνάρτηση main. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. οριακά - metritis>1 αυτή η συνθήκη δε γίνεται ποτέ αληθής οπότε το pos2 δε παίρνει ποτέ τιµή γι αυτό και σου πετάει segmantation fault - Δεν ελευθερώνεις τη µνήµη που δέσµευσες - τα σχόλια για κάθε συνάτηση µπαίνουν πριν από τη συνάρτηση Page 16

17 Λάθη στην κλήση συναρτήσεων. Γιατί καλείς τη findpart δύο φορές? - Δε δεσµεύεις µνήµη για το str1 - Λάθος στον αλγόριθµο εύρεσης θέσεων. Έπρεπε να βγαίνεις από το πρώτο loop µόλις βρίσκεις το χαρακτήρα. - Δεσµεύεις λίγο περισσότερο χώρο από ότι χρειάζεται - Δεν τερµατίζεις το string µε '\0' - Η findpart έπρεπε να επιστρέφει το νέο string 1137 Δεν παρέδωσε 1139 οριακά - Άσχηµη στοίχιση - Τα σχόλια συναρτήσεων δεν ακολουθούν τις προδιαγραφές - Δεν απελευθερώνεται η µνήµη για το string που κατασκεύασες - Λάθος στον αλγόριθµο εύρεσης των θέσεων.έπρεπε να βγαίνεις από το loop µέσα στο δεύτερο if. - Το output του προγράµµατός σου δεν παρουσιάζεται ακριβώς όπως το ζητούµενο Το πρόγραµµα σου δεν λειτουργεί σωστά. Δεν εκτυπώνεται καθόλου η νέα συµβολοσειρά αλλά συνέχεια το null. -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε -Δεν απελευθερώνεις την µνήµη που δεσµεύτηκε για τη συµβολοσειρά που επιστρέφει η findpart. Δηλαδή αφού κληθεί η συνάρτηση και επιστραφεί η συµβολοσειρά έπρεπε να είχες κάνει free(result); -Λάθος στον αλγόριθµο εύρεσης των 2 πρώτων εµφανίσεων του χαρακτήρα. --Οι δυο for θα µπορούσαν (και θα ήταν καλύτερα) να ήταν ανεξάρτητες µεταξύ τους. --Γιατί βάζεις return 0; µέσα στην for? -Δεν αποθηκεύεις στη νέα συµβολοσειρά το τµήµα της αρχικής συµβολοσειράς που βρίσκεται µεταξύ των δύο εµφανίσεων του χαρακτήρα. --Έπρεπε str[l]=simboloseira[p]; και όχι str[p]=simboloseira[l]; --Επίσης για να εµφανίζεται ο τελευταίος χαρακτήρας στην συµβολοσειρά σου έπρεπε p<second_appearance; -Δεν τερµατίζεις σωστά το string σου! -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) Page 17

18 οριακά - Στην αντιγραφή του ενδιάµεσου τµήµατος στη νέα συµβολοσειρά θα έπερεπε να ξεκινάς να αντιγράφεις από τη θέση 0 και όχι από τη θέση first_char - Δεν ελευθερώνεις τη µνήµη που δέσµευσες πολύ οριακά -Η σταθερά για το µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Δεν αποδεσµέυεις µε free όλη την µνήµη που δέσµευσες. -Το νέο string δεν έχει σαν τελευταίο χαρακτήρα το '\0'. -Ο compiler εµφανίζει warning! Δεν έβαλες το return 0 στην main!!! - Να δίνεις περιγραφικά ονόµατα στις µεταβλητές -To output αρχείο σου ταιριάζει ακριβώς µε το output αρχείο που σας δίνεται. -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) -Μετά από κάθε κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Να χρησιµοποιείς πιο καλά ονόµατα για τις µεταβλητές σου. -Εκτύπωση περιττών µηνυµάτων. -Το πρόγραµµά σου δεν κάνει compile. Πρόσεξε, το '\0' θέλει '' γύρω του. -Δεν βρίσκεις σωστά τις δύο εµφανίσεις του χαρακτήρα. Το second_time θα είναι ίσο µε το first_time. Προσπάθησε να καταλάβεις το γιατί. -Στις δύο for δεν έπρεπε να βάλεις σαν όριο το WORDSIZE (που είναι το µέγιστο µήκος του wordlist) αλλά το πραγµατικό µέγεθος του wordlist (βρίσκεται µε την strlen ή την υλοποιείς κάπως). Πρόσεξε, όπως το έχεις προσπελαύνεις µνήµη που δεν σου ανήκει. -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). Page 18

19 οριακά - Το output του προγράµµατός σου δεν παρουσιάζεται ακριβώς όπως το ζητούµενο. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη - Κώδικας µετά το return δεν εκτελείται ποτέ - Δεν τερµατίζεις τη συµβολοσειρά µε '\0' - Δεσµεύεις περισσότερη µνήµη από όσο χρειάζεται. - Τα σχόλια συναρτήσεων πρέπει να βρίσκονται πριν τη συνάρτηση. οριακά - Η συνάρτηση findpart δεν λειτουργεί σωστά. Αυτό οφείλεται στην αρχικοποίηση i = firstletter στην δεύτερη εντολή for, µε αποτέλεσµα να ξεκινάς την αναζήτηση από την θέση όπου υπάρχει η πρώτη εµφάνιση του χαρακτήρα. Μετά το τέλος του δεύτερου loop είναι secondletter = firstletter. Δες την αντίστοιχη λύση. - Όταν χρησιµοποιείς την συνάρτηση malloc, θα πρέπει να ελέγχεις το αποτέλεσµα που επιστρέφεται. Σε περίπτωση που η συνάρτηση δεν βρει διαθέσιµη µνήµη, επιστρέφει NULL οπότε πρέπει να τερµατίσεις το πρόγραµµα. - Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης. - Αρκετή προσοχή στην στοίχιση. -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Η µνήµη που δεσµεύτηκε για τη συµβολοσειρά που επιστρέφει η findpart έπρεπε να αποδεσµεύεται στην main και όχι µέσα στην συνάρτηση. Δηλαδή αφού κληθεί η συνάρτηση και επιστραφεί η συµβολοσειρά έπρεπε να κάνεις free(simvolosira); - Δεν τερµατίζεις το string µε '\0' -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) - Δεν απελευθερώνεις τη µνήµη που δέσµευσες για τη συµβολοσειρά που επιστρέφει η findpart - Δεν τερµατίζεις το string µε '\0' - Πρόσεχε λίγο τη στοίχιση. Η πρώτη γραµµη της findpart έπρεπε να είναι πιο έξω. - Όταν δηµιουργείς το string, δεν πρέπει να περιλαµβάνεις το χαρακτήρα που το καθορίζει το "όριο" Page 19

20 1157 οριακά -Δεν δηµιουργείς σωστά το νέο string. -Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Έπρεπε να δεσµέυσεις δυναµικά και την µνήµη του αρχικού string και να το κάνεις free µετά. -Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Το νέο string δεν έχει σαν τελευταίο χαρακτήρα το '\0'. -Δεν έχεις καθόλου ΣΧΟΛΙΑ! (διορθωτική) - Μην αγνοείς τα warnings - σε προειδοποιούν για σηµαντικά λάθη. - Το newstr2 έπρεπε να είναι δείκτης. - Όταν διαβάζουµε χαρακτήρα µε το scanf, πρέπει να υπάρχει ένα κενό ανάµεσα στο " και στο % - Δεν έχεις καταλάβει καλά τη θεωρία για τοπικές µεταβλητές και τιµές που επιστρέφονται από συναρτήσεις Το πρόγραµµα δεν κάνει compile - Η συνάρτηση FindPart δεν λειτουργεί σωστά. Η συνθήκη στην εντολή while όπου γίνεται η αντιγραφή δεν είναι σωστή καθώς µετά την αρχικοποίηση '' i = firstplace '' είναι '' i!= secondplace 1 ''. Εποµένως, στην γενική περίπτωση, το σώµα της εντολής while δεν εκτελείται ποτέ. Η ορθή συνθήκη είναι '' i!= secondplace ''. Δες την αντίστοιχη λύση. η σταθερά STRINGSIZE θα έπρεπε να έχει τιµή ίση µε Τα σχόλια των συναρτήσεων δεν συµµορφώνονται πλήρως µε αυτά του αντίστοιχου φυλλαδίου. - Προσοχή στην στοίχιση. -και στη δεύτερη κλήση της malloc πρέπει να ελέγχεις αν επέστρεψε - για το τµήµα της συµβολοσειράς θα έπρεπε να δεσµεύσεις protithesi-deuterithesi θέσεις µνήµης και όχι SIZE πολύ οριακά -Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Στην findpart η malloc είναι λάθος. Δεσµεύεις χώρο για έναν χαρακτήρα και όχι για όσον χρειάζεσαι. -Δεν αποδεσµέυεις µε free όλη την µνήµη που δέσµευσες. - Δε δίνεις περιγραφικά ονόµατα στις µεταβλητές - Ασχηµη στοίχιση σε κάποια σηµεία Page 20

21 οριακά - και στην πρώτη κλήση της malloc πρέπει να ελέγχεις αν επέστρεψε - το '\0' θα µπορούσες να το προσθέσεις στη συµβολοσειρά και µετά το for όπου κάνεις την αντιγραφή των ενδιάµεσων γραµµατων - να σχολιάζεις τον κώδικά σου σύµφωνα µε τα πρότυπα σχολιασµού -Η σταθερά για το µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Το νέο string δεν έχει σαν τελευταίο χαρακτήρα το '\0'. -Δεν αποδεσµέυεις µε free την µνήµη που δέσµευσες. -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). -Να χρησιµοποιείς πιο καλά ονόµατα για τις µεταβλητές σου Δεν παρέδωσε Η συνάρτηση findpart δεν λειτουργεί σωστά. Η θέση της δεύτερης εµφάνισης του χαρακτήρα δεν υπολογίζεται σωστά. Στην αντίστοιχη εντολή else if θα έπρεπε να υπάρχει εντολή break ώστε να τερµατίζεται η επανάληψη. Επίσης, η αντιγραφή του αντίστοιχου τµήµατος δεν πραγµατοποιείται σωστά. Δες την αντίστοιχη λύση. - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Ο έλεγχος της τιµής που επιστρέφει η κλήσης της συνάρτησης malloc στην συνάρτηση findpart πρέπει να πραγµατοποιείται αµέσως µετά από αυτή και όχι στο τέλος της συνάρτησης. Σε περίπτωση που η συνάρτηση malloc επιστρέψει NULL, η αντίστοιχη µεταβλητή δεν µπορεί να χρησιµοποιηθεί. η σταθερά SIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf ("%100s", string1); -Δεν υπάρχουν επαρκή σχόλια! Δεν ακολουθείς ακριβώς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) Page 21

22 Η συνθήκη '' i <= position_2 '' της εντολής for έχει ως αποτέλεσµα την αντιγραφή και της δεύτερης εµφάνισης του χαρακτήρα. - Δεν τερµατίζεις µε '\0' το string που παράγεται από την συνάρτηση findpart. - Δεν απελευθερώνεις την µνήµη που έχει δεσµευτεί για το string που δηµιουργεί η συνάρτηση findpart. Η αποδέσµευση θα έπρεπε να γίνεται στην συνάρτηση main. - Δεν ελέγχεις την τιµή που επιστρέφει η συνάρτηση malloc µετά την κλήση αυτής στην συνάρτηση findpart. Εάν αυτή είναι ίση µε NULL, θα έπρεπε να τερµατίζεις το πρόγραµµα. η σταθερά STRINGSIZE θα έπρεπε να έχει τιµή ίση µε Δεν υπάρχουν σχόλια στις συναρτήσεις. Η ύπαρξη σχολίων αποτελούσε απαίτηση της άσκησης Το πρόγραµµα σου δεν λειτουργεί σωστά. Δεν εκτυπώνεται καθόλου η νέα συµβολοσειρά. -Μετά από κάθε κλήση στη malloc πρέπει να ελέγχεις αν επέστρεψε -Λάθος στον αλγόριθµο εύρεσης των 2 πρώτων εµφανίσεων του χαρακτήρα. Κάθε φορά ελέγχει το χαρακτήρας σου ΜΟΝΟ µε τον πρώτο χαρακτήρα της συµβολοσειράς σου. -Δεν δεσµεύεις τον απαιτούµενο χώρο για την νέα σου συµβολοσειρά. Αν έλεγχες κάθε φορά τι σου επιστρέφει η malloc θα το είχες καταλάβει! -Δεν αποθηκεύεις στη νέα συµβολοσειρά το τµήµα της αρχικής συµβολοσειράς που βρίσκεται µεταξύ των δύο εµφανίσεων του χαρακτήρα. - Δεν τερµατίζεις το string µε '\0' -Όταν διαβάζουµε από το πληκτρολόγιο ένα αλφαριθµητικό µήκους µέχρι 100 χαρακτήρες η σύνταξη της scanf() είναι: scanf("%100s",str); -Το output του προγράµµατος σου δεν ταιριάζει καθόλου µε το output που σας δίνεται! -Δεν υπάρχουν καθόλου σχόλια! Δεν ακολουθείς τις προδιαγραφές πρότυπου σχολιασµού που περιγράφονται στο φυλλάδιο.(διάβασε καλά το φυλλάδιο!) 1185 Δεν παρέδωσε οριακά -Η συνάρτηση findpart δεν δουλεύει σωστά. Ενώ είναι εντάξει µέχρι ένα σηµείο, δεν δηµιουργείς σωστά το νέο string. -Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι Μετά από ΚΑΘΕ κλήση της malloc πρέπει να κάνεις έλεγχο για NULL. -Διάβασε το φυλλάδιο για τον τρόπο προσθήκης σχολίων σε συναρτήσεις (pre-post conditions). - Θα ήταν καλό να έχεις δηλώσει το µέγιστο µήκος του αλφαριθµητικού ως Σταθερά είτε µε define είτε µε const. Page 22

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

Sheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση. Sheet1_2 AEM 0001 0002 0003 0004 0006 COMMENTS - Segmentation fault λόγω λάθους στην αναδροµή. Δες τη λύση, αλλά προσπάθησε να το ξανακάνεις και στο σπίτι για εξ - Πρόσεχε λίγο τη στοίχιση - Καλή δουλειά

Διαβάστε περισσότερα

FAIL PASS PASS οριακά

FAIL PASS PASS οριακά AEM 0001 0002 COMMENTS οριακά -Το πρόγραµµά σου δουλεύει λάθος για τις εισόδους: 7 -Δεν έχεις µεριµνήσει για την περίπτωση step=1. Μπορούσες να θεωρήσεις ειδική περίπτωση και να την υλοποιείς σε άλλον

Διαβάστε περισσότερα

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

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου! AEM 0001 0002 0003 COMMENTS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου! -Τυπώνεις 1,2,3 αντί για AVAILABLE, RESERVED,

Διαβάστε περισσότερα

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

lab5 -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο AEM 0001 0002 0003 0004 0005 0006 0007 0008 0009 0012 COMMENTS -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf.

Διαβάστε περισσότερα

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

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h Α.Μ. 1375 FAIL 1413 1417 1420 1421 FAIL 1422 FAIL 1424 1425 FAIL 1426 FAIL - Πρώτα να ελέγχετε αν η malloc επέστρεψε NULL και µετά να προσπαθείτε να προσπελάσετε τη δεσµευµένη µνήµη - Όταν διαβάζετε string

Διαβάστε περισσότερα

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

Sheet1_2. - Δεν υπάρχουν σχόλια συναρτήσεων - Να χρησιµοποιείς πιο περιγραφικά ονόµατα µεταβλητών (και σίγουρα όχι απλούς χαρακτήρες όπως c, d) Page 1 AEM 0001 0002 0003 0004 0005 0006 0007 COMMENTS οριακά -Υπολογίζεις λάθος τα στατιστικά. -Δεν βάζεις τα σχόλια µε βάση τις προδιαγραφές του φυλλαδίου. -Πρόσεξε λίγο την στοίχιση σε κάποια σηµεία. - Τα

Διαβάστε περισσότερα

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

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string. Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 - Πολύ καλή δουλειά κατά τα άλλα, µπράβο. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.h

Διαβάστε περισσότερα

to post PASS PASS FAIL

to post PASS PASS FAIL AEM COMMENTS - Να δίνεις περιγραφικά ονόµατα σε όλες τις µεταβλητές (τι είναι τα k, flag, temp?) - Το.katastash πρέπει να γίνεται reset σε 0 στην euresh_grammatos, µετά από κάθε κλήση στη search_the_word.

Διαβάστε περισσότερα

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

- Το πρόγραµµα σας δίνει τα αναµενόµενα αποτελέσµατα. Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 1349 FAIL Δεν ελήφθη άσκηση 1482 1556 1559 1562 1563 1565 1566 FAIL - Στην initialize πρέπει να κάνετε έλεγχο αν η malloc αποτυγχάνει για κάθε κλήση της, άρα και για δέσµευση χώρου για

Διαβάστε περισσότερα

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

Δείτε τώρα και πώς θα έπρεπε να ήταν το παραπάνω: Page 1 Επειδή αρκετοί εξακολουθείτε να βάζετε σχόλια στην ίδια γραµµή αλλά πολύ πιο "δεξιά" από τον κώδικα που σχολιάζουν, δείτε παρακάτω πώς µοιάζει ένα τέτοιο πρόγραµµα σε συµβατικό terminal. Όπως έχουµε πει

Διαβάστε περισσότερα

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

Διαβάστε περισσότερα

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

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα. Α. Μ. Βαθμός Σχόλιο 1183 lab2 - Πολύ καλή δουλειά κατά τα άλλα 1194 1238 1239 FAIL 1240 1241 1242 1243 1244 1245 1246 - πολύ καλό (*υπάρχουν οι τελεστές = ). Ο κώδικας είναι καλά σχολιασµένος -

Διαβάστε περισσότερα

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 - Καλή δουλειά 1242 1243 1244 1245 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο

Διαβάστε περισσότερα

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

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS lab7 Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 1244 1246 - Η συνθήκη του do/while είναι λάθος µε αποτέλεσµα να µπορεί ο χρήστης να βάζει στοιχεία περισσότερα του SIZE. - Στην συνθήκη

Διαβάστε περισσότερα

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

Βαθμός Σχόλια. lab8. οριακά PASS 1194 PASS Α. Μ. Βαθμός Σχόλια 1183 1194 1195 FAIL 1238 1239 - Άσχηµα ονόµατα µεταβλητών (s, t) - Δε δεσµεύεις αρκετή µνήµη για τις λέξεις που αποθηκεύονται στον πίνακα (και γι αυτό τελικά το πρόγραµµά σου κάνει

Διαβάστε περισσότερα

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

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών. Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Δεν κάνει compile και το λάθος είναι σηµαντικό: Το head1 είναι δείκτης σε struct, εποµένως η προσπέλαση πεδίου γίνεται 321 FAIL µε head1->next και όχι head1.next. Επιπλέον, έχετε λάθος

Διαβάστε περισσότερα

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

Sheet3_2. Τα literals (3.0, 1.5, κτλ) πρέπει να ορίζονται ως σταθερές. AEM LAB2 0001 Δεν είναι στοιχισµένες σωστά οι εντολές µέσα στη main. 0002 Η απόδειξη εκτυπώνεται όλη σε µία γραµµή, όχι όπως ζητά η εκφώνηση: Να χρησιµοποιείς \n στο printf. 0003 0004 Οι µεταβλητές πρέπει

Διαβάστε περισσότερα

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1 ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό

Διαβάστε περισσότερα

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

-Δεν έχεις σχόλια, καλό θα ήταν να έχεις πιο περιγραφικό σχόλιο στην αρχή Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Λάθος θέµα e-mail. -Πολύ καλή προσπάθεια, σωστά αποτελέσµατα χωρίς λάθη αλλά µε Υπάρχει µια προειδοποίηση σχετικά µε την εκτύπωση printf της θέσης. -Ωραία περιγραφικά σχόλια, αλλα καλό

Διαβάστε περισσότερα

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

lab11 - Να εκτυπώνεις πιο κατατοπιστικά µηνύµατα λάθους. Αν είναι όλα ίδια, δεν είναι ξεκάθαρο ποιο αρχείο έχει πρόβληµα. Α. Μ. Βαθμός Σχόλια 1183 FAIL - Πρώτα ελέγχουµε το argc και µετά κάνουµε προσπάθεια να προσπελάσουµε το argv. - Λάθος στην ανάγνωση του πρώτου αρχείου. Κάθε φορά που κάνεις fgetc διαβάζεις τον επόµενο

Διαβάστε περισσότερα

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

Sheet2. - Άσκηση 1 οκ - Άσκηση 2 οκ. Σκέψου πώς θα µπορούσες να την AEM ΒΑΘΜΟΣ ΣΧΟΛΙΑ 1413. Σκέψου πώς θα µπορούσες να την 1417 κάνεις χωρίς χρήση της βοηθητικής µεταβλητής curr - Πρώτη άσκηση οκ - Στη δεύτερη άσκηση το free(head) δεν έπρεπε να είναι στο else, αλλά να

Διαβάστε περισσότερα

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

lab10grades - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζετε µέσα σε εισαγωγικά Helo. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ - Δεν χρησιµοποιείτε καλά ονόµατα µεταβλητών και παραµέτρων στις συναρτήσεις. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Ο χαρακτήρας τερµατισµού \0

Διαβάστε περισσότερα

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

lab9grades Άσκηση 1 - Σωστοί τύποι (παραµέτρων και επιστρεφόµενης τιµής) της series_cosh. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ - Μέτρια σχόλια. 00497 PASS - Σωστοί τύποι (παραµέτρων και επιστρεφόµενης τιµής) της factorial. - Σωστοί τύποι (παραµέτρων και επιστρεφόµενης τιµής) της series_cosh. - Καλά ονόµατα µεταβλητών

Διαβάστε περισσότερα

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

ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ. 812 PASS Καλή δουλειά ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 812 Καλή δουλειά 887 926 FAIL 1040 FAIL Μη αναγνωρίσιµο φορµατ 1060 1138 FAIL Ηµιτελές - Άσχηµα ονόµατα µεταβλητών/πεδίων που κάνουν δυσνόητο τον κώδικα. Μη χρησιµοποιείτε µεταβλητές

Διαβάστε περισσότερα

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

Στην clearlist: - Όλα ok. οριακό PASS Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Στη main: - Αποθηκεύετε το αποτέλεσµα της removepart στη µεταβλητή curr, αλλά στην κλήση της clearlist µετά περνάτε την παλιά κεφαλή της λίστας (µεταβλητή list) η οποία δεν είναι πια

Διαβάστε περισσότερα

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

Μ.Σ. lab12grades FAIL. η συνθήκη για έξοδο είναι και αυτή σωστή. Οριακό PASS. στα string. - σωστή και η κλήση της συνάρτησης. ΒΑΘΜΟΣ ΣΧΟΛΙΑ - στην malloc που χρησιµοποιήσατε, δεν έχετε αφήσει χώρο για το \0 και χρησιµοποιείτε sizeof µε λάθος τρόπο. Στο τέλος που βάζετε το \0 είναι στην πραγµατικότητα σε µνήµη που δεν έχετε δεσµεύσει

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

Διαβάστε περισσότερα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσµία: 7/1/2014, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

Διαβάστε περισσότερα

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

Βαθμός Σχόλιο. lab3_grades Α. Μ. Βαθμός Σχόλιο 1183 1194 - Το πρόγραµµα πέφτει σε ατέρµονο loop γιατί στο while δεν έχει scanf ώστε να διαβάζει νέα επιλογή, η τιµή της επιλογής δε µπορεί να γίνει ποτέ 5 ή 6 για να τερµατίσει. -

Διαβάστε περισσότερα

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

403 FAIL Λάθος στο πακετάρισµα του αρχείου. ΑΕΜ ΒΑΘΜΟΣ 357 FAIL Λάθος στο πακετάρισµα του αρχείου. ΣΧΟΛΙΑ 400 FAIL 402 Έπρεπε να στείλετε ΜΟΝΟ το lab11.c Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το curr->number είναι διάφορο του number,

Διαβάστε περισσότερα

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

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μνήμη I CS100,

Διαβάστε περισσότερα

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

lab6grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: Όλα οκ. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: Όλα οκ. 449 451 οριακό PASS οριακό PASS, αλλά τα ονόµατα σταθερών γράφονται πάντα µε κεφαλαία για να ξεχωρίζουν. Το max έπρεπε να ήταν MAX. - Ονόµατα µεταβλητών: Καλά, εκτός

Διαβάστε περισσότερα

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

- Ο τελευταίος έλεγχος στη συνάρτηση είναι περιττός. Αν έχει φτάσει µέχρι εκεί το πρόγραµµα, τότε αναγκαστικά το µήκος είναι >= του PASSWD_MIN_LEN. 7/1/2014 ΣΗΜΑΝΤΙΚΗ ΑΝΑΚΟΙΝΩΣΗ: Όπως ακούσατε και στο σηµερινό µάθηµα, θα υπάρξει ειδική ρύθµιση όσον αφορά τις εξετάσεις για όσους φοιτητές δεν πληρούν τις προϋποθέσεις είτε για τα quiz είτε για τις απουσίες

Διαβάστε περισσότερα

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

lab7grades -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Σωστή µεταφορά στοιχείων µια θέση αριστερά. 00497 Άσκηση1 -Σωστή στοίχιση. -Σωστή χρήση σταθερών. -Σωστά ονόµατα µεταβλητών. -Σωστή χρήση της sprintf. Το sprintf(formatstring, "%%%ds", INIT_SIZE 1); αρκεί να γραφτεί µια φορά. -Σωστή χρήση των συναρτήσεων

Διαβάστε περισσότερα

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

lab14grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 lab14grades - Σωστός έλεγχος του argc για όλες τις περιπτώσεις. - Θα έπρεπε να καλέσεις τη συνάρτηση strlen_r και στην περίπτωση του κενού string, strlen_r("\0"). - Σωστή χρήση

Διαβάστε περισσότερα

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

lab2grades - Στη scanf υπολογίζετε τουλάχιστον 5 χαρακτήρες %5.2f προδιαγραφές που ζητούνται στην εκφώνηση. - Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 1375 - Καλή στοίχηση, σωστά ονόµατα µεταβλητών, όµως δεν έχετε δηλώσει ως σταθερές το ΦΠΑ και την τιµή ανά τετραγωνικό µέτρο για τη µοκέτα. - Στη scanf υπολογίζετε τουλάχιστον 5 χαρακτήρες

Διαβάστε περισσότερα

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

lab9grades -Έπρεπε να χρησιµοποιήσεις την sprintf για το formatting των strings. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 449 οριακό PASS - Η µεταβλητή aukswn_aritmos είναι περιττή. Μπορούσες να χρησιµοποιήσεις i+1 στη θέση της. - Σωστή αριθµητική δεικτών - Καλή στοίχιση, σχόλια 451 PASS -Καλή στοίχιση -Καλά

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια

Διαβάστε περισσότερα

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1 Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 10 η Αλφαριθμητικά Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

Διαβάστε περισσότερα

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

Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 321 FAIL Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 321 FAIL Άσκηση 1η: - Δεν βάζετε σχόλια στην αρχή του κώδικα - Στοίχιση οκ, τα ονόµατα των µεταβλητών καλό είναι να είναι πιο περιγραφικά - Δεν χρησιµοποιείτε #define για να ορίσετε

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

Διαβάστε περισσότερα

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

Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ. οριακό PASS Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 321 οριακό 1058 FAIL - Καλή δουλειά γενικά. - Πρόσεχε λίγο τα ονόµατα συναρτήσεων/µεταβλητών. Για παράδειγµα, το όνοµα integer δεν είναι καθόλου καλό γιατί δεν περιγράφει τι κάνει η

Διαβάστε περισσότερα

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

lab6grades - Δεν έχετε δηλώσει το βαθµό βάσης ως σταθερά. - Το µήνυµα εισόδου θέλει χαρακτήρα κενού ' ' στο τέλος και όχι TAB '\t'. 00497 PASS - Τα ονόµατα των µεταβλητών θα µπορούσαν να ήταν λίγο πιο περιγραφικά. - Το µήκος του πίνακα θα έπρεπε να δωθεί ως σταθερά πριν τη main µε την εντολή #define SIZE 5 και όχι ως const. - Πολύ

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

Διαβάστε περισσότερα

Sheet PASS 1426 PASS 1428 PASS. Page 1

Sheet PASS 1426 PASS 1428 PASS. Page 1 Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ -Δεν εκτελείτε κάποιο loop για το πλήθος των επαναλήψεων που 1413 FAIL θα κληθεί η ανάγνωση και η εγγραφή από το αρχείο. -Το άνοιγµα και κλείσιµο του αρχείου γίνεται σωστά. Έχετε αποστείλει

Διαβάστε περισσότερα

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

Διαβάστε περισσότερα

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

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΝΟΜΑΤΕΠΩΝΥΜΟ: AEM: ΜΕΡΟΣ Α: ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [15 µονάδες] ΣΗΜΑΝΤΙΚΕΣ ΔΙΕΥΚΡΙΝΙΣΕΙΣ: Επιλέξτε ΜΙΑ σωστή απάντηση για κάθε ερώτηση. Λάθος απαντήσεις βαθµολογούνται αρνητικά Σε ερωτήσεις που

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης Στο εργαστήριο αυτό θα μελετήσουμε τον τρόπο με τον οποίο ορίζουμε στην C πολυδιάστατους πίνακες και θα δούμε πώς μπορούμε να δεσμεύουμε

Διαβάστε περισσότερα

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

Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Άσκηση 1: -Σωστά αποτελέσµατα και σωστή έξοδος. -Δεν έχετε περιορισµό στην scanf για την ανάγνωση strings. Δηµιουργείτε το format του string µε χρήση της µεθόδου µε το sprintf αλλά δεν

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

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

Τα ονόµατα των φακέλων πρέπει να έχουν το επίθετά σας και όχι τα username που χρησιµοποιείτε στα εργαστήρια. Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Άσκηση 1η - Θα µπορούσατε να κάνετε µία do while για τον έλεγχο της επιλογής και κατά συνέπεια, µια printf/scanf για την επιλογή - ΛΑΘΟΣ: δηλώσατε το τύπο της επιλογής σαν char ενώ θα

Διαβάστε περισσότερα

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

char name[5]; /* define a string of characters */ Συµβολοσειρές (Strings) Συµβολοσειρά (string) είναι µια σειρά αλφαριθµητικών χαρακτήρων (γενικά εκτυπώσιµων συµβόλων ASCII). Όταν λέµε σειρά εννοούµε διαδοχικές θέσεις µνήµης που µπορούν να αντιµετωπισθούν

Διαβάστε περισσότερα

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

- Σωστή χρήση του προσδιοριστή const για την σταθερά pi. Καλό θα ήταν επιλέξετε κεφαλαία γράµµατα για το όνοµα της σταθεράς. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ - Σωστή χρήση του προσδιοριστή const για την σταθερά p. Καλό θα ήταν επιλέξετε κεφαλαία γράµµατα για το όνοµα της σταθεράς. - Στην printf("enter radius: \n"); ο χαρακτήρας αλλαγής γραµµής

Διαβάστε περισσότερα

ΑΕΜ ή username. Sheet2

ΑΕΜ ή username. Sheet2 ΑΕΜ ή username ΒΑΘΜΟΣ 357 ΣΧΟΛΙΑ - Σωστοί τύποι και περιγραφικά ονόµατα µεταβλητών. Αν το price_euro το είχατε price_euro_liter (όπως κάνατε και µε το price_dollar_gallon) δε θα χρειαζόταν καν διευκρινιστικό

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

Διαβάστε περισσότερα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 18/12/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Διαδικαστικά Η εργασία

Διαβάστε περισσότερα

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

Διαβάστε περισσότερα

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

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

Διαβάστε περισσότερα

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό (με. τη C) Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr

Διαβάστε περισσότερα

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

Άσκηση 2: -Δεν παραδόθηκε. Το εµαιλ είχε λάθος θέµα. Έπρεπε να είναι CE120 lab6 Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Λάθος όνοµα αρχείου.το επίθετο βάζουµε όχι το όνοµα. 1058 FAIL -Έχεις συντακτικά λάθη και προειδοποιήσεις στο πρόγραµµα σου. -Υπαρξη σχολίου στη πρώτη γραµµή. -Σωστή δήλωση και χρήση

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις Με µαύρο τα κοµµάτια από την εκφώνηση. Με µπλε απαντήσεις κι επεξηγήσεις. Με κόκκινο τα πιο συχνά λάθη που είδαµε. Άσκηση Παρασκευής ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις Σε αυτή την άσκηση θα γράψετε ένα πρόγραµµα

Διαβάστε περισσότερα

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

lab7grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 449 Η strcpy αντιγράφει µια γραµµή, οπότε δεν έπρεπε να βρίσκεται µέσα σε διπλό loop. Η εκτύπωση δεν έπρεπε να βρίσκεται µέσα στο loop που γίνεται η αντιγραφή, αλλά να είναι ανεξάρτητη

Διαβάστε περισσότερα

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

Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου. 357 - Σωστά αποτελέσματα - Περιγραφικά ονόματα μεταβλητών. - Δεν έχετε

Διαβάστε περισσότερα

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

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

Διαβάστε περισσότερα

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

Διαβάστε περισσότερα

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/2016, 21:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 Προθεσµία: 22/12/2016, 21:00 Διαδικαστικά Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι 2 ατόµων. Δεν είναι απαραίτητο να συνεργαστείτε

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

Διαβάστε περισσότερα

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

Λύσεις για τις ασκήσεις του lab5 Εισαγωγή Λύσεις για τις ασκήσεις του lab5 Επειδή φάνηκε να υπάρχουν αρκετά προβλήματα σχετικά με τον τρόπο σκέψης για την επίλυση των προβλημάτων του lab5, θα συνοδεύσουμε τις λύσεις με αρκετές επεξηγήσεις,

Διαβάστε περισσότερα

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

Διαβάστε περισσότερα

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

Δεν έστειλες την άσκηση 1, και αυτό που έστειλες ήταν σκέτο αρχείο, όχι το tgz που ζητούσε η εκφώνηση. Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Οκ 321 PASS -Το σχόλιο στην αρχή του προγράµµατος δεν είναι περιγραφικό. -Προσπάθησε να χρησιµοποιείς πιο περιγραφικά ονόµατα µεταβλητών για να αποφεύγεις και τα πολλά σχόλια στον κώδικα.

Διαβάστε περισσότερα

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

lab5grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ ΑΣΚΗΣΗΣ ΑΛΛΑ ΣΧΟΛΙΑ 00497 PASS 02103 PASS - Δεν έχει γίνει καθόλου χρήση σταθερών όπως έχουµε ζητήσει να γίνεται για όλες τις σταθερές τιµές. - Υπάρχουν σχόλια αλλά θα µπορούσαν να ήταν πιο επεξηγηµατικά και λίγο περισσότερα

Διαβάστε περισσότερα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 13/1/13, 22:00 Περιεχόµενα Διαδικαστικά Εκφώνηση άσκησης (Στάδιο 0, Στάδιο 1, Στάδιο 2, Στάδιο 3, Στάδιο 4, Στάδιο 5) Οδηγίες

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών

Διαβάστε περισσότερα

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

lab5grades Διαδικαστικά: όλα οκ, αλλά καθυστερήσατε στην αποστολή. Να προσέχετε να στέλνετε τις ασκήσεις σας εντός της προθεσµίας. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: όλα οκ, αλλά καθυστερήσατε στην αποστολή. Να προσέχετε να στέλνετε τις ασκήσεις σας εντός της προθεσµίας. : 449 οριακό - Λάθος στους υπολογισµούς. Σε κάθε µία επανάληψη

Διαβάστε περισσότερα

Οι δείκτες στη γλώσσα C

Οι δείκτες στη γλώσσα C Οι δείκτες στη γλώσσα C Δείκτης είναι µία µεταβλητή η οποία περιέχει σαν τιµή µία διεύθυνση της µνήµης Η τιµή ενός δείκτη δείχνει σε µία άλλη µεταβλητή, η οποία µπορεί να προσεγγισθεί έµµεσα µε τους ειδικούς

Διαβάστε περισσότερα

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα Αλφαριθμητικά Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

Διαβάστε περισσότερα

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

Διαβάστε περισσότερα

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

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 14 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)

Διαβάστε περισσότερα

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα