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

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ 357 FAIL Λάθος στο πακετάρισµα του αρχείου. ΣΧΟΛΙΑ 400 FAIL 402 Έπρεπε να στείλετε ΜΟΝΟ το lab11.c Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το curr->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. - Αν το newnode είναι NULL πρέπει να γίνεται clear η νέα λίστα πριν τον τερµατισµό - Στην εισαγωγή νέου κόµβου δε λαµβάνετε υπόψη ότι η λίστα είναι κυκλική και τελικά τη χαλάτε. Η λίστα είναι κυκλική, εποµένως δεν τερµατίζει σε NULL. Το όριο του loop είναι λάθος. Δείτε τις διαφάνειες. Δεν ελέγχετε αν η τοµή είναι NULL, και δεν ελευθερώνετε τη δυναµικά δεσµευµένη µνήµη του προγράµµατος πριν τον τερµατισµό Σωστή αλλά δεν έπρεπε να κάνετε εδώ clear της head1, head2. Έπρεπε να κάνετε clear τα set1, set2 ακόµη κι αν το set3 είναι NULL 403 FAIL Λάθος στο πακετάρισµα του αρχείου Αν το newnode είναι NULL έπρεπε να κάνετε clear και το set1. Σωστή κατά τα άλλα.

2 Το curr χρησιµοποιείται για να διατρέξει λίστες και θα δείχνει σε ήδη δεσµευµένη µνήµη, εποµένως είναι λάθος να δεσµευθεί µνήµη για αυτό. - Έπρεπε να ελέγχετε αν το ptr_set3 είναι NULL και σε αυτή την περίπτωση να εκτυπώνετε συγκεκριµένο µήνυµα. - Αν η malloc για το newnode αποτύχει, πρέπει να αποδεσµεύετε όλη η µνήµη για τη λίστα-τοµή, όχι µόνο η κεφαλή FAIL Λάθος στο πακετάρισµα του αρχείου Το loop που βρίσκει τον τελευταίο κόµβο της δεύτερης λίστας είναι επικίνδυνο. Αν αυτή είναι άδεια, το curr2 θα είναι αρχικά NULL και αµέσως µετά το curr2->next θα πετάξει segfault. Εφόσον δε ζητήθηκε στην εκφώνηση να γίνει εισαγωγή στο τέλος, θα ήταν πολύ πιο απλό να την είχατε κάνει στην αρχή. - Πριν το return έπρεπε να αδειάζει η δεύτερη λίστα. Σωστή, αλλά η set2 έπρεπε να γίνεται clear µέσα στην createunion.

3 Έπρεπε να είχατε στείλει µόνο το lab11.c Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το c1->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. Το c1 είναι άσχηµο όνοµα µεταβλητής. Σωστή, αλλά έπρεπε να κάνει clear τη δεύτερη λίστα πριν επιστρέψει. - Σας είχαµε δώσει έτοιµη συνάρτηση για την εκτύπωση των στοιχείων της λίστας, δε χρειαζόταν να γράψετε εσείς το loop. - Έπρεπε να ελέγχετε αν το set3 είναι NULL και σε αυτή την περίπτωση να εκτυπώνετε το µήνυµα που ζητά η εκφώνηση. - Μετά από κάθε malloc πρέπει να ελέγχετε αν επέστρεψε NULL ( και σε αυτη την περίπτωση η εκφώνηση ζητούσε να κάνετε clear όλη τη µνήµη της τοµής) - Στην κλήση στη findinlist έπρεπε να περνάτε το curr2->number κι όχι το curr2->next->number. - Δε γίνεται σωστά η εισαγωγή του νέου κόµβου στη λίστα. Δε φαίνεται να λαµβάνετε υπόψη ότι είναι κυκλική. - Έπρεπε να ελέγχετε αν το head είναι NULL και να εκτυπώνετε συγκεκριµένο µήνυµα - Δεν κάνετε clear τη λίστα-τοµή. Έχετε υπόψη ότι "founded" σηµαίνει "ιδρύθηκε" όχι "βρέθηκε". Το "βρέθηκε" είναι "found". Σωστή, εκτός από την ξεκάρφωτη κλήση στην findinlist στο τέλος της συνάρτησης (η οποία ούτε καν εκτελείται εφόσον είναι µετά το return) Σωστή, αλλά το set2 έπρεπε να γίνεται clear στην createunion.

4 Στο τέλος του πρώτου loop έχετε free(curr2) αλλά αµέσως µετά εκτελείται το curr2 = curr2->next, δηλαδή κάνετε προσπέλαση µνήµης που έχει ελευθερωθεί. Το σωστό θα ήταν να είχατε κάτι παρόµοιο µε το τρυκ στην clearlist (αποθηκεύετε πρώτα κάπου προσωρινά το curr2->next, κάνετε το free, και µετά χρησιµοποιείτε την τιµή που αποθηκεύσατε για να ανανεώσετε το curr2.) - Όλα σωστά κατά τα άλλα. Ο λόγος που "χάνει" κάποια στοιχεία είναι επειδή θέτετε curr_head2 = next_head2->next; ενώ δε χρειαζόταν το ->next γιατί το next_head2 ήδη δείχνει στον επόµενο κόµβο που πρέπει να αφαιρεθεί. Επίσης, όταν αφαιρείτε το curr_head2 από τη δεύτερη λίστα δε φροντίζετε να έχετε το head2 να δείχνει στη νέα κεφαλή (αν αυτό που αφαιρέθηκε ήταν το πρώτο στοιχείο), οπότε δε θα λειτουργήσει σωστά και η clear στο τέλος της συνάρτησης. Αν η λίστα είναι αρχικά άδεια, τότε το head είναι NULL και το πρόγραµµά σας θα πετάξει segfault κατά την προσπέλαση του head->next. Φαινεται να γράψατε τη συνάρτηση σα να είχε sentinel η λίστα, ενώ δεν έχει. Το clear γίνεται πάντα ίσο µε head->next, και το head δεν αλλάζει ποτέ. Μετά το free, το clear δείχνει στη µνήµη που µόλις ελευθερώθηκε. Δείτε τις διαφάνειες, γιατί φαίνεται να έχετε µπερδευτεί. Μετά την επιστροφή από την createunion, η κεφαλή της πρώτης λίστας είναι εκεί που δείχνει ο controller_ptr, εποµένως έπρεπε να κάνετε µόνο αυτόν clear και όχι το set1. Γι αυτό σας πετάει error (προσπαθεί να κάνει free κόµβους που τους έχει ήδη κάνει free) Αν το newnode είναι NULL πρέπει να αποδεσµευεται όλη η λίστα-τοµή. Σωστή - Έπρεπε να χρησιµοποιήσετε την έτοιµη συνάρτηση για την εκτύπωση λιστών

5 1726 Λάθος. Τρέχετε το loop ακριβώς 5 φορές, αλλά δεν υπάρχει καµία εγγύηση ότι το µέγεθος της λίστας θα είναι πάντα 5. - Και πάλι λάθος στο loop. Το τρέχετε 8 φορές, ενώ θα έπρεπε να το τρέχετε µέχρι το τέλος της λίστας. - Αν η malloc επιστρέψει NULL, πρέπει να καλείτε την clearlist για να αποδεσµευθεί η δυναµικά δεσµευµένη µνήµη του προγράµµατος. Λάθος. Αποδεσµεύετε µόνο την κεφαλή, όχι ολόκληρη τη λίστα. Δείτε τις διαφάνειες. - Σωστή η κλήση. Στην περίπτωση που το rslt (το οποίο είναι και απαράδεκτο όνοµα µεταβλητής) είναι NULL έπρεπε να εκτυπώνετε διαφορετικό µήνυµα. Στο τέλος, έπρεπε να απελευθερώνετε όλη τη δυναµικά δεσµευµένη µνήµη του προγράµµατος Αν η malloc αποτύχει, πρέπει να αποδεσµεύεται η µνήµη για τη λίστα-τοµή. - Κώδικας µετά από return δεν εκτελείται. Σας δώσαµε έτοιµη συνάρτηση για την εκτύπωση λιστών, κι έπρεπε να χρησιµοποιήσετε εκείνη.

6 1728 FAIL Λάθος: το όριο του loop έπρεπε να είναι curr!= head, κι όχι curr==head. - Το όριο του loop έπρεπε να είναι curr!= head, κι όχι curr==head. - Δεν ελέγχετε αν η malloc επέστρεψε NULL. - Η εισαγωγή νέου κόµβου θα γίνει σωστά µόνο αν η λίστα είναι άδεια. Σε κάθε άλλη περίπτωση "χάνετε" κοµµάτι της λίστας µε τον τρόπο που θέτετε τους δείκτες. - Έχετε τη µεταλβητή new_elements αλλά δεν ανανεώνετε ποτέ την τιµή της, εποµένως η συνάρτηση επιστρέφει πάντα NULL. - Δεν αντιγράφετε το σωστό number στο νέο κόµβο που εισάγετε στην τοµή. Λάθος. Κάνετε free(curr) κι αµέσως µετά προσπελαύνετε την απελευθερωµένη µνήµη µε το curr->next. Δείτε τις διαφάνειες. Επίσης, το όριο του loop έπρεπε να είναι curr!= head, κι όχι curr==head. - Στο τέλος πρέπει να απελευθερώνετε τη δυναµικά δεσµευµένη µνήµη του προγράµµατος. - Το µήνυµα που εκτυπώνετε δεν είναι το ζητούµενο FAIL Το πρόγραµµα δεν κάνει compile και τα λάθη είναι πολλά και σηµαντικά FAIL - Το curr1 έπρεπε να ξεκινά από την κεφαλή της λίστας, δηλαδή από το head. Εσείς το ξεκινάτε από µια τοπική µεταβλητή που είναι NULL.Πιθανώς δεν έχετε καταλάβει καλά την έννοια της παραµέτρου. - Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το current->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. - Κάνετε NULL τα head1, head2 εποµένως χάνετε την πρόσβαση στις λίστες. - Σωστη χρήση findinlist, αλλά η υπόλοιπη συνάρτηση είναι τελείως λάθως. - Δεν είναι σωστά υλοποιηµένη. Κάνετε free(curr) και στην επόµενη επανάληψη προσπελαύνετε το curr->next. Δείτε τις διαφάνειες για σωστή λύση. - Στην κλήση της createunion οι παράµετροι πρέπει να είναι οι set1, set2, δηλαδή οι λίστες που έχουµε ήδη δηµιουργήσει και των οποίων την ένωση θέλουµε να υπολογίσουµε. Εσείς περνάτε δύο µεταβλητές που ορίσατε και είναι απλά NULL. -

7 Σωστή, µπράβο, - Το for που κάνει τη µετακίνηση στο τέλος της λίστας είναι επικίνδυνο. Αν η πρώτη λίστα είναι κενή, το head1b θα γίνει αρχικά NULL και όταν γίνει ο έλεγχος headb1->next!= NULL θα πεταχτεί segfault. Θα ήταν πιο απλό να είχατε προσθέσει τον κόµβο στην αρχή της λίστας εφόσον δε ζητούσε κάτι διαφορετικό η εκφώνηση. Εφόσον το set1 δεν έχει περαστεί µε αναφορά, ακόµη κι αν γίνει NULL εντός της createunion, δε θα είναι NULL στη main. Το σωστό θα ήταν να αναθέτατε το αποτέλεσµα της createunion σε µεταβλητή και να ελέγχετε αυτή. - Στην περίπτωση που το new είναι NULL δεν έχει νόηµα να το κάνετε free, αφού δε δεσµεύτηκε µνήµη γι αυτό. -

8 Το loop που βρίσκει τον τελευταίο κόµβο της δεύτερης λίστας είναι επικίνδυνο. Αν αυτή είναι άδεια, το curr2 θα είναι αρχικά NULL και αµέσως µετά το curr2->next θα πετάξει segfault. Εφόσον δε ζητήθηκε στην εκφώνηση να γίνει εισαγωγή στο τέλος, θα ήταν πολύ πιο απλό να την είχατε κάνει στην αρχή. - Πριν το return έπρεπε να αδειάζει η δεύτερη λίστα. Σωστή, αλλά η set2 έπρεπε να γίνεται clear µέσα στην createunion Δε συκρίνετε πουθενά το number µε το curr->number! - Δεν υπάρχει λόγος για τη δεύτερη κλήση στη findinlist. Τα στοιχεία των συνόλων είναι µοναδικά. - Λάθος εισαγωγή του νέου κόµβου και η χρήση του prev στη γραµµή 85 µπορεί να οδηγήσει σε segfault εφόσον δεν έχει αρχικοποιηθεί. Σωστή αλλά δεν κάνετε clear τα set1, set2 όταν το set3 είναι NULL Δε συκρίνετε πουθενά το number µε το curr->number! - Δεν υπάρχει λόγος για τη δεύτερη κλήση στη findinlist. Τα στοιχεία των συνόλων είναι µοναδικά. - Λάθος εισαγωγή του νέου κόµβου και η χρήση του prev στη γραµµή 85 µπορεί να οδηγήσει σε segfault εφόσον δεν έχει αρχικοποιηθεί. Σωστή αλλά δεν κάνετε clear τα set1, set2 όταν το set3 είναι NULL

9 Στην περίπτωση που η malloc επιστρέφει NULL, η εκφώνηση ζητούσε να αποδεσµεύεται η µνήµη για τα set1, set2 πριν επιστρέψει η συνάρτηση. - Σωστή κατά τα άλλα, και µπράβο για το πέρασµα της κεφαλής µε αναφορά FAIL Δεν εστάλη άσκηση Στην add_node, αν το newnode είναι NULL δεν πρέπει να επιστρέφετε head γιατί το έχετε αποδεσµεύσει. Θα ήταν πιο κατάλληλο να επιστρέφετε NULL. Σωστή, αν και δεν πρέπει να κληθεί η clearlist(head) αν το head είναι NULL. Σωστή, αλλά σε περίπτωση αποτυχίας της malloc έπρεπε να αποδεσµεύεται όλη η λίστα-τοµή πριν τον τερµατισµό της συνάρτησης. Σωστή αλλά δεν έπρεπε να κάνετε εδώ clear της head1, head2. Έπρεπε να κάνετε clear τα set1, set2 ακόµη κι αν το set3 είναι NULL

10 Σωστή, µόνο που η εκφώνηση ζητούσε να αδειάσει και το set2. - Το union_result δείχνει στη νέα κεφαλή του πρώτου συνόλου (το οποίο τώρα περιέχει επιπλέον στοιχεία). Εποµένως, πρέπει να κάνετε µόνο αυτό clear και όχι το set1. Γι αυτό σας βγαίνει error για διπλό free. - Το set2 έπρεπε να γίνεται clear µέσα στην createunion. - Λάθος στα όρια του loop. Παρακάµπτετε τον τελευταίο κόµβο πριν το sentinel. Έπρεπε η συνθήκη να είναι curr1!=head1. - Θα ήταν πιο απλό να εισάγετε κάθε νέο κόµβο στην αρχή της λίστας, εφόσον η εκφώνηση δεν προσδιόριζε κάτι συγκεκριµένο. - Στο τέλος, αν head->next==head θα έπρεπε να κάνετε free(head) πριν επιστρέψετε NULL, ή να µην κάνατε τίποτα απολύτως και να επιστρέφατε την άδεια λίστα. Λάθος στα όρια του loop. Παρακάµπτετε τον τελευταίο κόµβο πριν το sentinel. Έπρεπε η συνθήκη να είναι curr!=head FAIL Δεν εστάλη άσκηση 1761 Σωστή, αλλά το παρακάνατε µε τα σχόλια. Συνήθως το i χρησιµοποιείται ως ακέραιος µετρητής σε loop. Για δείκτες χρησιµοποιούµε ονόµατα όπως current, runner κτλ. Σωστή, αλλά η set2 έπρεπε να γίνεται clear µέσα στην createunion.

11 Στην περίπτωση που η malloc επιστρέφει NULL, η εκφώνηση ζητούσε να αποδεσµεύεται η µνήµη για τα set1, set2 πριν επιστρέψει η συνάρτηση. - Σωστή κατά τα άλλα, και µπράβο για το πέρασµα της κεφαλής µε αναφορά. Σωστή - Μετά από malloc πρέπει να κάνετε πάντα έλεγχο για το αν επέστρεψε NULL. - Αν ο neos_komvos είναι NULL, έπρεπε να καλείτε την έτοιµη συνάρτηση clearlist για να κάνετε την αποδέσµευση µνήµης. - Δεν αποδεσµεύετε τη µνήµη για την τοµή πριν το τέλος της συνάρτησης. - Λάθος όρια loop: παρακάµπτετε τον τελευταίο κόµβο πριν το head1. Το loop έπρεπε να ελέγχει αν curr!=head1 κι όχι αν curr->next!=head1 - Αν το new_node είναι NULL πρέπει να απελευθερωθεί όλη η µνήµη για τη λίστα τοµή πριν τερµατίσει η συνάρτηση. Αν η createintersection επιστρέψει NULL, το πρόγραµµα θα πετάξει segfault όταν θα ελεγθεί το head->next. Έπρεπε να κάνετε έλεγχο για NULL! Δεν αποδεσµεύετε όλη τη δυναµικά δεσµευµένη µνήµη του προγράµµατος.

12 Το for που κάνει τη µετακίνηση στο τέλος της λίστας είναι επικίνδυνο. Αν η πρώτη λίστα είναι κενή, το head1b θα γίνει αρχικά NULL και όταν γίνει ο έλεγχος headb1->next!= NULL θα πεταχτεί segfault. Θα ήταν πιο απλό να είχατε προσθέσει τον κόµβο στην αρχή της λίστας εφόσον δε ζητούσε κάτι διαφορετικό η εκφώνηση. Εφόσον το set1 δεν έχει περαστεί µε αναφορά, ακόµη κι αν γίνει NULL εντός της createunion, δε θα είναι NULL στη main. Το σωστό θα ήταν να αναθέτατε το αποτέλεσµα της createunion σε µεταβλητή και να ελέγχετε αυτή Δεν ελέγχετε ολόκληρη τη λίστα, γιατί το loop τερµατίζει όταν είναι NULL το curr->next. - Σωστή κατά τα άλλα. Λάθος. Αν η λίστα είναι αρχικά άδεια, το head θα είναι NULL, οπότε η προσπέλαση head->next θα πετάξει segfault. Επίσης, ο τελευταιος κόµβος δε γίνεται free γιατί το loop τερµατίζει όταν είναι NULL το curr->next κι όχι όταν είναι το curr. - Τι είναι αυτό που προσπαθείτε να κάνετε στο else? - Δεν αποδεσµεύεται όλη η δυναµικά δεσµευµένη µνήµη του προγράµµατος. 1772

13 Λάθος στον τερµατισµό του loop. Η λίστα είναι κυκλική, εποµένως δεν τερµατίζει σε NULL. Φαίνεται να πήρατε κοµµάτια από τα παραδείγµατα των διαλέξεων (το οποίο είναι οκ) χωρίς να καταλάβατε τι πήρατε και τι χρειαζόσασταν (το οποίο δεν είναι οκ). - Μετά από malloc πρέπει να ελέγχετε πάντα αν επεστράφη NULL. Ειδικά σε αυτή την άσκηση, η εκφώνηση ζητούσε να αποδεσµεύετε όλη τη δυναµικά δεσµευµένη µνήµη σε αυτή την περίπτωση. - Εδώ έχετε σωστά τον τερµατισµό του loop. Λάθος στον τερµατισµό του loop. Η λίστα είναι κυκλική, εποµένως δεν τερµατίζει σε NULL. Το loop έπρεπε να πηγαίνει µέχρι head. Λάθος. Δεν αποθηκεύετε πουθενά το αποτέλεσµα της συνάρτησης και δεν απελευθερώνετε τη δυναµικά δεσµευµένη µνήµη του προγράµµατος. - Λάθος στα όρια του loop. Παρακάµπτετε τον τελευταίο κόµβο πριν το sentinel. Έπρεπε η συνθήκη να είναι curr1!=head1. - Θα ήταν πιο απλό να εισάγετε κάθε νέο κόµβο στην αρχή της λίστας, εφόσον η εκφώνηση δεν προσδιόριζε κάτι συγκεκριµένο. - Στο τέλος, αν head->next==head θα έπρεπε να κάνετε free(head) πριν επιστρέψετε NULL, ή να µην κάνατε τίποτα απολύτως και να επιστρέφατε την άδεια λίστα. Λάθος στα όρια του loop. Παρακάµπτετε τον τελευταίο κόµβο πριν το sentinel. Έπρεπε η συνθήκη να είναι curr!=head. Σωστή, αλλά το παρακάνατε µε τα σχόλια. Συνήθως το i χρησιµοποιείται ως ακέραιος µετρητής σε loop. Για δείκτες χρησιµοποιούµε ονόµατα όπως current, runner κτλ. Σωστή, αλλά η set2 έπρεπε να γίνεται clear µέσα στην createunion.

14 FAIL Έχετε υπόψη ότι "founded" σηµαίνει "ιδρύθηκε" όχι "βρέθηκε". Το "βρέθηκε" είναι "found". Σωστή, εκτός από την ξεκάρφωτη κλήση στην findinlist στο τέλος της συνάρτησης (η οποία ούτε καν εκτελείται εφόσον είναι µετά το return) Σωστή, αλλά το set2 έπρεπε να γίνεται clear στην createunion. Χρησιµοποιείτε τις λίστες σα να είναι πίνακες. Χρησιµοποιείτε τις λίστες σα να είναι πίνακες. Ελευθερώνετε µόνο την κεφαλή. Χρησιµοποιείτε τις λίστες σα να είναι πίνακες Λάθος όρια loop: Δεν υπάρχει καµία εγγύηση ότι η λίστα θα έχει πάντα µέγεθος 8. - Αν επιστραφεί FAILURE πρέπει να απελευθερωθεί όλη η µνήµη για τη λίστα τοµή πριν τερµατίσει η συνάρτηση. Σωστή, αλλά το clearlist(set3) πρέπει να καλείται µόνο όταν το set3 δεν είναι NULL Αν η createunion επιστρέψει NULL έπρεπε εκτυπώνετε το µήνυµα Union failed. - Η δεύτερη λίστα καταστρέφεται µέσα στην createunion, οπότε δεν πρέπει να την ξανακάνετε clear στη main. - Κατά τα άλλα σωστά.

15 Στο τέλος του πρώτου loop έχετε free(curr2) αλλά αµέσως µετά εκτελείται το curr2 = curr2->next, δηλαδή κάνετε προσπέλαση µνήµης που έχει ελευθερωθεί. Το σωστό θα ήταν να είχατε κάτι παρόµοιο µε το τρυκ στην clearlist (αποθηκεύετε πρώτα κάπου προσωρινά το curr2->next, κάνετε το free, και µετά χρησιµοποιείτε την τιµή που αποθηκεύσατε για να ανανεώσετε το curr2.) - Όλα σωστά κατά τα άλλα. - Αν η createunion επιστρέψει NULL έπρεπε εκτυπώνετε το µήνυµα Union failed. - Η δεύτερη λίστα καταστρέφεται µέσα στην createunion, οπότε δεν πρέπει να την ξανακάνετε clear στη main. - Κατά τα άλλα σωστά.

16 1793 FAIL 1797 FAIL Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το current->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. - Στην createunion έπρεπε να χρησιµοποιείτε τη findinlist για να βρίσκετε αν το current2->number βρίσκεται στην πρώτη λίστα και να δηµιουργείτε το νέο κόµβο µόνο αν δε βρίσκεται. Εσείς δηµιουργείτε νέο κόµβο αµέσως µόλις βρείτε δύο διαφορετικά στοιχεία. - Στην περίπτωση που η malloc επιστρέφει NULL πρέπει να εκτυπώνετε κι ένα σχετικό µήνυµα λάθους. Επίσης, σύµφωνα µε την εκφώνηση έπρεπε να απελευθερώνετε όλη τη δυναµικά δεσµευµένη µνήµη πριν τον τερµατισµό - Ο νέος κόµβος δεν εισάγεται στην πρώτη λίστα. Απλά θέτετε το next του. - Η συνάρτηση έπρεπε να επιστρέφει τη νέα κεφαλή της πρώτης λίστας, και όχι 0. Σωστή Εφόσον η δεύτερη λίστα έχει γίνει clear µέσα στην createunion, δεν πρέπει να την ξανακάνετε free στη main. Επίσης, η ένωση είναι στην πραγµατικότητα η πρώτη λίστα όπως αυτή διαµορφώθηκε από την createunion, εποµένως δεν έπρεπε να κάνετε free το set1 αλλά µόνο το Union Λάθος. Ελέγχετε µόνο το πρώτο στοιχείο, αντί για όλα τα στοιχεία της λίστας. - Λάθος στα όρια των loops. Δεν υπάρχει καµία εγγύηση ότι οι λίστες θα έχουν πάντα µεγέθη 8 και 5 αντίστοιχα. - Αν ο νέος κόµβος είναι NULL πρέπει να αποδεσµεύετε τις δύο λίστες πριν τερµατίσει η συνάρτηση. Λάθος. Αποδεσµεύετε µόνο την κεφαλή, όχι όλη τη λίστα.

17 1798 FAIL FAIL - Ο έλεγχος curr->number!=123 δεν είναι σωστός. Πώς ξέρετε ότι δε θα έχει ένα στοιχείο µε αυτή την τιµή η λίστα? Έπρεπε να ελέγχετε αν το curr έχει φτάσει στο head. - Επιστρέφετε 0 αν βρεθεί ο αριθµός, ενώ θέλουµε το αντίθετο. - Πιο κάτω επιστρέφετε 1 αν το curr στο τέλος του loop είναι διάφορο του head, το οποίο υποννοεί ότι βρέθηκε ο αριθµός. - Ο έλεγχος curr->number!=123 δεν είναι σωστός. Πώς ξέρετε ότι δε θα έχει ένα στοιχείο µε αυτή την τιµή η λίστα? Έπρεπε να ελέγχετε αν το curr έχει φτάσει στο head. - Άσχηµη στοίχιση και άσχηµα ονόµατα µεταβλητών (τι σηµαίνει kef?) - Αν η malloc αποτύχει πρέπει να καλείτε την clearlist για να αποδεσµεύεσετε τη µνήµη. Δεν υπάρχει λόγος να γράψετε νέο κώδικα γι αυτό. - Ο έλεγχος curr->number!=0 δεν είναι σωστός. Πώς ξέρετε ότι δε θα έχει ένα στοιχείο µε αυτή την τιµή η λίστα? Έπρεπε να ελέγχετε αν το curr έχει φτάσει στο head. Λάθος: Κάνετε free(curr) κι αµέσως µετά προσπελαύνετε την ελευθερωµένη µνήµη στο curr->next. Αν το head είναι NULL έπρεπε να εκτυπώνεται συγκεκριµένο µήνυµα - Το curr χρησιµοποιείται για να διατρέξει λίστες και θα δείχνει σε ήδη δεσµευµένη µνήµη, εποµένως είναι λάθος να δεσµευθεί µνήµη για αυτό. - Έπρεπε να ελέγχετε αν το ptr_set3 είναι NULL και σε αυτή την περίπτωση να εκτυπώνετε συγκεκριµένο µήνυµα. - Αν η malloc για το newnode αποτύχει, πρέπει να αποδεσµεύετε όλη η µνήµη για τη λίστα-τοµή, όχι µόνο η κεφαλή. Το πρόγραµµα δεν κάνει compile και τα λάθη είναι πολλά και σηµαντικά. Επιπλέον, φαίνεται να χειρίζεστε τη λίστα σα να είναι πίνακας.

18 Μετά από κάθε malloc πρέπει να ελέγχετε αν επέστρεψε NULL ( και σε αυτη την περίπτωση η εκφώνηση ζητούσε να κάνετε clear όλη τη µνήµη της τοµής) - Στην κλήση στη findinlist έπρεπε να περνάτε το curr2->number κι όχι το curr2->next->number. - Δε γίνεται σωστά η εισαγωγή του νέου κόµβου στη λίστα. Δε φαίνεται να λαµβάνετε υπόψη ότι είναι κυκλική. - Έπρεπε να ελέγχετε αν το head είναι NULL και να εκτυπώνετε συγκεκριµένο µήνυµα - Δεν κάνετε clear τη λίστα-τοµή FAIL 1806 Αν το newnode είναι NULL πρέπει να αποδεσµευεται όλη η λίστα-τοµή. Σωστή - Έπρεπε να χρησιµοποιήσετε την έτοιµη συνάρτηση για την εκτύπωση λιστών Χρησιµοποιείτε τις λίστες σα να είναι πίνακες. Χρησιµοποιείτε τις λίστες σα να είναι πίνακες. Ελευθερώνετε µόνο την κεφαλή. Χρησιµοποιείτε τις λίστες σα να είναι πίνακες. Αν το finalsethead είναι NULL πρέπει και πάλι να γίνονται clear οι set1, set FAIL Στείλατε το lab10

19 1812 FAIL 1813 Λάθος. Ελέγχετε µόνο το πρώτο στοιχείο, αντί για όλα τα στοιχεία της λίστας. - Λάθος στα όρια των loops. Δεν υπάρχει καµία εγγύηση ότι οι λίστες θα έχουν πάντα µεγέθη 8 και 5 αντίστοιχα. - Αν ο νέος κόµβος είναι NULL πρέπει να αποδεσµεύετε τις δύο λίστες πριν τερµατίσει η συνάρτηση. Λάθος. Αποδεσµεύετε µόνο την κεφαλή, όχι όλη τη λίστα. Αν το finalsethead είναι NULL πρέπει και πάλι να γίνονται clear οι set1, set FAIL Το πρόγραµµα δεν κάνει compile και τα λάθη είναι πολλά και σηµαντικά Ο λόγος που "χάνει" κάποια στοιχεία είναι επειδή θέτετε curr_head2 = next_head2->next; ενώ δε χρειαζόταν το ->next γιατί το next_head2 ήδη δείχνει στον επόµενο κόµβο που πρέπει να αφαιρεθεί. Επίσης, όταν αφαιρείτε το curr_head2 από τη δεύτερη λίστα δε φροντίζετε να έχετε το head2 να δείχνει στη νέα κεφαλή (αν αυτό που αφαιρέθηκε ήταν το πρώτο στοιχείο), οπότε δε θα λειτουργήσει σωστά και η clear στο τέλος της συνάρτησης. Αν η λίστα είναι αρχικά άδεια, τότε το head είναι NULL και το πρόγραµµά σας θα πετάξει segfault κατά την προσπέλαση του head->next. Φαινεται να γράψατε τη συνάρτηση σα να είχε sentinel η λίστα, ενώ δεν έχει. Το clear γίνεται πάντα ίσο µε head->next, και το head δεν αλλάζει ποτέ. Μετά το free, το clear δείχνει στη µνήµη που µόλις ελευθερώθηκε. Δείτε τις διαφάνειες, γιατί φαίνεται να έχετε µπερδευτεί. Μετά την επιστροφή από την createunion, η κεφαλή της πρώτης λίστας είναι εκεί που δείχνει ο controller_ptr, εποµένως έπρεπε να κάνετε µόνο αυτόν clear και όχι το set1. Γι αυτό σας πετάει error (προσπαθεί να κάνει free κόµβους που τους έχει ήδη κάνει free)

20 FAIL 1822 FAIL 1824 FAIL 1825 Στην add_node, αν το newnode είναι NULL δεν πρέπει να επιστρέφετε head γιατί το έχετε αποδεσµεύσει. Θα ήταν πιο κατάλληλο να επιστρέφετε NULL. Σωστή, αν και δεν πρέπει να κληθεί η clearlist(head) αν το head είναι NULL. Δεν κάνει compile. Αδήλωτες µεταβλητές, χρήση = αντί για ==, λάθος χρήση δεικτών, κτλ. Δεν κάνει compile. Αδήλωτες µεταβλητές, χρήση = αντί για ==, λάθος χρήση δεικτών, κτλ. Έπρεπε να στείλετε ΜΟΝΟ το lab11.c Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το curr->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. - Αν το newnode είναι NULL πρέπει να γίνεται clear η νέα λίστα πριν τον τερµατισµό - Στην εισαγωγή νέου κόµβου δε λαµβάνετε υπόψη ότι η λίστα είναι κυκλική και τελικά τη χαλάτε. Η λίστα είναι κυκλική, εποµένως δεν τερµατίζει σε NULL. Το όριο του loop είναι λάθος. Δείτε τις διαφάνειες. Δεν ελέγχετε αν η τοµή είναι NULL, και δεν ελευθερώνετε τη δυναµικά δεσµευµένη µνήµη του προγράµµατος πριν τον τερµατισµό Σωστή, µπράβο,

21 1827 FAIL 1828 Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το current->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. - Στην createunion έπρεπε να χρησιµοποιείτε τη findinlist για να βρίσκετε αν το current2->number βρίσκεται στην πρώτη λίστα και να δηµιουργείτε το νέο κόµβο µόνο αν δε βρίσκεται. Εσείς δηµιουργείτε νέο κόµβο αµέσως µόλις βρείτε δύο διαφορετικά στοιχεία. - Στην περίπτωση που η malloc επιστρέφει NULL πρέπει να εκτυπώνετε κι ένα σχετικό µήνυµα λάθους. Επίσης, σύµφωνα µε την εκφώνηση έπρεπε να απελευθερώνετε όλη τη δυναµικά δεσµευµένη µνήµη πριν τον τερµατισµό - Ο νέος κόµβος δεν εισάγεται στην πρώτη λίστα. Απλά θέτετε το next του. - Η συνάρτηση έπρεπε να επιστρέφει τη νέα κεφαλή της πρώτης λίστας, και όχι 0. Σωστή Εφόσον η δεύτερη λίστα έχει γίνει clear µέσα στην createunion, δεν πρέπει να την ξανακάνετε free στη main. Επίσης, η ένωση είναι στην πραγµατικότητα η πρώτη λίστα όπως αυτή διαµορφώθηκε από την createunion, εποµένως δεν έπρεπε να κάνετε free το set1 αλλά µόνο το Union - Σωστός αλγόριθµος. - Στην περίπτωση που η malloc επιστρέφει NULL, η εκφώνηση ζητά να αποδεσµεύετε όλη τη δυναµικά δεσµευµένη µνήµη πριν τον τερµατισµό. Επίσης, σε αυτές τις περιπτώσεις πρέπει να εκτυπώνετε και κάποιο µήνυµα προς το χρήστη για να ξέρει το λόγο που δε λειτούργησε σωστά το πρόγραµµα. - Λάθος στη συνθήκη τερµατισµού του loop. Έπρεπε να είναι temp!= root και όχι temp == root. - Δεν είναι σωστά υλοποιηµένη. Κάνετε free(temp) και στην επόµενη επανάληψη προσπελαύνετε το temp->next. Δείτε τις διαφάνειες για σωστή λύση. - Έπρεπε να χρησιµοποιήσετε την έτοιµη συνάρτηση που σας δώσαµε για την εκτύπωση της λίστας. - Απελευθερώνετε µόνο τη µνήµη για την τοµή και όχι για τα δύο αρχικά σύνολα.

22 1829 Σωστή - Μετά από malloc πρέπει να κάνετε πάντα έλεγχο για το αν επέστρεψε NULL. - Αν ο neos_komvos είναι NULL, έπρεπε να καλείτε την έτοιµη συνάρτηση clearlist για να κάνετε την αποδέσµευση µνήµης. - Δεν αποδεσµεύετε τη µνήµη για την τοµή πριν το τέλος της συνάρτησης FAIL Στείλατε το lab Σωστή, αλλά προσέξτε τη στοίχιση. Είναι παραπλανητική. Προσέξτε τη στοίχιση! Τι σκοπό εξυπηρετεί το loop µε το curr1? Πριν επιστρέψει η συνάρτηση έπρεπε να αποδεσµεύεται η µνήµη για το set2. Σωστή Στην περίπτωση που το new_head είναι NULL έπρεπε να εκτυπώνετε διαφορετικό µήνυµα (δείτε την εκφώνηση) FAIL Λάθος στο πακετάρισµα του αρχείου Έπρεπε να είχατε στείλει µόνο το lab11.c Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το c1->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. Το c1 είναι άσχηµο όνοµα µεταβλητής. Σωστή, αλλά έπρεπε να κάνει clear τη δεύτερη λίστα πριν επιστρέψει. - Σας είχαµε δώσει έτοιµη συνάρτηση για την εκτύπωση των στοιχείων της λίστας, δε χρειαζόταν να γράψετε εσείς το loop. - Έπρεπε να ελέγχετε αν το set3 είναι NULL και σε αυτή την περίπτωση να εκτυπώνετε το µήνυµα που ζητά η εκφώνηση.

23 1840 FAIL 1841 Λάθος: το όριο του loop έπρεπε να είναι curr!= head, κι όχι curr==head. - Το όριο του loop έπρεπε να είναι curr!= head, κι όχι curr==head. - Δεν ελέγχετε αν η malloc επέστρεψε NULL. - Η εισαγωγή νέου κόµβου θα γίνει σωστά µόνο αν η λίστα είναι άδεια. Σε κάθε άλλη περίπτωση "χάνετε" κοµµάτι της λίστας µε τον τρόπο που θέτετε τους δείκτες. - Έχετε τη µεταλβητή new_elements αλλά δεν ανανεώνετε ποτέ την τιµή της, εποµένως η συνάρτηση επιστρέφει πάντα NULL. - Δεν αντιγράφετε το σωστό number στο νέο κόµβο που εισάγετε στην τοµή. Λάθος. Κάνετε free(curr) κι αµέσως µετά προσπελαύνετε την απελευθερωµένη µνήµη µε το curr->next. Δείτε τις διαφάνειες. Επίσης, το όριο του loop έπρεπε να είναι curr!= head, κι όχι curr==head. - Στο τέλος πρέπει να απελευθερώνετε τη δυναµικά δεσµευµένη µνήµη του προγράµµατος. - Το µήνυµα που εκτυπώνετε δεν είναι το ζητούµενο. - Δεν ελέγχετε ολόκληρη τη λίστα, γιατί το loop τερµατίζει όταν είναι NULL το curr->next. - Σωστή κατά τα άλλα. Λάθος. Αν η λίστα είναι αρχικά άδεια, το head θα είναι NULL, οπότε η προσπέλαση head->next θα πετάξει segfault. Επίσης, ο τελευταιος κόµβος δε γίνεται free γιατί το loop τερµατίζει όταν είναι NULL το curr->next κι όχι όταν είναι το curr. - Τι είναι αυτό που προσπαθείτε να κάνετε στο else? - Δεν αποδεσµεύεται όλη η δυναµικά δεσµευµένη µνήµη του προγράµµατος.

24 FAIL Λάθος. Τρέχετε το loop ακριβώς 5 φορές, αλλά δεν υπάρχει καµία εγγύηση ότι το µέγεθος της λίστας θα είναι πάντα 5. - Και πάλι λάθος στο loop. Το τρέχετε 8 φορές, ενώ θα έπρεπε να το τρέχετε µέχρι το τέλος της λίστας. - Αν η malloc επιστρέψει NULL, πρέπει να καλείτε την clearlist για να αποδεσµευθεί η δυναµικά δεσµευµένη µνήµη του προγράµµατος. Λάθος. Αποδεσµεύετε µόνο την κεφαλή, όχι ολόκληρη τη λίστα. Δείτε τις διαφάνειες. - Σωστή η κλήση. Στην περίπτωση που το rslt (το οποίο είναι και απαράδεκτο όνοµα µεταβλητής) είναι NULL έπρεπε να εκτυπώνετε διαφορετικό µήνυµα. Στο τέλος, έπρεπε να απελευθερώνετε όλη τη δυναµικά δεσµευµένη µνήµη του προγράµµατος. - Το curr1 έπρεπε να ξεκινά από την κεφαλή της λίστας, δηλαδή από το head. Εσείς το ξεκινάτε από µια τοπική µεταβλητή που είναι NULL.Πιθανώς δεν έχετε καταλάβει καλά την έννοια της παραµέτρου. - Λάθος αλγόριθµος. Αµέσως µόλις συναντήστε κόµβο όπου το current->number είναι διάφορο του number, η συνάρτησή σας θα επιστρέψει 0. Το σωστό θα ήταν να επιστρέψει 0 µόνο όταν είµαστε σίγουροι ότι δεν υπάρχει πουθενά στη λίστα το στοιχείο, και αυτό το ξέρουµε µόνο αφότου έχει τερµατίσει το loop. - Κάνετε NULL τα head1, head2 εποµένως χάνετε την πρόσβαση στις λίστες. - Σωστη χρήση findinlist, αλλά η υπόλοιπη συνάρτηση είναι τελείως λάθως. - Δεν είναι σωστά υλοποιηµένη. Κάνετε free(curr) και στην επόµενη επανάληψη προσπελαύνετε το curr->next. Δείτε τις διαφάνειες για σωστή λύση. - Στην κλήση της createunion οι παράµετροι πρέπει να είναι οι set1, set2, δηλαδή οι λίστες που έχουµε ήδη δηµιουργήσει και των οποίων την ένωση θέλουµε να υπολογίσουµε. Εσείς περνάτε δύο µεταβλητές που ορίσατε και είναι απλά NULL. -

25 1845 FAIL Ο έλεγχος curr->number!=123 δεν είναι σωστός. Πώς ξέρετε ότι δε θα έχει ένα στοιχείο µε αυτή την τιµή η λίστα? Έπρεπε να ελέγχετε αν το curr έχει φτάσει στο head. - Επιστρέφετε 0 αν βρεθεί ο αριθµός, ενώ θέλουµε το αντίθετο. - Πιο κάτω επιστρέφετε 1 αν το curr στο τέλος του loop είναι διάφορο του head, το οποίο υποννοεί ότι βρέθηκε ο αριθµός. - Ο έλεγχος curr->number!=123 δεν είναι σωστός. Πώς ξέρετε ότι δε θα έχει ένα στοιχείο µε αυτή την τιµή η λίστα? Έπρεπε να ελέγχετε αν το curr έχει φτάσει στο head. - Άσχηµη στοίχιση και άσχηµα ονόµατα µεταβλητών (τι σηµαίνει kef?) - Αν η malloc αποτύχει πρέπει να καλείτε την clearlist για να αποδεσµεύεσετε τη µνήµη. Δεν υπάρχει λόγος να γράψετε νέο κώδικα γι αυτό. - Ο έλεγχος curr->number!=0 δεν είναι σωστός. Πώς ξέρετε ότι δε θα έχει ένα στοιχείο µε αυτή την τιµή η λίστα? Έπρεπε να ελέγχετε αν το curr έχει φτάσει στο head. Λάθος: Κάνετε free(curr) κι αµέσως µετά προσπελαύνετε την ελευθερωµένη µνήµη στο curr->next. Έπρεπε να ελέγχετε αν το head είναι NULL και να εκτυπώνετε συγκεκριµένο µήνυµα Σωστή, αλλά σε περίπτωση αποτυχίας της malloc έπρεπε να αποδεσµεύεται όλη η λίστα-τοµή πριν τον τερµατισµό της συνάρτησης. Σωστή, µόνο που η εκφώνηση ζητούσε να αδειάσει και το set2. - Το union_result δείχνει στη νέα κεφαλή του πρώτου συνόλου (το οποίο τώρα περιέχει επιπλέον στοιχεία). Εποµένως, πρέπει να κάνετε µόνο αυτό clear και όχι το set1. Γι αυτό σας βγαίνει error για διπλό free. - Το set2 έπρεπε να γίνεται clear µέσα στην createunion.

26 Στην περίπτωση που το new είναι NULL δεν έχει νόηµα να το κάνετε free, αφού δε δεσµεύτηκε µνήµη γι αυτό Σωστή, αλλά προσέξτε τη στοίχιση. Είναι παραπλανητική. Προσέξτε τη στοίχιση! Τι σκοπό εξυπηρετεί το loop µε το curr1? Πριν επιστρέψει η συνάρτηση έπρεπε να αποδεσµεύεται η µνήµη για το set2. Σωστή Στην περίπτωση που το new_head είναι NULL έπρεπε να εκτυπώνετε διαφορετικό µήνυµα (δείτε την εκφώνηση) Λάθος όρια loop: παρακάµπτετε τον τελευταίο κόµβο πριν το head1. Το loop έπρεπε να ελέγχει αν curr!=head1 κι όχι αν curr->next!=head1 - Αν το new_node είναι NULL πρέπει να απελευθερωθεί όλη η µνήµη για τη λίστα τοµή πριν τερµατίσει η συνάρτηση. Αν η createintersection επιστρέψει NULL, το πρόγραµµα θα πετάξει segfault όταν θα ελεγθεί το head->next. Έπρεπε να κάνετε έλεγχο για NULL! Δεν αποδεσµεύετε όλη τη δυναµικά δεσµευµένη µνήµη του προγράµµατος. Σωστή, µπράβο. Σωστή, αλλά η set2 έπρεπε να γίνεται clear µέσα στην createunion.

27 Λάθος όρια loop: Δεν υπάρχει καµία εγγύηση ότι η λίστα θα έχει πάντα µέγεθος 8. - Αν επιστραφεί FAILURE πρέπει να απελευθερωθεί όλη η µνήµη για τη λίστα τοµή πριν τερµατίσει η συνάρτηση. Σωστή, αλλά το clearlist(set3) πρέπει να καλείται µόνο όταν το set3 δεν είναι NULL. - Σωστός αλγόριθµος. - Στην περίπτωση που η malloc επιστρέφει NULL, η εκφώνηση ζητά να αποδεσµεύετε όλη τη δυναµικά δεσµευµένη µνήµη πριν τον τερµατισµό. Επίσης, σε αυτές τις περιπτώσεις πρέπει να εκτυπώνετε και κάποιο µήνυµα προς το χρήστη για να ξέρει το λόγο που δε λειτούργησε σωστά το πρόγραµµα. - Λάθος στη συνθήκη τερµατισµού του loop. Έπρεπε να είναι temp!= root και όχι temp == root. - Δεν είναι σωστά υλοποιηµένη. Κάνετε free(temp) και στην επόµενη επανάληψη προσπελαύνετε το temp->next. Δείτε τις διαφάνειες για σωστή λύση. - Έπρεπε να χρησιµοποιήσετε την έτοιµη συνάρτηση που σας δώσαµε για την εκτύπωση της λίστας. - Απελευθερώνετε µόνο τη µνήµη για την τοµή και όχι για τα δύο αρχικά σύνολα. Λάθος: Ελέγχετε τα περιεχόµενα του sentinel και δεν ελέγχετε τα περιεχόµενα του τελευταίου κόµβου πριν το sentinel. Το curr έπρεπε να ξεκινά από head->next και να πηγαίνει µέχρι head. - Αν η malloc αποτύχει, σωστά κάνετε free, αλλά µετά πρέπει να τερµατίσετε τη συνάρτηση! Διαφορετικά το root->next αµέσως µετά θα πετάξει segfault. - Ισχύει κι εδώ το ίδιο για τα όρια του loop. Λάθος: Κάνετε free(curr) κι αµέσως µετά προσπελαύνετε την ελευθερωµένη µνήµη στο curr->next. Επίσης, δεν κάνετε free τον τελευταίο κόµβο. - Δεν υπάρχει λόγος να ξανακαλείς τη συνάρτηση για την printset. Αρκούσε να περάσεις ως παράµετρο το intersection. - Στο τέλος έπρεπε να ελευθερώνεται όλη η δυναµικά δεσµευµένη µνήµη του προγράµµατος.

28 FAIL 1882 Μόνο το lab11.c έπρεπε να είχες στείλει. - Έπρεπε να καταστρέφεις το δεύτερο set εντός της συνάρτησης. - Μετά από malloc, να κάνεις πάντα έλεγχο για NULL. Στη συγκεκριµένη άσκηση έπρεπε να αδειάζουν και οι δύο λίστες σε περίπτωση αποτυχίας της malloc. - Κατά τα άλλα, όλα οκ. Λάθος. Κάνεις free(curr) κι αµέσως µετά στην επόµενη επανάληψη γίνεται προσπέλαση του curr->next ενώ το curr δε δειχνει πια σε δεσµευµένη µνήµη. Δες τις διαφάνειες. Το set2 έπρεπε να είχε καταστραφεί µέσα στην createunion. Στο τέλος της main έπρεπε να κάνεις clear και το root (το πρώτο σετ δηλαδή). Το πρόγραµµα δεν κάνει compile και τα λάθη είναι πολλά και σηµαντικά. Επιπλέον, φαίνεται να χειρίζεστε τη λίστα σα να είναι πίνακας. - Αν το newnode είναι NULL έπρεπε να κάνετε clear και το set1. Σωστή κατά τα άλλα Λάθος στον τερµατισµό του loop. Η λίστα είναι κυκλική, εποµένως δεν τερµατίζει σε NULL. Φαίνεται να πήρατε κοµµάτια από τα παραδείγµατα των διαλέξεων (το οποίο είναι οκ) χωρίς να καταλάβατε τι πήρατε και τι χρειαζόσασταν (το οποίο δεν είναι οκ). - Μετά από malloc πρέπει να ελέγχετε πάντα αν επεστράφη NULL. Ειδικά σε αυτή την άσκηση, η εκφώνηση ζητούσε να αποδεσµεύετε όλη τη δυναµικά δεσµευµένη µνήµη σε αυτή την περίπτωση. - Εδώ έχετε σωστά τον τερµατισµό του loop. Λάθος στον τερµατισµό του loop. Η λίστα είναι κυκλική, εποµένως δεν τερµατίζει σε NULL. Το loop έπρεπε να πηγαίνει µέχρι head. Λάθος. Δεν αποθηκεύετε πουθενά το αποτέλεσµα της συνάρτησης και δεν απελευθερώνετε τη δυναµικά δεσµευµένη µνήµη του προγράµµατος.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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 Ηµιτελές - Άσχηµα ονόµατα µεταβλητών/πεδίων που κάνουν δυσνόητο τον κώδικα. Μη χρησιµοποιείτε µεταβλητές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Προθεσµία: 9/1/2015, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Προθεσµία: 9/1/2015, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Προθεσµία: 9/1/2015, 22:00 Διαβάστε πριν ξεκινήσετε Διαβάστε την εκφώνηση προσεκτικά. Ολοκληρώστε κάθε ένα στάδιο πριν προχωρήσετε

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

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

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

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 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, Στάδιο

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

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

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

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

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t) Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 18: ιασυνδεµένες οµές - Λίστες ιασυνδεδεµένες δοµές δεδοµένων Η µνήµη ενός πίνακα δεσµεύεται συνεχόµενα. Η πρόσβαση στο i-οστό στοιχείο είναι άµεσηκαθώς η διεύθυνση του

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 2. Εαρινό Εξάμηνο Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα:

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

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

Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες

Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες Τι είναι οι συνδεδεμένες λίστες (linked lists) Μια Συνδεδεμένη Λίστα (Σ.Λ.) είναι μια διάταξη από κόμβους που μπορούμε να τους διαχειριστούμε δυναμικά. Κάθε

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

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

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

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

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

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

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

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

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

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

lab4grades Παράδοση ασκήσεων: -Όλα καλά Άσκηση 1η: -Σωστή 357 PASS ΑΕΜ ΒΑΘΜΟΣ -Όλα καλά ΣΧΟΛΙΑ η: -Σωστή 357 PASS η: -Ο κώδικας για την είσοδο του µητρώου πρέπει να δοµηθεί αλλιώς γιατί εµφανίζει λάθος πριν καν δοθεί για πρώτη φορά το µητρώο. -Σωστή στοίχιση, µοναδική

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεμένες Δομές - Λίστες Διασυνδεδεμένες δομές δεδομένων Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα. Η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση

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

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

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

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

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

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

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή υναµική έσµευση Μνήµης (συν.) Στην ενότητα αυτή θα µελετηθούν: Μια εφαρµογή συνδεδεµένων λιστών ιπλά συνδεδεµένες Λίστες ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Εφαρµογή Ζητούµενο: Πρόγραµµα που παίρνει σαν

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

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

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

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

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

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

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

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

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

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

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

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

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

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

lab3grades - Δεν παραδόθηκε. - Προσπαθήστε να κάνετε την άσκηση στο σπίτι. 02103 FAIL προγράµµατος µε κενές γραµµές -Δεν έχετε συµπεριλάβει καθόλου σχόλια!!! -Τα ονόµατα των σταθερών είναι µε ΚΕΦΑΛΑΙΑ. Επίσης, το 20 και το 1000 έπρεπε να είναι αποθηκευµένα σε σταθερές. - Έχετε

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

ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ - ΜΕΡΟΣ Γ'

ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ - ΜΕΡΟΣ Γ' ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ - ΜΕΡΟΣ Γ' ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-2010 Προθεσµία : ΚΥΡΙΑΚΗ 22/11/09, 23:59 Στόχοι Οι στόχοι αυτού του τµήµατος της εργασίας είναι: Εισαγωγή κίνησης Αλληλεπίδραση

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