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

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: όλα οκ, αλλά καθυστερήσατε στην αποστολή. Να προσέχετε να στέλνετε τις ασκήσεις σας εντός της προθεσµίας. : 449 οριακό - Λάθος στους υπολογισµούς. Σε κάθε µία επανάληψη πρέπει να ανανεώνετε την τιµή της µεταβλητής apotelesma: apotelesma = apotelesma << 1 κι όχι να τη θέτετε από την αρχή : apotelesma = number << 1; Επίσης, το apotelesma έπρεπε να είναι ακέραιος!! - Το πρόγραµµα αφήνει το χρήστη να δώσει περισσότερα bits από όσα χωράει µια ακέραια µεταβλητή. - Γενικά καλή στοίχιση, σας ξέφυγε ένα σηµείο µόνο. Το άγκιστρο πριν το while έπρεπε να είναι ένα tab πιο αριστερά, και το while έπρεπε να είναι στην ίδια γραµµή. Όπως το έχετε τώρα φαίνεται σαν το while(1) να µην έχει σχέση µε τον παραπάνω κώδικα. - Καλά σχόλια : - Δεν κάνει compile, µάλλον από απροσεξία: Έχετε = αντί για κάποιου είδους σύγκριση (πιθανώς!= ). Να προσέχετε τέτοια λάθη. - Οι printf δεν εµφανίζονται στο σωστό σηµείο και δεν εκτυπώνουν ακριβώς τα ζητούµενα. Φαίνεται να έχετε µεγάλη δυσκολία στο αλγοριθµικό κοµµάτι των ασκήσεων. Θα ήταν καλό να µιλήσετε µε κάποιον από τους διδάσκοντες για το πώς να βολέψετε τις απαιτήσεις των µαθηµάτων και την εργασία σας. 451 οριακό Διαδικαστικά: όλα οκ, αλλά καθυστερήσατε στην αποστολή. Να προσέχετε να στέλνετε τις ασκήσεις σας εντός της προθεσµίας. : - Λάθος στους υπολογισµούς. Σε κάθε µία επανάληψη πρέπει να ανανεώνετε την τιµή της µεταβλητής apotelesma: apotelesma = apotelesma << 1 κι όχι να τη θέτετε από την αρχή : apotelesma = number << 1; Επίσης, το apotelesma έπρεπε να είναι ακέραιος!! - Το πρόγραµµα αφήνει το χρήστη να δώσει περισσότερα bits από όσα χωράει µια ακέραια µεταβλητή. - Γενικά καλή στοίχιση, σας ξέφυγε ένα σηµείο µόνο. Το άγκιστρο πριν το while έπρεπε να είναι ένα tab πιο αριστερά, και το while έπρεπε να είναι στην ίδια γραµµή. Όπως το έχετε τώρα φαίνεται σαν το while(1) να µην έχει σχέση µε τον παραπάνω κώδικα. - Καλά σχόλια : - Δεν κάνει compile, µάλλον από απροσεξία: Έχετε = αντί για κάποιου είδους σύγκριση (πιθανώς!= ). Να προσέχετε τέτοια λάθη. - Οι printf δεν εµφανίζονται στο σωστό σηµείο και δεν εκτυπώνουν ακριβώς τα ζητούµενα. Φαίνεται να έχετε µεγάλη δυσκολία στο αλγοριθµικό κοµµάτι των ασκήσεων. Θα ήταν καλό να µιλήσετε µε κάποιον από τους διδάσκοντες για το πώς να βολέψετε τις απαιτήσεις των µαθηµάτων και την εργασία σας. 476 FAIL Στείλατε την εργασία του προηγούµενου εργαστηρίου. 486 FAIL Στείλατε την εργασία του προηγούµενου εργαστηρίου. Page 1

2 1733 Οριακό Γενικά πολύ καλή δουλειά. - Πολύ καλή η στοίχισή σας. Καλό είναι να αφήνετε ένα κενό µετά το include. - Σωστά χρησιµοποιήσατε sizeof για να βρείτε το µέγεθος που καταλαµβάνει ο ακέραιος στη µνήµη. - Σωστές οι πράξεις και ο σχηµατισµός του for loop. Μια παρατήρηση είναι ότι βάλατε µια σηµαντική πράξη να γίνεται µέσα στο printf ενώ θα µπορούσατε να έχετε µια ανάθεση σε µια µεταβλητή έτσι ώστε να είναι πιο ξεκάθαρος ο κώδικάς σας. Ο τρόπος επίλυσης έγινε χωρίς τη χρήση if κάτι που δεν µπορούσε κάποιος να το δει πολύ εύκολα. Το µόνο πρόβληµα που έχει η λύση σας είναι ότι όταν ο αριθµός που δίνει ο χρήστης είναι αρνητικός, θα εµφανίζεται στην έξοδο ένα - µπροστά από τη δυαδική αναπαράσταση. Ο λόγος που συµβαίνει αυτό έχει να κάνει µε την επέκταση προσήµου που προκαλεί η δεξιά ολίσθηση. Το πρόβληµα θα λυνόταν αν δηλώνατε τη µάσκα ως unsigned int - Σωστή η εκτύπωσή σας µε εξαίρεση το - που εµφανίζεται στους αρνητικούς αριθµούς. - Δεν υπάρχουν σχόλια. - Σωστά έχετε βάλει επαναληπτικό έλεγχο για το αν η τιµή που δίνει ο χρήστης είναι στα όρια που ζητάµε αλλά κάνατε το λάθος να µην βάλετε την scanf µέσα σε αυτή την επανάληψη µε αποτέλεσµα να µπαίνει σε ατέρµονο loop όταν κάποιος δίνει µια λανθασµένη τιµή. - Γενικά η σκέψη πίσω από τη µη ολοκληρωµένη λύση σας είναι σωστή αλλά χρειάζονταν κάποια επιπλέον στοιχεία για να δουλέψει. Έχετε χρησιµοποιήσει τη µια µεταβλητή counter για να ελέγχετε αν βρήκε κάποιον πρώτο αριθµό (παρεµπιπτόντως το όνοµα είναι τελείως λάθος. Δείτε το φυλλάδιο µε τίτλο "Αρχές καλού προγραµµατισµού" και συγκεκριµένα σελίδα 8), αλλά δεν τον µηδενίζετε µεταξύ του εσωτερικού και εξωτερικού loop µε αποτέλεσµα ενώ βρίσκει σωστά τον πρώτο πρώτο αριθµό να µην µπορεί να αναγνωρίσει τους υπολοίπους. Δείτε τη λύση για περισσότερες λεπτοµέρειες και πως αρχικοποιεί το παραπάνω flag µέσα στο εσωτερικό loop. - Τονίζω και πάλι να προσέχετε τα ονόµατα των µεταβλητών που δίνετε για να µπορείτε και εσείς να ξεχωρίζετε τη λειτουργία τους αλλά και εµείς για ποιο λόγο τις έχετε βάλει. Διαδικαστικά: Σωστά αυτή τη φορά, αλλά πάλι στείλατε µε καθυστέρηση. Πρέπει να στέλνετε την άσκηση εντός της προθεσµίας οριακό : - Λάθος τύπος για το dig. Η άσκηση ζητούσε να το δηλώσετε ως χαρακτήρα. Το δηλώσατε και το διαβάζετε ως ακέραιο, αλλά µετά το συγκρίνετε µε '$'. Δεν υπάρχει περίπτωση να λειτουργήσει σωστά - Ο τελεστής sizeof επιστρέφει πλήθος bytes. Εµείς θέλουµε πλήθος bits εποµένως έπρεπε να το πολλαπλασιάσετε µε 8. - Λάθος πράξεις. Και στις δύο περιπτώσεις έπρεπε να κάνετε αριστερό shift (ήταν και στον πίνακα!) κι απλά στην περίπτωση του 1 να προσθέτετε κι 1. - Το πρόγραµµα εκτυπώνει Unacceptable value ακόµη κι αν το size είναι µεγαλύτερο του maxsize. Δεν θα έπρεπε σε αυτή την περίπτωση. - Το πρόγραµµα δεν εκτυπώνει κάποιο αποτέλεσµα. - Μέτρια ονόµατα µεταβλητών. Μην κόβετε λέξεις. Το dig σηµαίνει σκάβω και δεν έχει καµία σχέση µε το digit που µάλλον θέλατε σε αυτό το σηµείο. - Δεν υπάρχουν σχόλια : - Καλή προσπάθεια, αλλά δεν χρησιµοποιείτε σωστά το flag. Έπρεπε να το κάνετε 1 ανάµεσα στα δύο for κι όχι στο else που το έχετε. Μπορείτε να σκεφτείτε γιατί? Αν όχι, ρωτήστε τους διδάσκοντες - Πολύ άσχηµα ονόµατα µεταβλητών. Τι είναι το s? Τι πληροφορία δίνει το όνοµα flag/ - Μη συνεπής στοίχιση. Αποστολή οκ 1779 οριακό -Δεν χρησιµοποιείτε καθόλου σχόλια -Σωστές πράξεις -Πολύ σωστά χρησιµοποιείτε τις εντολές break και continue -Δεν χρησιµοποιείτε sizeof για να βρείτε το µέγεθος του int έτσι ώστε να υλοποιήσετε να τερµατίζεται αυτόµατα το πρόγραµµα αν δοθούν περισσότερα ψηφία από όσα bits έχει ένας ακέραιος στην αρχιτεκτονική που εκτελείται -Για να τυπώνεται µε κεφαλαία ο αριθµός σε δεκαεξαδική µορφή όπως στα παραδείγµατα πρέπει να γράψετε 0x%X -Δεν χρησιµοποιείτε καθόλου σχόλια -Δεν υλοποιείτε σωστά τον αλγόριθµο -Δεν γράφετε σωστά το for, δεν γράφετε σωστά τη συνθήκη τερµατισµού του for: πώς είναι δυνατό ένας αριθµός να είναι ταυτόχρονα µικρότερος και µεγαλύτερος του 1? Page 2

3 Ανύπαρκτα σχόλια. - Το πρόγραµµα σας έχει ένα λογικό λάθος. Για την ακρίβεια εισάγει ένα µηδενικό στην αρχή (LS bit) του αριθµού, µετατοπίζοντας όλα τα bit του αριθµού αριστερά κατά 1. Για παράδειγµα εάν δώσετε τα bits 1111 αυτό που εκτυπώνει είναι 0x1e δηλ Δείτε γιατί το κάνει και διορθώστε το. - Ανύπαρκτα σχόλια. - Το πρόγραµµα σας υλοποιεί σωστά τον αλγόριθµο. - Το πρόγραµµα εκτυπώνει µετά από όλους τους αριθµούς χαρακτήρα αλλαγής γραµµής, που δεν συµβαδίζει µε τη ζητούµενη µορφή εκτύπωσης Ανύπαρκτα σχόλια. - Το πρόγραµµα σας έχει ένα λογικό λάθος. Για την ακρίβεια εισάγει ένα µηδενικό στην αρχή (LS bit) του αριθµού, µετατοπίζοντας όλα τα bit του αριθµού αριστερά κατά 1. Για παράδειγµα εάν δώσετε τα bits 1111 αυτό που εκτυπώνει είναι 0x1e δηλ Δείτε γιατί το κάνει και διορθώστε το. - Ανύπαρκτα σχόλια. - Το πρόγραµµα σας υλοποιεί σωστά τον αλγόριθµο. - Το πρόγραµµα εκτυπώνει µετά από όλους τους αριθµούς χαρακτήρα αλλαγής γραµµής, που δεν συµβαδίζει µε τη ζητούµενη µορφή εκτύπωσης. - Διαδικαστικά: 1 λεπτό εκπρόθεσµη - : Στοίχιση: Κακή στοίχιση. Δοκιµάστε να βάζετε τα άγκιστρα κάτω από τις εντολές που τα ξεκινάνε. -- Ορθότητα πράξεων: ΟΚ -- Χρήση sizeof: ΟΚ -- τερµατισµός επαναλήψεων: ΟΚ -- Εκτύπωση: Θα προτιµούσαµε τα δεκαεξαδικά να είναι κεφαλαία -- Γενικά Σχόλια: Πολύ καλά! Θα µπορούσατε να είχατε ίσως κάποιες σταθερές, πχ τα 8 bit και τα 4 bit για τα κενά - : -- Χρήση σταθερών: ΚΑΜΙΑ ΣΤΑΘΕΡΑ! τα όρια θα έπρεπε να ήταν σταθερές! -- Συνθήκες τερµατισµού επαναλήψεων: Θα µπορούσατε να κάνετε break στην εσωτερική for όταν βρίσκετε ότι είναι πρώτος (δείτε και τις λύσεις) -- Ανίχνευση αριθµού: OK -- Εκτύπωση: OK -- Γενικά σχόλια: Εδώ η στοίχιση είναι πολύ καλύτερη! 1903 η - Σωστά ονόµατα µεταβλητών. Το 0x80 θα µπορούσε να µπει σε σταθερά και να συνδυαστεί µε σχόλιο, δείτε παρακάτω. - Με εξαίρεση τη γραµµή 26, σωστή στοίχιση. - Σωστές πράξεις. - Αρκετά καλά σχόλια, ίσως χρειαζόταν κάτι σαν "Η µάσκα ελέγχει κάθε φορά το most significant bit". - Δεν χωρίσατε ανά 4 ψηφία τον αριθµό και δεν βάλατε tab µετά την άνω-κάτω τελεία στο "Bin format..." η - Καλή στοίχιση. - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Έλλειψη σχολίων στον κώδικα. - Σωστές πράξεις, θα µπορούσατε όµως όταν βρίσκατε 1 αριθµό που διαιρεί την είσοδο να τερµατίζετε την διαδικασία. Page 3

4 Δεν έχετε κάνει CC στα δικά σας Το συµπιεσµένο αρχείο δεν έχει την σωστή κατάληξη,.tar.gz αντί.tgz. ΑΣΚΗΣΗ 1 - Καθόλου σχόλια! - Σωστή υλοποίηση και δοµή του κώδικα. - Σωστή χρήση του sizeof(). - Σωστή έξοδος ΑΣΚΗΣΗ 2 - Καθόλου σχόλια! - Η συνθήκη ελέγχου στην while δεν είναι σωστή, δεν γίνεται ένας αριθµός να είναι ταυτόχρονα ΚΑΙ µικρότερος του 1 ΚΑΙ µεγαλύτερος του Επίσης δεν χρειάζονται τόσες παρενθέσεις! - Τα ονόµατα z, integer και integer1 δεν είναι περιγραφικά. - Σωστή λογική, αλλά γίνονται αρκετοί άσκοποι υπολογισµοί. Δεν χρειάζεται να βρείτε το πλήθος των διαιρετέων, µε το που βρείτε έναν ξέρετε αµέσως ότι ο αριθµός που ελέγχετε δεν είναι πρώτος και συνεχίζετε στον επόµενο (µε χρήση του break). - Αυτό 'που πάει στραβά' στην υλοποίηση είναι πως η µεταβλητή sum πρέπει να µηδενίζεται όταν πάµε να ελέγξουµε έναν καινούριο αριθµό (σε κάθε επανάληψη του εξωτερικού for). - Οι τιµές 1 και είναι σταθερές στο πρόγραµµα, οπότε καλό θα ήταν να τις ορίζατε κατάλληλα. Αποστολή οκ 1905 ' -Δεν χρησιµοποιείτε σχόλια στο κορµό του προγράµµατος -Πολύ κακή στοίχιση, δεν αφήνετε κενές γραµµές να διαχωρίζετε τα µέρη του προγράµµατος -Δεν υλοποιείτε σωστά τον αλγόριθµο -Για να τυπώσετε σωστά τον αριθµό στη δεκαεξαδική του µορφή όπως φαίνεται στα παραδείγµατα έπρεπε να γράψετε 0x%X -Δεν υπάρχουν καθόλου σχόλια -Κακή στοίχιση -Στον έλεγχο εισόδου έπρεπε να είχατε βάλει να βγάζει unacceptable value και για τον αριθµό 1 και για όχι µόνο µεγαλύτερο και µικρότερο. - Δεν είναι απαραίτητο το 1==1 στη συνθήκη. Μπορείτε να γράφετε απλά while(1) -Σωστή υλοποίηση αλγόριθµου 1908 η - Σωστά ονόµατα µεταβλητών. Το 0x80 θα µπορούσε να µπει σε σταθερά και να συνδυαστεί µε σχόλιο, δείτε παρακάτω. - Με εξαίρεση τη γραµµή 26, σωστή στοίχιση. - Σωστές πράξεις. - Αρκετά καλά σχόλια, ίσως χρειαζόταν κάτι σαν "Η µάσκα ελέγχει κάθε φορά το most significant bit". - Δεν χωρίσατε ανά 4 ψηφία τον αριθµό και δεν βάλατε tab µετά την άνω-κάτω τελεία στο "Bin format..." η - Καλή στοίχιση. - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Έλλειψη σχολίων στον κώδικα. - Σωστές πράξεις, θα µπορούσατε όµως όταν βρίσκατε 1 αριθµό που διαιρεί την είσοδο να τερµατίζετε την διαδικασία. - Διαδικαστικά: 6 λεπτά εκπρόθεσµη - : 1909 FAIL -- Στοίχιση: OK -- Ορθότητα πράξεων: Δεν υπολογίζεται σωστά ο binary αριθµός. Σοβαρό λάθος στη συνθήκη της for. -- Χρήση sizeof: Την χρησιµοποιείτε, αλλά το αποτέλεσµά της δεν το λαµβάνεται υπ' όψη -- Εκτύπωση: ΟΚ -- Γενικά Σχόλια: Αυτό που πάτε να κάνετε µε τη µάσκα δεν φαίνεται να δουλεύει. Γιατί ελέγχετε αν το bit είναι θετικό? Σίγουρα δεν λαµβάνετε υπ' όψη τον counter σας, ο οποίος µπορεί να πάρει οποιοδήποτε ακέραιο αριθµό, όχι µόνο 2 ή 4! Δεν έχετε κανένα σχόλιο στο πρόγραµµά σας! - : Compiler error. Ακόµα και χωρίς το error δεν τυπώνει κάτι που βγάζει νόηµα. Θα έπρεπε να είναι i % j (κοιτάξτε και τη λύση). Πολύ κακή στοίχιση. Αν το πρόγραµµα διαβαζόταν ίσως να το κοιτούσαµε πιο προσεκτικά. Page 4

5 1910 oριακό - Διαδικαστικά: 7 λεπτά εκπρόθεσµη. tar.gz αντί για tgz! Ξαναδιαβάστε τις οδηγίες αποστολής. - : -- Στοίχιση: Κακή στοίχιση λόγω των πολλών αλλαγών γραµµών µεταξύ εντολών. Δεν χρειάζονται τόσες πολλές! -- Ορθότητα πράξεων: Δε χρησιµοποιείτε σωστά το mask. Λείπει αρκετά µεγάλο κοµµάτι κώδικα. Κοιτάξτε τις λύσεις για το πως έπρεπε να το κάνετε. -- Χρήση sizeof: OK -- τερµατισµός επαναλήψεων: ΟΚ -- Εκτύπωση: Δεν τυπώνει κάτι που βγάζει νόηµα. -- Γενικά Σχόλια: Θα µπορούσατε να είχατε ίσως κάποιες σταθερές, πχ τα 8 bit και τα 4 bit για τα κενά - : -- Χρήση σταθερών: ΚΑΜΙΑ ΣΤΑΘΕΡΑ! Τα όρια θα έπρεπε να είναι σταθερές. -- Συνθήκες τερµατισµού επαναλήψεων: θα πρέπει να είναι < αντί για <= στην while επανάληψη (δείτε τι τυπώνετε στο Provide Integer! ). -- ανίχνευση αριθµού: ΟΚ -- εκτύπωση: ΟΚ -- Γενικά σχόλια: Πολύ άσχηµα ονόµατα µεταβλητών (x,y,s) πρέπει να τα κάνετε πιο περιγραφικά!. Για αύξηση δεικτών, δοκιµάστε και το y++ αντί για το y = y+1. Δεν έχει µεγάλη σηµασία όµως oριακό - Διαδικαστικά: 7 λεπτά εκπρόθεσµη. tar.gz αντί για tgz! Ξαναδιαβάστε τις οδηγίες αποστολής. - : -- Στοίχιση: Κακή στοίχιση λόγω των πολλών αλλαγών γραµµών µεταξύ εντολών. Δεν χρειάζονται τόσες πολλές! -- Ορθότητα πράξεων: Δε χρησιµοποιείτε σωστά το mask. Λείπει αρκετά µεγάλο κοµµάτι κώδικα. Κοιτάξτε τις λύσεις για το πως έπρεπε να το κάνετε. -- Χρήση sizeof: OK -- τερµατισµός επαναλήψεων: ΟΚ -- Εκτύπωση: Δεν τυπώνει κάτι που βγάζει νόηµα. -- Γενικά Σχόλια: Θα µπορούσατε να είχατε ίσως κάποιες σταθερές, πχ τα 8 bit και τα 4 bit για τα κενά - : -- Χρήση σταθερών: ΚΑΜΙΑ ΣΤΑΘΕΡΑ! Τα όρια θα έπρεπε να είναι σταθερές. -- Συνθήκες τερµατισµού επαναλήψεων: θα πρέπει να είναι < αντί για <= στην while επανάληψη (δείτε τι τυπώνετε στο Provide Integer! ). -- ανίχνευση αριθµού: ΟΚ -- εκτύπωση: ΟΚ -- Γενικά σχόλια: Πολύ άσχηµα ονόµατα µεταβλητών (x,y,s) πρέπει να τα κάνετε πιο περιγραφικά!. Για αύξηση δεικτών, δοκιµάστε και το y++ αντί για το y = y+1. Δεν έχει µεγάλη σηµασία όµως. Ορθή δηµιουργία φακέλου και αποστολή. : - Πολύ καλή δουλειά! - Σωστή χρήση του sizeof. - Ορθή υλοποίηση του αλγορίθµου. Έχετε ένα µικρό bug: Στο τελευταίο bit που θα δώσει ο χρήστης δεν εκτελείται η πράξη της προσαύξησης number=number+((input-'0')); γιατί η δοµή που ελέγχει τον τερµατισµό του loop αποτιµάται ως αληθής. Αυτό συµβαίνει µόνο όταν δώσει όλα τα bits (32 ή 16) και λύνεται εάν έχετε τον κώδικά σας ως εξής: 1913 number=number+((input-'0')); digits++; if (digits>=max) { break; } number=number<<1; - Σωστή µορφοποίηση εξόδου. : - Πολύ καλή δουλειά - Χρησιµοποιήστε σταθερές για τα όρια. Στο άνω όριο σας ξέφυγε ένα µηδενικό παραπάνω. - Ορθή υλοποίηση του αλγορίθµου. -Το flag product που έχετε θα µπορούσε να έχει πιο επεξηγηµατικό όνοµα πχ (is_product ή isproduct) Page 5

6 1914 η - Σωστά ονόµατα µεταβλητών, όµως η µεταβλητή mask είναι αχρείαστη. - Σωστές πράξεις. - Δεν έχετε σχόλια. - Σωστή µορφοποίηση εξόδου. η - Καλή στοίχιση, σωστά χωρίζετε τα διαφορετικά κοµµάτια του κώδικα αλλά 1 κενή γραµµή είναι αρκετή. - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Έλλειψη σχολίων. - Λάθος πράξεις αλλά κοντά στην σωστή λύση. Δείτε την προτεινόµενη λύση οριακό Αποστολή ΟΚ ΑΣΚΗΣΗ 1 - Λείπουν σχόλια στο σώµα του προγράµµατος. - Σωστή χρήση του sizeof(). - Στην έξοδο λείπει ο χαρακτήρας αλλαγής γραµµής και τα κενά ανά 4 bits. ΑΣΚΗΣΗ 2 - Δεν κάνει compile Διαδικαστικά Όλα ΟΚ 1917 : -Πολύ καλή στοίχιση -Πολύ καλό output του προγράµµατος -Πολύ καλά σχόλια -Πολύ σωστά χρησιµοποιείτε το sizeof(int) -Σωστοί υπολογισµοί -Σωστή εκτύπωση στο τέλος : -Πολύ καλή στοίχιση -Έπρεπε να χρησιµοποιήσετε σταθερές για τα όρια του εύρους ( ) -Σωστά ανιχνεύετε τους πρώτους αριθµούς. -Πολύ σωστή η εκτύπωση των αριθµών και το output του προγράµµατος. -Θα µπορούσατε να χρησιµοποιήσετε break; µέσα στο εσωτερικό loop όταν βρεθεί ο πρώτος αριθµός προκειµένου να µην γίνονται περισσότερες επαναλήψεις. Μπράβο!!! 1920 η - Λάθος µηνύµατά κατά την είσοδο. - Δεν έχετε σχόλια. - Σωστά ονόµατα µεταβλητών, η µάσκα όµως έπρεπε να είναι τύπου unsigned int γιατί αλλιώς κατά την ολίσθηση γίνεται επέκταση προσήµου και δεν έχει την τιµή που περιµένατε. - Σωστές πράξεις. - Δεν χωρίσατε ανά 4 ψηφία τον αριθµό και δεν βάλατε tab µετά την άνω-κάτω τελεία στο "Bin format..." η - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Λάθος στοίχιση. - Λάθος έλεγχος για τα όρια της εισόδου. Ο τελεστής & είναι το bitwise and και είναι διαφορετικός τελεστής από το && (λογικό and). Επίσης σε καµία περίπτωση δεν ήθελε and εδώ: δεν είναι δυνατό ένας αριθµός να είναι ταυτόχρονα και µικρότερος του 1 και µεγαλύτερος του Έλλειψη σχολίων στον κώδικα. - Σωστές πράξεις, θα µπορούσατε όµως όταν βρίσκατε 1 αριθµό που διαιρεί την είσοδο να τερµατίζετε την διαδικασία. Επίσης δεν χρειαζόταν να ελέγξετε τον αριθµό µε την µονάδα και τον εαυτό του. Page 6

7 Ορθή δηµιουργία φακέλου και αποστολή : - Δεν έχετε χρησιµοποιήσει το sizeof, µε αποτέλεσµα το πρόγραµµά σας να µην πληροί τις προϋποθέσεις για την αρχιτεκτονική του υπολογιστή. - Δεν ελέγχετε και την δεύτερη περίπτωση που µπορεί να τερµατίσει το πρόγραµµα, η οποία είναι να δώσει ο χρήστης το µέγιστο αριθµό από bits. Δείτε την λύση. - Σωστή µορφοποίηση εξόδου, σας λείπει ένα \n όταν εκτυπώνετε Unacceptable value. : - Χρησιµοποιήστε σταθερές για τα όρια. - Ορθή υλοποίηση του αλγορίθµου. - Στο if (multiplier*(multiplier+1) == meter) θα µπορούσατε να βάλετε ένα break εφόσον δεν υπάρχει παραπάνω από ένας συνδυασµός (δείτε την λύση). - Πολύ καλή στοίχιση - H µορφοποίηση εξόδου δεν είναι φιλική προς το µάτι. Έχετε πολλά tabs που δεν χρειάζονται και πάλι σας λείπουν \n. Επίσης σας λείπει πάλι ένα \n όταν εκτυπώνετε Unacceptable value. Διαδικαστικά: όλα οκ, αλλά καθυστερήσατε στην αποστολή. Να προσέχετε να στέλνετε τις ασκήσεις σας εντός της προθεσµίας. : - Ελάχιστος κώδικας. Το πρόγραµµα δεν κάνει τίποτα FAIL : - Έχετε ένα λάθος στο πρόγραµµά σας και δε λειτουργεί σωστά. Προσθέστε την επιλογή -Wextra όταν κάνετε compile και δείτε τι σας λέει ο compiler. - Καλά ονόµατα µεταβλητών εκτός του flag το οποίο δίνει µηδέν πληροφορία για το τι κάνει. Οµοίως το k. Μετράει πλήθος πρώτων αριθµών εποµένως το όνοµά του έπρεπε να αντικατοπτρίζει αυτή τη λειτουργία. - Δεν υπάρχουν σχόλια. - Το flag πρέπει να ξανα-αρχικοποιείται ανάµεσα στις δύο for, αλλιώς θα είναι πάντα µηδέν µετά από την πρώτη φορά που θα πάρει τιµή µηδέν. - Μέτρια στοίχιση. Κάντε τις ρυθµίσεις στο Kate και φροντίστε η στοίχιση των προγραµµάτων σας να είναι συνεπής Οριακό : το return 0; θέλει ένα tab µέσα. - Δεν έχετε χρησιµοποιήσει το sizeof, µε αποτέλεσµα το πρόγραµµά σας να µην πληροί τις προϋποθέσεις για την αρχιτεκτονική του υπολογιστή. - Δηλώσατε ως char τον τελικό αριθµό, µε αποτέλεσµα το πρόγραµµά σας να δουλεύει σωστά για τις 2 πρώτες περιπτώσεις αλλά να αποτυγχάνει για τις επόµενες 2. Οι chars έχουν µικρότερη χωρητικότητα από τους int και για αυτό µπορούν να απεικονίσουν µικρότερο εύρος αριθµών. Οι 2 πρώτες περιπτώσεις έχουν µικρούς αριθµούς ενώ οι επόµενες 2 µεγάλους για αυτό και δουλεύει σωστά µόνο στις πρώτες 2. Έπρεπε να το δηλώσετε ως int. Δείτε την λύση. - Δεν ελέγχετε και την δεύτερη περίπτωση που µπορεί να τερµατίσει το πρόγραµµα, η οποία είναι να δώσει ο χρήστης το µέγιστο αριθµό από bits. Δείτε την λύση. - Σωστή µορφοποίηση εξόδου. : - Δεν ελέγχετε επαναληπτικά εάν ο χρήστης δώσει λάθος τιµή, µε αποτέλεσµα να τερµατίζει το πρόγραµµα άµεσα µε λάθος input. - Χρησιµοποιήστε σταθερές για τα όρια. - Εκτυπώνετε µόνο τον τελευταίο, κάθε φορά, αριθµό είτε είναι είτε δεν είναι γινόµενο 2 άλλων και όχι όλους τους αριθµούς. Δείτε την λύση. - Το M που έχετε ως flag θα έπρεπε να έχει πιο επεξηγηµατικό όνοµα (πχ is_product)- Δεν έχετε καθόλου σχόλια! Διαδικαστικά Όλα ΟΚ 1926 : -Πολύ καλή στοίχιση -Πολύ καλό output του προγράµµατος -Πολύ καλά σχόλια -Πολύ σωστά χρησιµοποιείτε το sizeof(int) -Σωστοί υπολογισµοί -Σωστή εκτύπωση στο τέλος : -Πολύ καλή στοίχιση -Έπρεπε να χρησιµοποιήσετε σταθερές για τα όρια του εύρους ( ) -Σωστά ανιχνεύετε τους πρώτους αριθµούς. -Πολύ σωστή η εκτύπωση των αριθµών και το output του προγράµµατος. -Θα µπορούσατε να χρησιµοποιήσετε break; µέσα στο εσωτερικό loop όταν βρεθεί ο πρώτος αριθµός προκειµένου να µην γίνονται περισσότερες επαναλήψεις. Μπράβο!!! Page 7

8 Διαδικαστικά: Να προσέχετε περισσότερο το subject του : -Καλή στοίχιση -Δεν έχετε καθόλου σχόλια -Για τον έλεγχο των πόσων ψηφίων έδωσε ο χρήστης (πάνω από 32) έπρεπε να χρησιµοποιείτε το sizeof(int). -Σωστοί υπολογισµοί του προγράµµατος. -Σωστό output του προγράµµατος. -Όταν ο χρήστης δίνει unacceptable value εσείς θα έπρεπε να χρησιµοποιείτε την continue; διότι άµα δώσει 32 φορές unacceptable value το πρόγραµµά σας τερµατίζει λανθασµένα : -Καλή στοίχιση -Δεν έχετε καθόλου σχόλια -Δεν χρησιµοποιήσατε σταθερές για τα όρια του εύρους ( ) -Το πρόγραµµά σας ανιχνεύει σωστά του πρώτους αριθµούς αλλά δεν τους τυπώνει όπως ζητήθηκε. Τυπώνετε π.χ. 30=5*(5+1) και όχι 30=5*6 όπως έπρεπε. -Σωστά τυπώνετε και τους υπόλοιπους αριθµούς, αλλά δεν τους τυπώνετε µε την µορφή που σας ζητήθηκε η - Σωστά ονόµατα µεταβλητών, όµως η µεταβλητή mask είναι αχρείαστη. - Σωστές πράξεις. - Δεν έχετε σχόλια. - Σωστή µορφοποίηση εξόδου. η - Καλή στοίχιση, σωστά χωρίζετε τα διαφορετικά κοµµάτια του κώδικα αλλά 1 κενή γραµµή είναι αρκετή. - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Έλλειψη σχολίων. - Λάθος πράξεις αλλά κοντά στην σωστή λύση. Δείτε την προτεινόµενη λύση. Αποστολή οκ 1929 εκτός από κάποια σηµεία που είναι ένα tab πιο δεξιά από ότι θα έπρεπε. -Δεν χρησιµοποιείτε καθόλου σχόλια -Δεν υλοποιείτε σωστά τον αλγόριθµο. Γιατί κάνετε υποθέσεις για το µέγεθος των bits? Τι θα κάνει το πρόγραµµά σας αν κάποτε ο ακέραιος είναι 64 bit? Τι τιµή θα έχει τότε το top και το mask? - Κακή ιδέα να κάνετε το mask signed. Κάθε φορά που γίνεται shift δεξιά γεµίζει άσους από αριστερά. Γι αυτό βγάζετε λάθος αποτελέσµατα. - Τα σχόλια πρέπει να ακολουθούν τη στοίχιση του κώδικα και να µην επεκτείνονται πέρα από την 80ή στήλη. Καλά σχόλια πάντως -Σωστή υλοποίηση αλγορίθµου 1931 Οριακό ΛΑΘΟΣ δηµιουργία φακέλου. Δηµιουργήσατε τον φάκελο "lab5b.c" στο οποίο βάλατε µέσα τα αρχεία προς αποστολή! Αυτό είναι το 2ο συνεχόµενο εργαστήριο που έχετε λάθος στο πακετάρισµα της δουλειάς σας. Παρακαλώ κάντε εξάσκηση στην διαδικασία. Εάν και την επόµενη φορά κάνετε λάθος στην διαδικασία αποστολής θα λάβετε αυτόµατα fail! - ΠΡΟΣΟΧΗ: Το πρόγραµµα σας δεν µεταγλωττίζεται γιατί είχατε ξεχάσει να τερµατίσετε µία εντολή µε τον χαρακτήρα ';'. - Ορθή στοίχιση. - Ορθή υλοποίηση του αλγορίθµου. - Ορθή εκτύπωση του αποτελέσµατος. - Απουσία σχολίων. Το πρόγραµµα σας θα πρέπει να αναφέρει σε σχόλια τουλάχιστον τι κάνει. - Ορθή στοίχιση. - Αρκετά καλή προσπάθεια στην υλοποίηση του αλγορίθµου. - Το πρόγραµµα σας έχει ένα λογικό λάθος και για αυτό δεν λειτουργεί. Προσπαθήστε να το εντοπίσετε. Γενικές παρατηρήσεις: Αν και ο κώδικας σας είναι σε καλό επίπεδο, τα λάθη από απροσεξία που κάνετε στο µέλλον θα σας κοστίσουν. Εάν δεν είχατε α) το λάθος µεταγλώττισης (που είναι πολύ σοβαρό) και β) το λάθος στην δηµιουργία του φακέλου θα είχατε µία πολύ καλή άσκηση. Page 8

9 Αποστολή ΟΚ 1932 ΑΣΚΗΣΗ 1 - Καλή δοµή του κώδικα (στοίχιση, ονόµατα µεταβλητών, σχόλια). - Σωστή χρήση του sizeof(). - Σωστή έξοδος. - Για την περίπτωση του πρώτου bit: Κάνετε ολίσθηση προς τα δεξιά για να φέρετε δεξιά το bit που αποµονώνετε κάθε φορά. Η τιµή του πρώτου bit σας βγαίνει αρνητική στην περίπτωση που είναι '1' (αρνητικός αριθµός), επειδή η µεταβλητή bindigit είναι δηλωµένη ως προσηµασµένος ακέραιος (int). Αυτό σηµαίνει ότι το πρώτο bit είναι το bit του προσήµου. Εποµένως η δεξιά ολίσθηση 'γεµίζει' τον αριθµό από αριστερά µε την τιµή του bit προσήµου (αριθµητική ολίσθηση). Για το 'γέµισµα' µε '0' (λογική ολίσθηση) πρέπει η µεταβλητή bindigit να είναι δηλωµένη ως µη προσηµασµένη (unsigned int). Γενικά, όποτε δεν µας ενδιαφέρει η µαθηµατική τιµή ενός ακεραίου, αλλά η αναπαράστασή του σε bits (πχ µάσκες και το αποτέλεσµα που δίνουν όταν εφαρµόζονται), προτιµούµε να τις δηλώνουµε ως unsigned για την αποφυγή τέτοιων 'περίεργων' περιπτώσεων. Ένας άλλος τρόπος είναι το type casting. - Για την εκτύπωση των κενών ελέγχετε εάν i>0. Αυτό ισχύει πάντα µέσα στο for (ξεκινάει µε την τιµή 1 και αυξάνεται σε κάθε επανάληψη). ΑΣΚΗΣΗ 2 - Οι τιµές 1 και είναι σταθερές στο πρόγραµµα, οπότε καλό θα ήταν να τις ορίζατε κατάλληλα. - Η συνθήκη ελέγχου στην while δεν είναι σωστή, δεν γίνεται ένας αριθµός να είναι ταυτόχρονα ΚΑΙ µικρότερος του 1 ΚΑΙ µεγαλύτερος του Σωστή λογική, αλλά γίνονται αρκετοί άσκοποι υπολογισµοί. Με το που βρείτε έναν διαιρέτη ξέρετε αµέσως ότι ο αριθµός που ελέγχετε δεν είναι πρώτος και συνεχίζετε στον επόµενο (µε χρήση του break). - Επίσης το όνοµα flag δεν είναι περιγραφικό. Δείτε το φυλλάδιο µε τίτλο "Αρχές καλού προγραµµατισµού" και συγκεκριµένα τη σελίδα η - Σωστά ονόµατα µεταβλητών. - Σωστές πράξεις. - Καλά σχόλια. - Σωστή µορφοποίηση εξόδου. η - Καλή στοίχιση. - Σωστή χρήση σταθερών, και καλά ονόµατα µεταβλητών πέραν της "test". Μία προτεινόµενη ονοµασία είναι "is_prime". - Καλά σχόλια. - Σωστές πράξεις, θα µπορούσατε όµως όταν βρίσκατε 1 αριθµό που διαιρεί την είσοδο να τερµατίζετε την διαδικασία οριακό Διαδικαστικά: όλα οκ : - Ελλιπές πρόγραµµα. Αρχικοποιείτε τη µάσκα (µε λάθος τιµή), κάνετε το λογικό and και µετά το shift, αλλά στο ενδιάµεσο δεν κάνετε κάτι για να ανιχνεύσετε αν τελικά το bit είναι 0 ή 1 και να το εκτυπώσετε. - Καλά ονόµατα µεταβλητών - Δεν υπάρχουν σχόλια - Καλή στοίχιση : - Το πρόγραµµά σας κάνει compile µε warning. Έχετε µια printf µε ένα %d αλλά δύο µεταβλητές προς εκτύπωση. - Και πάλι ελλιπές πρόγραµµα. Δεν έχετε διπλό for και δεν κάνετε κάτι µε το υπόλοιπο που υπολογίζετε. - Η while που ελέγχει την εγκυρότητα των δεδοµένων έχει λάθος συνθήκη: Δεν είναι δυνατό ο αριθµός να είναι ταυτόχρονα και µικρότερος του 1 και µεγαλύτερος του Γενικά καλή στοίχιση εκτός από το τελευταίο printf που έπρεπε να είναι στην επόµενη γραµµή, και στην ίδια στήλη µε το for. Κοιτώντας και τα σχόλια του lab4 φαίνεται να έχετε γενικά πρόβληµα στα αλγοριθµικά κοµµάτια. Προσπαθήστε να λύνετε ασκήσεις από προηγούµενα έτη για εξάσκηση πριν να έρχεστε στο εργαστήριο και να ζητάτε βοήθεια (ώρες γραφείου, εµαιλ). Page 9

10 lab5grades 1936 η - Σωστά ονόµατα µεταβλητών. Το 0x80 θα µπορούσε να µπει σε σταθερά και να συνδυαστεί µε σχόλιο, δείτε παρακάτω. - Καλή στοίχιση, σωστά χωρίζετε τα διαφορετικά κοµµάτια του κώδικα αλλά 1 κενή γραµµή είναι αρκετή. - Λάθος µήνυµα εισόδου. - Σωστές πράξεις, αλλά ο κώδικάς σας δεν παίρνει υπόψιν το µέγεθος του int (σε bytes). - Καλά σχόλια. - Χωρίζετε ανά 4 ψηφία τον αριθµό αλλά βάζετε και ένα επιπλέον κενό στην αρχή, δείτε την προτεινόµενη λύση. - Λείπει το µήνυµα εξόδου. η - Καλή στοίχιση, σωστά χωρίζετε τα διαφορετικά κοµµάτια του κώδικα αλλά 1 κενή γραµµή είναι αρκετή. - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Καλά σχόλια. - Σωστές πράξεις, θα µπορούσατε όµως όταν βρίσκατε 1 αριθµό που διαιρεί την είσοδο να τερµατίζετε την διαδικασία. Αποστολή οκ 1940 δεν χρειάζεται να αφήνετε τόσες πολλές γραµµές κενές -Σωστά σχόλια -Σωστές πράξεις -Δεν χρησιµοποιείτε sizeof για να βρείτε το µέγεθος του int έτσι ώστε να υλοποιήσετε να τερµατίζεται αυτόµατα το πρόγραµµα αν δοθούν περισσότερα ψηφία από όσα bits έχει ένας ακέραιος στην αρχιτεκτονική που εκτελείται., αλλά µη βάζετε ΠΟΤΕ δύο εντολές στην ίδια γραµµή. Το τελευταίο printf έπρεπε να είναι στην επόµενη γραµµή -Σωστά σχόλια -Σωστές πράξεις - Αποφεύγετε να χρησιµοποιείτε flags όπως το stop για το παραµικρό. Γι αυτό υπάρχουν εντολές όπως break και continue. - Διαδικαστικά: 6 λεπτά εκπρόθεσµη - : 1942 FAIL -- Στοίχιση: OK -- Ορθότητα πράξεων: Δεν υπολογίζεται σωστά ο binary αριθµός. Σοβαρό λάθος στη συνθήκη της for. -- Χρήση sizeof: Την χρησιµοποιείτε, αλλά το αποτέλεσµά της δεν το λαµβάνεται υπ' όψη -- Εκτύπωση: ΟΚ -- Γενικά Σχόλια: Αυτό που πάτε να κάνετε µε τη µάσκα δεν φαίνεται να δουλεύει. Γιατί ελέγχετε αν το bit είναι θετικό? Σίγουρα δεν λαµβάνετε υπ' όψη τον counter σας, ο οποίος µπορεί να πάρει οποιοδήποτε ακέραιο αριθµό, όχι µόνο 2 ή 4! Δεν έχετε κανένα σχόλιο στο πρόγραµµά σας! - : Compiler error. Ακόµα και χωρίς το error δεν τυπώνει κάτι που βγάζει νόηµα. Θα έπρεπε να είναι i % j (κοιτάξτε και τη λύση). Πολύ κακή στοίχιση. Αν το πρόγραµµα διαβαζόταν ίσως να το κοιτούσαµε πιο προσεκτικά οριακό - Διαδικαστικά: 11 λεπτά εκπρόθεσµη - : -- Στοίχιση: ΟΚ -- Ορθότητα πράξεων: ΟΚ -- Χρήση sizeof: ΟΚ -- Τερµατισµός επαναλήψεων: ΟΚ -- Εκτύπωση: Δεν θέλουµε να τυπώνει το sizeof(int) -- Γενικά Σχόλια: Κακό όνοµα µεταβλητής N. Θα µπορούσατε να είχατε ίσως κάποιες σταθερές, πχ τα 8 bit και τα 4 bit για τα κενά - : -- Χρήση σταθερών: ΚΑΜΙΑ ΣΤΑΘΕΡΑ! Θα θέλαµε τα όρια να ήταν σταθερές. -- Συνθήκες τερµατισµού επαναλήψεων: θέλουµε >1 και < δεν φαίνεται να ισχύει αυτό στο πρόγραµµά σας -- Ανίχνευση αριθµού: Δεν έχει σχέση µε αυτό που ζητάµε -- Εκτύπωση: Δεν έχει σχέση µε αυτό που ζητάµε -- Γενικά σχόλια: Το κυριότερο πρόβληµά σας είναι ότι ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ ΤΗΝ ΙΔΙΑ ΜΕΤΑΒΛΗΤΗ LOOP ΚΑΙ ΣΤΑ ΔΥΟ LOOP!! άρα και τα δύο loop την αλλάζουν. Διορθώστε το και ξαναδείτε την άσκηση. Page 10

11 Στείλατε 2 φορές το αρχείο 1947 Άσκηση1 -Δεν χρησιµοποιείτε σχόλια στο κορµό του προγράµµατος -Δεν αφήνετε κενές γραµµές να διαχωρίζετε τα µέρη του προγράµµατος -Δεν χρησιµοποιείτε sizeof για να βρείτε το µέγεθος του int έτσι ώστε να υλοποιήσετε να τερµατίζεται αυτόµατα το πρόγραµµα αν δοθούν περισσότερα ψηφία από όσα bits έχει ένας ακέραιος στην αρχιτεκτονική που εκτελείται. -Σωστά χρησιµοποιείτε την εντολή break -Σωστή υλοποίηση του αλγορίθµου -Δεν χρησιµοποιείτε σχόλια στο κορµό του προγράµµατος -Δεν αφήνετε κενές γραµµές να διαχωρίζετε τα µέρη του προγράµµατος ώστε να είναι ποιο ευανάγνωστος ο κώδικας σας -Σωστή υλοποίηση αλγόριθµου Καλή δουλειά! Σωστή η στοίχισή σας. - Οι πράξεις που κάνετε είναι σωστές. Η λύση σας έχει 2 while που την κάνει να είναι λίγο περισσότερο εξειδικευµένη από αυτό που σας ζητήσαµε. Στη δικιά σας λύση αν ο αριθµός που δίνεται σαν είσοδο είναι unacceptable, ο µετρητής που µετράει τον αριθµό των ψηφίων δεν προχωράει. Βέβαια 1) δεν ζητούσαµε κάτι τέτοιο 2) θα µπορούσε να γίνει µε αρκετά πιο εύκολο τρόπο µε ένα if αντί για while. Μπορείτε να σκεφτείτε πως θα γινόταν κάτι τέτοιο; - Το βασικό λάθος που κάνατε είναι να βάλετε τον αριθµό που δεσµεύει σε αριθµό bytes ο υπολογιστής για τους ακεραίους σε σταθερή τιµή. Αντί για σταθερή τιµή έπρεπε να χρησιµοποιήσετε το sizeof(int) που επιστρέφει τον αριθµό των bytes για τη συγκεκριµένη αρχιτεκτονική που έχει παραχθεί το πρόγραµµά σας. - Η εκτύπωση σας είναι σχεδόν σωστή. Το λάθος που κάνατε είναι να αφήνετε κενή γραµµή µετά την εκτύπωση του Next Digit. Στα παραδείγµατα που υπάρχουν στην εκφώνηση δεν φαινόταν κάτι τέτοιο. - Το πρόγραµµά σας έχει ένα λάθος που έχει να κάνει µε το γεγονός ότι κάνετε την ολίσθηση µετά την πρόσθεση του αριθµού και έτσι στην τελευταία επανάληψη θα κάνετε µια παραπάνω ολίσθηση την οποία και διορθώνετε στο τέλος. Το πρόβληµα µε το λάθος αυτό είναι ότι αν ο χρήστης δώσει 32 ψηφία, µε την παραπάνω ολίσθηση που θα κάνετε θα χάσετε το ένα αυτό ψηφίο γιατί ακόµη και αν κάνετε δεξιά ολίσθηση για να επαναφέρετε τον αριθµό, το πρώτο bit θα έχει χαθεί. Η λύση στο πρόβληµά σας είναι πολύ απλή. Δείτε τι µπορείτε να κάνετε για να αποφύγετε το παραπάνω πρόβληµα. Συµβουλευτείτε τη λύση που έχει ανέβει. - Σωστά βάλατε σχόλια τα οποία είναι αρκετά επεξηγηµατικά. - Για τα όρια στα οποία πρέπει να ανήκει ο αριθµός θα πρέπει να βάζετε const δηλωµένες σταθερές όπως έχουµε τονίσει σε προηγούµενα εργαστήρια και όχι σταθερές τιµές. - Οι έλεγχοι σας είναι σωστοί. Η βελτιστοποίηση που θα µπορούσατε να κάνετε ήταν να βάλετε ένα break όταν βρίσκετε ένα σωστό γινόµενο καθώς δεν χρειάζονται οι υπόλοιπες πράξεις από το σηµείο αυτό και µετά. - Το όνοµα που δώσατε στη µεταβλητή που ελέγχει αν βρέθηκε γινόµενο είναι σχετικά µη αντιπροσωπευτικό της χρήσης του. Δείτε τη λύση που έχει ανέβει για καλύτερο όνοµα καθώς και διαβάστε το φυλλάδιο "Αρχές καλού προγραµµατισµού" και συγκεκριµένα τη σελίδα 8. - Έχετε κάποια λαθάκια στην εκτύπωση της λύσης σας. Δεν έχετε αφήσει κάποια κενά που χρειάζονται. Αποστολή οκ Σωστά σχόλια -Σωστές πράξεις -Για να τυπώνεται µε κεφαλαία ο αριθµός σε δεκαεξαδική µορφή όπως στα παραδείγµατα πρέπει να γράψετε 0x%X -Σωστά σχόλια - Χρήση λάθος τελεστή στη συνθήκη του while. Το είναι bitwise or και κάνει διαφορετική πράξη από το το οποίο είναι λογικό or. -Σωστή υλοποίηση αλγορίθµου - Πολύ καλά ονόµατα µεταβλητών, µπράβο. Page 11

12 1955 η - Σωστά ονόµατα µεταβλητών. - Σωστές πράξεις. - Καλά σχόλια. - Σωστή µορφοποίηση εξόδου. η - Καλή στοίχιση. - Εδώ χρειαζόσασταν σταθερές για τα επιτρεπτά όρια εισόδου, και πιο επιτυχηµένα ονόµατα για τις µεταβλητές σας. - Λάθος έλεγχος για τα όρια της εισόδου. Δεν είναι δυνατό ένας αριθµός να είναι ταυτόχρονα και µικρότερος του 1 και µεγαλύτερος του Καλά σχόλια. - Σωστές πράξεις, θα µπορούσατε όµως όταν βρίσκατε 1 αριθµό που διαιρεί την είσοδο να τερµατίζετε την διαδικασία. Ορθή δηµιουργία φακέλου και αποστολή : - Δεν έχετε χρησιµοποιήσει το sizeof, µε αποτέλεσµα το πρόγραµµά σας να µην πληροί τις προϋποθέσεις για την αρχιτεκτονική του υπολογιστή. - Δεν ελέγχετε και την δεύτερη περίπτωση που µπορεί να τερµατίσει το πρόγραµµα, η οποία είναι να δώσει ο χρήστης το µέγιστο αριθµό από bits. Δείτε την λύση. - Σωστή µορφοποίηση εξόδου, σας λείπει ένα \n όταν εκτυπώνετε Unacceptable value. : - Χρησιµοποιήστε σταθερές για τα όρια. - Ορθή υλοποίηση του αλγορίθµου. - Στο if (multiplier*(multiplier+1) == meter) θα µπορούσατε να βάλετε ένα break εφόσον δεν υπάρχει παραπάνω από ένας συνδυασµός (δείτε την λύση). - Πολύ καλή στοίχιση - H µορφοποίηση εξόδου δεν είναι φιλική προς το µάτι. Έχετε πολλά tabs που δεν χρειάζονται και πάλι σας λείπουν \n. Επίσης σας λείπει πάλι ένα \n όταν εκτυπώνετε Unacceptable value. Δεν έχετε κάνει CC στα δικά σας Το συµπιεσµένο αρχείο δεν έχει την σωστή κατάληξη,.tar.gz αντί.tgz. ΑΣΚΗΣΗ 1 - Καθόλου σχόλια! - Σωστή υλοποίηση και δοµή του κώδικα. - Σωστή χρήση του sizeof(). - Σωστή έξοδος ΑΣΚΗΣΗ 2 - Καθόλου σχόλια! - Η συνθήκη ελέγχου στην while δεν είναι σωστή, δεν γίνεται ένας αριθµός να είναι ταυτόχρονα ΚΑΙ µικρότερος του 1 ΚΑΙ µεγαλύτερος του Επίσης δεν χρειάζονται τόσες παρενθέσεις! - Τα ονόµατα z, integer και integer1 δεν είναι περιγραφικά. - Σωστή λογική, αλλά γίνονται αρκετοί άσκοποι υπολογισµοί. Δεν χρειάζεται να βρείτε το πλήθος των διαιρετέων, µε το που βρείτε έναν ξέρετε αµέσως ότι ο αριθµός που ελέγχετε δεν είναι πρώτος και συνεχίζετε στον επόµενο (µε χρήση του break). - Αυτό 'που πάει στραβά' στην υλοποίηση είναι πως η µεταβλητή sum πρέπει να µηδενίζεται όταν πάµε να ελέγξουµε έναν καινούριο αριθµό (σε κάθε επανάληψη του εξωτερικού for). - Οι τιµές 1 και είναι σταθερές στο πρόγραµµα, οπότε καλό θα ήταν να τις ορίζατε κατάλληλα οριακό Αποστολή οκ -Δεν χρησιµοποιείτε καθόλου σχόλια -Σωστές πράξεις -Πολύ σωστά χρησιµοποιείτε τις εντολές break και continue -Δεν χρησιµοποιείτε sizeof για να βρείτε το µέγεθος του int έτσι ώστε να υλοποιήσετε να τερµατίζεται αυτόµατα το πρόγραµµα αν δοθούν περισσότερα ψηφία από όσα bits έχει ένας ακέραιος στην αρχιτεκτονική που εκτελείται -Για να τυπώνεται µε κεφαλαία ο αριθµός σε δεκαεξαδική µορφή όπως στα παραδείγµατα πρέπει να γράψετε 0x%X -Δεν χρησιµοποιείτε καθόλου σχόλια -Δεν υλοποιείτε σωστά τον αλγόριθµο -Δεν γράφετε σωστά το for, δεν γράφετε σωστά τη συνθήκη τερµατισµού του for: πώς είναι δυνατό ένας αριθµός να είναι ταυτόχρονα µικρότερος και µεγαλύτερος του 1? Page 12

13 Ορθή δηµιουργία φακέλου και αποστολή. : - Πολύ καλή δουλειά! - Σωστή χρήση του sizeof. - Ορθή υλοποίηση του αλγορίθµου. Έχετε ένα µικρό bug: Στο τελευταίο bit που θα δώσει ο χρήστης δεν εκτελείται η πράξη της προσαύξησης number=number+((input-'0')); γιατί η δοµή που ελέγχει τον τερµατισµό του loop αποτιµάται ως αληθής. Αυτό συµβαίνει µόνο όταν δώσει όλα τα bits (32 ή 16) και λύνεται εάν έχετε τον κώδικά σας ως εξής: 1960 number=number+((input-'0')); digits++; if (digits>=max) { break; } number=number<<1; - Σωστή µορφοποίηση εξόδου. : - Πολύ καλή δουλειά - Χρησιµοποιήστε σταθερές για τα όρια. Στο άνω όριο σας ξέφυγε ένα µηδενικό παραπάνω. - Ορθή υλοποίηση του αλγορίθµου. -Το flag product που έχετε θα µπορούσε να έχει πιο επεξηγηµατικό όνοµα πχ (is_product ή isproduct) Ορθή δηµιουργία φακέλου και αποστολή 1961 FAIL - Το πρόγραµµα σας δεν µεταγλωττίζεται - Δεν υλοποιήσατε τίποτα εκτός από την ανάγνωση του αριθµού - Το πρόγραµµα σας δεν µεταγλωττίζεται - Δεν υλοποιεί τίποτα από τα ζητούµενα. Ορθή δηµιουργία φακέλου και αποστολή. Γενική Παρατήρηση: Η στοίχιση του κώδικα σας δεν είναι ορθή. Αλλού χρησιµοποιείτε spaces και αλλού tabs για τη στοίχιση. Προσέξτε τις ρυθµίσεις του kate µε βάση το lab1. Σε µεγαλύτερα προγράµµατα αυτό ίσως σας δηµιουργήσει πρόβληµα Ορθή υλοποίηση του αλγορίθµου. - Σωστά σχόλια. - Ξεχάσατε να τυπώσετε ένα χαρακτήρα αλλαγής γραµµής στο τέλος. - Ορθή υλοποίηση του αλγορίθµου. - Σωστά σχόλια. Συγχαρητήρια. Πολύ καλή δουλειά! 1964 Οριακό ΛΑΘΟΣ δηµιουργία φακέλου. Δηµιουργήσατε τον φάκελο "lab5b.c" στο οποίο βάλατε µέσα τα αρχεία προς αποστολή! Αυτό είναι το 2ο συνεχόµενο εργαστήριο που έχετε λάθος στο πακετάρισµα της δουλειάς σας. Παρακαλώ κάντε εξάσκηση στην διαδικασία. Εάν και την επόµενη φορά κάνετε λάθος στην διαδικασία αποστολής θα λάβετε αυτόµατα fail! - ΠΡΟΣΟΧΗ: Το πρόγραµµα σας δεν µεταγλωττίζεται γιατί είχατε ξεχάσει να τερµατίσετε µία εντολή µε τον χαρακτήρα ';'. - Ορθή στοίχιση. - Ορθή υλοποίηση του αλγορίθµου. - Ορθή εκτύπωση του αποτελέσµατος. - Απουσία σχολίων. Το πρόγραµµα σας θα πρέπει να αναφέρει σε σχόλια τουλάχιστον τι κάνει. - Ορθή στοίχιση. - Αρκετά καλή προσπάθεια στην υλοποίηση του αλγορίθµου. - Το πρόγραµµα σας έχει ένα λογικό λάθος και για αυτό δεν λειτουργεί. Προσπαθήστε να το εντοπίσετε. Γενικές παρατηρήσεις: Αν και ο κώδικας σας είναι σε καλό επίπεδο, τα λάθη από απροσεξία που κάνετε στο µέλλον θα σας κοστίσουν. Εάν δεν είχατε α) το λάθος µεταγλώττισης (που είναι πολύ σοβαρό) και β) το λάθος στην δηµιουργία του φακέλου θα είχατε µία πολύ καλή άσκηση. Page 13

14 Καλή δουλειά! Σωστή η στοίχισή σας. - Οι πράξεις που κάνετε είναι σωστές. Η λύση σας έχει 2 while που την κάνει να είναι λίγο περισσότερο εξειδικευµένη από αυτό που σας ζητήσαµε. Στη δικιά σας λύση αν ο αριθµός που δίνεται σαν είσοδο είναι unacceptable, ο µετρητής που µετράει τον αριθµό των ψηφίων δεν προχωράει. Βέβαια 1) δεν ζητούσαµε κάτι τέτοιο 2) θα µπορούσε να γίνει µε αρκετά πιο εύκολο τρόπο µε ένα if αντί για while. Μπορείτε να σκεφτείτε πως θα γινόταν κάτι τέτοιο; - Το βασικό λάθος που κάνατε είναι να βάλετε τον αριθµό που δεσµεύει σε αριθµό bytes ο υπολογιστής για τους ακεραίους σε σταθερή τιµή. Αντί για σταθερή τιµή έπρεπε να χρησιµοποιήσετε το sizeof(int) που επιστρέφει τον αριθµό των bytes για τη συγκεκριµένη αρχιτεκτονική που έχει παραχθεί το πρόγραµµά σας. - Η εκτύπωση σας είναι σχεδόν σωστή. Το λάθος που κάνατε είναι να αφήνετε κενή γραµµή µετά την εκτύπωση του Next Digit. Στα παραδείγµατα που υπάρχουν στην εκφώνηση δεν φαινόταν κάτι τέτοιο. - Το πρόγραµµά σας έχει ένα λάθος που έχει να κάνει µε το γεγονός ότι κάνετε την ολίσθηση µετά την πρόσθεση του αριθµού και έτσι στην τελευταία επανάληψη θα κάνετε µια παραπάνω ολίσθηση την οποία και διορθώνετε στο τέλος. Το πρόβληµα µε το λάθος αυτό είναι ότι αν ο χρήστης δώσει 32 ψηφία, µε την παραπάνω ολίσθηση που θα κάνετε θα χάσετε το ένα αυτό ψηφίο γιατί ακόµη και αν κάνετε δεξιά ολίσθηση για να επαναφέρετε τον αριθµό, το πρώτο bit θα έχει χαθεί. Η λύση στο πρόβληµά σας είναι πολύ απλή. Δείτε τι µπορείτε να κάνετε για να αποφύγετε το παραπάνω πρόβληµα. Συµβουλευτείτε τη λύση που έχει ανέβει. - Σωστά βάλατε σχόλια τα οποία είναι αρκετά επεξηγηµατικά. - Για τα όρια στα οποία πρέπει να ανήκει ο αριθµός θα πρέπει να βάζετε const δηλωµένες σταθερές όπως έχουµε τονίσει σε προηγούµενα εργαστήρια και όχι σταθερές τιµές. - Οι έλεγχοι σας είναι σωστοί. Η βελτιστοποίηση που θα µπορούσατε να κάνετε ήταν να βάλετε ένα break όταν βρίσκετε ένα σωστό γινόµενο καθώς δεν χρειάζονται οι υπόλοιπες πράξεις από το σηµείο αυτό και µετά. - Το όνοµα που δώσατε στη µεταβλητή που ελέγχει αν βρέθηκε γινόµενο είναι σχετικά µη αντιπροσωπευτικό της χρήσης του. Δείτε τη λύση που έχει ανέβει για καλύτερο όνοµα καθώς και διαβάστε το φυλλάδιο "Αρχές καλού προγραµµατισµού" και συγκεκριµένα τη σελίδα 8. - Έχετε κάποια λαθάκια στην εκτύπωση της λύσης σας. Δεν έχετε αφήσει κάποια κενά που χρειάζονται. Αποστολή οκ, εκτός από τα ονόµατά σας στο όνοµα του φακέλου και του tgz. Αυτά που γράψατε ήταν usernames! Δεν χρησιµοποιείτε σχόλια στο κορµό του προγράµµατος -Σωστή υλοποίηση αλγορίθµου -Δεν χρησιµοποιείτε καθόλου σχόλια -Δεν χρησιµοποιείτε περιγραφικά ονόµατα µεταβλητών -Σωστή υλοποίηση αλγορίθµου -Πρέπει να τυπώνεται ακριβώς την έξοδο όπως δείχνει στο παράδειγµα 1972 Οριακό Διαδικαστικά: Να προσέχετε περισσότερο το subject του . : -Καλή στοίχιση. -Σωστά χρησιµοποιήσατε το sizeof. -Να προσέχετε το output του προγράµµατος να είναι καλύτερο. -Το πρόγραµµά σας τερµατίζει άµα δώσεις unacceptable value πράγµα που είναι λάθος -Σωστοί υπολογισµοί -Σωστή εκτύπωση του αποτελέσµατος. : -Πολύ µέτρια στοίχιση -Το output του προγράµµατος είναι ελλιπές -Δεν χρησιµοποιήσατε σταθερές για τα όρια του Λάθος υπολογισµοί και εκτύπωση. Τυπώνετε µόνο την είσοδο που σας δόθηκε. Δεν τυπώνετε αυτά που σας ζητήθηκαν. -Ανιχνεύετε σωστά αν ο αριθµός που δόθηκε είναι πρώτος αλλά µόνο για τον αριθµό που δίνεται σαν είσοδος. Page 14

15 Πολύ καλή δουλειά! Σωστή η στοίχισή σας. - Οι πράξεις που κάνετε είναι σωστές. Η λύση σας θα µπορούσε να έχει ένα if-else και όχι πολλαπλά if καθώς θα µπει κάθε φορά σε µόνο µια από τις επιλογές που έχετε θέσει. - Το βασικό λάθος που κάνατε είναι να βάλετε τον αριθµό που δεσµεύει σε αριθµό bytes ο υπολογιστής για τους ακεραίους σε σταθερή τιµή η οποία µάλιστα είναι και λάθος(οι περισσότερες σύγχρονες αρχιτεκτονικές έχουν 32 bit για να αποθηκεύσουν έναν ακέραιο). Αντί για σταθερή τιµή έπρεπε να χρησιµοποιήσετε το sizeof(int) που επιστρέφει τον αριθµό των bytes για τη συγκεκριµένη αρχιτεκτονική που έχει παραχθεί το πρόγραµµά σας. - Σωστά βάλατε σχόλια τα οποία είναι αρκετά επεξηγηµατικά. Παρατήρησα ένα λάθος στα σχόλια σας. Λέτε σε ένα σηµείο ότι η αριστερή ολίσθηση είναι σαν πολλαπλασιασµός επί 10. Ελπίζω να εννοείται το δυαδικό 10 (δηλαδή το 2) αλλιώς θα πρέπει να ξαναδείτε τις διαφάνειες που ορίζεται η πράξη της ολίσθησης Οριακό - Για τα όρια στα οποία πρέπει να ανήκει ο αριθµός θα πρέπει να βάζετε const δηλωµένες σταθερές όπως έχουµε τονίσει σε προηγούµενα εργαστήρια και όχι σταθερές τιµές. - Οι έλεγχοι σας είναι σωστοί. Η βελτιστοποίηση που θα µπορούσατε να κάνετε ήταν να βάλετε ένα break όταν βρίσκετε ένα σωστό γινόµενο καθώς δεν χρειάζονται οι υπόλοιπες πράξεις από το σηµείο αυτό και µετά. - Το βασικό λάθος που κάνατε είναι να εκτυπώνετε και τους αριθµούς οι οποίοι έχουν γινόµενο µαζί µε τους άλλους που δεν έχουν. Για να δείτε πως µπορείτε να διορθώσετε τη λύση κοιτάξτε τη λύση που έχει ανέβει. Σαν µια υπόδειξη θα σας πω ότι θα µπορούσατε να χρησιµοποιήσετε ένα if για να ελέγχετε αν βρέθηκε το γινόµενο έτσι ώστε να µην εκτυπώνετε αυτούς τους αριθµούς. - Διαδικαστικά: 6 λεπτά εκπρόθεσµη - : -- Στοίχιση: OK -- Ορθότητα πράξεων: To '-' στο δυαδικό δεν θα έπρεπε να βγαίνει -- Χρήση sizeof: OK -- Τερµατισµός επαναλήψεων: OK -- Εκτύπωση: Θα προτιµούσαµε τα δεκαεξαδικά να είναι κεφαλαία! -- Γενικά Σχόλια: Αρκετά καλή! Θα µπορούσατε να είχατε ίσως κάποιες σταθερές, πχ τα 8 bit και τα 4 bit για τα κενά - : -- Χρήση σταθερών: ΚΑΜΙΑ ΣΤΑΘΕΡΑ! τα όρια θα έπρεπε να ήταν σταθερές! -- Συνθήκες τερµατισµού επαναλήψεων: Θα µπορούσατε να κάνετε break στην εσωτερική for όταν βρίσκετε ότι είναι πρώτος (δείτε και τις λύσεις) -- Ανίχνευση αριθµού: Θέλει i % j δείτε και τις λύσεις -- Εκτύπωση: ΟΚ -- Γενικά σχόλια: Η ανίχνευση αριθµού είναι εντελώς λάθος. Επίσης πολύ κακή στοίχιση χωρίς tabs στο while Καλή δουλειά! Σωστή η στοίχισή σας. - Οι πράξεις που κάνετε είναι σωστές. Η λύση σας έχει 2 while που την κάνει να είναι λίγο περισσότερο εξειδικευµένη από αυτό που σας ζητήσαµε. Στη δικιά σας λύση αν ο αριθµός που δίνεται σαν είσοδο είναι unacceptable, ο µετρητής που µετράει τον αριθµό των ψηφίων δεν προχωράει. Βέβαια 1) δεν ζητούσαµε κάτι τέτοιο 2) θα µπορούσε να γίνει µε αρκετά πιο εύκολο τρόπο µε ένα if αντί για while. Μπορείτε να σκεφτείτε πως θα γινόταν κάτι τέτοιο; - Πολύ σωστά χρησιµοποιήσατε το sizeof(int) για να υπολογίσετε τον αριθµό των bytes και µάλιστα το βάλατε και σε const καθώς θα είναι µια σταθερή τιµή. - Η εκτύπωση σας είναι σχεδόν σωστή. Το λάθος που κάνατε είναι ότι δεν βάλατε 0x µπροστά από την εκτύπωση του δεκαεξαδικού αριθµού. - Θα µπορούσατε αντί για or της µάσκας µε τον αριθµό να κάνετε απλώς µια πρόσθεση µε το 1. Η λύση σας όµως είναι σωστή και έτσι. - Το µόνο λάθος που κάνετε είναι ότι διαβάζετε αριθµούς από το 0 µέχρι και το MAX_BIT το οποίο σηµαίνει MAX_BIT + 1 αριθµούς οι οποίοι δεν χωράνε κανονικά στη µνήµη. Πρέπει να είναι από 0 µέχρι MAX_BIT. - Σωστά βάλατε σχόλια τα οποία είναι αρκετά επεξηγηµατικά. - Για τα όρια στα οποία πρέπει να ανήκει ο αριθµός θα πρέπει να βάζετε const δηλωµένες σταθερές όπως έχουµε τονίσει σε προηγούµενα εργαστήρια και όχι σταθερές τιµές. - Έχετε κάνει ένα λάθος στον έλεγχο εγκυρότητας για τον αριθµό που σας δίνει ο χρήστης. Θα πρέπει να ξαναζητάτε αριθµό όταν είναι µικρότερος του 1 ή µεγαλύτερος του Εσείς έχετε βάλει και (&&) το οποίο δεν θα είναι ποτέ αληθές. - Σωστά εκτυπώνετε τα γινόµενα αλλά θα έπρεπε να εκτυπώνετε και τους υπόλοιπους αριθµούς που δεν έχουν ζεύγη αριθµών των οποίων δεν έχουν ζεύγη αριθµών που το γινόµενό τους να κάνει τον ίδιο αριθµό. Δείτε τη λύση για περισσότερες πληροφορίες για το πως θα µπορούσατε να εκτυπώσετε και τους αριθµούς οι οποίοι δεν έχουν γινόµενο. Page 15

16 Στείλατε 2 φορές το αρχείο 1980 Άσκηση1 -Δεν χρησιµοποιείτε σχόλια στο κορµό του προγράµµατος -Δεν αφήνετε κενές γραµµές να διαχωρίζετε τα µέρη του προγράµµατος -Δεν χρησιµοποιείτε sizeof για να βρείτε το µέγεθος του int έτσι ώστε να υλοποιήσετε να τερµατίζεται αυτόµατα το πρόγραµµα αν δοθούν περισσότερα ψηφία από όσα bits έχει ένας ακέραιος στην αρχιτεκτονική που εκτελείται. -Σωστά χρησιµοποιείτε την εντολή break -Σωστή υλοποίηση του αλγορίθµου -Δεν χρησιµοποιείτε σχόλια στο κορµό του προγράµµατος -Δεν αφήνετε κενές γραµµές να διαχωρίζετε τα µέρη του προγράµµατος ώστε να είναι ποιο ευανάγνωστος ο κώδικας σας -Σωστή υλοποίηση αλγόριθµου Αποστολή οκ Δεν χρησιµοποιείτε σχόλια -Σωστές πράξεις -Για να τυπώνεται µε κεφαλαία ο αριθµός σε δεκαεξαδική µορφή όπως στα παραδείγµατα πρέπει να γράψετε 0x%X -Δεν χρησιµοποιείτε καθόλου σχόλια -Σωστά υλοποιείτε τον αλγόριθµο -Δεν τυπώνετε σωστά την έξοδο Σωστή η στοίχισή σας. - Ο έλεγχος που κάνετε είναι µερικώς σωστός. Το πρώτο λάθος που έχετε είναι ότι δεν ελέγχετε το µέγεθος του ακεραίου όπως τονίζω και παρακάτω ενώ σας το ζητούσε η εκφώνηση. Το άλλο λάθος που κάνατε είναι ότι βάλατε το scanf στο τέλος της δοµής επανάληψης while µε αποτέλεσµα αν λάβει κάποιον µη acceptable αριθµό να βγαίνει χωρίς να εκτελεί επανάληψη και να ρωτάει το χρήστη. Μπορείτε να σκεφτείτε πως θα έπρεπε να αλλάξετε τη λύση σας για να υποστηρίζει την απαραίτητη λειτουργικότητα; Σαν υπόδειξη θα σας πω ότι θα µπορούσατε είτε να χρησιµοποιήσετε do-while και να βγάλετε την πρώτη scanf που έχετε εκτός της δοµής και να κάνετε κάποιες αλλαγές εντός αυτής. Επίσης µπορείτε να δείτε τη λύση που είναι προσαρµοσµένη στον αριθµό των bits που έχει ο ακέραιος. - Πρέπει να χρησιµοποιήσετε το sizeof(int) που επιστρέφει τον αριθµό των bytes για τη µεταβλητή τύπου int για τη συγκεκριµένη αρχιτεκτονική που έχει παραχθεί το πρόγραµµά σας. - Η εκτύπωση σας είναι σωστή. - Δεν έχετε βάλει σχόλια. - Για τα όρια στα οποία πρέπει να ανήκει ο αριθµός θα πρέπει να βάζετε const δηλωµένες σταθερές όπως έχουµε τονίσει σε προηγούµενα εργαστήρια και όχι σταθερές τιµές. - Οι έλεγχοι σας είναι σωστοί. Η βελτιστοποίηση που θα µπορούσατε να κάνετε ήταν να βάλετε ένα break όταν βρίσκετε ένα σωστό γινόµενο καθώς δεν χρειάζονται οι υπόλοιπες πράξεις από το σηµείο αυτό και µετά. - Το όνοµα που δώσατε στη µεταβλητή που ελέγχει αν βρέθηκε γινόµενο είναι σχετικά καλό. - Έχετε κάνει 2 λάθη στην εκτύπωση σας. Το πρώτο είναι ότι όταν κάνει λάθος ο χρήστης στα όρια της τιµής που σας δίνει, θα πρέπει να ξαναεµφανίζετε το µήνυµα "Give integer > 1 and < 10000". Το δεύτερο λάθος είναι ότι έχετε βάλει σε κάθε printf αλλαγή γραµµής ενώ δεν χρειάζεται αλλά χρειάζεται µόνο όταν βρίσκετε κάποιο γινόµενο. - Δεν υπάρχουν σχόλια. Διαδικαστικά: όλα οκ Σωστή µετατροπή - Το loop δεν τερµατίζει όταν ο counter γίνει > 32. Προσπαθήστε να βρείτε γιατί (και ρωτήστε µας αν δε µπορείτε) - Σωστή στοίχιση - Καλά ονόµατα µεταβλητών - Υπάρχουν σχόλια, αν και το "µετατρέπει την είσοδο σε αριθµό" δεν έχει µεγάλη σχέση µε τη γραµµή κώδικα στην οποία αναφέρεται. Επίσης, δεν υπάρχουν γενικά σχόλια προγράµµατος. - Καλή δουλειά γενικά. : - Πολύ καλή δουλειά, µπράβο. Page 16

17 Αποστολή οκ Σωστά σχόλια -Σωστές πράξεις -Για να τυπώνεται µε κεφαλαία ο αριθµός σε δεκαεξαδική µορφή όπως στα παραδείγµατα πρέπει να γράψετε 0x%X -Σωστά σχόλια - Χρήση λάθος τελεστή στη συνθήκη του while. Το είναι bitwise or και κάνει διαφορετική πράξη από το το οποίο είναι λογικό or. -Σωστή υλοποίηση αλγορίθµου - Πολύ καλά ονόµατα µεταβλητών, µπράβο. Διαδικαστικά Όλα ΟΚ : -Πολύ καλή στοίχιση -Πολύ καλό output του προγράµµατος -Για τον έλεγχο των πόσων ψηφίων έδωσε ο χρήστης (πάνω από 32) έπρεπε να χρησιµοποιείτε το sizeof(int). -Σωστοί υπολογισµοί 1988 : -Πολύ καλή στοίχιση -Έπρεπε να χρησιµοποιήσετε σταθερές για τα όρια του εύρους ( ) -Σωστά ανιχνεύετε τους πρώτους αριθµούς. -Πολύ σωστή η εκτύπωση των αριθµών και το output του προγράµµατος. -Εκεί που χρησιµοποιήσατε την µεταβλητή key σαν flag ίσως µπορούσατε να χρησιµοποιήσετε κάποιο καλύτερο όνοµα µεταβλητής. Δείτε στο φυλλάδιο µε τίτλο αρχές καλού προγραµµατισµού στην σελίδα 8. -Θα µπορούσατε να χρησιµοποιήσετε break; µέσα στο εσωτερικό loop όταν βρεθεί ο πρώτος αριθµός προκειµένου να µην γίνονται περισσότερες επαναλήψεις. Μπράβο! - Διαδικαστικά: OK - : Στοίχιση: OK -- Ορθότητα πράξεων: To '-' στο δυαδικό δεν θα έπρεπε να βγαίνει -- Χρήση sizeof: OK -- Τερµατισµός επαναλήψεων: ΟΚ -- Εκτύπωση: Θα θέλαµε τους δεκαεξαδικούς µε κεφαλαία. -- Γενικά Σχόλια: Θα µπορούσατε να είχατε ίσως κάποιες σταθερές, πχ τα 8 bit και τα 4 bit για τα κενά - : -- Χρήση σταθερών: ΚΑΜΙΑ ΣΤΑΘΕΡΑ! τα όρια θα έπρεπε να ήταν σταθερές! -- Συνθήκες τερµατισµού επαναλήψεων: ( = bitwise OR) αντί για ( OR) --> πολύ σοβαρό λάθος. Σε αυτή την περίπτωση δουλεύει. θα µπορούσατε να είχατε break στην if (i %j) για να µην γίνονται περιττές επαναλήψεις. -- Ανίχνευση αριθµού: ΟΚ -- Εκτύπωση: OK -- Γενικά σχόλια: Το λάθος µε το or είναι πολύ σοβαρό, να το προσέξετε την επόµενη φορά! sum = sum +1 Θα µπορούσε να είναι και sum++. Το k Θα έπρεπε να περιγράφετε τι κάνει! Θα µπορούσατε να γλιτώσετε πράξεις µε µια break στο if(πχ όταν το k>=2) Page 17

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

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

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

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

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

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

lab3grades οριακό PASS

lab3grades οριακό PASS ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ - Αποστολή email: διαδικαστικά οκ, αλλά στείλατε την άσκηση µε δέκα λεπτά καθυστέρηση. Στο µέλλον τόσο µεγάλη καθυστέρηση θα είναι λόγος για fail γιατί η άσκηση θα θεωρείται εκπρόθεσµη.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός Ι Εργαστήριο 3ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Εξάσκηση στη βασική είσοδο / έξοδο Εξάσκηση στη χρήση µεταβλητών Δυαδικοί τελεστές Φορµαρισµένη έξοδος Πριν ξεκινήσετε Βήµα 1:

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

abistarakis PASS - Σωστή κατασκευή tgz και ονοµασία αρχείων

abistarakis PASS - Σωστή κατασκευή tgz και ονοµασία αρχείων Στις επόµενες σελίδες µπορείτε να δείτε ενδεικτικούς βαθµούς και σχόλια για το lab1. Επειδή αυτό ήταν το πρώτο εργαστήριο, οι βαθµοί δε θα µετρήσουν (δηλαδή όποιος βαθµολογήθηκε µε fail δε θα πάρει απουσία)

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: Τρίτη 10/11/2015, 22:00

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lab2grades printf("calculus: %.4lf\n", calculus);

lab2grades printf(calculus: %.4lf\n, calculus); lab2b.c:20:2: error: expected ; before print print("calculus: "); ^ printf("calculus:"); 02103 PASS - Απουσία σχολίων στο πρόγραµµα σας. - Τα ονόµατα των µεταβλητών που έχετε επιλέξει είναι περιγραφικά,

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

lab3_all Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ

lab3_all Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ Α.Μ. ΒΑΘΜΟΣ ΣΧΟΛΙΑ 1375 1389 1413 - Γράφετε αρκετά καθαρά τον κώδικα, µπράβο! Έχετε δώσει καλά ονόµατα στις µεταβλητές και ορίζετε ως σταθερές τις τιµές ταχυτήτων των κυνηγών - Μετατρέπετε όλο το χρόνο

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CE 120. Φροντιστήριο 14/10/2011

CE 120. Φροντιστήριο 14/10/2011 CE 120 Φροντιστήριο 14/10/2011 1 Απολογισµός εργαστηρίου Βρείτε το τµήµα σας στη σελίδα του µαθήµατος. Να ξέρετε τον Α.Μ. σας πριν το επόµενο εργαστήριο. Φτιάξτε ένα καλογραµµένο αρχείο σαν το errors.txt

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

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

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

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

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

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

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

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

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

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

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 7: Δομές Επανάληψης - Αναγνωσιμότητα 19/10/2015 Επανάληψη εκτέλεσης: while 2 while () lexpr true false body Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται

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

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

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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