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

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

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

Transcript

1 ΒΑΘΜΟΣ ΣΧΟΛΙΑ - στην malloc που χρησιµοποιήσατε, δεν έχετε αφήσει χώρο για το \0 και χρησιµοποιείτε sizeof µε λάθος τρόπο. Στο τέλος που βάζετε το \0 είναι στην πραγµατικότητα σε µνήµη που δεν έχετε δεσµεύσει και υπάρχει η πιθανότητα να σκάσει το πρόγραµµά σας. - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - δεν ελέγχετε αν αποτυγχάνει η malloc. - στον πίνακα απο strings, σε περίπτωση που δεν βρίσκετε κάποιον χαρακτήρα, αφήνετε τη θέση του πίνακα κενή και µάλιστα αναρχικοποίητη. Θα ήταν καλύτερο, να αυξάνετε τον µετρήτή για τον Μ.Σ. FAIL πίνακα µόνο οταν είστε σίγουροι οτι υπάρχει ο χαρακτήρας µέσα στο string. - δεν ελέγχετε καθόλου αν έχει πετύχει η συνάρτηση εύρεσης του χαρακτήρα και έτσι αν δεν το βρεί το πρόγραµµα σκαει. - H συνάρτηση που εκτυπώνει είναι σωστή µόνο όταν υπάρχουν πάντα οι split χαρακτήρες µέσα στα string. Αν δεν υπάρχουν, πάει να διαβάσει απο θέση µνήµης NULL και σκάει. - H συνάρτηση απελευθέρωσης της µνήµης είναι σωστή. - σωστά χρησιµοποιήσατε το formatstring - η κλήση των συναρτήσεων για την εκτύπωση είναι σωστή η συνθήκη για έξοδο είναι αυτή σωστή. - Η υλοποίηση της συνάρτηση επεξεργασίας του string είναι σωστή αλλά δεν έχετε βάλει const στις παραµέτρους της συνάρτησης και συγκεκριµένα στο string που περνάτε σαν όρισµα. - στην malloc που χρησιµοποιήσατε, δεν έχετε αφήσει χώρο για το \0 το οποίο επίσης δεν βάζετε στο τέλος. - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - στον πίνακα απο strings, σε περίπτωση που δεν βρίσκετε κάποιον χαρακτήρα, αφήνετε τη θέση του πίνακα κενή και µάλιστα αναρχικοποίητη. Θα ήταν καλύτερο, να αυξάνετε τον µετρήτή για τον Οριακό PASS πίνακα µόνο οταν είστε σίγουροι οτι υπάρχει ο χαρακτήρας µέσα στο string. - H συνάρτηση που εκτυπώνει είναι σωστή µόνο όταν υπάρχουν πάντα οι split χαρακτήρες µέσα στα string. - H συνάρτηση απελευθέρωσης της µνήµης είναι σωστή. - σωστά χρησιµοποιήσατε το formatstring - σωστή και η κλήση της συνάρτησης. η συνθήκη για έξοδο είναι και αυτή σωστή. - Σωστή η συνάρτηση function, αλλά έχει ΑΠΑΡΑΔΕΚΤΟ όνοµα - Δεν υπολοιήσατε τις άλλες 2 συναρτήσεις που χρειαζόταν η άσκηση. Ολοκληρώστε τη στο σπίτι FAIL Στη main: - Αφήνουµε ΚΕΝΟ στην scanf (για να µη διαβάσει το enter) γραµµή 29 ' %c'! - Η συνθήκη στην επανάληψη (γραµµή 31) έπρεπε να είναι &&, δηλαδή επανέλαβε όσο το selection είναι διαφορετικό από y και n. - Στην εξωτερική επανάληψη (γραµµή 33) θα πρεπει να υπάρχει και µια συνθήκη ώστε τα inputs < ARRAY_SIZE οριακό PASS FAIL -Σωστή υλοποίηση της συνάρτησης επεξεργασίας του string αλλά δεν βάζετε /0 στο τέλος κάθε string. -Στη συνάρτηση εκτύπωσης δεν κάνετε έλεγχο για να παρακάµψετε τυχόν NULL εισαγωγές. -Σωστή η συνάρτηση απελευθέρωσης µνήµης αλλά δεν την καλείτε στο σωστό σηµείο. -Χρησιµοποιείτε fgets και δεν αφαιρείτε το \n -Σωστή στοίχιση και ονόµατα παραµέτρων και µεταβλητών. - Στη return_str : - στη malloc έπρεπε να δεσµεύατε ένα ακόµη byte για το \0 - αν το size είναι 0 η συνάρτηση πρέπει να επιστρέφει το κενό string "" και όχι NULL - δεν κατασκευάζετε το string. - Στη find_valid_strings (η οποία έχει παραπλανητικό όνοµα): - Το *ptr_array δείχνει πάντα στο πρώτο string του πίνακα - Στη free_memoth - Έπρεπε να περνάτε τον πίνακα από pointers, όχι ένα string - Στη main: - Όταν διαβάζουµε string µε scanf πρέπει πάντα να βάζουµε περιορισµό µεγέθους στο format string! - Η θέση ARRAY_SIZE που προσπελάζετε είναι εκτός των ορίων του πίνακα. Page 1

2 02109 PASS lab12grades - Καλά σχόλια και στοίχιση. - Καλά ονόµατα µεταβλητών και συναρτήσεων. - Λάθος µέγεθος στη malloc. Διορθώστε το µόνοι σας. Το sizeof(char) είναι το µέγεθος για µια µεταβλητή τύπου char. Θα έπρεπε να το πολλαπλασιάσετε µε το πλήθος των χαρακτήρων του πίνακα. = το µήκος του πίνακα(δεν µετράει το \0) + 1 ( η θέση για το \0) ). - Αν ο χρήστης δώσει κάτι διαφορετικό του y/n, θα πρέπει να ξαναζητάτε χαρακτήρα. (µε εσωτερική επανάληψη) Άσκηση 1η; PASS - Καλή στοίχιση και καλά ονόµατα µεταβλητών - Σωστή main - Σωστή free - Σωστή print - Στην union_str, στη malloc πρέπει να δεσµεύεσετε µια θέση ακόµη για το \0 - H char str σύµφωνα µε την εκφώνηση έπρεπε να ήταν const Άσκηση 2η; Την έχετε ξεκινήσει ωστόσο θέλει δουλειά ακόµα.προσπαθείστε να την τελειώσετε στο σπίτι new_string: - Σωστοί παράµετροι. - Σωστή δέσµευση µνήµης. - Η strncpy δεν τοποθετεί το '\0', οποτε έπρεπε να το βάλετε εσείς. str_print: - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων PASS free_str: main: - Σωστή ανάγνωση δεδοµένων και χρήση sprintf. - Σωστή κλήση συναρτήσεων. - Το πρόγραµµα παίρνει καινούριο string για οποιαδήποτε χαρακτήρα εκτός του n. Θα έπρεπε να ξαναζητάει µόνο για y. - Να έχετε πιο καλά ονόµατα µεταβλητών και σναρτήσεων FAIL Υλοποιήθηκε πολύ µικρό µέρος της άσκησης - Καλά σχόλια. - Καλά ονόµατα µεταβλητών. - Το µέγεθος 13 για το formatstring θα έπρεπε να είναι σταθερά. - Σωστή χρήση scanf PASS - Σωστό µέγεθος για την δέσµευση του νέου string. - Σωστή χρήση συναρτήσεων του string.h για την δηµιουργία του νέου string. - Σωστή εκτύπωση κενού string, για ακέραιο 0. - Λάθος print (Είναι δεύτερο εργαστήριο που δεν καταφέρνετε να εκτυπώσετε σωστά τους χαρακτήρες ""...!). - Σωστή αποδέσµευση µνήµης. - Καλή στοίχιση του κώδικα. - Τα ονόµατα των µεταβλητών θα µπορούσαν να είναι πιο περιγραφικά. - Σωστός ορισµός συναρτήσεων και χρήση του const. - Στη malloc δεν δεσµεύετε σωστά τις θέσεις µνήµης που χρειάζονται PASS - Σωστός ο έλεγχος για τη malloc. - Σωστός ο τρόπος που διατρέχετε τον πίνακα για την εκτύπωσης. - Σωστή η απελευθέρωση µνήµης. - Σωστές οι συνθήκες για τα 2 loops. - Σωστή η χρήση της sprintf. - Η έξοδος του προγράµµατος είναι σωστή. Page 2

3 02118 FAIL - Κακά ονόµατα µεταβλητών(apeleutherosi mnimis;;) - Στην add, σωστή malloc, αλλά η strcat δε θα λειτουργήσει σωστά γιατί το newstring δεν έχει αρχικά \0 πουθενά. - Στη συνάρτηση εκτύπωσης έπρεπε να παρακάµπτετε τα NULL στοιχεία. - Δεν ελευθερώνετε όλη τη δυναµικά δεσµευµένη µνήµη. - Ο πίνακας δεικτών δεν έχει αρχικοποιηθεί. - H char str στην add σύµφωνα µε την εκφώνηση έπρεπε να ήταν const eksodos(): - Το όνοµα της συνάρτησης είναι παραπλανητικό. Καλείται όταν τερµατίζει το πρόγραµµα; Ένα καλύτερο όνοµα θα µπορούσε να είναι το 'ektypwsi' PASS PASS main(): - Κακή στοίχιση στο εµφωλευµένο do-while. - Στην eksodos() η τιµή του counter δηλώνει τη θέση της τελευταίας έγκυρης καταχώρησης (i<=counter), ενώ στη clean_memory() η τιµή του counter δηλώνει το πλήθος των έγκυρων στοιχείων (i<counter). Να προσπαθείτε να φτιάχνετε όσο το δυνατόν συνεπείς διεπαφές µεταξύ των επαναχρησιµοποιούµενων υποµονάδων του προγράµµατός σας. -Λάθος στη while µε αποτέλεσµα να µην γίνεται επανάληψη και έλεγχος για "y" ή "n" - Σωστή χρήση const -Κακά-µη περιγραφικά ονόµατα κάποιων µεταβλητών και σχεδόν όλων των συναρτήσεων - Σωστή χρήση scanf. -Στην neo_str, στη malloc πρέπει να δεσµεύεσετε µια θέση ακόµη για το \0 - Σωστή επιστροφή NULL σε περίπτωση αποτυχίας της malloc Γενικά - Η συνάρτηση εκτύπωσης έχει όνοµα αναντίστοιχο µε την λειτουργία της. Συνάρτηση επεξεργασίας string - Σωστή χρήση της παραµέτρου const στο string όπως ζητάει η εκφώνιση. - Σωστός εντοπισµός της θέσης του χαρακτήρα και σωστός υπολογισµός του µήκους του string που θα αντιγραφεί. - Δεν κάνετε έλεγχο αποτυχίας της malloc. - Σωστή θέση του '\0' στην θέση που δείχνει ο δείκτης diaxwristhsp. Σωστή χρήση strcpy. - Σωστά επιστρέφετε NULL σε περίπτωση που δεν βρείτε το string FAIL Συνάρτηση εκτύπωσης - H αύξηση του µετρητή i=i+2 είναι εντελώς λάθος. - Το µήνυµα "Could not create new string " είναι άσχετο. - Η αύξηση του µετρητή i=i+2 είναι εντελώς λάθος. Main - Η ανάνγωση του sting είναι λάθος καθώς πας να αποθηκεύσεις το string σε µία περιοχή µνήµης που δεν είναι αρχικοποιηµένη µε αποτέλεσµα να προκαλείται segmentation fault. - Σωστή ανάγνωση του χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n', επαναλαµβάνοντας το ερώτηµα προς τον χρήστη.. - Σωστά ελέγχετε εάν βγαίνετε εκτός των ορίων του πίνακα. Page 3

4 Γενικά - Η συνάρτηση εκτύπωσης έχει όνοµα αναντίστοιχο µε την λειτουργία της. Συνάρτηση επεξεργασίας string - Σωστή χρήση της παραµέτρου const στο string όπως ζητάει η εκφώνιση. - Σωστός εντοπισµός της θέσης του χαρακτήρα και σωστός υπολογισµός του µήκους του string που θα αντιγραφεί. - Δεν κάνετε έλεγχο αποτυχίας της malloc. - Σωστή θέση του '\0' στην θέση που δείχνει ο δείκτης diaxwristhsp. Σωστή χρήση strcpy. - Σωστά επιστρέφετε NULL σε περίπτωση που δεν βρείτε το string FAIL Συνάρτηση εκτύπωσης - H αύξηση του µετρητή i=i+2 είναι εντελώς λάθος. - Το µήνυµα "Could not create new string " είναι άσχετο. - Η αύξηση του µετρητή i=i+2 είναι εντελώς λάθος FAIL Main - Η ανάνγωση του sting είναι λάθος καθώς πας να αποθηκεύσεις το string σε µία περιοχή µνήµης που δεν είναι αρχικοποιηµένη µε αποτέλεσµα να προκαλείται segmentation fault. - Σωστή ανάγνωση του χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n', επαναλαµβάνοντας το ερώτηµα προς τον χρήστη.. - Σωστά ελέγχετε εάν βγαίνετε εκτός των ορίων του πίνακα. - Το όνοµα first_function δεν είναι περιγραφικό - Δεν αφαιρείτε το \n που διαβάζει η fgets, άµεσα. Φαίνεται να το κάνετε στην first_function (που δεν είναι δουλειά της) και χωρίς να ελέγξετε αν όντως υπάρχει. - Λάθος µέγεθος στη malloc. - Η πρώτη θέση ενός πίνακα είναι η 0, όχι η 1 - Αν ο χρήστης δώσει κάτι διαφορετικό του y/n, πρέπει να ξαναζητάτε χαρακτήρα - Λάθος αποδέσµευση µνήµης - Σωστή κλήση συναρτήσεων - Λάθος υλοποίηση print - Η επέκταση του αρχείου έπρεπε να ήταν.tgz - Καθόλου σχόλια! copy_string(): - Στη malloc() έπρεπε να δεσµεύατε ένα ακόµη byte για το '\0'. - Ο έλεγχος για τον pointer που επιστρέφει η malloc() πρέπει να γίνεται ΠΡΙΝ τη χρήση του. Εάν αποτύχει η malloc() (π.χ. πολύ µεγάλη ή αρνητική τιµή της δεύτερης παραµέτρου), το πρόγραµµα δεν τρέχει σωστά. - Δεν αρχικοποιείτε τη δυναµική µνήµη σε κενή συµβολοσειρά για να δουλέψει σωστά η strcat() FAIL print_str(): - Η στοίχιση στο σώµα του if δεν είναι σωστή. free_memory(): - Έπρεπε να περνάτε ως παράµετρο τον πίνακα από pointers και να ελευθερώνετε τα στοιχεία του. main(): - Κακή στοίχιση! - Δεν περιορίζετε το µέγεθος της εισόδου του χρήστη µε τη χρήση κατάλληλου format string στη scanf(). - Χρησιµοποιείτε µόνο την πρώτη θέση του πίνακα για αποθήκευση (δεν αλλάζετε τιµή στο i). Page 4

5 02129 οριακό PASS lab12grades str_antigrafa(): - Δεν αρχικοποιείτε τη δυναµική µνήµη σε κενή συµβολοσειρά έτσι ώστε να δουλέψει σωστά η strcat(). output_mtrs(): - Είναι προτιµότερο να κάνετε τόσες επαναλήψεις όσο και το µέγεθος του πίνακα (εφόσον το γνωρίζετε) και να ελέγχετε εντός εάν το εκάστοτε στοιχείο ικανοποιεί οποιεσδήποτε συνθήκες. free_matrix(): - Δεν ελευθερώνετε τη δυναµική µνήµη (τα στοιχεία του πίνακα που περνάτε ως παράµετρο). main(): - Δεν αφαιρείτε τον χαρακτήρα αλλαγής γραµµής που εισάγεται µε την fgets(). Η scanf() αποτελεί καλύτερη επιλογή για τη µορφή της συγκεκριµένης εισόδου. - Οι κενές θέσεις του πίνακα δεν έχουν την τιµή NULL. - Το c δεν είναι περιγραφικό όνοµα. - Η επανάληψη ανάγνωσης του c µε getchar() είναι ελλιπής. Δεν καταναλώνετε τον χαρακτήρα αλλαγής γραµµής ο οποίος εισάγεται από το πληκτρολόγιο. - Στη περίπτωση που ο χρήστης εισάγει 'n', το πρόγραµµα τερµατίζει χωρίς να αποδεσµεύσει τη δυναµική µνήµη. - Η συνθήκη στο εξωτερικό do-while πρέπει να είναι while(i<array_size && c=='y'). string_space: - Σωστοί παράµετροι. - Για το νέο string δεσµεύετε µια θέση λιγότερη και δεν έχετε θέση για το '\0'. ektupwsh: - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων PASS svisimo: main: - Θα έπρεπε να γίνει χρήση της sprintf. - Η συνάρτηση ektupwsh θα έπρεπε να καλείται σε κάθε επανάληψη. - Το πρόγραµµα θα έπρεπε να τερµατίζει και όταν ο πίνακας έχει γεµίσει. - Σωστά ονόµατα µεταβλητών και συναρτήσεων -Καλή στοίχιση και καλά ονόµατα εκτός από το multiply!! -Στην multiply, στη malloc πρέπει να δεσµεύεσετε µια θέση ακόµη για το \ PASS - Σωστή χρήση const -Λάθος free.την αφαιρέσατε ως σχόλια και έτσι η µνήµη δεν ελευθερώνεται -Σωστά αφαιρείτε το \n στην fgets - Σωστή print - Η υλοποίηση της συνάρτηση επεξεργασίας του string είναι σωστή αλλά δεν έχετε βάλει const στις παραµέτρους της συνάρτησης και συγκεκριµένα στο string που περνάτε σαν όρισµα. - στην malloc που χρησιµοποιήσατε, δεν έχετε αφήσει χώρο για το \0 το οποίο επίσης δεν βάζετε στο τέλος. - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - στον πίνακα απο strings, σε περίπτωση που δεν βρίσκετε κάποιον χαρακτήρα, αφήνετε τη θέση του πίνακα κενή και µάλιστα αναρχικοποίητη. Θα ήταν καλύτερο, να αυξάνετε τον µετρήτή για τον Οριακό PASS πίνακα µόνο οταν είστε σίγουροι οτι υπάρχει ο χαρακτήρας µέσα στο string. - H συνάρτηση που εκτυπώνει είναι σωστή µόνο όταν υπάρχουν πάντα οι split χαρακτήρες µέσα στα string. - H συνάρτηση απελευθέρωσης της µνήµης είναι σωστή. - σωστά χρησιµοποιήσατε το formatstring - σωστή και η κλήση της συνάρτησης. - η συνθήκη για έξοδο είναι και αυτή σωστή. -Δεν εκτυπώνεται τίποτα από τα ζητούµενα - Το πρόγραµµα σας µε την έκκινηση δίνει segmentation fault! FAIL - Λάθη στη new string και στο malloc -Μη περιγραφικά ονόµατα συναρτήσεων Page 5

6 02139 PASS - Σωστή main - Σωστή free - Σωστή print - Στην create_string, στη malloc πρέπει να δεσµεύεσετε µια θέση ακόµη για το \0 - Το new_string είναι δείκτης. Η ανάθεση του χαρακτήρα '\0' σε αυτόν δεν είναι σωστή (αν και τελικά τον κάνει NULL). Έπρεπε να κατασκευάζετε και να επιστρέφετε το "" σε περίπτωση που ο αριθµός είναι µηδέν. - Καλή στοίχιση και καλά ονόµατα, εκτός από την παράµετρο i στη συνάρτηση. Γενικά - Αποδεκτή επιλογή ονοµάτων µεταβλητών και συναρτήσεων Οριακό PASS Συνάρτηση εκτύπωσης Συνάρτηση επεξεργασίας του string - Δεν χρησιµοποιείτε την παράµετρο const στο string όπως ζητάει η εκφώνηση. - Σωστός εντοπισµός της θέσης του χαρακτήρα. - Λάθος υπολογισµός του µήκους του string που θα αντιγραφεί. Αγνοείτε το '\0' στο τέλος. - Δεν κάνετε έλεγχο αποτυχίας της malloc. - Η strncpy δεν βάζει τον χαρακτήρα '\0' στο τέλος, πράγµα που πρέπει να το κάνετε εσείς. Το πρόγραµµα σας δουλεύει διότι η επόµενη θέση από την µνήµη που δεσµεύει η malloc περιέχει µε µεγάλη πιθανότητα τον χαρακτήρα '\0'. Δεν παύει να δουλεύει όµως κατά τύχη. - Σωστά επιστρέφετε NULL σε περίπτωση που δεν βρείτε το string PASS Main - Σωστή ανάγνωση string και χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή αύξηση του µετρητή i. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστός έλεγχος αν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n'. - Σωστός έλεγχος αν η ανακύκλωση βγαίνει εκτός των ορίων του πίνακα καθώς και εάν ο χρήστης έχει εισάγει 'y' στην επιλογή "More(y/n)? ". -Σωστή στοίχιση σωστά ονόµατα µεταβλητών -Σωστοί παράµετροι και υλοποίηση της συνάρτησης Επεξεργασίας του string αλλά δε δεσµεύετε θέση για το /0 -Σωστή συνάρτηση εκτύπωσης και απελευθέρωσης µνήµης -Σωστή ανάγνωση δεδοµένων κλήση συναρτήσεων και συνθηκών loop Page 6

7 Άσκηση Γενικά - Καλή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας string - Σωστός εντοπισµός της θέσης του χαρακτήρα µε χρήση της strchr και σωστός έλεγχος εάν η strchr αποτυχγάνει. - Σωστός υπολογισµός του απαραίτητου µεγέθους δέσµευσης µνήµης και σωστή δέσµευση µνήµης µέσω της malloc. - Σωστός έλεγχος αποτυχίας της malloc. - Σωστή αντιγραφή µε χρήσης της strncpy. - Λάθος προσδιορισµός της θέσης για τον χαρακτήρα '\0'. Το σωστό είναι *(new_str+del_ptr-string) ή new_str[del_ptr-string] (ξεκινώντας από 0 έως del_ptr-string έχουµε συνολικά del_ptr-string+1 θέσεις). Συνάρτηση εκτύπωσης - Σωστη υλοποίηση µε δεδοµένο ότι δεν αποθηκεύετε την επιστρεφόµενη τιµή NULL στον πίνακα PASS - Σωστη υλοποίηση. Main - Η αρχικοποίηση του πίνακα σε NULL δεν είναι λάθος αλλά δεν είναι και απαραίτητη. - Σωστή ανάγνωση string και χαρακτήρα µε χρήση του format_string. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή αύξηση της µεταβλητής size υπό συνθήκη. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n' και ξαναρωτάτε τον χρήστη. Σωστά κάνετε break εάν απαντήσει 'n'. - Σωστά ελέγχετε στο while εάν βγαίνει το πρόγραµµα εκτός των ορίων του πίνακα και τερµατίζετε την ανακύκλωση. Άσκηση Σωστή υλοποίηση µε εξαίρεση το γεγονός ότι δεν ακολουθήσατε την εκφώνιση που έλεγε τα εξής: "Μεταβάλετε τον πίνακα από δείκτες σε χαρακτήρα έτσι ώστε να είναι πίνακας από δείκτες σε struct". Αυτό σηµαίνει ότι δεν ορίζετε ένα πίνακα από structs, αλλά ένα πίνακα από δείκτες, δηλ. struct data *array[array_size]; Στη συνέχεια για κάθε στοιχείο του πίνακα θα πρέπει να δεσµεύσετε την απαραίτητη µνήµη για το struct πριν προχωρήσετε στην δέσµευση της µνήµης για τα επιµέρους πεδία. Page 7

8 02145 οριακό PASS lab12grades str_antigrafa(): - Δεν αρχικοποιείτε τη δυναµική µνήµη σε κενή συµβολοσειρά έτσι ώστε να δουλέψει σωστά η strcat(). output_mtrs(): - Είναι προτιµότερο να κάνετε τόσες επαναλήψεις όσο και το µέγεθος του πίνακα (εφόσον το γνωρίζετε) και να ελέγχετε εντός εάν το εκάστοτε στοιχείο ικανοποιεί οποιεσδήποτε συνθήκες. free_matrix(): - Δεν ελευθερώνετε τη δυναµική µνήµη (τα στοιχεία του πίνακα που περνάτε ως παράµετρο). main(): - Δεν αφαιρείτε τον χαρακτήρα αλλαγής γραµµής που εισάγεται µε την fgets(). Η scanf() αποτελεί καλύτερη επιλογή για τη µορφή της συγκεκριµένης εισόδου. - Οι κενές θέσεις του πίνακα δεν έχουν την τιµή NULL. - Το c δεν είναι περιγραφικό όνοµα. - Η επανάληψη ανάγνωσης του c µε getchar() είναι ελλιπής. Δεν καταναλώνετε τον χαρακτήρα αλλαγής γραµµής ο οποίος εισάγεται από το πληκτρολόγιο. - Στη περίπτωση που ο χρήστης εισάγει 'n', το πρόγραµµα τερµατίζει χωρίς να αποδεσµεύσει τη δυναµική µνήµη. - Η συνθήκη στο εξωτερικό do-while πρέπει να είναι while(i<array_size && c=='y'). Page 8

9 Άσκηση Γενικά - Καλή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας string - Σωστός εντοπισµός της θέσης του χαρακτήρα µε χρήση της strchr και σωστός έλεγχος εάν η strchr αποτυχγάνει. - Σωστός υπολογισµός του απαραίτητου µεγέθους δέσµευσης µνήµης και σωστή δέσµευση µνήµης µέσω της malloc. - Σωστός έλεγχος αποτυχίας της malloc. - Σωστή αντιγραφή µε χρήσης της strncpy. - Λάθος προσδιορισµός της θέσης για τον χαρακτήρα '\0'. Το σωστό είναι *(new_str+del_ptr-string) ή new_str[del_ptr-string] (ξεκινώντας από 0 έως del_ptr-string έχουµε συνολικά del_ptr-string+1 θέσεις). Συνάρτηση εκτύπωσης - Σωστη υλοποίηση µε δεδοµένο ότι δεν αποθηκεύετε την επιστρεφόµενη τιµή NULL στον πίνακα PASS - Σωστη υλοποίηση. Main - Η αρχικοποίηση του πίνακα σε NULL δεν είναι λάθος αλλά δεν είναι και απαραίτητη. - Σωστή ανάγνωση string και χαρακτήρα µε χρήση του format_string. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή αύξηση της µεταβλητής size υπό συνθήκη. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n' και ξαναρωτάτε τον χρήστη. Σωστά κάνετε break εάν απαντήσει 'n'. - Σωστά ελέγχετε στο while εάν βγαίνει το πρόγραµµα εκτός των ορίων του πίνακα και τερµατίζετε την ανακύκλωση. Άσκηση Σωστή υλοποίηση µε εξαίρεση το γεγονός ότι δεν ακολουθήσατε την εκφώνιση που έλεγε τα εξής: "Μεταβάλετε τον πίνακα από δείκτες σε χαρακτήρα έτσι ώστε να είναι πίνακας από δείκτες σε struct". Αυτό σηµαίνει ότι δεν ορίζετε ένα πίνακα από structs, αλλά ένα πίνακα από δείκτες, δηλ. struct data *array[array_size]; Στη συνέχεια για κάθε στοιχείο του πίνακα θα πρέπει να δεσµεύσετε την απαραίτητη µνήµη για το struct πριν προχωρήσετε στην δέσµευση της µνήµης για τα επιµέρους πεδία. - Η υλοποίηση της συνάρτηση επεξεργασίας του string είναι σωστή και έχετε βάλει const στις παραµέτρους της συνάρτησης και συγκεκριµένα στο string που περνάτε σαν όρισµα. - στην malloc που χρησιµοποιήσατε έχετε αφήσει χώρο για το \0. Σωστά βάζετε το \0 στο τέλος. - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - σωστά ελέγχετε αν αποτυγχάνει η malloc. - στον πίνακα απο strings, σε περίπτωση που δεν βρίσκετε κάποιον χαρακτήρα σωστά δεν αφήνετε τη θέση του πίνακα κενή - πολύ σηµαντικό λάθος είναι οτι έχετε ξεχάσει να αυξάνετε το i κάθε φορά που βάζετε κάτι στον Οριακό PASS πίνακα - H συνάρτηση που εκτυπώνει είναι σωστή - H συνάρτηση απελευθέρωσης της µνήµης είναι λάθος, θα πρέπει να γίνεται στο τέλος του προγράµµατος και όχι εντός του loop - σωστά χρησιµοποιήσατε το formatstring - η κλήση των συναρτήσεων για την εκτύπωση είναι σωστή αλλά λίγο µπερδεµένη. Θα µπορούσατε να την είχατε κάνει πιο απλή. - η συνθήκη για έξοδο είναι αυτή σωστή. Page 9

10 new_string: - Σωστοί παράµετροι, όµως το string έπρεπε να το περνάτε ως const. - Σωστή δέσµευση για το νέο string. - Θα έπρεπε να επιστρέφετε NULL άµα αποτύγχανε η strchr. print_non_null - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων PASS free_dym_alloc: PASS main: - Σωστή ανάγνωση δεδοµένων και χρήση sprintf. - Σωστή κλήση συναρτήσεων. - Σωστό loop. - Σωστά ονόµατα µεταβλητών και σναρτήσεων Σωστή στοίχιση. - Η υλοποίηση της συνάρτηση επεξεργασίας του string είναι σωστή και έχετε βάλει const στις παραµέτρους της συνάρτησης και συγκεκριµένα στο string που περνάτε σαν όρισµα. - στην malloc που χρησιµοποιήσατε έχετε αφήσει χώρο για το \0. Σωστά βάζετε το \0 στο τέλος. - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - σωστά ελέγχετε αν αποτυγχάνει η malloc. - στον πίνακα απο strings, σε περίπτωση που δεν βρίσκετε κάποιον χαρακτήρα σωστά δεν αφήνετε τη θέση του πίνακα κενή - πολύ σηµαντικό λάθος είναι οτι έχετε ξεχάσει να αυξάνετε το i κάθε φορά που βάζετε κάτι στον Οριακό PASS πίνακα - H συνάρτηση που εκτυπώνει είναι σωστή - H συνάρτηση απελευθέρωσης της µνήµης είναι λάθος, θα πρέπει να γίνεται στο τέλος του προγράµµατος και όχι εντός του loop - σωστά χρησιµοποιήσατε το formatstring - η κλήση των συναρτήσεων για την εκτύπωση είναι σωστή αλλά λίγο µπερδεµένη. Θα µπορούσατε να την είχατε κάνει πιο απλή. - η συνθήκη για έξοδο είναι αυτή σωστή. - Καλά σχόλια, καλός θα ήταν και ο επιµέρους σχολιασµός των συναρτήσεων. - Καλά ονόµατα µεταβλητών. - Λάθος, το format για την scanf θα έπρεπε να το είχατε κατασκεύασει δυναµικά µε sprintf. - Σωστή χρήση scanf. - Πολύπλοκη λογική, για την είσοδο συνέχειας ή εξόδου από τον χρήστη. Μπορεί να υλοποιηθεί πολύ πιο απλά. - Λάθος µέγεθος για την δέσµευση του νέου string. Παραλείψατε ένα έξτρα χαρακτήρα για το τέλος του string ('\0'). Το οτι δουλεύει είναι καθαρά θέµα υλοποίησης του linux. - Λάθος χρήση του strcat αφού δεν έχετε εισάγε στην αρχή του νέου string τον χαρακτήρα '\0'. Δεύτερη φορά που σταθήκατε τυχεροί! - Σωστή εκτύπωση κενού string, για ακέραιο 0. - Σωστή έξοδος. - Σωστή αποδέσµευση µνήµης FAIL Το.c είναι εκτελέσιµο αρχείο. Page 10

11 Άσκηση Γενικά - Καλή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας string (new_string) - Σωστός εντοπισµός της θέσης του χαρακτήρα µε χρήση της strchr και σωστός έλεγχος εάν η strchr αποτυγχάνει. - Λάθος υπολογισµός του απαραίτητου µεγέθους δέσµευσης µνήµης. Το σωστό είναι size+1 υπολογίζοντας και τον χαρακτήρα '\0' στο τέλος του string. - Σωστή δέσµευση µνήµης µέσω της malloc και σωστός έλεγχος αποτυχίας της malloc. - Σωστή αντιγραφή µε χρήσης της strncpy. - Παραλείπετε να προσθέσετε τον χαρακτήρα '\0' στον τέλος του string που αντιγράψατε. H strncpy δεν προσθέτει τον χαρακτήρα '\0' στο τέλος. Συνάρτηση εκτύπωσης - Σωστή υλοποίηση µε δεδοµένο ότι δεν αποθηκεύετε την επιστρεφόµενη τιµή NULL στον πίνακα µέσα στη main(). - Σωστή η χρήση διπλού pointer αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση. - Σωστή υλοποίηση µε δεδοµένο ότι δεν αποθηκεύετε την επιστρεφόµενη τιµή NULL στον πίνακα µέσα στη main(). - Σωστή η χρήση διπλού pointer αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση PASS Main - Σωστή ανάγνωση string και χαρακτήρα µε χρήση του format_string. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή αύξηση της µεταβλητής i (µετρητής) υπό συνθήκη. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n' και ξαναρωτάτε τον χρήστη. - Σωστά ελέγχετε στο while εάν βγαίνει το πρόγραµµα εκτός των ορίων του πίνακα και τερµατίζετε την ανακύκλωση. - Σωστά καλείτε τη συνάρτηση απελευθέρωσης µνήµης πριν τον τερµατισµό του προγράµµατος. Άσκηση main() - Σωστά δηµιουργείτε το sruct. - Σωστά ορίζετε τον πίνακα από structs. - Δεσµεύετε µνήµη για κάθε ανακλύκλωση ανεξάρτητα αν αυξήθηκε το i ή όχι. Eάν δεν αυξηθεί το i δεσµεύετε µνήµη δύο ή περισσότερες φορές για την ίδια µεταβλητή χωρίς να απελευθερώνετε την παλιά. - ptr[i]->new=(char*)malloc(str_size*sizeof(char)); Ξαναδεσµεύετε µνήµη που ήδη δεσµεύσατε µέσα στη συνάρτηση new_string(). - ptr[i]->new=new; Η συγκεκριµένη εντολή δεν συνιστά αντιγραφή αλλά ανάθεση pointer. Λειτουργεί γιατί έχετε αναθέσει µνήµη µέσα στη συνάρτηση new_string(). Η malloc της προηγούµενης γραµµής είναι λάθος και δηµιουργεί memory leak στο πρόγραµµα σας. Συνάρτηση εκτύπωσης - Σωστή η χρήση διπλού pointer σε struct αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση. - Σωστή υλοποίηση µε δεδοµένο ότι δεν αποθηκευετε την επιστρεφόµενη τιµή NULL στον πίνακα µέσα στη main(). - Σωστή η χρήση διπλού pointer σε struct αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση. Ξαναδείτε τη σειρά της δυναµικής δέσµευσης µνήµης για την 2η Άσκηση. Συνιστάται το αρχικό διάβασµα να µην το κάνετε σε συνδυασµό µε δυναµική δέσµευση µνήµης αλλά στατικά. Εφόσον αποφασίσετε ότι θέλετε αν αποθηκεύσετε το string στον πίνακα τότε προχωρήστε στις απαραίτητες δεσµεύσεις µνήµης. Page 11

12 02159 PASS οριακό PASS lab12grades -Καλή στοίχιση και καλά ονόµατα εκτός από το multiply!! -Στην multiply, στη malloc πρέπει να δεσµεύεσετε µια θέση ακόµη για το \0 - Σωστή χρήση const -Λάθος free.την αφαιρέσατε ως σχόλια και έτσι η µνήµη δεν ελευθερώνεται -Σωστά αφαιρείτε το \n στην fgets - Σωστή print -Σωστή στοίχιση σωστά ονόµατα µεταβλητών εκτός του str1 -Σωστοί παράµετροι και υλοποίηση της συνάρτησης επεξεργασίας του string αλλά δε δεσµεύετε θέση για το /0 -Δεν ελέγχετε άµα αποτύχει η malloc να επιστρέφει NULL συνάρτηση. -Δεν υλοποιείτε σωστά τη συνάρτηση εκτύπωσης. -Σωστή η συνάρτηση απελευθέρωσης µνήµης αλλά δεν την καλείτε στο σωστό σηµείο. -Δεν έχετε σωστές συνθήκες loop new_string: - Σωστοί παράµετροι, όµως το string έπρεπε να το περνάτε ως const. - Σωστή δέσµευση για το νέο string. - Θα έπρεπε να επιστρέφετε NULL άµα αποτύγχανε η strchr. print_non_null - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων PASS free_dym_alloc: main: - Σωστή ανάγνωση δεδοµένων και χρήση sprintf. - Σωστή κλήση συναρτήσεων. - Σωστό loop. - Σωστά ονόµατα µεταβλητών και σναρτήσεων Page 12

13 Γενικά - Καλή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας string - Σωστός εντοπισµός της θέσης του χαρακτήρα µε χρήση της strchr και σωστός έλεγχος εάν η strchr αποτυχγάνει. - Σωστός υπολογισµός του απαραίτητου µεγέθους µνήµης και σωστή δέσµευση µνήµης µέσω της malloc. - Σωστός έλεγχος αποτυχίας της malloc. - Σωστή αντιγραφή µε χρήσης της strncpy. - Παραλείπετε να προσθέσετε τον χαρακτήρα '\0' στον τέλος του string που αντιγράψατε. H strncpy δεν προσθέτει τον χαρακτήρα '\0' στο τέλος. Συνάρτηση εκτύπωσης - Σωστη υλοποίηση PASS - Σωστη υλοποίηση. Main - H αρχικοποίηση του πίνακα σε NULL δεν είναι λάθος αλλά δεν είναι και απραίτητη. - Σωστή ανάγνωση string και χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή αύξηση του i υπό συνθήκη. - Σωστή κλήση της συνάρτησης εκτύπωσης. Θα µπορούσατε αντί για ARRAY_SIZE να βάλετε τον αριθµό των αποθηκευµένων στοιχείων στον πίνακα. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n' και ξαναρωτάτε τον χρήστη. Σωστά κάνετε break εάν απαντήσει 'n'. - Σωστά ελέγχετε στο while εάν βγαίνει το πρόγραµµα εκτός των ορίων του πίνακα και τερµατίζετε την ανακύκλωση. - Σωστή κλήση της συνάρτησης για την απελευθέρωση της µνήµης PASS FAIL new_str(): - Στη malloc() έπρεπε να δεσµεύατε ένα ακόµη byte για το '\0'. - Ελλιπής στοίχιση στο κλείσιµο του if. - Εάν ο αριθµός επαναλήψεων είναι µηδέν, γράφετε εκτός ορίων. Σε αυτή την περίπτωση πρέπει να κατασκευάζεται η κενή συµβολοσειρά "". Να αποφεύγετε να ζητάτε δυναµική µνήµη µεγέθους µηδέν µε κατάλληλους ελέγχους. - Δεν παράγει εκτελέσιµο, έχει errors τα οποία δυστυχώς είναι πολύ βασικά. - Έχετε λάθη στη σύνταξη της printf (γραµµές 16-22). - Έχετε λάθος στη σύνταξη της for (j=0,j = i - 1, j++). Tο j = i - 1 που βάλατε δεν ειναι συνθήκη, είναι καταχώρηση τιµής. Και τις εντολές τις διαχωρίζουµε µε ; όχι µε, Page 13

14 02166 Οριακό PASS lab12grades Γενικά - Αποδεκτή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας string - Λάθος µήκος δεσµευµένης µνήµης. Δεν υπολογίζετε το '\0' που χρειάζεται το string σας. - Σε περίπτωση που αποτυγχάνει η strchr επιχειρείτε στη συνέχεια να κάνετε malloc πράγµα που µε µεγάλη πιθανότητα επίσης αποτυγχάνει. Τελικά καταλήγετε µε λάθος µήνυµα προς τον χρήστη. Το ορθό θα ήταν η ενότητα του else if να προηγείται της ενότητας του if. - Σωστή χρήση strncpy. - Η εντολή nstring[ptr_chr-string]='\0'; γράφει εκτός των ορίων της µνήµης που έχετε δεσµεύσει. Συνάρτηση εκτύπωσης - Η συνάρτηση εκτύπωσης αν και ελέγχει για NULL θα έπρεπε να συνεχίζει στην επόµενη ανακύκλωση και όχι να σταµατά µε break. - Δεν εκτυπώνετε διπλά εισαγωγικά πριν και µετά από κάθε συµβολοσειρά PASS PASS Main - Η αύξηση του µετρητή i στην αρχή του while() είναι λάθος. - Σωστή ανάγνωση string και χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. Δεν ζητείται να εκτυπώνετε το string που αποθηκεύετε. - Σωστή κλήση της συνάρτησης εκτύπωσης αν και δεν εκτυπώνει ποτέ τίποτε!!! (Γιατί?) - Δεν ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'ν' πράγµα που είναι λάθος. - Σωστά ελέγχετε εάν βγαίνετε εκτός των ορίων του πίνακα. - Όταν διαβάζουµε string µε scanf πρέπει πάντα να βάζουµε περιορισµό µεγέθους στο format string! - Στη while για το More (y/n) δε χρειάζεται η τελική if. Αµέσως µετά ελέγχει τη συνθήκη της while και θα βγει από αυτή έχει δοθεί n - Κατά τα άλλα πολύ καλή δουλειά. spacer: - Το string έπρεπε να το παιρνάτε ως const. - Αρχικά θα έπρεπε να κοιτάτε αν έχει βρεθεί ο χαρακτήρας µε strchr και µετά να κάνετε malloc. - Δε έχετε δεσµεύσει χώρο για το '\0'. - Η strncpy δεν τοποθετεί το '\0', οποτε έπρεπε να το βάλετε εσείς. - Στη strncpy δε χρειάζεται το sizeof(char). print: - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων. free_func: main: - Σωστή ανάγνωση δεδοµένων και χρήση sprintf. - Σωστή κλήση συναρτήσεων. - Σωστό loop PASS - Σωστά ονόµατα µεταβλητών και συναρτήσεων. - Καλά σχόλια, καλός θα ήταν και ο επιµέρους σχολιασµός των συναρτήσεων. - Καλά ονόµατα µεταβλητών. - Σωστές σταθερές. - Σωστή χρήση scanf. - Σωστό µέγεθος για την δέσµευση του νέου string. - Σωστή χρήση συναρτήσεων του string.h για την δηµιουργία του νέου string. - Σωστή εκτύπωση κενού string, για ακέραιο 0. - Σωστή έξοδος. - Σωστή αποδέσµευση µνήµης. - Καλή δουλειά. Page 14

15 Γενικά πολύ καλή δουλειά. lab12grades PASS PASS - Καλή στοίχιση του κώδικα. - Καλά ονόµατα µεταβλητών και ο ορισµός σταθερών. - Σωστός ορισµός συναρτήσεων και χρήση του const. - Σωστή χρήση της malloc. - Σωστός ο έλεγχος για τη malloc. - Σωστός ο τρόπος που διατρέχετε τον πίνακα για την εκτύπωσης αλλά επρεπε να τον εκτυπώνετε κάθε φορά που ο χρήστης έδινε µία νέα συµβολοσειρά. - Σωστή η απελευθέρωση µνήµης. - Σωστές οι συνθήκες για τα 2 loops. - Καλή η χρήση της fgets. - Η έξοδος του προγράµµατος είναι σωστή. string_pol(): - Η strlen() δεν µετράει το '\0'. Το µέγεθος της δυναµικής µνήµης που ζητάτε είναι µικρότερο από αυτό που χρειάζεστε, µε αποτέλεσµα να γίνονται εγγραφές εκτός ορίων. print_pointers(): - Πριν χρησιµοποιήσετε την strcmp() πρέπει να ελέγξετε εάν η πρώτη παράµετρος είναι!= NULL. - Η κενή συµβολοσειρά µπορεί να γραφτεί απλά ως "" (δηλαδή κανένας χαρακτήρας + '\0'), αντί "\0" (ο χαρακτήρας '\0' + '\0'). main(): - Το όνοµα integer δεν είναι περιγραφικό. - Στην print_pointers() η τιµή του megethos δηλώνει τη θέση της τελευταίας έγκυρης καταχώρησης (i<=megethos), ενώ στη memory_release() η τιµή του megethos δηλώνει το πλήθος των έγκυρων στοιχείων (i<megethos). Να προσπαθείτε να φτιάχνετε όσο το δυνατόν συνεπείς διεπαφές µεταξύ των επαναχρησιµοποιούµενων υποµονάδων του προγράµµατός σας. - Σωστή η συνάρτηση function, αλλά έχει ΑΠΑΡΑΔΕΚΤΟ όνοµα - Δεν υλοποιήσατε τις άλλες 2 συναρτήσεις που χρειαζόταν η άσκηση. Ολοκληρώστε τη στο σπίτι FAIL Στη main: - Αφήνουµε ΚΕΝΟ στην scanf (για να µη διαβάσει το enter) γραµµή 29 ' %c'! - Η συνθήκη στην επανάληψη (γραµµή 31) έπρεπε να είναι &&, δηλαδή επανέλαβε όσο το selection είναι διαφορετικό από y και n. - Στην εξωτερική επανάληψη (γραµµή 33) θα πρεπει να υπάρχει και µια συνθήκη ώστε τα inputs < ARRAY_SIZE. Άσκηση 1η; PASS - Καλή στοίχιση και καλά ονόµατα µεταβλητών - Σωστή main - Σωστή free - Σωστή print - Στην union_str, στη malloc πρέπει να δεσµεύεσετε µια θέση ακόµη για το \0 - H char str σύµφωνα µε την εκφώνηση έπρεπε να ήταν const οριακό PASS Άσκηση 2η; Την έχετε ξεκινήσει ωστόσο θέλει δουλειά ακόµα.προσπαθείστε να την τελειώσετε στο σπίτι - Καλά σχόλια. - Καλά ονόµατα µεταβλητών. - Το µέγεθος 13 για το formatstring θα έπρεπε να είναι σταθερά. - Η scanf δεν διαβάζει τον χαρακτήρα '\n' οπότε ήταν περιττό να προσπαθείτε να τον εξαλείψετε. - Σωστό µέγεθος για την δέσµευση του νέου string. - Σωστή χρήση συναρτήσεων του string.h για την δηµιουργία του νέου string. - Λάθος, για ακέραιο 0 το πρόγραµµά σας ακόµη εκτυπώνει 1 φορά το παλίο string στον καινουργιό. - Λάθος print (Είναι δεύτερο εργαστήριο που δεν καταφέρνετε να εκτυπώσετε σωστά τους χαρακτήρες ""...!). - Σωστή αποδέσµευση µνήµης. Page 15

16 02180 PASS FAIL - Καλή στοίχιση του κώδικα. - Καλά ονόµατα µεταβλητών και ο ορισµός σταθερών. - Σωστός ορισµός συναρτήσεων και χρήση του const. - Στη malloc δεν κάνετε δέσµευση για το '\0'. - Σωστός ο έλεγχος για τη malloc. - Σωστός ο τρόπος που διατρέχετε τον πίνακα για την εκτύπωσης. - Σωστή η απελευθέρωση µνήµης. - Σωστές οι συνθήκες για τα 2 loops. - Σωστή η χρήση της sprintf. - Η έξοδος του προγράµµατος είναι σωστή. - Στην sprintf βάζουµε STR_SIZE-1 - Δεν εκτυπώνεται η νέα συµβολοσειρά. - Λάθος µέγεθος στη malloc. Διορθώστε το µόνοι σας. Το sizeof(char) είναι το µέγεθος για µια µεταβλητή τύπου char. Θα έπρεπε να το πολλαπλασιάσετε µε το πλήθος των χαρακτήρων του πίνακα. = το µήκος του πίνακα(δεν µετράει το \0) + 1 ( η θέση για το \0) ). - Στη κλήση της συνάρτησης new_string γραµµή 53 δίνετε ως πρώτο όρισµα το formatstring. Φυσικά είναι λάθος! Έπρεπε να βάλετε changed_string για να δουλέψει. Το formatstring δεν είναι η συµβολοσειρά που διαβάζεται από το πληκτρολόγιο. - Στη free_m δεν υλοποιήσατε επανάληψη για την απελευθέρωση όλης της µνήµης, for(i=0; i<size; i++){ free(str[i]); } Γενικά - Αποδεκτή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας του string - Δεν χρησιµοποιείτε την παράµετρο const στο string όπως ζητάει η εκφώνιση. - Σωστός εντοπισµός της θέσης του χαρακτήρα και σωστός υπολογισµός του µήκους του string που θα αντιγραφεί. - Δεν κάνετε έλεγχο αποτυχίας της malloc. - H αντιγραφή του string είναι λάθος. Χρησιµοποιείτε strcpy, ενώ θα έπρεπε να χρησιµοποιείτε strncpy. Η αντιγραφή µε strcpy αντιγράφει και πέρα από τα όρια της µνήµης που έχετε δεσµεύσει προηγούµενα. - Σωστά επιστρέφετε NULL σε περίπτωση που δεν βρείτε το string FAIL Συνάρτηση εκτύπωσης - Ενώ αποθηκεύετε τις NULL τιµές στον πίνακα κατά την εκτύπωση δεν τσεκάρετε αν η τιµή είναι NULL µε αποτέλεσµα να προκαλείτε segmentation fault. - Δεν εκτυπωνετε διπλά εισαγωγικά πριν και µετά από κάθε συµβολοσειρά. - Δεν υλοποιήθηκε. Main - Σωστή ανάγνωση string και χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Δεν ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' πράγµα που είναι λάθος. - Δεν ελέγχετε εάν βγαίνετε εκτός των ορίων του πίνακα (i>array_size). - Καλή στοίχιση του κώδικα. - Καλά ονόµατα µεταβλητών και ο ορισµός σταθερών. - Σωστός ορισµός συναρτήσεων αλλά δεν χρησιµοποιήσατε const char για τη συµβολοσειρά που περνάτε σαν όρισµα στη συνάρτηση που δηµιουργεί τα αντίγραφα. - Σωστή χρήση της malloc. - Σωστός ο έλεγχος για τη malloc Οριακό PASS - Σωστός ο τρόπος που διατρέχετε τον πίνακα για την εκτύπωσης. - Σωστή η απελευθέρωση µνήµης. - Η συνθήκη για την επανάληψη του βήµατος δεν είναι σωστή µε αποτέλεσµα ο κώδικας να "κολλάει" στο µήνυµα "More (y/n)?". - Σωστή η χρήση της sprintf. - Η έξοδος του προγράµµατος δεν είναι σωστή. Page 16

17 new_string: - Σωστοί παράµετροι. - Σωστή δέσµευση µνήµης. - Η strncpy δεν τοποθετεί το '\0', οποτε έπρεπε να το βάλετε εσείς. str_print: - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων PASS free_str: main: - Σωστή ανάγνωση δεδοµένων και χρήση sprintf. - Σωστή κλήση συναρτήσεων. - Το πρόγραµµα παίρνει καινούριο string για οποιαδήποτε χαρακτήρα εκτός του n. Θα έπρεπε να ξαναζητάει µόνο για y PASS - Να έχετε πιο καλά ονόµατα µεταβλητών και σναρτήσεων. - Η υλοποίηση της συνάρτηση επεξεργασίας του string είναι σωστή και έχετε βάλει const στις παραµέτρους της συνάρτησης και συγκεκριµένα στο string που περνάτε σαν όρισµα. - στην malloc που χρησιµοποιήσατε έχετε αφήσει χώρο για το \0. Σωστά βάζετε το \0 στο τέλος. - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - σωστά ελέγχετε αν αποτυγχάνει η malloc. - στον πίνακα απο strings, σε περίπτωση που δεν βρίσκετε κάποιον χαρακτήρα σωστά δεν αφήνετε τη θέση του πίνακα κενή - H συνάρτηση που εκτυπώνει είναι σωστή - H συνάρτηση απελευθέρωσης της µνήµης είναι σωστή. - σωστά χρησιµοποιήσατε το formatstring - η κλήση των συναρτήσεων για την εκτύπωση είναι σωστή - η συνθήκη για έξοδο είναι αυτή σωστή. Page 17

18 Άσκηση Γενικά - Καλή επιλογή ονοµάτων µεταβλητών και συναρτήσεων. Συνάρτηση επεξεργασίας string (new_string) - Σωστός εντοπισµός της θέσης του χαρακτήρα µε χρήση της strchr και σωστός έλεγχος εάν η strchr αποτυγχάνει. - Λάθος υπολογισµός του απαραίτητου µεγέθους δέσµευσης µνήµης. Το σωστό είναι size+1 υπολογίζοντας και τον χαρακτήρα '\0' στο τέλος του string. - Σωστή δέσµευση µνήµης µέσω της malloc και σωστός έλεγχος αποτυχίας της malloc. - Σωστή αντιγραφή µε χρήσης της strncpy. - Παραλείπετε να προσθέσετε τον χαρακτήρα '\0' στον τέλος του string που αντιγράψατε. H strncpy δεν προσθέτει τον χαρακτήρα '\0' στο τέλος. Συνάρτηση εκτύπωσης - Σωστή υλοποίηση µε δεδοµένο ότι δεν αποθηκεύετε την επιστρεφόµενη τιµή NULL στον πίνακα µέσα στη main(). - Σωστή η χρήση διπλού pointer αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση. - Σωστή υλοποίηση µε δεδοµένο ότι δεν αποθηκεύετε την επιστρεφόµενη τιµή NULL στον πίνακα µέσα στη main(). - Σωστή η χρήση διπλού pointer αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση PASS Main - Σωστή ανάγνωση string και χαρακτήρα µε χρήση του format_string. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. - Σωστή αύξηση της µεταβλητής i (µετρητής) υπό συνθήκη. - Σωστή κλήση της συνάρτησης εκτύπωσης. - Σωστά ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'y' ή 'n' και ξαναρωτάτε τον χρήστη. - Σωστά ελέγχετε στο while εάν βγαίνει το πρόγραµµα εκτός των ορίων του πίνακα και τερµατίζετε την ανακύκλωση. - Σωστά καλείτε τη συνάρτηση απελευθέρωσης µνήµης πριν τον τερµατισµό του προγράµµατος. Άσκηση main() - Σωστά δηµιουργείτε το sruct. - Σωστά ορίζετε τον πίνακα από structs. - Δεσµεύετε µνήµη για κάθε ανακλύκλωση ανεξάρτητα αν αυξήθηκε το i ή όχι. Eάν δεν αυξηθεί το i δεσµεύετε µνήµη δύο ή περισσότερες φορές για την ίδια µεταβλητή χωρίς να απελευθερώνετε την παλιά. - ptr[i]->new=(char*)malloc(str_size*sizeof(char)); Ξαναδεσµεύετε µνήµη που ήδη δεσµεύσατε µέσα στη συνάρτηση new_string(). - ptr[i]->new=new; Η συγκεκριµένη εντολή δεν συνιστά αντιγραφή αλλά ανάθεση pointer. Λειτουργεί γιατί έχετε αναθέσει µνήµη µέσα στη συνάρτηση new_string(). Η malloc της προηγούµενης γραµµής είναι λάθος και δηµιουργεί memory leak στο πρόγραµµα σας. Συνάρτηση εκτύπωσης - Σωστή η χρήση διπλού pointer σε struct αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση. - Σωστή υλοποίηση µε δεδοµένο ότι δεν αποθηκευετε την επιστρεφόµενη τιµή NULL στον πίνακα µέσα στη main(). - Σωστή η χρήση διπλού pointer σε struct αντί για πίνακα δεικτών ως παράµετρο στη συνάρτηση. Ξαναδείτε τη σειρά της δυναµικής δέσµευσης µνήµης για την 2η Άσκηση. Συνιστάται το αρχικό διάβασµα να µην το κάνετε σε συνδυασµό µε δυναµική δέσµευση µνήµης αλλά στατικά. Εφόσον αποφασίσετε ότι θέλετε αν αποθηκεύσετε το string στον πίνακα τότε προχωρήστε στις απαραίτητες δεσµεύσεις µνήµης. Page 18

19 02189 FAIL lab12grades Στη main: - Έπρεπε να αρχικοποιήσετε το i=0. - Η printf("enter string:"); έπρεπε να είναι πριν την scanf! Έτσι όπως το έχετε κάνει δεν περιµένει να διαβαστεί νέα συµβολοσειρά και µετά ο χαρακτήρας. - Αφήνουµε ΚΕΝΟ στην scanf (για να µη διαβάσει το enter) γραµµή 52 και 60 ' %c'! - Αν τα προσέχατε αυτά θα εκτελούνταν PASS FAIL οριακό PASS - Στη malloc έπρεπε να πολλαπλασιάζεται µε length +1, το + 1 είναι για τη θέση του \0. - Την free_array ενώ την υλοποιήσατε σωστά, δεν την καλείτε και την έχετε ως σχόλια. -Σωστή στοίχιση, δεν έχετε καλά ονόµατα παραµέτρων. -Σωστή υλοποίηση της συνάρτησης επεξεργασίας του string αλλά δε δεσµεύετε θέση για το /0 -Δεν ελέγχετε άµα αποτύχει η malloc να επιστρέφει NULL συνάρτηση. -Σωστή συνάρτηση εκτύπωσης και απελευθέρωσης µνήµης -Σωστή κλήση συναρτήσεων. -Σωστή ανάγνωση δεδοµένων και συνθηκών loop. - Το compile του προγράµµατος σας αποτελείται απο warnings! - Το πρόγραµµα σας µε την έκκινηση δίνει segmentation fault! Οφείλεται στο γεγονός ότι το format_string το έχετε δηλωµένο σαν char kai όχι σαν char format_string[format_size] Το πρόγραµµα σας πάσχει και από άλλα προβλήµατα που προκαλούν και παρακάτω segmentation fault ακόµη και αν διορθωθεί το λάθος σας µε το format_string - Η κλήση της printing_function θα έπρεπε να γίνει πριν την εσωτερική do while ώστε να εκτυπωθεί και η 1η φορά εκτέλεσης. - Στην "κοµµένη" συµβολοσειρά εµφανίζεται και ο διαχωριστικός χαρακτήρας. Αυτό συµβαίνει γιατί προσθέσατε +1 (για το '\0') στην strndup. Η strndup, αντιγράφει το πλήθος των χαρακτήρων που παίρνει ως δεύτερο όρισµα και τοποθετεί µόνη της το \0 στο τέλος. - Επίσης, η strndup δεσµεύει τόσο χώρο όσο έχει το str_array, ανεξαρτήτως πόσους χαρακτήρες θα αντιγράψει. Αυτό δε το θέλουµε γιατί δεσµεύουµε άσκοπα µνήµη. spacer: - Το string έπρεπε να το παιρνάτε ως const. - Αρχικά θα έπρεπε να κοιτάτε αν έχει βρεθεί ο χαρακτήρας µε strchr και µετά να κάνετε malloc. - Δε έχετε δεσµεύσει χώρο για το '\0'. - Η strncpy δεν τοποθετεί το '\0', οποτε έπρεπε να το βάλετε εσείς. - Στη strncpy δε χρειάζεται το sizeof(char) PASS print: - Σωστή υλοποίηση και σωστά αποφεύγετε την εκτύπωση NULL θέσεων. free_func: main: - Σωστή ανάγνωση δεδοµένων και χρήση sprintf. - Σωστή κλήση συναρτήσεων. - Σωστό loop FAIL - Σωστά ονόµατα µεταβλητών και συναρτήσεων. -Δεν έχετε πολύ καλά ονόµατα µεταβλητών -Δεν υλοποιείτε σωστά τη συνάρτηση επεξεργασίας του string επίσης η παράµετρος char * έπρεπε να είναι const -Δεν ελέγχετε άµα αποτύχει η malloc να επιστρέφει NULL συνάρτηση. -Στη συνάρτηση εκτύπωσης δεν τυπώνετε τα στοιχεία όπως τα ζητάει η εκφώνηση µέσα σε εισαγωγικά, επίσης δεν κάνετε έλεγχο για να παρακάµψετε τυχόν NULL εισαγωγές. -Δεν υλοποιείτε τη συνάρτηση απελευθέρωσης µνήµης -Δεν καλείτε στο σωστό σηµείο τη συνάρτηση εκτύπωσης -Δεν έχετε σωστές συνθήκες loop Page 19

20 02197 FAIL PASS οριακό PASS οριακό PASS PASS lab12grades - Η υλοποίηση της συνάρτηση επεξεργασίας του string είναι σωστή αλλά δεν έχετε βάλει const στις παραµέτρους της συνάρτησης και συγκεκριµένα στο string που περνάτε σαν όρισµα. - στην malloc που χρησιµοποιήσατε, έχετε αφήσει χώρο για το \0 και στο τέλος το προσθέτετε - σωστά επιστρέφετε NULL σε περίπτωση που δεν βρει τον χαρακτήρα - σωστά ελέγχετε αν αποτυγχάνει η malloc. - H συνάρτηση που εκτυπώνει είναι σωστή - H συνάρτηση απελευθέρωσης της µνήµης είναι σωστή. - σωστά χρησιµοποιήσατε το formatstring - δεν έχετε ολοκληρώσει την άσκηση ενώ έχετε φτιάξει τις συναρτήσεις, δεν τις καλείτε πουθενά. - δεν καλείτε σωστά τη συνάρτηση που επιστρέφει το split string - δεν κάνει compile το πρόγραµµα σας - Καλή στοίχιση του κώδικα. - Καλά ονόµατα µεταβλητών και ο ορισµός σταθερών. - Σωστός ορισµός συναρτήσεων και χρήση του const. - Στη malloc δεν κάνετε δέσµευση για το '\0'. - Σωστός ο έλεγχος για τη malloc. - Σωστός ο τρόπος που διατρέχετε τον πίνακα για την εκτύπωσης. - Σωστή η απελευθέρωση µνήµης. - Σωστές οι συνθήκες για τα 2 loops. - Σωστή η χρήση της sprintf. - Η έξοδος του προγράµµατος είναι σωστή. -Σωστή στοίχιση σωστά ονόµατα µεταβλητών εκτός του str1 -Σωστοί παράµετροι και υλοποίηση της συνάρτησης επεξεργασίας του string αλλά δε δεσµεύετε θέση για το /0 -Δεν ελέγχετε άµα αποτύχει η malloc να επιστρέφει NULL συνάρτηση. -Δεν υλοποιείτε σωστά τη συνάρτηση εκτύπωσης. -Σωστή η συνάρτηση απελευθέρωσης µνήµης αλλά δεν την καλείτε στο σωστό σηµείο. -Δεν έχετε σωστές συνθήκες loop - Καλά σχόλια. - Καλά ονόµατα µεταβλητών. - Το µέγεθος 13 για το formatstring θα έπρεπε να είναι σταθερά. - Η scanf δεν διαβάζει τον χαρακτήρα '\n' οπότε ήταν περιττό να προσπαθείτε να τον εξαλείψετε. - Σωστό µέγεθος για την δέσµευση του νέου string. - Σωστή χρήση συναρτήσεων του string.h για την δηµιουργία του νέου string. - Λάθος, για ακέραιο 0 το πρόγραµµά σας ακόµη εκτυπώνει 1 φορά το παλίο string στον καινουργιό. - Λάθος print (Είναι δεύτερο εργαστήριο που δεν καταφέρνετε να εκτυπώσετε σωστά τους χαρακτήρες ""...!). - Σωστή αποδέσµευση µνήµης. - Καλά σχόλια, καλός θα ήταν και ο επιµέρους σχολιασµός των συναρτήσεων. - Καλά ονόµατα µεταβλητών. - Σωστές σταθερές. - Σωστή χρήση scanf. - Σωστό µέγεθος για την δέσµευση του νέου string. - Σωστή χρήση συναρτήσεων του string.h για την δηµιουργία του νέου string. - Σωστή εκτύπωση κενού string, για ακέραιο 0. - Σωστή έξοδος. - Σωστή αποδέσµευση µνήµης. - Καλή δουλειά. Page 20

21 02204 FAIL PASS PASS PASS lab12grades - Η επέκταση του αρχείου έπρεπε να ήταν.tgz - Στο loop αρχικοποίησης στη main µπερδεύετε δύο τελείως διαφορετικά πράγµατα. Το ARRAY_SIZE δεν έχει καµία σχέση µε το STR_SIZE - Το µέγεθος του format string δεν έχει σχέση µε το STR_SIZE. Στην sprintf έπρεπε να είχατε STR_SIZE αντί για ARRAY_SIZE γιατί αυτό είναι το µέγεθος του string πουτ θα διαβαστεί (word_str). - Αυτό που κάνετε αµέσως µετά µε το \0 σας βγάζει πιθανώς εκτός των ορίων του word_str - Σωστή κλήση της copy. Στην print_array έπρεπε να περνάτε το µέγεθος του πίνακα, όχι τον αριθµό που έδωσε ο χρήστης. - Σωστή υλοποίηση του κοµµατιου µε το y/n - Το i++ έπρεπε να γίνεται αµέσως µετα την εισαγωγή του string στον πίνακα, και πριν την εκτύπωση. - Λάθος µέγεθος στη malloc. Το sizeof(str_size) τι είναι? - Για να λειτουργήσει η strcat σωστά την πρώτη φορά, έπρεπε να έχει \0 στην πρώτη θέση του copied_str - Στην print_array δεν εκτυπώνετε \n, κατά τα άλλα είναι οκ - Σωστή free_array - Καλά σχόλια, καλός θα ήταν και ο επιµέρους σχολιασµός των συναρτήσεων. - Καλά ονόµατα µεταβλητών. - Λάθος, το format για την scanf θα έπρεπε να το είχατε κατασκεύασει δυναµικά µε sprintf. - Σωστή χρήση scanf. - Πολύπλοκη λογική, για την είσοδο συνέχειας ή εξόδου από τον χρήστη. Μπορεί να υλοποιηθεί πολύ πιο απλά. - Λάθος µέγεθος για την δέσµευση του νέου string. Παραλείψατε ένα έξτρα χαρακτήρα για το τέλος του string ('\0'). Το οτι δουλεύει είναι καθαρά θέµα υλοποίησης του linux. - Λάθος χρήση του strcat αφού δεν έχετε εισάγε στην αρχή του νέου string τον χαρακτήρα '\0'. Δεύτερη φορά που σταθήκατε τυχεροί! - Σωστή εκτύπωση κενού string, για ακέραιο 0. - Σωστή έξοδος. - Σωστή αποδέσµευση µνήµης. Γενικά πολύ καλή δουλειά. - Καλή στοίχιση του κώδικα. - Καλά ονόµατα µεταβλητών και ο ορισµός σταθερών. - Σωστός ορισµός συναρτήσεων και χρήση του const. - Σωστή χρήση της malloc. - Σωστός ο έλεγχος για τη malloc. - Σωστός ο τρόπος που διατρέχετε τον πίνακα για την εκτύπωσης αλλά επρεπε να τον εκτυπώνετε κάθε φορά που ο χρήστης έδινε µία νέα συµβολοσειρά. - Σωστή η απελευθέρωση µνήµης. - Σωστές οι συνθήκες για τα 2 loops. - Καλή η χρήση της fgets. - Η έξοδος του προγράµµατος είναι σωστή. eksodos(): - Το όνοµα της συνάρτησης είναι παραπλανητικό. Καλείται όταν τερµατίζει το πρόγραµµα; Ένα καλύτερο όνοµα θα µπορούσε να είναι το 'ektypwsi'. main(): - Κακή στοίχιση στο εµφωλευµένο do-while. - Στην eksodos() η τιµή του counter δηλώνει τη θέση της τελευταίας έγκυρης καταχώρησης (i<=counter), ενώ στη clean_memory() η τιµή του counter δηλώνει το πλήθος των έγκυρων στοιχείων (i<counter). Να προσπαθείτε να φτιάχνετε όσο το δυνατόν συνεπείς διεπαφές µεταξύ των επαναχρησιµοποιούµενων υποµονάδων του προγράµµατός σας. Page 21

22 02210 FAIL FAIL lab12grades - Στη return_str : - στη malloc έπρεπε να δεσµεύατε ένα ακόµη byte για το \0 - αν το size είναι 0 η συνάρτηση πρέπει να επιστρέφει το κενό string "" και όχι NULL - δεν κατασκευάζετε το string. - Στη find_valid_strings (η οποία έχει παραπλανητικό όνοµα): - Το *ptr_array δείχνει πάντα στο πρώτο string του πίνακα - Στη free_memoth - Έπρεπε να περνάτε τον πίνακα από pointers, όχι ένα string - Στη main: - Όταν διαβάζουµε string µε scanf πρέπει πάντα να βάζουµε περιορισµό µεγέθους στο format string! - Η θέση ARRAY_SIZE που προσπελάζετε είναι εκτός των ορίων του πίνακα. - Το compile του προγράµµατος σας αποτελείται απο warnings! - Το πρόγραµµα σας µε την έκκινηση δίνει segmentation fault! Οφείλεται στο γεγονός ότι το format_string το έχετε δηλωµένο σαν char kai όχι σαν char format_string[format_size] Το πρόγραµµα σας πάσχει και από άλλα προβλήµατα που προκαλούν και παρακάτω segmentation fault ακόµη και αν διορθωθεί το λάθος σας µε το format_string Γενικά - Αποδεκτή επιλογή ονοµάτων µεταβλητών και συναρτήσεων Οριακό PASS FAIL οριακό PASS Συνάρτηση επεξεργασίας string - Λάθος µήκος δεσµευµένης µνήµης. Δεν υπολογίζετε το '\0' που χρειάζεται το string σας. - Σε περίπτωση που αποτυγχάνει η strchr επιχειρείτε στη συνέχεια να κάνετε malloc πράγµα που µε µεγάλη πιθανότητα επίσης αποτυγχάνει. Τελικά καταλήγετε µε λάθος µήνυµα προς τον χρήστη. Το ορθό θα ήταν η ενότητα του else if να προηγείται της ενότητας του if. - Σωστή χρήση strncpy. - Η εντολή nstring[ptr_chr-string]='\0'; γράφει εκτός των ορίων της µνήµης που έχετε δεσµεύσει. Συνάρτηση εκτύπωσης - Η συνάρτηση εκτύπωσης αν και ελέγχει για NULL θα έπρεπε να συνεχίζει στην επόµενη ανακύκλωση και όχι να σταµατά µε break. - Δεν εκτυπώνετε διπλά εισαγωγικά πριν και µετά από κάθε συµβολοσειρά. Main - Η αύξηση του µετρητή i στην αρχή του while() είναι λάθος. - Σωστή ανάγνωση string και χαρακτήρα. - Σωστή κλήση της συνάρτησης επεξεργασίας της συµβολοσειράς και αποθήκευση της επιστρεφόµενης τιµής της. Δεν ζητείται να εκτυπώνετε το string που αποθηκεύετε. - Σωστή κλήση της συνάρτησης εκτύπωσης αν και δεν εκτυπώνει ποτέ τίποτε!!! (Γιατί?) - Δεν ελέγχετε εάν ο χρήστης δώσει κάτι διαφορετικό από 'ν' πράγµα που είναι λάθος. - Σωστά ελέγχετε εάν βγαίνετε εκτός των ορίων του πίνακα. - Το όνοµα first_function δεν είναι περιγραφικό - Δεν αφαιρείτε το \n που διαβάζει η fgets, άµεσα. Φαίνεται να το κάνετε στην first_function (που δεν είναι δουλειά της) και χωρίς να ελέγξετε αν όντως υπάρχει. - Λάθος µέγεθος στη malloc. - Η πρώτη θέση ενός πίνακα είναι η 0, όχι η 1 - Αν ο χρήστης δώσει κάτι διαφορετικό του y/n, πρέπει να ξαναζητάτε χαρακτήρα - Λάθος αποδέσµευση µνήµης - Σωστή κλήση συναρτήσεων - Λάθος υλοποίηση print - Η κλήση της printing_function θα έπρεπε να γίνει πριν την εσωτερική do while ώστε να εκτυπωθεί και η 1η φορά εκτέλεσης. - Στην "κοµµένη" συµβολοσειρά εµφανίζεται και ο διαχωριστικός χαρακτήρας. Αυτό συµβαίνει γιατί προσθέσατε +1 (για το '\0') στην strndup. Η strndup, αντιγράφει το πλήθος των χαρακτήρων που παίρνει ως δεύτερο όρισµα και τοποθετεί µόνη της το \0 στο τέλος. - Επίσης, η strndup δεσµεύει τόσο χώρο όσο έχει το str_array, ανεξαρτήτως πόσους χαρακτήρες θα αντιγράψει. Αυτό δε το θέλουµε γιατί δεσµεύουµε άσκοπα µνήµη. Page 22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Μονοδιάστατοι Πίνακες (tables) Μια συλλογή μεταβλητών ίδιου τύπου οι οποίες είναι αποθηκευμένες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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;

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Φορμαρισμένη είσοδος και έξοδος Αλφαριθμητικά Δείκτες Προσοχή: Απαγορεύεται αυστηρά η χρήση goto. Πριν ξεκινήσετε Πηγαίνετε στο

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

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

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

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

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

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

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

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

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

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

lab4grades Παρακαλούµε µη γράφετε σχόλια στα ελληνικά!

lab4grades Παρακαλούµε µη γράφετε σχόλια στα ελληνικά! 02103 - Κατα σύµβαση οι σταθερές είναι δηλωµένες µε ΚΕΦΑΛΑΙΑ - Λάθος χρήση της scanf. Το γεγονός ότι η scanf είναι αρκετά "έξυπνη" δεν σηµαίνει ότι το µοτίβο που χρησιµοποιήσατε είναι σωστό. Έπρεπε να

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι: printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι: %d για ακεραίους (int) %lf για κινητής υποδιαστολής διπλής ακρίβειας (double) %f για κινητής υποδιαστολής απλής ακρίβειας

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

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Στόχοι Συµβολοσειρές, πίνακες Πριν ξεκινήσετε Βήµα 1: Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα σε αυτόν ένα φάκελο µε όνοµα

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Στόχοι Συµβολοσειρές, πίνακες Πριν ξεκινήσετε Βήµα 1: Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα σε αυτόν ένα φάκελο µε όνοµα

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

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

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

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

C: Από τη Θεωρία στην Εφαρμογή

C: Από τη Θεωρία στην Εφαρμογή Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 4η σειρά ασκήσεων. Κοζάνη, 1 Νοεμβρίου 2007. Πρόγραμμα p4-1 (μεταγλώττιση και εκτέλεση) Πολύ απλό το πρώτο, για προθέρμανση! Πριν πατήσετε enter

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

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

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

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