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

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

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

Transcript

1 Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 1349 FAIL Δεν ελήφθη άσκηση FAIL - Στην initialize πρέπει να κάνετε έλεγχο αν η malloc αποτυγχάνει για κάθε κλήση της, άρα και για δέσµευση χώρου για το name - Μάλιστα, σε περίπτωση αποτυχίας δέσµευσης χώρου για το name πρέπει να κάνετε clear και το someone - Η clear δεν είναι σωστή. Τρέχει µόνο για την πρώτη επανάληψη και µετά, αφού to κάνετε free, ο έλεγχος της while δεν βγάζει νόηµα. - Η clone πρέπει να κατασκευάζει ένα ακριβές αντίγραφο του κόµβου που παίρνει ως παράµετρο. Kάνοντας nnode->name = someone->name; βάζετε το nnode-name να δείχνει στο name του someone και δεν δεσµεύετε χώρο στο κλόνο για το name(αντιγράφοντάς το κιόλας). - Στην initialize η υλοποίηση είναι σωστή - Πολύ σωστά δεσµεύετε χώρο για το name, υπολογίζετε χώρο και για το \0 στο τέλος του αλφαριθµητικού - Η clone είναι πολύ σωστή - Μπορείτε βέβαια να καλείτε την clear για αποδέσµευση των δεικτών µετά από αποτυχία της malloc - Η clear δουλεύει σωστά για έναν κόµβο, σε περίπτωση κεφαλής λίστας όµως, θέλουµε να κάνει free όλους τους κόµβους της λίστας. - Το loop στην clear (στα σχόλια) είναι λάθος γιατί δεν ανανεώνει το runner. -Στη malloc για το ονοµα έχετε υπολογίσει σωστά χώρο και για το '\0', αλλά δεν ελέγχετε αν επιστρέφει NULL. -Στην αποτυχία κάποιας malloc, έπρεπε να καλείτε την killgremlins ώστε να απελευθερώνεται η µνήµη όλης της λίστας, και όχι να κάνετε απλά free. Επίσης ότι εντολές βάζετε µετά τη return απλά δεν εκτελούνται. - Συνάρτηση clone: ln 104. Αν δε µπορεί να δεσµευτεί χώρος καλείτε ορθά την clear. Όµως ξανακαλέιτε την clear µέσα στη main, κάτι που είναι λάθος. Η clear πρέπει να καλείται µία φορά. - Οµοίως στη ln 112, θα έπρεπε να κληθεί η clear. - Συνάρτηση initialize: ΟΚ - Καλύτερα αντί για define στο µέγεθος του ονόµατος να είχατε κάνει ακριβώς δέσµευση όσου χώρου χρειαζότανε. - Το πρόγραµµα σου δε δίνει ακριβώς τα αναµενόµενα αποτελέσµατα. Εµφανίζει στο τέλος κάτι για το οποίο ευθύνεται η memcpy. - Σας το λέµε συνεχώς να βάζετε αρχικό σχόλιο. - Έπρεπε να δηµιουργείς και το name δυναµικά, και µετά να το αντιγράφεις µε strcpy και όχι µε απλή ανάθεση τιµής. - Όταν κάνεις έλεγχο για τη αποτυχία δέσµευσης µνήµης να βάζεις και κανένα σχόλιο. - Η συνάρτηση killgremlins δεν είναι εντελώς σωστή. Επίσης θα έπρεπε να κάνεις free και το name εκεί. - Πολύ pass. - Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης θα έπρεπε να καλείτε την killgremlins. - Η συνάρτηση killgremlins δεν είναι εντελώς σωστή. Κάνετε free τοhold (το οποίο µόλις έχετε κάνει ίδιο µε το curr) κι αµέσως µετά γίνεται η πράξη curr = curr->next. Η προσπέλαση curr->next είναι λάθος, γιατί το curr έχει ήδη γίνει free. Στείλατε το lab11.c χωρίς καµµία αλλαγή - προσθήκη δικού σας κώδικα..

2 Συνάρτηση clone: ln 86, εφόσον δε µπόρεσε να δεσµευτεί χώρος για την duplicate δε µπορείτε να κάνετε free τη duplicate! Πρέπει να αποδεσµεύσετε όλους τους κόµβους που έχουν δεσµευτεί µέχρι στιγµής. Θα µπορούσατε να καλέσετε τη συνάρτηση clear για να το πετύχετε αυτό. - Συνάρτηση initialize: Για να γράψετε το name, θα έπρεπε να κάνετε malloc και strcpy. Κατά τα άλλα όκ. Για το πεδίο name του struct τα ίδια θα έπρεπε να κάνετε και στη συνάρτηση clone Στην initialize η υλοποίηση της είναι αρκετά σωστή. - Πολύ σωστά δεσµεύετε χώρο για το name, υπολογίζετε χώρο και για το \0 στο τέλος του αλφαριθµητικού. - Η clone είναι πολύ σωστή. - Σωστή η χρήση της clear για αποδέσµευση των δεικτών µετά από αποτυχία της malloc, απλά θα έπρεπε να κάνετε και στη συνάρτηση initialize στον έλεγχο clear. - Η clear είναι σωστή. - Μη ξεχνάτε το αρχικό σχόλιο!!! - Μνήµη πρέπει να δεσµεύετε µόνο όταν χρειάζεται. Για παράδειγµα, στην killgremlins το curr και το last πρόκειται να χρησιµοποιηθούν για να δείξουν σε ήδη υπάρχουσα µνήµη, οπότε είναι λάθος να δεσµεύσετε κάτι για αυτά. Δεν πρόκειται να αποθηκευτεί κάτι καινούργιο σε αυτή τη µνήµη που δεσµεύετε. Επιπλέον, µε το να κάνετε curr=first αργότερα, "χάνετε" πρόσβαση στη µνήµη που δεσµεύσατε (και το πρόγραµµά σας έχει memory leak). - Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης έπρεπε να καλείτε την killgremlins, δηλαδή και για το name. name επίσης. Επιπλέον, κάνετε free το last (το οποίο µόλις έχετε κάνει ίδιο µε το curr) κι αµέσως µετά γίνεται η πράξη curr = curr->next. Η προσπέλαση curr->next είναι λάθος, γιατί το curr έχει ήδη γίνει free. - Στην malloc που κάνετε για το name, θα έπρεπε να δεσµεύετε και χώρο για Επειδή είναι string έπρεπε να χρησιµοποιείτε την strcpy και όχι απλή ανάθεση τιµής. - Να βάζετε πιο περιγραφικό σχόλιο. name. - Συνάρτηση clone: Θα έπρεπε να ελεγχεί η δέσµευση χώρου και µετά τη malloc για το node->name. Επίσης αφού αποδεσµευτεί ο χώρος πρέπει η συνάρτηση να κάνει κάποιο return, γιατί αλλιώς προσπαθεί να γράψει σε µεταβλητές που έχει κάνει free. - Συνάρτηση initialize: Για το newnode->name έπρεπε να γίνει malloc ακριβώς τόσου χώρου όσο το όνοµα, έλεγχος για δέσµευση µνήµης και strcpy. - Στην initialize η υλοποίηση είναι σωστή - Πολύ σωστά δεσµεύετε χώρο για το name, υπολογίζετε χώρο και για το \0 στο τέλος του αλφαριθµητικού - Η clone είναι πολύ σωστή - Μπορείτε βέβαια να καλείτε την clear για αποδέσµευση των δεικτών µετά από αποτυχία της malloc - Η clear δουλεύει σωστά για έναν κόµβο, σε περίπτωση κεφαλής λίστας όµως, θέλουµε να κάνει free όλους τους κόµβους της λίστας. - Το loop στην clear (στα σχόλια) είναι λάθος γιατί δεν ανανεώνει το runner. name.

3 Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης θα έπρεπε να καλείτε την killgremlins. - Η συνάρτηση killgremlins δεν είναι εντελώς σωστή. Κάνετε free τοhold (το οποίο µόλις έχετε κάνει ίδιο µε το curr) κι αµέσως µετά γίνεται η πράξη curr = curr->next. Η προσπέλαση curr->next είναι λάθος, γιατί το curr έχει ήδη γίνει free. - Συνάρτηση clear: Πριν τη γραµµή 52 (free(temp)) θα έπρεπε να κάνετε και free(temp->name). - Συνάρτηση clone: Αν δε µπορεί να δεσµευτέι χώρος, θα έπρεπε να καλέσετε την clear µε κατάλληλη παράµετρο για να αποδεσµεύσετε ότι χώρο έχει δεσµευτεί µέχρι στιγµής. Μετά τη malloc για το curr->name θα έπρεπε να βάλλετε έλεγχο για το αν έγινε σωστά η δέσµευση. - Συνάρτηση initialize: Οµόιως για τη δέσµευση του stoixeia->name. -Δεν έχετε σχόλιο στην αρχή. -Στον έλεγχο αν πέτυχε η malloc έπρεπε να καλείτε την killgremlins αν υπάρχει κάποιο πρόβληµα και όχι να κάνετε απλά free. -Στην killgremlins έχετε first = first->next; και µετά free(first). Έπρεπε να είχατε ακόµα µία µεταβλητή που να κράταγε τον επόµενο κόµβο και να κάνετε free αυτή που κρατά τον τωρινό κόµβο FAIL FAIL 1595 Το πρόγραµµα δεν κάνει compile -Κάθε φορά που κάνετε έλεγχο αν απέτυχε η malloc έπρεπε να καλείτε την killgremlins και όχι να επιστρέφετε NULL. - Το πρόγραµµα σας δε δίνει τα αναµενόµενα αποτελέσµατα. Αυτό που έπρεπε να δίνει είναι ένας κάτω τριγωνικός πίνακας στην ουσία. Το λάθος είναι στον τρόπο που "κολάτε" το νέο κόµβο στο someone. Θέτετε το someone (δηλαδή την κεφαλή της λίστας) να είναι ίσο µε το νέο κόµβο που φτιάξατε και επιστρέφετε αυτό. Ως αποτέλεσµα, η υπόλοιπη λίστα χάνεται. Επιπλέον, στη main δεν αποθηκεύετε πουθενά το αποτέλεσµα που επιστρέφει η clone. - Σωστή η δέσµευση και για το \0. - Καλό είναι για την κάθε malloc να κάνετε τον δικό της έλεγχο, σε περίπτωση αποτυχίας να ξέρουµε δηλαδή ποιο ευθύνεται. Αν η malloc επιστρέψει NULL, τότε πρέπει να τερµατίζει η συνάρτηση, γιατί αν συνεχίσει θα πετάξει segfault. - Μέσα στον έλεγχο για τη αποτυχία δέσµευσης µνήµης έπρεπε να καλείτε και την clear. - Η σύνταξη της clear δεν είναι εντελώς σωστή. Η συνθήκη έπρεπε να έχει!= αντί για == - Αυξάνετε το someone->age κάθε φορά ενώ δε θα έπρεπε. - Προσέξτε λίγο τη στοίχιση σας! - Συνάρτηση clear: Πριν τη γραµµή 52 (free(temp)) θα έπρεπε να κάνετε και free(temp->name). - Συνάρτηση clone: Αν δε µπορεί να δεσµευτέι χώρος, θα έπρεπε να καλέσετε την clear µε κατάλληλη παράµετρο για να αποδεσµεύσετε ότι χώρο έχει δεσµευτεί µέχρι στιγµής. Μετά τη malloc για το curr->name θα έπρεπε να βάλλετε έλεγχο για το αν έγινε σωστά η δέσµευση. - Συνάρτηση initialize: Οµόιως για τη δέσµευση του stoixeia->name.

4 FAIL Η initialize είναι σωστή, αλλά θα έπρεπε να ελέγχετε το αποτέλεσµα της malloc για τον κόµβο. Επίσης σωστά υπολογίσατε το '\0' για το όνοµα. -Στην clone επρεπε να ελέγχεται και τη malloc για το όνοµα. -Σε περίπτωση αποτυχίας δέσµευσης µνήµης, έπρεπε να καλείτε την clear και όχι να κάνετε free(komvos); -Δεν καλείτε πουθενά την clear και επίσης δεν είναι σωστά υλοποιηµένη. -Κάθε φορά που κάνετε έλεγχο αν απέτυχε η malloc έπρεπε να καλείτε την killgremlins και όχι να επιστρέφετε NULL. Το πρόγραµµα δεν κάνει compile - Στην initialize η υλοποίηση είναι σωστή - Και η συνάρτηση clone είναι σωστή - Μπορείτε βέβαια να καλείτε την clear για αποδέσµευση των δεικτών µετά από αποτυχία της malloc - Στην clear δεν λαµβάνετε µέριµνα για την περίπτωση που η λίστα έχει µόνο ένα στοιχείο, οπότε δεν θα µπούµε ποτέ στην for. - Όταν γράφουµε "Adam" το \0 περιλαµβάνεται ήδη. Δε χρειάζεται να το ξαναβάλετε κάπου. -Στη malloc για το ονοµα έχετε βάλει καρφωτά ότι το όνοµα έχει µέγεθος 10. Θα έπρεπε να είναι strlen(table[i].name) + 1 (για το '\0'). Επίσης δεν ελέγχετε εάν επιστρέφει NULL. -Στην αποτυχία κάποιας malloc, έπρεπε να καλείτε την killgremlins ώστε να απελευθερώνεται η µνήµη όλης της λίστας, και όχι να κάνετε free(curr). -Περισσότερη προσοχή στη στοίχιση. - Η άσκηση µπορεί να µην περιέχει errors ή warnings αλλά κάνετε 1 σοβαρό λάθος. - Αυτό που κάνατε µε την p στην initialize είναι µεν σωστό για τα συγκεκριµένα δεδοµένα, αλλά πολύ επικίνδυνο (η p είναι τοπική µεταβλητή) οπότε να το προσέχετε. - Στο ίδιο σηµείο, ο δείκτης next του struct θα έπρεπε να έχει τιµή NULL. - Για να γράψετε το Adam θα έπρεπε να είχατε δεσµεύσει χώρο. - H clone είναι σε γενικές γραµµές οκ. Οµοίως και η clear. - Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης έπρεπε να καλείτε την killgremlins. - Στη συνάρτηση killgremlins δεν κάνετε τον κάθε κόµβο free µόνο τον αρχικό. Άσκηση 2: - Στην επανάληψη που ψάχνετε τη σωστή θέση έπρεπε απλά να "προχωράτε" µια θέση πιο πέρα το node και το prev. Μετά, βγαίνοντας από το loop, τσεκάρετε αν βγήκατε επειδή τέλειωσε η λίστα (curr == NULL) ή επειδή βρήκατε κόµβο µε µεγαλύτερο όνοµα, και τότε κάνετε την εισαγωγή του νέου κόµβου. - Η άσκηση µπορεί να µην περιέχει errors ή warnings αλλά κάνετε 1 σοβαρό λάθος. - Αυτό που κάνατε µε την p στην initialize είναι µεν σωστό για τα συγκεκριµένα δεδοµένα, αλλά πολύ επικίνδυνο (η p είναι τοπική µεταβλητή) οπότε να το προσέχετε. - Στο ίδιο σηµείο, ο δείκτης next του struct θα έπρεπε να έχει τιµή NULL. - Για να γράψετε το Adam θα έπρεπε να είχατε δεσµεύσει χώρο. - H clone είναι σε γενικές γραµµές οκ. Οµοίως και η clear.

5 Έπρεπε να κάνετε δυναµική δέσµευση µνήµης και για το name, µε µέγεθος strlen(name)+1. Επειδή είναι string έπρεπε να χρησιµοποιείτε την strcpy και όχι απλή ανάθεση τιµής. name FAIL Η clear είναι λάθος. Κάνετε free(runner) κι αµέσως µετά προσπέλαση του runner->next ενώ το runner έχει γίνει free. Επίσης, δεν αποδεσµεύετε τη µνήµη που δεσµεύθηκε για το name. - Στην clone, µετά το malloc για το όνοµα έπρεπε πάλι να καλείτε την clear. - Στη main, αν το first είναι NULL δεν πρέπει να το κάνετε free. - Σας το λέµε συνεχώς να βάζετε αρχικό σχόλιο. - Μετά από κάθε malloc πρέπει να κάνεις έλεγχο. Σε µία δεν έχετε κάνει. Έπρεπε µεν να εµφανίζετε κάποιο σχετικό µήνυµα σε περίπτωση αποτυχίας όπως επίσης και να καλείτε τη συνάρτηση killgremlins. - Στην killgremlins, αν το first είναι αρχικά NULL, το curr=first->next θα πετάξει αµέσως segfault. Αν το first->next είναι αρχικά NULL, ο έλεγχος του while θα πετάξει πάλι segfault. Ξαναδιαβάστε πώς γίνεται σωστά η αποδέσµευση. -Το πρόγραµµα περιέχει warnings και η εκτέλεση οδηγεί σε Segmentation Fault. - Στη ln 34 έχετε βάλλει το προτότυπο της συνάρτησης, αντί για κανονική κλήση της. - Συνάρτηση clear: Ο τελεστής ισότητας είναι ==. Δεν προχωράτε κάπως τη διάτρεξη της λίστας. - Συνάρτηση clone: Πολλά λογικά λάθη. Περνάτε σα παράµετρο τη µεταβλητή someone, η οποία αναπαριστά την κεφαλή της λίστας, και τη χαλάτε γιατί σε αυτή πάτε και δεσµεύσετε χώρο στη γραµµή Στο ptr->name πώς θα γράψετε Adam αφού δεν έχει δεσµευτεί χώρος. -- Στη γραµµή 91 γιατί κάνετε έλεγχο αν η curr είναι NULL ενώ δεν έχετε κάνει malloc σε αυτή. Μετά προσπαθείτε να κάνετε free στηνη ίδια µεταβλητή που είναι NULL... - H initialize έχει οµοίως πολλά λογικά λάθη. -Στη malloc για το ονοµα έχετε βάλει καρφωτά ότι το όνοµα έχει µέγεθος 10. Θα έπρεπε να είναι strlen(table[i].name) + 1 (για το '\0'). Επίσης δεν ελέγχετε εάν επιστρέφει NULL. -Στην αποτυχία κάποιας malloc, έπρεπε να καλείτε την killgremlins ώστε να απελευθερώνεται η µνήµη όλης της λίστας, και όχι να κάνετε free(curr). -Περισσότερη προσοχή στη στοίχιση. -Δεν έχετε σχόλιο στην αρχή. -Όταν δεσµεύετε µνήµη για το temp->name έπρεπε να έχετε len+1 για το \0. -Στην killgremlins αρχίζετε να σβήνετε από το δεύτερο κόµβο γιατί έχετε λάθος την αρχικοποίηση. Έξω από while θέλετε µόνο curr = first Στην initialize πρέπει να κάνετε έλεγχο αν η malloc αποτυγχάνει για κάθε κλήση της, άρα και για δέσµευση χώρου για το name - Μάλιστα, σε περίπτωση αποτυχίας δέσµευσης χώρου για το name πρέπει να κάνετε clear και το someone - Η clear δεν είναι σωστή. Τρέχει µόνο για την πρώτη επανάληψη και µετά, αφού to κάνετε free, ο έλεγχος της while δεν βγάζει νόηµα. - Η clone πρέπει να κατασκευάζει ένα ακριβές αντίγραφο του κόµβου που παίρνει ως παράµετρο. Kάνοντας nnode->name = someone->name; βάζετε το nnode-name να δείχνει στο name του someone και δεν δεσµεύετε χώρο στο κλόνο για το name(αντιγράφοντάς το κιόλας).

6 - Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης έπρεπε να καλείτε την killgremlins. - Στη συνάρτηση killgremlins δεν κάνετε τον κάθε κόµβο free µόνο τον αρχικό FAIL 1627 Άσκηση 2: - Στην επανάληψη που ψάχνετε τη σωστή θέση έπρεπε απλά να "προχωράτε" µια θέση πιο πέρα το node και το prev. Μετά, βγαίνοντας από το loop, τσεκάρετε αν βγήκατε επειδή τέλειωσε η λίστα (curr == NULL) ή επειδή βρήκατε κόµβο µε µεγαλύτερο όνοµα, και τότε κάνετε την εισαγωγή του νέου κόµβου. -Το πρόγραµµα περιέχει warnings και η εκτέλεση οδηγεί σε Segmentation Fault. - Στη ln 34 έχετε βάλλει το προτότυπο της συνάρτησης, αντί για κανονική κλήση της. - Συνάρτηση clear: Ο τελεστής ισότητας είναι ==. Δεν προχωράτε κάπως τη διάτρεξη της λίστας. - Συνάρτηση clone: Πολλά λογικά λάθη. Περνάτε σα παράµετρο τη µεταβλητή someone, η οποία αναπαριστά την κεφαλή της λίστας, και τη χαλάτε γιατί σε αυτή πάτε και δεσµεύσετε χώρο στη γραµµή Στο ptr->name πώς θα γράψετε Adam αφού δεν έχει δεσµευτεί χώρος. -- Στη γραµµή 91 γιατί κάνετε έλεγχο αν η curr είναι NULL ενώ δεν έχετε κάνει malloc σε αυτή. Μετά προσπαθείτε να κάνετε free στηνη ίδια µεταβλητή που είναι NULL... - H initialize έχει οµοίως πολλά λογικά λάθη. -Έπρεπε να κάνετε free και το curr->name στην killgremlins FAIL Δεν ελήφθη άσκηση Πολύ καλή δουλειά - Στην initialize, αν το curr->name είναι NULL πρέπει να κάνετε free και το curr. - Στη main, µετά την κλήση στην initialize, αν το first είναι NULL δεν έχει νόηµα να το κάνετε free. - Η clear είναι λάθος. Κάνετε free(runner) κι αµέσως µετά προσπέλαση του runner->next ενώ το runner έχει γίνει free. Επίσης, δεν αποδεσµεύετε τη µνήµη που δεσµεύθηκε για το name. - Στην clone, µετά το malloc για το όνοµα έπρεπε πάλι να καλείτε την clear. - Στη main, αν το first είναι NULL δεν πρέπει να το κάνετε free. -Στη malloc για το ονοµα έχετε υπολογίσει σωστά χώρο και για το '\0', αλλά δεν ελέγχετε αν επιστρέφει NULL. -Στην αποτυχία κάποιας malloc, έπρεπε να καλείτε την killgremlins ώστε να απελευθερώνεται η µνήµη όλης της λίστας, και όχι να κάνετε απλά free. Επίσης ότι εντολές βάζετε µετά τη return απλά δεν εκτελούνται Στην initialize πρέπει να ξανακαλέσετε την malloc για το name, να ελέγξετε τι επιστρέφει και αν αποτύχει να κάνετε clear και το new_p. Αν πετύχει, κάντε strcpy για το όνοµα. - Παροµοίως και στην clone, σχετικά µε την δέσµαυση χώρου για την name. - Η clear είναι σωστή

7 FAIL FAIL FAIL Συνάρτηση clone: Θα έπρεπε να ελεγχεί η δέσµευση χώρου και µετά τη malloc για το node->name. Επίσης αφού αποδεσµευτεί ο χώρος πρέπει η συνάρτηση να κάνει κάποιο return, γιατί αλλιώς προσπαθεί να γράψει σε µεταβλητές που έχει κάνει free. - Συνάρτηση initialize: Για το newnode->name έπρεπε να γίνει malloc ακριβώς τόσου χώρου όσο το όνοµα, έλεγχος για δέσµευση µνήµης και strcpy. Το πρόγραµµα δεν κάνει compile - Σας το λέµε συνεχώς να βάζετε αρχικό σχόλιο. - Μετά από κάθε malloc πρέπει να κάνεις έλεγχο. Σε µία δεν έχετε κάνει. Έπρεπε µεν να εµφανίζετε κάποιο σχετικό µήνυµα σε περίπτωση αποτυχίας όπως επίσης και να καλείτε τη συνάρτηση killgremlins. - Στην killgremlins, αν το first είναι αρχικά NULL, το curr=first->next θα πετάξει αµέσως segfault. Αν το first->next είναι αρχικά NULL, ο έλεγχος του while θα πετάξει πάλι segfault. Ξαναδιαβάστε πώς γίνεται σωστά η αποδέσµευση. -Ο κώδικας σας δεν τρέχει σωστά και πετάει Segmentation fault. -To warning στη γραµµη 68 θα µπορούσατε να το διορθώσετε εύκολα. -Έπρεπε να ελέγχετε και το αποτέλεσµα της malloc για το όνοµα. Επίσης στη δέσµευση του χώρου δεν λαµβάνετε υπόψη το '\0'. -Οι αλλαγές των δεικτών κατά την εισαγωγή ενός νέου κόµβου δεν είναι σωστές. Δεν χρειάζεται το root->next αλλά το root. Οι αναθέσεις που κάνετε έχουν ως αποτέλεσµα το Segmentation fault. -Δεν καλείτε την killgremlins από τη main και επίσης στη συνάρτηση αυτή έπρεπε να κάνετε free και το όνοµα. -Δεν έχετε αρχικό σχόλιο. -Στη malloc για το newnode->name έπρεπε να είχατε (len+1)*sizeof(char), όπου len το µέγεθος του name της θέσης που πίνακα που είσατε. -Έπρεπε να κάνετε έλεγχο για τη malloc και για τη newnode->name. - Συνάρτηση clone: ln 86, εφόσον δε µπόρεσε να δεσµευτεί χώρος για την duplicate δε µπορείτε να κάνετε free τη duplicate! Πρέπει να αποδεσµεύσετε όλους τους κόµβους που έχουν δεσµευτεί µέχρι στιγµής. Θα µπορούσατε να καλέσετε τη συνάρτηση clear για να το πετύχετε αυτό. - Συνάρτηση initialize: Για να γράψετε το name, θα έπρεπε να κάνετε malloc και strcpy. Κατά τα άλλα όκ. Για το πεδίο name του struct τα ίδια θα έπρεπε να κάνετε και στη συνάρτηση clone. Στείλατε το lab11.c χωρίς καµµία αλλαγή - προσθήκη δικού σας κώδικα.. -Στον έλεγχο για αποτυχία της malloc έπρεπε να καλείτε την killgremlins και να µην κάνετε free µόνο το συγκεκριµένο κόµβο. -Στην killgremlins έπρεπε να κάνετε free και το first->name. - Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης θα µπορούσατε να καλείτε την killgremlins. Δεν τον κάνετε αυτό τον έλεγχο σε όλες τις περιπτώσεις αποτυχίας Στον έλεγχο για αποτυχία της malloc έπρεπε να καλείτε την killgremlins και να µην κάνετε free µόνο το συγκεκριµένο κόµβο. -Στην killgremlins έπρεπε να κάνετε free και το first->name.

8 Μέσα σε κάθε έλεγχο αποτυχίας δέσµευσης µνήµης έπρεπε να καλείς την clear. Εσύ δε το κάνεις σε όλες τις περιπτώσεις (initialize). - Σωστά κάνεις malloc και για το όνοµα...αλλά...δε δεσµεύεις χώρο για το \0! - Στη συνάρτηση clear έπρεπε να κάνεις και το name free, εσύ το έχεις σε σχόλιο και αν το βγάλεις σου δίνει segmentation fault. Γενικά είναι λάθος η υλοποίηση της clear. Προσπάθησε να την ξανακάνεις. - Μη ξεχνάς το αρχικό σχόλιο!!! -Δεν έχετε αρχικό σχόλιο. -Στη malloc για το newnode->name έπρεπε να είχατε (len+1)*sizeof(char), όπου len το µέγεθος του name της θέσης που πίνακα που είσατε. -Έπρεπε να κάνετε έλεγχο για τη malloc και για τη newnode->name. -Δεν έχετε σχόλιο στην αρχή. -Όταν δεσµεύετε µνήµη για το temp->name έπρεπε να έχετε len+1 για το \0. -Στην killgremlins αρχίζετε να σβήνετε από το δεύτερο κόµβο γιατί έχετε λάθος την αρχικοποίηση. Έξω από while θέλετε µόνο curr = first Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης θα µπορούσατε να καλείτε την killgremlins. Δεν τον κάνετε αυτό τον έλεγχο σε όλες τις περιπτώσεις αποτυχίας FAIL 1660 FAIL - Το αρχείο που έστειλες είναι το lab Ο κώδικας σας δεν τρέχει σωστά και πετάει Segmentation fault. -To warning στη γραµµη 68 θα µπορούσατε να το διορθώσετε εύκολα. -Έπρεπε να ελέγχετε και το αποτέλεσµα της malloc για το όνοµα. Επίσης στη δέσµευση του χώρου δεν λαµβάνετε υπόψη το '\0'. -Οι αλλαγές των δεικτών κατά την εισαγωγή ενός νέου κόµβου δεν είναι σωστές. Δεν χρειάζεται το root->next αλλά το root. Οι αναθέσεις που κάνετε έχουν ως αποτέλεσµα το Segmentation fault. -Δεν καλείτε την killgremlins από τη main και επίσης στη συνάρτηση αυτή έπρεπε να κάνετε free και το όνοµα. -Έπρεπε να κάνετε free και το curr->name στην killgremlins. -Στην initialize πρέπει να κάνετε έλεγχο αν η malloc επιστρέφει NULL για όλες τις κλήσεις της malloc, άρα και για το head->name. - Η clear πρέπει να κάνει free όλη τη λίστα, εφόσον αυτή περιέχει παραπάνω από ένα στοιχεία - Η κλήση της clear στην main προκαλεί segfault - Στην εκτύπωση των αποτελεσµάτων πρέπει να φαίνονται όλα τα στάδια της λίστας, όχι µόνο η τελική της µορφή - Η έξοδος του προγράµµατος είναι η αναµενόµενη. - Μην ξεχνάτε το αρχικό σχόλιο. - Δεν κάνετε έλεγχο δέσµευσης µνήµης σε όλες τις περιπτώσεις, και µάλιστα πρέπει να τον κάνετε ακριβώς µετά τη δέσµευση µνήµης. Έπρεπε να κάνετε και για το name εφόσον το δηλώνετε δυναµικά. Ακόµη, µέσα στους ελέγχους αυτούς έπρεπε να κάνετε και clear στην περίπτωση αποτυχίας. - Για τη δέσµευση µνήµης του name έπρεπε να έχετε +1 για το \0. - Στην clear έπρεπε να έχετε και free για το name, καθώς το δηλώνετε δυναµικά.

9 Έπρεπε να κάνετε δυναµική δέσµευση µνήµης και για το name, µε µέγεθος strlen(name)+1. Επειδή είναι string έπρεπε να χρησιµοποιείτε την strcpy και όχι απλή ανάθεση τιµής. name Πολύ καλή δουλειά - Στην initialize, αν το curr->name είναι NULL πρέπει να κάνετε free και το curr. - Στη main, µετά την κλήση στην initialize, αν το first είναι NULL δεν έχει νόηµα να το κάνετε free FAIL Δεν ελήφθη άσκηση FAIL -Στην initialize πρέπει να κάνετε έλεγχο αν η malloc επιστρέφει NULL για όλες τις κλήσεις της malloc, άρα και για το head->name. - Η clear πρέπει να κάνει free όλη τη λίστα, εφόσον αυτή περιέχει παραπάνω από ένα στοιχεία - Η κλήση της clear στην main προκαλεί segfault - Στην εκτύπωση των αποτελεσµάτων πρέπει να φαίνονται όλα τα στάδια της λίστας, όχι µόνο η τελική της µορφή - Μνήµη πρέπει να δεσµεύετε µόνο όταν χρειάζεται. Για παράδειγµα, στην killgremlins το curr και το last πρόκειται να χρησιµοποιηθούν για να δείξουν σε ήδη υπάρχουσα µνήµη, οπότε είναι λάθος να δεσµεύσετε κάτι για αυτά. Δεν πρόκειται να αποθηκευτεί κάτι καινούργιο σε αυτή τη µνήµη που δεσµεύετε. Επιπλέον, µε το να κάνετε curr=first αργότερα, "χάνετε" πρόσβαση στη µνήµη που δεσµεύσατε (και το πρόγραµµά σας έχει memory leak). - Σε κάθε έλεγχο που κάνετε για αποτυχία δέσµευσης µνήµης έπρεπε να καλείτε την killgremlins, δηλαδή και για το name. name επίσης. Επιπλέον, κάνετε free το last (το οποίο µόλις έχετε κάνει ίδιο µε το curr) κι αµέσως µετά γίνεται η πράξη curr = curr->next. Η προσπέλαση curr->next είναι λάθος, γιατί το curr έχει ήδη γίνει free. - Στην malloc που κάνετε για το name, θα έπρεπε να δεσµεύετε και χώρο για Επειδή είναι string έπρεπε να χρησιµοποιείτε την strcpy και όχι απλή ανάθεση τιµής. - Να βάζετε πιο περιγραφικό σχόλιο. - Συνάρτηση clone: ln 104. Αν δε µπορεί να δεσµευτεί χώρος καλείτε ορθά την clear. Όµως ξανακαλέιτε την clear µέσα στη main, κάτι που είναι λάθος. Η clear πρέπει να καλείται µία φορά. - Οµοίως στη ln 112, θα έπρεπε να κληθεί η clear. - Συνάρτηση initialize: ΟΚ Καλύτερα αντί για define στο µέγεθος του ονόµατος να είχατε κάνει ακριβώς δέσµευση όσου χώρου χρειαζότανε. -Η initialize είναι σωστή, αλλά θα έπρεπε να ελέγχετε το αποτέλεσµα της malloc για τον κόµβο. Επίσης σωστά υπολογίσατε το '\0' για το όνοµα. -Στην clone επρεπε να ελέγχεται και τη malloc για το όνοµα. -Σε περίπτωση αποτυχίας δέσµευσης µνήµης, έπρεπε να καλείτε την clear και όχι να κάνετε free(komvos); -Δεν καλείτε πουθενά την clear και επίσης δεν είναι σωστά υλοποιηµένη. Το πρόγραµµα δεν κάνει compile

10 FAIL FAIL 1691 FAIL Στην initialize η υλοποίηση είναι σωστή - Και η συνάρτηση clone είναι σωστή - Μπορείτε βέβαια να καλείτε την clear για αποδέσµευση των δεικτών µετά από αποτυχία της malloc - Στην clear δεν λαµβάνετε µέριµνα για την περίπτωση που η λίστα έχει µόνο ένα στοιχείο, οπότε δεν θα µπούµε ποτέ στην for. - Όταν γράφουµε "Adam" το \0 περιλαµβάνεται ήδη. Δε χρειάζεται να το ξαναβάλετε κάπου. Το πρόγραµµα δεν κάνει compile - Στην initialize η υλοποίηση της είναι αρκετά σωστή. - Πολύ σωστά δεσµεύετε χώρο για το name, υπολογίζετε χώρο και για το \0 στο τέλος του αλφαριθµητικού. - Η clone είναι πολύ σωστή. - Σωστή η χρήση της clear για αποδέσµευση των δεικτών µετά από αποτυχία της malloc, απλά θα έπρεπε να κάνετε και στη συνάρτηση initialize στον έλεγχο clear. - Η clear είναι σωστή. - Μη ξεχνάτε το αρχικό σχόλιο!!! - Το πρόγραµµα σας δε δίνει τα αναµενόµενα αποτελέσµατα. Αυτό που έπρεπε να δίνει είναι ένας κάτω τριγωνικός πίνακας στην ουσία. Το λάθος είναι στον τρόπο που "κολάτε" το νέο κόµβο στο someone. Θέτετε το someone (δηλαδή την κεφαλή της λίστας) να είναι ίσο µε το νέο κόµβο που φτιάξατε και επιστρέφετε αυτό. Ως αποτέλεσµα, η υπόλοιπη λίστα χάνεται. Επιπλέον, στη main δεν αποθηκεύετε πουθενά το αποτέλεσµα που επιστρέφει η clone. - Σωστή η δέσµευση και για το \0. - Καλό είναι για την κάθε malloc να κάνετε τον δικό της έλεγχο, σε περίπτωση αποτυχίας να ξέρουµε δηλαδή ποιο ευθύνεται. Αν η malloc επιστρέψει NULL, τότε πρέπει να τερµατίζει η συνάρτηση, γιατί αν συνεχίσει θα πετάξει segfault. - Μέσα στον έλεγχο για τη αποτυχία δέσµευσης µνήµης έπρεπε να καλείτε και την clear. - Η σύνταξη της clear δεν είναι εντελώς σωστή. Η συνθήκη έπρεπε να έχει!= αντί για == - Αυξάνετε το someone->age κάθε φορά ενώ δε θα έπρεπε. - Προσέξτε λίγο τη στοίχιση σας! - Το πρόγραµµα σου έχει προειδοποιήσεις, τις οποίες θα µπορούσες να έχεις αποφύγει. Ακόµη η έξοδος δεν είναι εντελώς η αναµενόµενη. - Μη ξεχνάς το αρχικό σχόλιο. - Σε κάθε έλεγχο για την αποτυχία δέσµευσης µνήµης έπρεπε να κάνεις free, ή να καλείς την killgremlins. - Δεν υλοποιείς την killgremlins. - Όσον αφορά το µέγεθος του ονόµατος, έπρεπε να δεσµεύεις µνήµη και για το \0 (+1 δηλαδή). -Καλή στοίχιση και µεταβλητές. -Στη malloc για το ονοµα δεν ελέγχετε εάν επιστρέφει NULL. -Έχετε σωστά υπολογίσει και το '\0' στη δέσµευση του χώρου. -Στην αποτυχία της malloc για έναν κόµβο, έπρεπε να καλείτε την killgremlins ώστε να απελευθερώνεται η µνήµη όλης της λίστας. -Επίσης, δεν γίνονται free όλοι οι κόµβοι της λίστας, αλλά τρεις Δεν εµφανίζεται τη πρώτη φορά ο αρχικός κόµβος, αυτό το πετυχαίνετε µε µία print έξω από την επανάληψη. - Στην initialize η υλοποίηση της είναι αρκετά σωστή, έπρεπε όµως µέσα στον έλεγχο δέσµευσης µνήµης να καλείτε και την clear. - Πολύ σωστά δεσµεύετε χώρο για το name, υπολογίζετε χώρο και για το \0 στο τέλος του αλφαριθµητικού. - Η clone είναι πολύ σωστή. - Η clear δεν είναι σωστή, έπρεπε να κάνετε και free το name, καθώς το δηλώνετε δυναµικά. Επίσης, αν το first είναι αρχικά NULL, θα πετάξει segfault. - Μη ξεχνάτε το αρχικό σχόλιο!!!

11 1703 -Καλή στοίχιση και µεταβλητές. -Στη malloc για το ονοµα δεν ελέγχετε εάν επιστρέφει NULL. -Έχετε σωστά υπολογίσει και το '\0' στη δέσµευση του χώρου. -Στην αποτυχία της malloc για έναν κόµβο, έπρεπε να καλείτε την killgremlins ώστε να απελευθερώνεται η µνήµη όλης της λίστας. -Επίσης, δεν γίνονται free όλοι οι κόµβοι της λίστας, αλλά τρεις Η έξοδος του προγράµµατος είναι η αναµενόµενη. - Μην ξεχνάτε το αρχικό σχόλιο. - Δεν κάνετε έλεγχο δέσµευσης µνήµης σε όλες τις περιπτώσεις, και µάλιστα πρέπει να τον κάνετε ακριβώς µετά τη δέσµευση µνήµης. Έπρεπε να κάνετε και για το name εφόσον το δηλώνετε δυναµικά. Ακόµη, µέσα στους ελέγχους αυτούς έπρεπε να κάνετε και clear στην περίπτωση αποτυχίας. - Για τη δέσµευση µνήµης του name έπρεπε να έχετε +1 για το \0. - Στην clear έπρεπε να έχετε και free για το name, καθώς το δηλώνετε δυναµικά Στην initialize πρέπει να ξανακαλέσετε την malloc για το name, να ελέγξετε τι επιστρέφει και αν αποτύχει να κάνετε clear και το new_p. Αν πετύχει, κάντε strcpy για το όνοµα. - Παροµοίως και στην clone, σχετικά µε την δέσµαυση χώρου για την name. - Η clear είναι σωστή -Δεν έχετε σχόλιο στην αρχή. -Στον έλεγχο αν πέτυχε η malloc έπρεπε να καλείτε την killgremlins αν υπάρχει κάποιο πρόβληµα και όχι να κάνετε απλά free. -Στην killgremlins έχετε first = first->next; και µετά free(first). Έπρεπε να είχατε ακόµα µία µεταβλητή που να κράταγε τον επόµενο κόµβο και να κάνετε free αυτή που κρατά τον τωρινό κόµβο. - Καλό θα ήταν τις µεταβλητές να τις δηλώνεις στην αρχή της συνάρτησης - Όταν δεσµεύεις µνήµη για το όνοµα χρειάζεται µια ακόµη θέση για το \0 - Αν το malloc αποτύχει κι επιστρέψει NULL, δεν έχει νόηµα να κάνεις free το συγκεκριµένο δείκτη. Αφού δε δεσµεύτηκε! - Η strdup κάνει δέσµευση και αντιγραφή. Ή θα χρησιµοποιήσεις malloc και strcpy, ή θα χρησιµοποιήσεις strdup. Με τον τρόπο που το έκανες η αρχική µνήµη που δέσµευσες για το όνοµα µε malloc χάνεται (και το πρόγραµµα έχει memory leak) - Η clear δεν είναι σωστά υλοποιηµένη. Κάνοντας first = first->next παρακάµπτεις τον κόµβο που µάλλον εννοούσες να κάνεις free. Επιπλέον, σκέψου τι γίνεται από τη µία επανάληψη στην άλλη. Κάνεις free(first) κι ενώ το first έχει ήδη αποδεσµευτεί µετά κάνεις προσπέλαση και στο first->name και στο first->next. Θα έπρεπε να έχεις µια βοηθητική µεταβλητή να κρατάει το first, µετά κάνεις first=first->next και µετά κάνεις free τη βοηθητική

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Οριακό

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

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

Sheet1_2 FAIL. - To πρόγραµµα δεν κάνει compile Δεν παρέδωσε FAIL AEM 0001 0002 0003 COMMENTS οριακά -Η σταθερά για το µέγιστο µέγεθος του πίνακα έπρεπε να έχει τιµή 101 και όχι 100. -Έπρεπε να δεσµέυσεις δυναµικά και την µνήµη του αρχικού string και να το κάνεις free

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βαθμός Σχόλια. 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. - Στην συνθήκη

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

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

οριακό PASS 402 PASS Πολύ σωστά, µπράβο οριακό PASS ΑΕΜ ΒΑΘΜΟΣ 357 402 Πολύ σωστά, µπράβο ΣΧΟΛΙΑ Λάθος στον υπολογισµό του πλήθους αστερίσκων. Δε µετράτε αυτούς της "κάτω" σειράς, οπότε το αποτέλεσµα δεν είναι σωστό. Η πράξη που κάνετε στη main είναι λάθος

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

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

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

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

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

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

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 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) Οδηγίες

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

Φροντιστήριο 4 Σκελετοί Λύσεων

Φροντιστήριο 4 Σκελετοί Λύσεων Φροντιστήριο 4 Σκελετοί Λύσεων 1. Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως εξής: (i) Διαδοχική χορήγηση μνήμης Υποθέτουμε ότι οι λίστες μας έχουν μέγιστο μέγεθος max και χρησιμοποιούμε τη δομή type elements[max];

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

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

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

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό

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

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

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

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

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

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

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

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT ΘΕΩΡΙΑ Στο project αυτό έχουμε υλοποιήσει τις βασικές συναρτήσεις της stdlib της C malloc και free Η συνάρτηση malloc είναι η void *malloc(int

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lab10grades Άσκηση 2η: - Δεν κάνει compile: Δείτε την λύση και ξανα προσπαθήστε τα υπόλοιπα στο σπίτι. ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 449???? Άσκηση 1η: - Καλή δουλειά! Μπράβο - Σωστή στοίχιση - Σωστά σχόλια - Σωστός ορισµός των πεδίων struct - Σωστή υλοποίηση της init_books - Σωστή υλοποίηση της add_book_info: Εναλλακτικά,

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 1 Διάλεξη 8: Φροντιστήριο για Δομές, Δυναμική Δέσμευση Μνήμης, Αναδρομή Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι

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

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

Εργαστήριο 5. Εαρινό Εξάμηνο Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 5 Εαρινό Εξάμηνο 2012-2013 Στό χόι τόυ εργαστηρι όυ Χρήση στοίβας Αναδρομή Δομές δεδομένων Δυναμική

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 8: Φροντιστήριο για Δομές, Δυναμική Δέσμευση Μνήμης, Αναδρομή Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 1 ΑΠΟΡΙΕΣ ΕΠΛ035 Δομές Δεδομένων και

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

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

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

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

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

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν

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

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

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

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

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

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεµένες Δοµές - Λίστες Δοµές δεδοµένων! Ένα τυπικό πρόγραµµα επεξεργάζεται δεδοµένα Πώς θα τα διατάξουµε? 2 Τι λειτουργίες θέλουµε να εκτελέσουµε? Πώς θα υλοποιήσουµε

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Διαχείριση Μνήμης,Δυναμικές Δομές Δεδομένων, Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Δυναμικές Δομές Δεδομένων Γενικά - Δυναμική Δέσμευση/Αποδέσμευση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

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

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

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

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

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

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

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

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

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

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

Προγραμματισμός Δομές Δεδομένων

Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που

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

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

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

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

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

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

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

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

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >= 2 που

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

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

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

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

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

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

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

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Λίστες -Υλοποίηση ταξινομημένης λίστας με δυναμική δέσμευση μνήμης ΕΠΛ035

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010-2011 Προθεσµία: 5/12/10, 23:59 Στόχοι structs Πίνακες Συναρτήσεις Συµβολοσειρές Χρήση µεταβλητών και σταθερών Χρήση τελεστών Χρήση δοµών

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (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*%

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

Εντολές της LOGO (MicroWorlds Pro)

Εντολές της LOGO (MicroWorlds Pro) Εντολές της LOGO (MicroWorlds Pro) Εντολές εμφάνισης (εξόδου) και αριθμητικές πράξεις δείξε Εμφανίζει στην οθόνη έναν αριθμό, το αποτέλεσμα πράξεων, μια λέξη ή μια λίστα (ομάδα) λέξεων. δείξε 200 200 δείξε

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

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Λίστες Προγραμματισμός II 1 lalis@inf.uth.gr Διασυνδεδεμένες δομές Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση του είναι

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

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μια σημείωση από τον Α. Δελή για το άρθρο: W. Pugh, Skip Lists: A Probabilistic Alternative to Balanced Trees, Comms of the ACM, 33(), June 10,

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

υναµικές οµές εδοµένων

υναµικές οµές εδοµένων υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή

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

Εισαγωγή στον Προγραµµατισµό «C»

Εισαγωγή στον Προγραµµατισµό «C» Εισαγωγή Στον Προγραµµατισµό «C» Δείκτες Πανεπιστήµιο Πελοποννήσου Τµήµα Επιστήµης & Τεχνολογίας Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Μνήµη Υπολογιστή Η µνήµη RAM (Random Access Memory) ενός υπολογιστή

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

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

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

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

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

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

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση

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