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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή FAIL Δεν ελήφθη άσκηση -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή Προσέξτε τι αρχεία στέλνετε!! - Σωστά κάνετε έλεγχο αν η createlist επέστρεψε NULL. - Σωστή χρήση free για τον κόµβο που πρέπει να αφαιρεθεί. -Σωστός υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν σε κάποια σενάριο Σωστά malloc και τα next/prev να δείχνουν στην κεφαλή -Δεν εισάγετε σωστά το κόµβο στην νέα λίστα -Δεν ελέγχετε αν η creatlist επέστρεψε NULL ώστε να τερµατίζετε το πρόγραµµα σε αυτή τη. -Σωστή εύρεση σηµείου στο οποίο θα προστεθεί ο κόµβος,σωστή malloc αλλά δεν εισάγετε σωστά τους κόµβους. Ενώνετε το κόµβο µε το προηγούµενο και επόµενο κόµβο του current µε αποτέλεσµα να εισάγετε το νέο κόµβο στη θέση του current, η άσκηση δεν ζητούσε να γίνετε αντικατάσταση κόµβου. -Σωστά η συνάρτηση επιστρέφει το πλήθος κόµβων που προστέθηκαν. -Σωστές κλήσεις συναρτήσεων -Σωστή διαγραφή όλων των κόµβων Πριν προσπελάσετε το argv πρέπει να ελέγχετε το argc. - Λάθος χειρισµός στην απελευθέρωση µνήµης. Κάνετε free(current) και στην αµέσως επόµενη επανάληψη υπολογίζετε το current->next. Έπρεπε να είχατε αποθηκεύσει σε βοηθητική µεταβλητή το current->next πριν γίνει το free, και µετά να χρησιµοποιήσετε αυτή τη µεταβλητή. Είναι λάθος να προσπελάσετε ελευθερωµένη µνήµη. - Στη move δε βάζετε σωστά τους δείκτες. Ο last_node δε χρειάζεται καν. Μπορείτε να χρησιµοποιήσετε το head->prev στη θέση του. Σχεδιάστε τη λίστα σας στο χαρτί, και µετά προσπαθήστε πάλι να φτιάξτε τους δείκτες. - Σωστή main. - Σωστός ο έλεγχος για το αν επιστρέφει η createlist NULL τιµή. - Σωστή η εύρεση του κόµβου προς αφαίρεση. - Κάνετε προσπέλαση του current (στο current->next) αφότου έχει γίνει free. Αυτό είναι λάθος. - Σωστή η κλήση των συναρτήσεων. - Η έξοδος του προγράµµατος είναι σωστή. - Σωστή η τοποθέτηση των clearlist για το head και το new_head. - Σωστή αρχικοποίηση της δεύτερης λίστας µέσα στη συνάρτηση. - Σωστή η τοποθέτηση των δεικτών στη νέα λίστα. - Η έξοδος του προγράµµατος είναι σωστή. Page 1

2 Σωστή δέσµευση δυναµικής µνήµης, µε έλεγχο της τιµής επιστροφής της malloc(). - Σωστή µεταφορά κόµβων στη νέα λίστα. - Σωστή επιστροφή της νέας λίστας. - Ο κώδικας ελέγχου για την τιµή του step θα µπορούσε να µπει στη main(), καθώς είναι κοινός και ελέγχει την εγκυρότητα της εισόδου του χρήστη Προσέξτε τι αρχεία στέλνετε!! - Σωστά κάνετε έλεγχο αν η createlist επέστρεψε NULL. - Σωστή χρήση free για τον κόµβο που πρέπει να αφαιρεθεί. -Σωστός υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν σε κάποια σενάριο -Σωστά malloc και τα next/prev να δείχνουν στην κεφαλή -Δεν εισάγετε σωστά το κόµβο στην νέα λίστα -Σωστά ελέγχετε αν η createlist εκτελέστηκε σωστά και τερµατίζετε το πρόγραµµα σε διαφορετική -Δεν βρίσκετε σωστά το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. Έχετε κάνει 2 λάθη. Το πρώτο είναι οτι την πρώτη φορά το βάζετε µια θέση µετα απο την επιθυµητή ενώ στη συνέχεια το αριθµό τον τοποθετείτε ανα µία θέση. -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή FAIL Δεν ελήφθη άσκηση - Ολοκληρώστε τη δεύτερη άσκηση στο σπίτι Δεν ελέγχετε αν η creatlist επέστρεψε NULL ώστε να τερµατίζετε το πρόγραµµα σε αυτή τη. -Δεν εντοπίζετε σωστά το σηµείο που πρέπει να τοποθετηθεί ο κόµβος. Η άσκηση δε ζητούσε να τοποθετείτε κόµβο ανάµεσα σε κάθε ήδη υπάρχον κόµβο. -Σωστή malloc αλλά όταν επιστρέφει NULL πρέπει να τερµατίζει το πρόγραµµα. -Σωστές κλήσεις συναρτήσεων. -Δεν υλοποιείτε τη clearlist Page 2

3 Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή Σωστός ο έλεγχος για το αν επιστρέφει η createlist NULL τιµή. - Σωστή η εύρεση του κόµβου προς αφαίρεση. - Κάνετε προσπέλαση του current (στο current->next) αφότου έχει γίνει free. Αυτό είναι λάθος. - Δεν επιστρέφεται το πλήθος των διεγραµµένων κόµβων. - Σωστή η κλήση των συναρτήσεων. - Η έξοδος του προγράµµατος είναι σωστή. - Ο έλεγχος της τιµής που επιστρέφει η createlist δεν είναι σωστός καθώς το πρόγραµµα θα έπρεπε να τερµατίζει. Η µεταβλητή assist δε χρειάζεται malloc εφόσον αµέσως µετά την βάζετε να δείχνει στο head. - Σωστά επιστρέφετε τον αριθµό των εισαγόµενων κόµβων στη main. - Σωστή αποδέσµευση κόµβων. - Ο έλεγχος της τιµής που επιστρέφει η createlist είναι σωστός. - Σωστά επιστρέφετε τον αριθµό των εισαγόµενων κόµβων στη main. - Στη σειρά 48 κάνετε για δεύτερη φορά αποδέσµευση ίδιου κόµβου µε αποτέλεσµα στην εκτέλεση να σας λέει Error in `./lab13': double free or corruption Δεν ελέγχετε αν η creatlist επέστρεψε NULL ώστε να τερµατίζετε το πρόγραµµα σε αυτή τη. -Σωστή εύρεση σηµείου στο οποίο θα προστεθεί ο κόµβος,σωστή malloc αλλά δεν εισάγετε σωστά τους κόµβους. Ενώνετε το κόµβο µε το προηγούµενο και επόµενο κόµβο του current µε αποτέλεσµα να εισάγετε το νέο κόµβο στη θέση του current, η άσκηση δεν ζητούσε να γίνετε αντικατάσταση κόµβου. -Σωστά η συνάρτηση επιστρέφει το πλήθος κόµβων που προστέθηκαν. -Σωστές κλήσεις συναρτήσεων -Σωστή διαγραφή όλων των κόµβων. Page 3

4 lab13grades Πρώτα έπρεπε να ελέγχετε για έγκυρο αριθµό παραµέτρων (argc) και µετά να χρησιµοποιήσετε µε ασφάλεια το argv[]. - Δεν εκτυπώνετε στην main() τον αριθµό των κόµβων που αφαιρέθηκαν. - Δεν είναι απαραίτητη η χρήση δυο δοµών επανάληψης. Προσπαθήστε να γράψετε µε πιο απλό τρόπο τον αλγόριθµο (µε µία δοµή επανάληψης). - Δεν ελέγχετε την τιµή επιστροφής της malloc(). - Δεν αρχικοποιείτε τους pointers (prev, next) του κόµβου που κάνετε malloc() για τη δεύτερη λίστα. - Όταν φτάνετε στην κεφαλή της λίστας κάνετε exit() αντί να επιστρέψετε από τη συνάρτηση. - Ο κώδικας δεν τερµατίζει Ο έλεγχος της τιµής που επιστρέφει η createlist είναι σωστός. - Σωστά επιστρέφετε τον αριθµό των εισαγόµενων κόµβων στη main. - Στη σειρά 48 κάνετε για δεύτερη φορά αποδέσµευση ίδιου κόµβου µε αποτέλεσµα στην εκτέλεση να σας λέει Error in `./lab13': double free or corruption. -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Δεν βρίσκετε σωστά το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος καθώς το βάζετε πάντα step + 1. Γενικά ο τρόπος που το κάνετε είναι σωστός αλλά θα έπρεπε να κοιτάτε µια θέση πριν για να βάλετε το κόµβο. - Προσθέτετε έναν επιπλέον κόµβο στο τέλος Οριακό -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή -Δεν κάνετε σωστά την απελευθέρωση της µνήµης. Απελευθερώνετε τον κόµβο και αµέσως µετά κάνετε curr->next το οποίο έχει γίνει free Ο έλεγχος της τιµής που επιστρέφει η createlist είναι σωστός. - Σωστά επιστρέφετε τον αριθµό των εισαγόµενων κόµβων στη main. - Σωστή αποδέσµευση κόµβων. Page 4

5 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Δεν βρίσκετε σωστά το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος καθώς το βάζετε πάντα step + 1. Γενικά ο τρόπος που το κάνετε είναι σωστός αλλά θα έπρεπε να κοιτάτε µια θέση πριν για να βάλετε το κόµβο. - Προσθέτετε έναν επιπλέον κόµβο στο τέλος Οριακό -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή -Δεν κάνετε σωστά την απελευθέρωση της µνήµης. Απελευθερώνετε τον κόµβο και αµέσως µετά κάνετε curr->next το οποίο έχει γίνει free Καλά σχόλια. - Σωστός έλεγχος για αριθµό arguments. - Λάθος προσπέλαση την λίστας µε αποτελέσµα το πρόγραµµα να µην τελειώνει ποτέ. - Σωστή χρήση free για τον κόµβο που πρέπει να αφαιρεθεί Σωστά ελέγχετε αν η createlist εκτελλέστικε σωστά και τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή FAIL Άδειο tgz -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή Σωστά ελέγχετε την τιµή που επιστρέφει η createlist. Στην addatstep: - Σωστός έλεγχος της τιµής που επιστρέφει η malloc. - Σωστός έλεγχος για να δείτε αν φτάσατε στην κεφαλή της λίστας. Σωστή απελευθέρωση των κόµβων στην clearlist. - Ο έλεγχος της τιµής που επιστρέφει η createlist είναι σωστός. - Σωστά επιστρέφετε τον αριθµό των εισαγόµενων κόµβων στη main. - Σωστή αποδέσµευση κόµβων. - Σωστά ελέγχετε την τιµή που επιστρέφει η createlist. Στην addatstep: - Σωστός έλεγχος της τιµής που επιστρέφει η malloc. - Σωστός έλεγχος για να δείτε αν φτάσατε στην κεφαλή της λίστας. Σωστή απελευθέρωση των κόµβων στην clearlist. Page 5

6 Πρώτα έπρεπε να ελέγχετε για έγκυρο αριθµό παραµέτρων (argc) και µετά να χρησιµοποιήσετε µε ασφάλεια το argv[]. - Δεν ελέγχετε την τιµή επιστροφής της malloc(). - Το σωστό µέγεθος της δυναµικής µνήµης που χρειάζεστε είναι sizeof(listt) και όχι 1. - Δεν αρχικοποιείτε τους pointers (prev, next) του κόµβου που κάνετε malloc() για τη δεύτερη λίστα. - Ο κώδικας τερµατίζει µε segmentation fault λόγω των παραπάνω προβληµάτων. - Δεν καλείτε την clearlist() στη main() για την νέα λίστα Σωστά ελέγχετε αν η creatlist επέστρεψε NULL -Σωστή εύρεση σηµείου στο οποίο θα προστεθεί ο κόµβος -Σωστή malloc και εισαγωγή κόµβου -Σωστά η συνάρτηση επιστρέφει το πλήθος κόµβων που προστέθηκαν. -Σωστές κλήσεις συναρτήσεων -Σωστή διαγραφή όλων των κόµβων. - Σωστή δέσµευση δυναµικής µνήµης, µε έλεγχο της τιµής επιστροφής της malloc(). - Σωστή µεταφορά κόµβων στη νέα λίστα. - Σωστή επιστροφή της νέας λίστας. - Ο κώδικας ελέγχου για την τιµή του step θα µπορούσε να µπει στη main(), καθώς είναι κοινός και ελέγχει την εγκυρότητα της εισόδου του χρήστη Στον έλεγχο της τιµής που επιστρέφει η createlist θα έπρεπε επιπλέο να τερµατίζει το πρόγραµµα. - Γενικά σωστή εύρεση του σηµείου για εισαγωγή κόµβου, αλλά στην αρχή εισάγεις έναν περιττό κόµβο. - Σωστός έλεγχος για να δεις αν έχεις φτάσει στην κεφαλή της λίστας. - Δεν επιστρέφεις τον αριθµό των εισαγόµενων κόµβων στη main. - Η αποδέσµευση κόµβων δε γίνεται σωστά, διότι δεν αποδεσµεύεις όλους τους κόµβους Στην άσκηση 1, αφαιρείτε σωστά τον πρώτο κόµβο, αλλά µετά αφαιρείτε πάντα τον επόµενο αυτού που πρέπει - έχετε λάθος λογική στο loop σας. - Το return plithos++ δεν επιστρέφει αυτό που νοµίζετε. Ξαναδιαβάστε πώς λειτουργεί ο τελεστής ++ - Σωστά κάνετε free - Στη move δεν κάνετε malloc την κεφαλή της λίστας! - Σωστά ελέγχετε το αποτέλεσµα της createlist Page 6

7 Σωστός ο έλεγχος για το αν επιστρέφει η createlist NULL τιµή. - Πρώτα έπρεπε να ελέγχετε για έγκυρο αριθµό παραµέτρων και µετά να χρησιµοποιήσετε µε ασφάλεια το argv[2]. - Σωστή εύρεση του κόµβου προς αφαίρεση. - Κάνετε προσπέλαση του current (στο current->next) αφότου έχει γίνει free. Αυτό είναι λάθος. - Να οργανώνετε τις κλήσεις συναρτήσεων καλύτερα. - Η έξοδος του προγράµµατος δεν δουλεύει σωστά όταν το size είναι πολλαπλάσιο του step. - Σωστή η τοποθέτηση των clearlist για το head και το new_head. - Σωστή αρχικοποίηση της δεύτερης λίστας µέσα στη συνάρτηση. - Δεν έχετε κάνει σωστή ανάθεση των δεικτών µε αποτέλεσµα ο κώδικας να µην τρέχει Καλά σχόλια. - Σωστός έλεγχος για αριθµό arguments. - Λάθος!!! θα έπρεπε να κάνετε έλεγχο αν προσπελάστηκε όλη η λίστα συγκρίνοντας τις διευθύνσεις µνήµης (αφού όλα είναι pointers) και όχι βάσει αρνητικών τιµών αφου η ασκήση δεν σας είπε ότι η λίστα δεν θα έχει αρνητικές τιµές! - Σωστός υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν. - Δεν κάνετε ποτέ free τον κόµβο που πρέπει να αφαιρεθεί. - Σωστή δηµιουργία νέας λίστας. - Σωστή απελευθέρωση µνήµης και για τις δύο λίστες. - Δεν εισάγετε σωστά το κόµβο στην νέα λίστα Καλά σχόλια. - Σωστός έλεγχος για αριθµό arguments. - Λάθος!!! θα έπρεπε να κάνετε έλεγχο αν προσπελάστηκε όλη η λίστα συγκρίνοντας τις διευθύνσεις µνήµης (αφού όλα είναι pointers) και όχι βάσει αρνητικών τιµών αφου η ασκήση δεν σας είπε ότι η λίστα δεν θα έχει αρνητικές τιµές! - Σωστός υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν. - Δεν κάνετε ποτέ free τον κόµβο που πρέπει να αφαιρεθεί. - Σωστή δηµιουργία νέας λίστας. - Σωστή απελευθέρωση µνήµης και για τις δύο λίστες. - Δεν εισάγετε σωστά το κόµβο στην νέα λίστα. Page 7

8 Δεν κάνετε έλεγχο για το αν επιστρέφει η createlist NULL. - Δεν αφαιρείτε τον τελευταίο κόµβο όταν πρέπει. - Δεν χρησιµοποιείτε καθόλου τη free για να αποδεσµεύσετε τον κόµβο που θέλετε από τη λίστα. - Σωστή η σειρά κλήσης των συναρτήσεων. - Η έξοδος του προγράµµατος δεν είναι σωστή για όλες τις περιπτώσεις. - Η συνάρτηση δεν είναι ολοκληρωµένη. Να την συνεχίσετε στο σπίτι. - Δεν έχετε γράψει κώδικα για να εκτυπώνετε τη δεύτερη λίστα και να αποδεσµεύετε τη µνήµη FAIL -Έπρεπε να ελέγχετε αν η creatlist επέστρεψε NULL και να τερµατίζετε το πρόγραµµα σε αυτή τη. -Δεν εντοπίζετε σωστά το σηµείο που πρέπει να προστεθεί o κόµβος. -Σωστή malloc αλλά δεν ελέγχετε άµα επιστρέψει NULL να τερµατίζει το πρόγραµµα. -Δεν εισάγετε σωστά τον κόµβο, κάνετε τελείως λάθος τη σύνδεση. -Η συνάρτηση σας δεν επιστρέφει το πλήθος κόµβων που προστέθηκαν. -Δεν υλοποιείτε τη clearlist Πρώτα έπρεπε να ελέγχετε για έγκυρο αριθµό παραµέτρων (argc) και µετά να χρησιµοποιήσετε µε ασφάλεια το argv[] Δεν ελέγχετε την τιµή επιστροφής της malloc(). - Το σωστό µέγεθος της δυναµικής µνήµης που χρειάζεστε είναι sizeof(listt) και όχι 1. - Δεν αρχικοποιείτε τους pointers (prev, next) του κόµβου που κάνετε malloc() για τη δεύτερη λίστα. - Ο κώδικας τερµατίζει µε segmentation fault λόγω των παραπάνω προβληµάτων. - Δεν καλείτε την clearlist() στη main() για την νέα λίστα. -Σωστά ελέγχετε αν η createlist εκτελέστηκε σωστά και τερµατίζετε το πρόγραµµα σε διαφορετική -Δεν βρίσκετε σωστά το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. Έχετε κάνει 2 λάθη. Το πρώτο είναι οτι την πρώτη φορά το βάζετε µια θέση µετα απο την επιθυµητή ενώ στη συνέχεια το αριθµό τον τοποθετείτε ανα µία θέση. -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή Page 8

9 02186 FAIL FAIL - Το πρόγραµµα σας δεν κάνει compile, έχετε βασικά λάθη. Στη main - Δεν διαβάζετε πουθενά την είσοδο των δεδοµένων. - Ελέγχουµε argc < 4 και µετά παίρνουµε από τον πίνακα argv τα στοιχεία εισόδου argv[1], argv[2], argv[3] - Οι κλήσεις των συναρτήσεων δεν έχουν σωστή σύνταξη (δεν βάζουµε τον τύπο που επιστρέφει, ούτε τους τύπους των παραµέτρων) Στην addatstep - Δεν χρησιµοποιήσατε τη malloc για τη δηµιουργία νέου node - Δεν µετακινείτε καθόλου το curr ώστε να γίνει σωστά η εισαγωγή - Ο έλεγχος της τιµής που επιστρέφει η createlist δεν είναι σωστός καθώς το πρόγραµµα θα έπρεπε να τερµατίζει. Η µεταβλητή assist δε χρειάζεται malloc εφόσον αµέσως µετά την βάζετε να δείχνει στο head. - Σωστά επιστρέφετε τον αριθµό των εισαγόµενων κόµβων στη main. - Σωστή αποδέσµευση κόµβων. - Σωστά ελέγχετε την τιµή που επιστρέφει η createlist. addatstep: - Σωστός έλεγχος για να δείτε αν φτάσατε στην κεφαλή της λίστας. - Δεν ελέγχετε αν η malloc επιστρέφει null! - Λάθος η αρχικοποίηση του current στη for, δεν µετράει τον 1ο κόµβο, πρέπει current=head. - Λάθος στην εισαγωγή νέου κόµβου. Δε θέτετε όλους τους δείκτες που πρέπει. - Επιστρέφει τον αριθµό k αλλά δεν το διαβάζετε-εκτυπώνετε στη main FAIL - Οι οδηγίες του lab ήταν να τρέξετε το πρόγραµµα από τη γραµµή εντολών, να ελέγξετε το πλήθος της εισόδου (argc<4) και να διαβάσετε τα στοιχεία εισόδου από τον πίνακα argv[]. εσείς βάλατε scanf. - Σωστά ελέγχετε την τιµή που επιστρέφει η createlist. addatstep: - Σωστά χρησιµοποιήσατε τη malloc αλλά δεν κάνατε έλεγχο για NULL. - Σωστός έλεγχος για να δείτε αν φτάσατε στην κεφαλή της λίστας. Σωστή απελευθέρωση των κόµβων στην clearlist. - Σωστός έλεγχος του αριθµού των ορισµάτων και σωστή λήψη των τιµών τους. - Σωστή κλήση της createlist, αλλά αλγοριθµικά το παρακάτω είναι εντελώς λάθος head_adress=createlist(size); if(head_adress!=null){ printlist (createlist(size)); } - Εντελώς λάθος είναι και το if (step>=2){ add_result=addatstep(head_adress,step,data); } if (addatstep(head_adress,step,data)==0){ printf("..."); return -2; } - Η addstep αν και έχει κάποια σωστά σηµεία στην λογική της (π.χ. κάνει malloc για κάθε κόµβο που προσθέτει και προσθέτει σωστά τον πρώτο κόµβο) αποτυγχάνει να υλοποιήσει σωστά τον αλγόριθµο. Υλοποιήστε τη στο σπίτι. - Υλοποιήστε την στο σπίτι. Page 9

10 02195 FAIL Δεν ελήφθη άσκηση FAIL Δεν ελήφθη άσκηση Σωστή χρήση argc, argv - Δεν ελέγχετε αν η createlist επέστρεψε NULL. - Σωστή κλήση removeatstep. - Δεν κάνετε free τους κόµβους που αφαιρούνται! - Στη δεύτερη άσκηση, η ανάθεση NULL στην κεφαλή αµέσως µετά το malloc είναι σοβαρό λάθος και οδηγεί σε segmentation fault. Γενικά η δεύτερη άσκηση έχει πολλές ελλείψεις Σωστός ο έλεγχος για το αν επιστρέφει η createlist NULL τιµή. - Σωστή η εύρεση του κόµβου προς αφαίρεση. - Κάνετε προσπέλαση του current (στο current->next) αφότου έχει γίνει free. Αυτό είναι λάθος. - Σωστή η κλήση των συναρτήσεων. - Η έξοδος του προγράµµατος είναι σωστή. - Σωστή η τοποθέτηση των clearlist για το head και το new_head. - Σωστή αρχικοποίηση της δεύτερης λίστας µέσα στη συνάρτηση. - Σωστή η τοποθέτηση των δεικτών στη νέα λίστα. - Η έξοδος του προγράµµατος είναι σωστή Σωστός ο έλεγχος για το αν επιστρέφει η createlist NULL τιµή. - Πρώτα έπρεπε να ελέγχετε για έγκυρο αριθµό παραµέτρων και µετά να χρησιµοποιήσετε µε ασφάλεια το argv[2]. - Σωστή εύρεση του κόµβου προς αφαίρεση. - Κάνετε προσπέλαση του current (στο current->next) αφότου έχει γίνει free. Αυτό είναι λάθος. - Να οργανώνετε τις κλήσεις συναρτήσεων καλύτερα. - Η έξοδος του προγράµµατος δεν δουλεύει σωστά όταν το size είναι πολλαπλάσιο του step. - Σωστή η τοποθέτηση των clearlist για το head και το new_head. - Σωστή αρχικοποίηση της δεύτερης λίστας µέσα στη συνάρτηση. - Δεν έχετε κάνει σωστή ανάθεση των δεικτών µε αποτέλεσµα ο κώδικας να µην τρέχει Καλά σχόλια. - Ξέχασες να κάνεις έλεγχο για arguments µικρότερες σε αριθµό του 3. - Σωστός έλεγχος αν η createlist επέστρεψε NULL. - Λάθος υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν σε κάποια σενάρια (αφαιρείς πάντα το πρώτο στοιχείο κτλ). Πρόσεξε την αρχική τιµή του counter. - Κάνεις προσπέλαση του κόµβου (στο current->next) αφού τον έχεις κάνει free. Αυτό είναι λάθος Σωστά ελέγχετε αν η creatlist επέστρεψε NULL -Σωστή εύρεση σηµείου στο οποίο θα προστεθεί ο κόµβος -Σωστή malloc και εισαγωγή κόµβου -Σωστά η συνάρτηση επιστρέφει το πλήθος κόµβων που προστέθηκαν. -Σωστές κλήσεις συναρτήσεων -Σωστή διαγραφή όλων των κόµβων. Page 10

11 02218 FAIL Έπρεπε να ελέγχετε αν η creatlist επέστρεψε NULL και να τερµατίζετε το πρόγραµµα σε αυτή τη. -Δεν εντοπίζετε σωστά το σηµείο που πρέπει να προστεθεί o κόµβος. -Σωστή malloc αλλά δεν ελέγχετε άµα επιστρέψει NULL να τερµατίζει το πρόγραµµα. -Δεν εισάγετε σωστά τον κόµβο, κάνετε τελείως λάθος τη σύνδεση. -Η συνάρτηση σας δεν επιστρέφει το πλήθος κόµβων που προστέθηκαν. -Δεν υλοποιείτε τη clearlist - Πριν προσπελάσετε το argv πρέπει να ελέγχετε το argc. - Λάθος χειρισµός στην απελευθέρωση µνήµης. Κάνετε free(current) και στην αµέσως επόµενη επανάληψη υπολογίζετε το current->next. Έπρεπε να είχατε αποθηκεύσει σε βοηθητική µεταβλητή το current->next πριν γίνει το free, και µετά να χρησιµοποιήσετε αυτή τη µεταβλητή. Είναι λάθος να προσπελάσετε ελευθερωµένη µνήµη. - Στη move δε βάζετε σωστά τους δείκτες. Ο last_node δε χρειάζεται καν. Μπορείτε να χρησιµοποιήσετε το head->prev στη θέση του. Σχεδιάστε τη λίστα σας στο χαρτί, και µετά προσπαθήστε πάλι να φτιάξτε τους δείκτες. - Σωστή main FAIL Δεν ελήφθη άσκηση FAIL Άδειο tgz Σωστή removeatstep, µπράβο. - Σωστή χρήση argc/argv - Έπρεπε να ελέγχεις στη main αν η createlist επέστρεψε NULL και σε αυτή την να τερµατίζει το πρόγραµµα. - Στη moveatstep ξέχασες να αρχικοποιήσεις το curr - το είχες σωστά στη remove οπότε υποθέτω το έσβησες κατά λάθος. - Σωστή αρχικοποίηση της νέας λίστας και σωστή εισαγωγή στο τέλος της λίστας. Μετά από malloc να ελέγχεις πάντα αν επέστρεψε NULL. - Σωστή κλήση clearlist και στις δύο περιπτώσεις. - Πολύ καλή δουλειά, µπράβο Ολοκληρώστε τη δεύτερη άσκηση στο σπίτι. Page 11

12 02235 FAIL lab13grades - Σωστός έλεγχος του αριθµού των ορισµάτων και σωστή λήψη των τιµών τους. - Σωστή κλήση της createlist, αλλά αλγοριθµικά το παρακάτω είναι εντελώς λάθος head_adress=createlist(size); if(head_adress!=null){ printlist (createlist(size)); } - Εντελώς λάθος είναι και το if (step>=2){ add_result=addatstep(head_adress,step,data); } if (addatstep(head_adress,step,data)==0){ printf("..."); return -2; } Η addstep αν και έχει κάποια σωστά σηµεία στην λογική της (π.χ. κάνει malloc για κάθε κόµβο που προσθέτει και προσθέτει σωστά τον πρώτο κόµβο) αποτυγχάνει να υλοποιήσει σωστά τον αλγόριθµο. Υλοποιήστε τη στο σπίτι. - Υλοποιήστε την στο σπίτι. - Στη removeatstep, δεν αρχικοποιείτε τη µεταβλητή removed_nodes µε αποτέλεσµα να περιέχει τελικά "σκουπίδια" - Δεν κάνετε free τον κόµβο που αφαιρείτε - Στο for loop πρέπει κάθε φορά που "προχωρά" ο κόµβος current να ελέγχετε αν έχει ξαναφτάσει στο head ώστε να τερµατίσει η συνάρτηση, διαφορετικά θα συνεχίσει να κάνει κύκλους στη λίστα και να αφαιρεί κόµβους που δεν πρέπει. - Στη main, δεν ελέγχετε αν η createlist επέστρεψε NULL - Σωστή χρήση argc/argv - Σωστή κλήση της removeatstep και της clearlist. - Στη moveatstep αρχικοποιείτε σωστά τη νέα λίστα, αλλά η εισαγωγή γίνεται στην αρχή, όχι στο τέλος όπως ζητούσαµε. Επίσης, θέτετε µόνο τους δείκτες του νέου κόµβου, αλλά όχι και αυτούς του προηγούµενου και του επόµενου στη λίστα FAIL Δεν ελήφθη άσκηση Δεν κάνετε έλεγχο για το αν επιστρέφει η createlist NULL. - Δεν αφαιρείτε τον τελευταίο κόµβο όταν πρέπει. - Δεν χρησιµοποιείτε καθόλου τη free για να αποδεσµεύσετε τον κόµβο που θέλετε από τη λίστα. - Σωστή η σειρά κλήσης των συναρτήσεων. - Η έξοδος του προγράµµατος δεν είναι σωστή για όλες τις περιπτώσεις. - Η συνάρτηση δεν είναι ολοκληρωµένη. Να την συνεχίσετε στο σπίτι. - Δεν έχετε γράψει κώδικα για να εκτυπώνετε τη δεύτερη λίστα και να αποδεσµεύετε τη µνήµη. Page 12

13 lab13grades Πρώτα έπρεπε να ελέγχετε για έγκυρο αριθµό παραµέτρων (argc) και µετά να χρησιµοποιήσετε µε ασφάλεια το argv[]. - Δεν εκτυπώνετε στην main() τον αριθµό των κόµβων που αφαιρέθηκαν. - Δεν είναι απαραίτητη η χρήση δυο δοµών επανάληψης. Προσπαθήστε να γράψετε µε πιο απλό τρόπο τον αλγόριθµο (µε µία δοµή επανάληψης). - Δεν ελέγχετε την τιµή επιστροφής της malloc(). - Δεν αρχικοποιείτε τους pointers (prev, next) του κόµβου που κάνετε malloc() για τη δεύτερη λίστα. - Όταν φτάνετε στην κεφαλή της λίστας κάνετε exit() αντί να επιστρέψετε από τη συνάρτηση. - Ο κώδικας δεν τερµατίζει Σωστός ο έλεγχος για το αν επιστρέφει η createlist NULL τιµή. - Σωστή η εύρεση του κόµβου προς αφαίρεση. - Κάνετε προσπέλαση του current (στο current->next) αφότου έχει γίνει free. Αυτό είναι λάθος. - Δεν επιστρέφεται το πλήθος των διεγραµµένων κόµβων. - Σωστή η κλήση των συναρτήσεων. - Η έξοδος του προγράµµατος είναι σωστή Δεν ελέγχετε αν η creatlist επέστρεψε NULL ώστε να τερµατίζετε το πρόγραµµα σε αυτή τη. -Δεν εντοπίζετε σωστά το σηµείο που πρέπει να τοποθετηθεί ο κόµβος. Η άσκηση δε ζητούσε να τοποθετείτε κόµβο ανάµεσα σε κάθε ήδη υπάρχον κόµβο. -Σωστή malloc αλλά όταν επιστρέφει NULL πρέπει να τερµατίζει το πρόγραµµα. -Σωστές κλήσεις συναρτήσεων. -Δεν υλοποιείτε τη clearlist - Στην άσκηση 1, αφαιρείτε σωστά τον πρώτο κόµβο, αλλά µετά αφαιρείτε πάντα τον επόµενο αυτού που πρέπει - έχετε λάθος λογική στο loop σας. - Το return plithos++ δεν επιστρέφει αυτό που νοµίζετε. Ξαναδιαβάστε πώς λειτουργεί ο τελεστής ++ - Σωστά κάνετε free - Στη move δεν κάνετε malloc την κεφαλή της λίστας! - Σωστά ελέγχετε το αποτέλεσµα της createlist - Στη removeatstep, δεν αρχικοποιείτε τη µεταβλητή removed_nodes µε αποτέλεσµα να περιέχει τελικά "σκουπίδια" - Δεν κάνετε free τον κόµβο που αφαιρείτε - Στο for loop πρέπει κάθε φορά που "προχωρά" ο κόµβος current να ελέγχετε αν έχει ξαναφτάσει στο head ώστε να τερµατίσει η συνάρτηση, διαφορετικά θα συνεχίσει να κάνει κύκλους στη λίστα και να αφαιρεί κόµβους που δεν πρέπει. - Στη main, δεν ελέγχετε αν η createlist επέστρεψε NULL - Σωστή χρήση argc/argv - Σωστή κλήση της removeatstep και της clearlist. - Στη moveatstep αρχικοποιείτε σωστά τη νέα λίστα, αλλά η εισαγωγή γίνεται στην αρχή, όχι στο τέλος όπως ζητούσαµε. Επίσης, θέτετε µόνο τους δείκτες του νέου κόµβου, αλλά όχι και αυτούς του προηγούµενου και του επόµενου στη λίστα. Page 13

14 lab13grades - Καλά σχόλια. - Σωστός έλεγχος για αριθµό arguments αλλά λάθος έλεγχος του argv. Το argv[1] είναι δείκτης. Δεν είναι δυνατό να είναι µικρότερος του µηδενός. Έπρεπε να µετατρέψετε το string σε ακέραιο και να ελέγχετε αυτό. - Λάθος υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν σε κάποια σενάριο (π.χ../lab /lab13 4 1). Γενικά ο κώδικάς σας είναι αρκετά µπερδεµένος και δυσνόητος. ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ flags. Είναι πολύ κακή τακτική. Ακόµη χειρότερο είναι το ότι χρησιµοποιήσατε το όνοµα flag και όχι κάτι περιγραφικό που να µας λέει τι σκοπό εξυπηρετεί αυτή η µεταβλητή. Δοκιµάστε να ξανακάνετε την άσκηση, χωρίς flag, και µε λιγότερο κώδικα. - Εντολές µετά από break σε loop δεν εκτελούνται ποτέ! - Σωστή χρήση free για τον κόµβο που πρέπει να αφαιρεθεί. - Κάντε και τη δεύτερη άσκηση στο σπίτι. - Καλά σχόλια. - Σωστός έλεγχος για αριθµό arguments αλλά λάθος έλεγχος του argv. Το argv[1] είναι δείκτης. Δεν είναι δυνατό να είναι µικρότερος του µηδενός. Έπρεπε να µετατρέψετε το string σε ακέραιο και να ελέγχετε αυτό. - Λάθος υπολογισµός τον κόµβων που πρέπει να αφαιρεθούν σε κάποια σενάριο (π.χ../lab /lab13 4 1). Γενικά ο κώδικάς σας είναι αρκετά µπερδεµένος και δυσνόητος. ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ flags. Είναι πολύ κακή τακτική. Ακόµη χειρότερο είναι το ότι χρησιµοποιήσατε το όνοµα flag και όχι κάτι περιγραφικό που να µας λέει τι σκοπό εξυπηρετεί αυτή η µεταβλητή. Δοκιµάστε να ξανακάνετε την άσκηση, χωρίς flag, και µε λιγότερο κώδικα. - Εντολές µετά από break σε loop δεν εκτελούνται ποτέ! - Σωστή χρήση free για τον κόµβο που πρέπει να αφαιρεθεί. - Κάντε και τη δεύτερη άσκηση στο σπίτι FAIL - Σωστός έλεγχος του πλήθους των ορισµάτων από την γραµµή εντολών. - Σωστή λήψη τιµών για τα ορίσµατα argv[1] - argv[3]. - Σωστή χρήση της createlist αλλά δεν ελέγχεις εάν αυτή επιστρέφει NULL. - Σωστή χρήση της printlist. - Η addstep είναι εντελώς λάθος και ηµιτελής. * Προσπάθησε να υλοποιήσεις την addstep και την clearlist στο σπίτι FAIL - Σωστά ελέγχετε την τιµή που επιστρέφει η createlist. addatstep: - Σωστός έλεγχος για να δείτε αν φτάσατε στην κεφαλή της λίστας. - Δεν ελέγχετε αν η malloc επιστρέφει null! - Λάθος η αρχικοποίηση του current στη for, δεν µετράει τον 1ο κόµβο, πρέπει current=head. - Λάθος στην εισαγωγή νέου κόµβου. Δε θέτετε όλους τους δείκτες που πρέπει. - Επιστρέφει τον αριθµό k αλλά δεν το διαβάζετε-εκτυπώνετε στη main Σωστά ελέγχετε αν η createlist εκτελλέστικε σωστά και τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος -Σωστά τερµατίζετε το loop µε το να κοιτάτε αν επιστρέψατε στην κεφαλή -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή Page 14

15 02275 lab13grades - Σωστή χρήση argc, argv - Δεν ελέγχετε αν η createlist επέστρεψε NULL. - Σωστή κλήση removeatstep. - Δεν κάνετε free τους κόµβους που αφαιρούνται! - Στη δεύτερη άσκηση, η ανάθεση NULL στην κεφαλή αµέσως µετά το malloc είναι σοβαρό λάθος και οδηγεί σε segmentation fault. Γενικά η δεύτερη άσκηση έχει πολλές ελλείψεις Οι οδηγίες του lab ήταν να τρέξετε το πρόγραµµα από τη γραµµή εντολών, να ελέγξετε το πλήθος της εισόδου (argc<4) και να διαβάσετε τα στοιχεία εισόδου από τον πίνακα argv[]. εσείς βάλατε scanf. - Σωστά ελέγχετε την τιµή που επιστρέφει η createlist. addatstep: - Σωστά χρησιµοποιήσατε τη malloc αλλά δεν κάνατε έλεγχο για NULL. - Σωστός έλεγχος για να δείτε αν φτάσατε στην κεφαλή της λίστας. Σωστή απελευθέρωση των κόµβων στην clearlist. Page 15

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,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Νήµατα. Πολύ σηµαντικό

Νήµατα. Πολύ σηµαντικό Νήµατα Πολύ σηµαντικό 1 Νήµατα (συν.) Σηµαντικό 2 Νήµατα vs ιεργασίες Νήµατα ιεργασίες Χώρος εδοµένων Περιγραφητές Αρχείων fork exit exec Σήµατα Κοινός. Ότι αλλάζει το 1 νήµα το βλέπουν/ αλλάζουν και τα

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές

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

Κεφάλαιο : Επαναλήψεις (for, do-while)

Κεφάλαιο : Επαναλήψεις (for, do-while) Κεφάλαιο 5.4-5.11: Επαναλήψεις (for, do-while) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήµερα while(){ τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές Παραδείγµατα Σήµερα for(){ Η εντολές break/continue;

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

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

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

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

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

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Η C, όπως έχουμε αναφέρει, είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε για πρώτη φορά το 1972 από τον Dennis Ritchie στα AT&T Bell

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

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,

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

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

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

Διάλεξη 5: Δείκτες και Συναρτήσεις

Διάλεξη 5: Δείκτες και Συναρτήσεις Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 5: Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 5-1 Περιεχόμενο

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

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

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

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

Στοιχειώδεις Δομές Δεδομένων

Στοιχειώδεις Δομές Δεδομένων Στοιχειώδεις Δομές Δεδομένων Τύποι δεδομένων στη Java Ακέραιοι (int, long) Αριθμοί κινητής υποδιαστολής (float, double) Χαρακτήρες (char) Δυαδικοί (boolean) Από τους παραπάνω μπορούμε να φτιάξουμε σύνθετους

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 34: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πίνακες εικτών (Pointers Arrays) Θέματα ιάλεξης Στην ενότητα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα,

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

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

Φροντιστήριο 4 Σκελετοί Λύσεων Φροντιστήριο 4 Σκελετοί Λύσεων Άσκηση 1 Υποθέτουμε πως οι λίστες είναι υλοποιημένες χρησιμοποιώντας τις πιο κάτω δομές. typedef struct Node{ type data; struct node *next; node; node *top; list; Υλοποιούμε

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

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

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

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

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Παρασκευή 25 Απριλίου 2014 ιάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

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

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

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

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

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

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

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

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

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής

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

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα) Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα) Επικοινωνία Το υποπρόγραμμα δέχεται τιμές από το πρόγραμμα Επιστρέφει,

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

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Υλοποίηση Λιστών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμές Απλά και Διπλά Συνδεδεμένες Λίστες Κυκλικές Απλά και Διπλά Συνδεδεμένες Λίστες Τεχνικές Μείωσης Μνήμης ΕΠΛ 231 Δομές

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

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

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα,

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

είκτες και Πίνακες (2)

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

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 1 Χειμερινό Εξάμηνο 2016-2017 Στόχοι του εργαστηρίου Εντολές

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 5.1-5.3: Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 9-1 οµές Έλεγχου Προγράµµατος Μέχρι τώρα είδαµε τις ακόλουθες δοµές έλεγχου (program control structure) ενός προγράµµατος

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 7ο Τμήμα Διοίκησης Επιχειρήσεων Παλαιό ΕΠΔΟ α εξάμηνο Β. Φερεντίνος Δείκτες (Pointers) (1) 142 Κάθε μεταβλητή, εκτός από την τιμή της, έχει και μία συγκεκριμένη διεύθυνση

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

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

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

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

Εργαστηριακή Άσκηση 1

Εργαστηριακή Άσκηση 1 Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε

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

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

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

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

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Άσκηση 1 Έστω ότι μια βιβλιοθήκη σας παρέχει πρόσβαση σε στοίβες ακεραίων. Η βιβλιοθήκη σας επιτρέπει να ορίσετε μια στοίβα και να καλέσετε τις 5 βασικές

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης

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

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

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

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

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

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int

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

Επανάληψη. Εντολές while, for, do-while

Επανάληψη. Εντολές while, for, do-while Επανάληψη Εντολές while, for, do-while Απροσδιόριστη Επανάληψη ή Επανάληψη υπό συνθήκη (while, do-while) Απαριθµητή Επανάληψη (for) Εντολή while while (συνθήκη) εντολή C? ναι όχι S Σηµασιολογία Εάν από

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ Κεφάλαιο 2 : Δομή Επιλογής Εντολές επιλογής Εντολή ΑΝ. Εντολές

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

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

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

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

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

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

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

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

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

H ΓΛΩΣΣΑ C. Μάθηµα 12: υναµική έσµευση Μνήµης. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 12: υναµική έσµευση Μνήµης. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 12: υναµική έσµευση Μνήµης ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος 1. Στατική έσµευση Μνήµης 1. Η συνάρτηση malloc 2. Η συνάρτηση free 3. έσµευση Μεταβλητής 4. έσµευση Μονοδιάστατου Πίνακα

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

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

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

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

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

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

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

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Επαναληπτικός βρόχος καλείται το τμήμα του κώδικα μέσα σε ένα πρόγραμμα, το οποίο εκτελείται από την αρχή και επαναλαμβάνεται

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 3η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Απλοί Αλγόριθμοι & Δομές Δεδομένων Δύο Απλές

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