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

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

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

Transcript

1 AEM COMMENTS -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος "the right word is: ". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! -Πολύ σωστά τα σχόλια που έβαλες αλλά προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf.είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. - Δεν κάνει compile. Πολλά από τα λάθη είναι απο απροσεξία - Δε χρησιµοποιεί σωστά τις σταθερές (πλήθος/µέγεθος λέξεων) και ως αποτέλεσµα θα κάνει crash όταν εκτελεστεί. - Μη χρησιµοποιείς σχόλια τύπου C++ - Απαγορεύεται η χρήση καθολικών µεταβλητών χωρίς σοβαρό λόγο - Άσχηµη στοίχιση -Άσχηµα ονόµατα µεταβλητών - Η συνάρτηση έπρεπε να βρίσκει την τελευταία λέξη µεγίστου µήκους. - Δεν καλείς ποτέ τη συνάρτηση find_longest - Η find_longest δε λειτουργεί σωστά και δεν εκτυπώνει αποτέλεσµα - Πρόσεχε τη στοίχιση - Μη χρησιµοποιείς σχόλια τύπου C++ - Άσχηµα ονόµατα µεταβλητών Πρέπει να χρησιµοποιείς σταθερές και όχι literals ενθουσιαστικά - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτική χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. - Προσοχή στην στοίχιση των εντολών. Page 1

2 Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτικ χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. - Επίσης, αποτελεί καλή πρακτική τα ονόµατα των σταθερών που ορίζονται µε #de να αποτελούνται µόνο από κεφαλαίους χαρακτήρες. - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτικ χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. - Τα σχόλια για την κάθε συνάρτηση θα έπρεπε να εµφανίζονται πριν από αυτή και όχι στο τέλος του προγράµµατος. - Να µην αγνοείς τα warnings του compiler. Το συγκεκριµένο warning σε ενηµερώνει για τον λανθασµένο αριθµό ορισµάτων στην κλήση της συνάρτησης printf. - Αρκετή προσοχή στην στοίχιση των εντολών. - Δεν κάνει compile λόγω ορθογραφικού λάθους! - Μη χρησιµοποιείς σχόλια τύπου C++ - Το printf στη find_longest έπρεπε να είναι εκτός του for - Πρέπει να χρησιµοποιείς σταθερές και όχι literals. Λόγω κακής χρήσης literals το πρόγραµµά σου κάνει crash στο τέλος. Page 2

3 Να χρησιµοποιείς περιγραφικά ονόµατα µεταβλητών (π.χ. όχι diafora ) και πινάκων (π.χ. όχι word). -Στην συνάρτηση find_longest() δηλώνεις την µεταβλητή diafora ως τύπου char ενώ η συνάρτηση strcmp() επιστρέφει έναν integer. Δες ξανά τι επιστρέφει η strcmp()! -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο word κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS. Δηλαδή στο πρόγραµµα σου αντί για i<75; θα έπρεπε να είχες γράψει i< NUMWORDS;. -Πρόσεχε λίγο πως δηλώνεις τα πρωτότυπα των συναρτήσεων σου. -Πρόσεχε πολύ την στοίχιση! - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτικ χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. - Προσοχή στην µορφοποίηση του µηνύµατος προς τον χρήστη. Αυτό που ζητούνταν ήταν µόνο η εκτύπωση της λέξης µε το µέγιστο µήκος. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να συµµορφώνεται µε τις αντίστοιχες οδηγίες. - Οι αγκύλες '}' πρέπει να βρίσκονται στην ίδια στήλη µε την εντολή που ''κλείνουν''. -Καθόλου σχόλια -Καλύτερη στοίχιση Page 3

4 πολύ οριακά -Βγαίνεις εκτός ορίων πίνακα στη find_longest γιατί το pos πηγαίνει µέχρι numwords-1 κι εσύ µέσα στην επανάληψη συγκρίνεις τη λέξη στο pos+1 του οποίου η µέγιστη τιµή είναι 74+1 =75 - Ο κώδικας σου δεν επιστρέφει τη µεγαλύτερη λεξικογραφικά λέξη, συγκρίνεις συνεχώς γειτονικά στοιχεία του πίνακα ενώ θα έπρεπε να συγκρίνεις ένα ένα τα στοιχεία του πίνακα µε την τοπικά µέγιστη λέξη. Επιπλέον, αν οι λέξεις είναι ίδιες θέτεις το maxword=0 που σηµαίνει ότι αναθέτεις ως µεγαλύτερη την πρώτη λέξη του πίνακα (γιατί?) - Θα έπρεπε να τυπώνεις τη λέξη µέσα στη find_longest - Για να τυπώσεις τη λέξη στη main θα έπρεπε η find_longest να είναι τύπου int και να επιστρέφεις τη θέση του πίνακα µε τη µεγαλυτερη λέξη. Έτσι, όπως το έχεις υλοποιήσει τώρα, η maxword στη find_longest είναι µια τοπική µεταβλητή και µετά το τέλος της κλήσης της συνάρτησης find_longest, η maxword παύει να υπάρχει. Η maxword που έχεις δηλώσει στη main είναι τοπική µεταβλητή της main και δεν έχει καµία σχέση µε αυτή της find_longest. - Να χρησιµοποιείς κεφαλαία γράµµατα για τις σταθερές -Το πρόγραµµα σου δεν κάνει compile. -Δεν έχεις δηλώσει τον πίνακα σου µέσα στην main(). -Λάθος στην printf() της find_longest(). Διάβασε καλά την θεωρία (πως τυπώνουµε έναν ακέραιο και πώς ένα string)! -Λογικό λάθος στην for() της συνάρτησης read_words(). -Η εκφώνηση της άσκησης ζητούσε να εκτυπώνεται µόνο η λέξη που είναι λεξικογραφικά µεγαλύτερη και τίποτα άλλο. Πρέπει να ακολουθείς ακριβώς τις οδηγίες! -Πρόσεχε πολύ την στοίχιση! - το πρόγραµµά σου δε δουλεύει σωστά και δεν τυπώνει τη µεγαλύτερη αλφαβητικά λέξη. - Στη read_words Λάθος η συνθήκη i>=74 στη for. - Δε θα έπρεπε να αποθηκεύεις µε scanf τις τιµές στην wordlist[wordsize], δηλ στην ουσία στη wordlist[75], η οποία αναφέρεται σε θέση µνήµης εκτός ορίων του πίνακα. - έτσι όπως χρησιµοποιείς την strcmp, αποθηκεύεις τη µικρότερη λέξη κάθε φορά - δε χρησιµοποιείς τις σταθερές - καθόλου σχόλια - καθόλου καλή στοίχιση Page 4

5 Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο max κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (όχι max). -Δεν υπάρχουν επαρκή σχόλια! -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο max κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι max). -Στην printf() της find_longest() δεν χρειάζεται να βάλεις "%9s\n". Έτσι εκτυπώνεις πρώτα κενά και µετά την λέξη που είναι λεξικογραφικά µεγαλύτερη! Πρέπει να ακολουθείς ακριβώς τις οδηγίες! -Πρόσεχε την στοίχιση! Πολύ καλή η υλοποίηση της find_longest Καλό βέβαια θα ήταν να είχες πιο περιγραφικό όνοµα για τη µεταβλητή k ή έστω να σχολίαζες τι κάνει, π.χ. Αποθηκεύει τη θέση του πίνακα µε την µεγαλύτερη αλφαβητικά λέξη για το κοµµάτι του πίνακα που έχει εξεταστεί µέχρι εκείνη τη στιγµή(k<=i) -Το πρόγραµµα σου δεν κάνει compile. -Πολλά λογικά και συντακτικά λάθη τα οποία αναφέρονται σε ύλη προηγούµενων εργαστηρίων. Για παράδειγµα, λείπουν παρενθέσεις, ερωτηµατικά, τα scanf δεν έχουν σωστή σύνταξη, κτλ. -Η return(0); µπαίνει στο τέλος της main() και πριν το }. Διάβασε καλά την θεωρία! -Δεν δηλώνεις σωστά τα πρωτότυπα των συναρτήσεων. -Η κλήση των συναρτήσεων µέσα από την main() δεν γίνεται σωστά. -Γενικότερα, δεν έχεις καταλάβει ακριβώς ποιο είναι το ζητούµενο της άσκησης. Διάβασε καλά την εκφώνηση! Page 5

6 Η εκφώνηση της άσκησης ζητούσε να εκτυπώνεται µόνο η λέξη που είναι λεξικογραφικά µεγαλύτερη και τίποτα άλλο. Πρέπει να ακολουθείς ακριβώς τις οδηγίες! - Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS και όχι 75. -Λογικό λάθος µέσα στην for() της συνάρτησης find_longest(). Για να διατρέξεις και να συγκρίνεις όλες τις λέξεις που περιέχει το αρχείο input.1 θα πρέπει i<numwords. Γράφεις σωστό, στοιχισµένο, καθαρό κώδικα. Το επόµενο επίπεδο για σένα είναι να χρησιµοποιείς σχόλια, σύµφωνα µε τις οδηγίες του pdf που σας έχει δωθεί στο εργαστήριο. Σε αυτή την άσκηση έχεις σχολιάσει µόνο τί κάνει το πρόγραµµα σου και τίποτε άλλο. - Απαράδεκτα ονόµατα µεταβλητών. Να µην επαναληφθεί αυτό. - Το πρόγραµµα δε λειτουργεί σωστά. Αν είχες καλή στοίχιση, θα είχες βρει εύκολα το πρόβληµα - Το πρόγραµµα εµφανίζει λάθος κατά την µεταγλώττιση και αυτό οφείλεται στην µη δήλωση της µεταβλητής i εντός της συνάρτησης read_words. - Επίσης, υπάρχει λάθος στην υλοποίηση της συνάρτησης find_longest καθώς δεν αποθηκεύεται η θέση της λέξης µε το µέγιστο µήκος οπότε δεν είναι δυνατή η εκτύπωση αυτής, όπως ζητείται από τις προδιαγραφές της άσκη - Το πρόγραµµα δεν περιέχει σχόλια σχετικά µε την λειτουργία των συναρτήσεων read_words και find_longest, το οποίο είναι και ένα από τα ζητούµενα της άσκησης. - Η σταθερά NUMSIZE θα ήταν καλό να έχει πιο περιγραφικό όνοµα, όπως για παράδειγµα NUMWORDS. - Προσοχή στην στοίχιση. -Το πρόγραµµά σου δεν κάνει compile. -Δεν υλοποίησες σχεδόν καθόλου την συνάρτηση find_longest. Επιπλέον, δεν την καλείς πουθενά. -H εντολή for στην συνάρτηση find_longest είναι ηµιτελής, λείπουν τα {}. Γι'αυτό δεν κάνει compile. -Η συνάρτηση read_words πάντως είναι σωστή, εποµένως αν διαβάσεις παραπάνω θα τα καταφέρεις καλύτερα στο επόµενο εργαστήριο. -Πολύ σωστά τα σχόλια που έβαλες αλλά προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf.είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. Page 6

7 Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος "Longest Word is: ". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! -Πολύ σωστά και αναλυτικά τα σχόλια που έβαλες αλλά προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf πριν από κάθε συνάρτηση.είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Πρόσεχε τι παραµέτρους δίνεις στην main(). Διάβασε καλά την θεωρία! -Πρόσεχε λίγο πως δηλώνεις τα πρωτότυπα των συναρτήσεων σου (µην αφήνεις κενά). -Να χρησιµοποιείς περιγραφικά ονόµατα σταθερών (π.χ. όχι grammes, sthles) -Στην printf() της find_longest() δεν χρειάζεται να βάλεις "%9s\n". Έτσι εκτυπώνεις πρώτα κενά και µετά την λέξη που είναι λεξικογραφικά µεγαλύτερη! Πρέπει να ακολουθείς ακριβώς τις οδηγίες! -Δεν υπάρχουν επαρκή σχόλια! -Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS. Δηλαδή στο πρόγραµµα σου αντί για i<=74; θα έπρεπε να είχες γράψει i<=numwords-1; Ή i<numwords; -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι max). -Δεν υπάρχουν επαρκή σχόλια! -Μην αφήνεις κενές γραµµές στον κώδικα σου όπου δεν χρειάζεται! - Τα σχόλια για την κάθε συνάρτηση θα έπρεπε να εµφανίζονται πριν από αυτή και όχι στο τέλος του προγράµµατος. - Προσοχή στην στοίχιση των εντολών. Page 7

8 Το πρόγραµµά σου δε δουλεύει σωστά, δεν τυπώνει τη µεγαλύτερη λέξη -Στη read_words στο for(i=0;i<=numwords;i++) βγαίνεις εκτός ορίων πίνακα δεν υπάρχει το στοιχείο wordlist[75], οι θέσεις του πίνακα είναι από 0 έως 74. Θα έπρεπε η συνθήκη να είναι i<numwords. -Στη find-longest το for σου W φτάνει µέχρι WORDSIZE και όχι µέχρι NUMWORDS-1, οπότε διατρέχεις τον πίνακα µέχρι το στοιχείο 10. -Δε χρειάζονται τρία if, αλλά µόνο ένα για να βρεις τη µεγαλύτερη λέξη - Όταν τελειώσει η find-longest τα στοιχεία του πίνακα wordlist έχουν αλλάξει, εµείς θέλουµε να χρησιµοποιήσεις τα στοιχεία του πίνακα για νακάνεις τη σύγκριση αλλά χωρίς να τα αλλάξεις. - να στοιχίζεις καλύτερα τα σχόλιά σου - αντί για εργαστήριο 5, στο πρώτο σου σχόλιο γράψε µε µια πρόταση τί κάνει το πρόγραµµά σου -Το πρόγραµµά σου δεν κάνει αυτό που ζητάει η εκφώνηση. -Δεν εκτυπώνεις πουθενά την λέξη που ψάχνουµε! -Η εντολή for δεν θέλει ερωτηµατικό στο τέλος της. Όπως την έχεις τώρα, η συνάρτηση read_words διαβάζει µόνο µία λέξη. Διάβασε ξανά την αντίστοιχη θεωρία. -Η εντολή for στην συνάρτηση find_longest πρέπει να εκτελείται όσο i<numwords και όχι όσο i<=numwords. -Η εντολή if δεν θέλει ερωτηµατικό στο τέλος της. -Πρόσεξε την στοίχισή σου!!!! -Από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Η συνάρτηση read_words πάντως είναι σωστή, εποµένως αν διαβάσεις παραπάνω θα τα καταφέρεις καλύτερα στο επόµενο εργαστήριο. -Στην συνθήκη if(strlen(words[i])>max_numsize) έπρεπε να έχεις >= και όχι απλά >. Όπως το έχεις βρίσκεις την πρώτη λέξη µε το µεγαλύτερο µήκος και όχι την τελευταία. -Aπό εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. πολύ οριακά - Δε χρησιµοποιείς συναρτήσεις συµβολοσειρών και ως αποτέλεσµα όλοι οι υπολογισµοί είναι λάθος. - Μην αγνοείς τα compiler warnings. - Καλή δουλειά στα σχόλεια. - Πρόσεχε τη στοίχιση - Το πρόγραµµα δεν περιέχει σχόλια σχετικά µε την λειτουργία των συναρτήσεων read_words και find_longest, όπως απαιτούν οι προδιαγραφές της άσκησης. - Αποτελεί καλή πρακτική τα ονόµατα των σταθερών που ορίζονται µε #define να αποτελούνται µόνο από κεφαλαίους χαρακτήρες. - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτική χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. Page 8

9 1085 συνάρτησης Οι επιπλέον κενές γραµµές στην µορφοποίηση του µηνύµατος προς τον χρήστη είναι περιττές. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να συµµορφώνεται µε τις αντίστοιχες οδηγίες. - Οι δύο τελευταίες εντολές for στην συνάρτηση find_longest θα µπορούσαν να συµπτυχθούν σε µία εντολή. Αυτή η αλλαγή θα απλοποιούσε την λειτουργία της - Προσοχή στην στοίχιση των εντολών. - Άσχηµη στοίχιση -Στην συνθήκη if ( strlen(wordlist[i]) > maxword ) έπρεπε να έχεις >= και όχι απλά >. Όπως το έχεις βρίσκεις την πρώτη λέξη µε το µεγαλύτερο µήκος και όχι την τελευταία. -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος " the longest word is ". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! -Από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. - Θα ήταν καλό οι µεταβλητές που δηλώνονται καθολικά να έχουν δηλωθεί εντός της συνάρτησης main. - Αποτελεί καλή πρακτική τα ονόµατα των σταθερών που ορίζονται µε #define να αποτελούνται µόνο από κεφαλαίους χαρακτήρες. -Το πρόγραµµα σου δεν κάνει compile. -Πολλά λογικά και συντακτικά λάθη τα οποία αναφέρονται σε ύλη προηγούµενων εργαστηρίων. -Δεν έχεις καταλάβει ποιο είναι το ζητούµενο της άσκησης. Διάβασε καλά την εκφώνηση! Page 9

10 Το πρόγραµµά σου δεν κάνει αυτό που ζητάει η εκφώνηση. Όπως το έχεις, η συνάρτηση find_longest τυπώνει την τελευταία λέξη που έχει µεγαλύτερο µήκος από την προηγούµενή της και όχι την τελευταία µεγαλύτερη λέξη. Προσπάθησε να καταλάβεις την διαφορά και να διορθώσεις τον κώδικά σου. -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος "The word with the greatest length is ". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! -Από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Στην συνθήκη if(length[i]>length[i-1] έπρεπε να έχεις >= και όχι απλά >. -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο maxleksi κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Η εκφώνηση της άσκησης ζητούσε να εκτυπώνεται µόνο η λέξη που είναι λεξικογραφικά µεγαλύτερη και τίποτα άλλο. Πρέπει να ακολουθείς ακριβώς τις οδηγίες! -Πρόσεχε την στοίχιση! - Δεν καλείς ποτέ τη συνάρτηση find_longest - Η find_longest δεν εκτυπώνει το σωστό αποτέλεσµα - Πρόσεχε τη στοίχιση και τα ονόµατα των µεταβλητών -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος " the longest word is ". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! -Πολύ σωστά τα σχόλιά σου, προσπάθησε να γράφεις και τα pre και post conditions κάθε συνάρτησης και να κάνεις ακόµα πιο ευανάγνωστο τον κώδικά σου. Page 10

11 πολύ οριακά -Δεν εκτυπώνεις την λέξη που είναι λεξικογραφικά µεγαλύτερη αλλά όλες τις λέξεις που περιέχονται στον πίνακα. -Πολύ άσχηµη στοίχιση. -Πρέπει να κλείνεις ένα } στη στήλη που ξεκινά το αντίστοιχο block -Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDS 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS. Δηλαδή στο πρόγραµµα σου αντί για i<75; θα έπρεπε να είχες γράψει i< NUMWORDS; -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο max κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι max). -Στην printf() της find_longest() δεν χρειάζεται να βάλεις "%9s\n". Έτσι εκτυπώνεις πρώτα κενά και µετά την λέξη που είναι λεξικογραφικά µεγαλύτερη! Πρέπει να ακολουθείς ακριβώς τις οδηγίες! - Εκτός από τα γενικά σχόλια για το πρόγραµµά σου στην αρχή του κώδικα είναι σηµαντικό να σχολιάζεις πάνω από κάθε συνάρτηση τι κάνει, αλλά και να εξηγείς τα µη ξεκάθαρα ή δυσνόητα σηµεία του κώδικά σου. -έπρεπε να τυπώσεις µόνο τη µεγαλύτερη λέξη και όχι H megaliteri leksi einai:, γιατί αυτό ζητάει η άσκηση. - Άσχηµη στοίχιση - Η συνάρτηση έπρεπε να βρίσκει την τελευταία λέξη µεγίστου µεγέθους. - Η συνάρτηση έπρεπε να εκτυπώνει σκέτη τη λέξη. -Πολλά λάθη στο compile -strcpy(max,"copy succesfull"); τί ακριβώς πας να κάνεις εδώ? Page 11

12 Δεν περνάει το compile, έχεις παρά πολλά λάθη - δεν έχεις καταλάβει πότε χρησιµοποιούµε = και πότε ==. Π.χ. i=5; ( ανάθεση, δηλ. Το i έχει πάρει την τιµή 5) if(i==5) { printf( %d\n, i);} (σύγκριση, είναι το i ίσο µε 5? αν ναι τύπωσε το) - λάθος σύνταξη της if - λάθος σύνταξη όταν υλοποιούµε µια συνάρτηση. Δε βάζουµε ; πριν ανοίξουµε αγκύλες να γράψουµε τον κώδικα της συνάρτησης - έχεις ξεχάσει ερωτηµατικά - έχεις δηλώσει µεταβλητής why τύπου char, και προσπαθείς να την τυπώσεις ώς string. - λάθος αριθµός χαρακτήρων στη scanf, θέλουµε λέξεις µε 9 χαρακτήρες και εσύ διαβάζεις µε δεν έχεις καταλάβει τους πίνακες - γιατί προσπαθείς να συκρίνεις κάθε λέξη του πίνακα µε τη λέξη why? Αν ξέρεις ότι αυτή είναι η µεγαλύτερη γιατί να µπεις καν στη διαδικασία να γράψεις κώδικα για να τη βρεις, ας έφτιαχνες ένα πρόγραµµα που να τυπώνει απλά το why!!! (Το θέµα έιναι ότι δε ξέρουµε τι λέξεις θα µπουν στον πίνακα για αυτό και φτιάχουµε ένα πρόγραµµα που ανεξάρτητα από το τί λέξεις θα έχουµε ως είσοδο αυτό θα βρίσκει και θα µας τυπώνει τη µεγαλύερη αλφαβητικά) - Ελλειπή σχόλια συναρτήσεων - Πρόσεχε τη στοίχιση - Η συνάρτηση έπρεπε να εκτυπώνει σκέτη τη λέξη. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι str). -Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο µέγεθος µιας λέξης θα γράφεις WORDSIZE. Δηλαδή στο πρόγραµµα σου αντί για str[10]; θα έπρεπε να είχες γράψει str[wordsize];. -Δεν υπάρχουν επαρκή σχόλια! - Απαγορεύεται η χρήση καθολικών µεταβλητών χωρίς σοβαρό λόγο - Ελειπή σχόλια αυναρτήσεων - Τα σχόλια των συναρτήσεων δεν συµµορφώνονται µε τους κανόνες του αντίστοιχου φυλλαδίου. Επί παραδείγµατι, στην ενότητα parameters επεξηγούµε τις παραµέτρους που λαµβάνει η αντίστοιχη συνάρτηση και όχι τις µεταβλητές που δηλώνονται εντός αυτής. - Τα σχόλια των συναρτήσεων δεν συµµορφώνονται µε τους κανόνες του αντίστοιχου φυλλαδίου. - Είναι χρήσιµο να υπάρχουν κάποιες κενές γραµµές µεταξύ διαδοχικών ορισµών συναρτήσεων ώστε να διευκολύνεται η ανάγνωση του προγράµµατος. Page 12

13 -Η εκφώνηση της άσκησης ζητούσε να εκτυπώνεται µόνο η λέξη που είναι λεξικογραφικά µεγαλύτερη και τίποτα άλλο. Πρέπει να ακολουθείς ακριβώς τις οδηγίες! -Να χρησιµοποιείς περιγραφικά ονόµατα σταθερών και πινάκων (π.χ. όχι str, max). -Δεν υπάρχουν επαρκή σχόλια! Προσοχή στην µορφοποίηση του µηνύµατος προς τον χρήστη. Αυτό που ζητούνταν ήταν µόνο η εκτύπωση της λέξης µε το µέγιστο µήκος. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να 1116 συµµορφώνεται µε τις αντίστοιχες οδηγίες Ο κώδικάς σου είναι σωστός εκτός από την εντολή printf στην συνάρτηση find_longest. Έπρεπε να τυπώσεις το wordlist[max_thesi] και όχι το wordlist[i]. Πρόσεξε γιατί τέτοιες λεπτοµέρειες κάνουν όλο το πρόγραµµά σου να φαίνεται λάθος χωρίς να είναι. Επιπλέον, η µεταβλητή i εκείνη την στιγµή έχει την τιµή 75, άρα προσπελαύνεις µια θέση εκτός πίνακα... -Πολύ σωστά τα σχόλια που έβαλες αλλά προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf.είναι πολύ 1118 σηµαντικά για την κατανόηση ενός προγράµµατος Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο µέγεθος µιας λέξης θα γράφεις WORDSIZE. Δηλαδή στο πρόγραµµα σου αντί για maxleksi [10]; θα έπρεπε να είχες γράψει maxleksi [WORDSIZE];. -Πρόσεχε πως καλείς τις συναρτήσεις σου µέσα στην main() (µην αφήνεις κενά). -Δεν υπάρχουν επαρκή σχόλια! - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτικ χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. - Αρκετή προσοχή στην στοίχιση των εντολών. Επίσης, οι αγκύλες '}' πρέπει να βρίσκονται στην ίδια στήλη µε την εντολή που ''κλείνουν''. Page 13

14 όταν υλοποιήσεις µια συνάρηση να σχολιάζεις από πάνω τι κάνει η συνάρτησή σου. -σχόλια τύπου δήλωση µεταβλητών, κλήση συναρτήσεων είναι περιττά - Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές grames 75 και stiles 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις grames. Δηλαδή στο πρόγραµµα σου αντί για i<=74; θα έπρεπε να είχες γράψει i<=grames -1; Ή i<grames;. -Να χρησιµοποιείς περιγραφικά ονόµατα σταθερών (π.χ. όχι grames, stiles) και πινάκων (π.χ. όχι max) -Μόνο όταν διαβάζουµε έναν χαρακτήρα από το πληκτρολόγιο αφήνουµε ένα κενό ανάµεσα από τα " και από το %, δηλ. scanf (" %c", &a). -Δεν υπάρχουν επαρκή σχόλια! -Πρόσεχε πολύ την στοίχιση! -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο max κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι max). -Πρόσεχε πως καλείς τις συναρτήσεις σου µέσα στην main() (µην αφήνεις κενά). -Δεν υπάρχουν επαρκή σχόλια! - Προσοχή στην µορφοποίηση του µηνύµατος προς τον χρήστη. Αυτό που ζητούνταν ήταν µόνο η εκτύπωση της λέξης µε το µέγιστο µήκος. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να συµµορφώνεται µε τις αντίστοιχες οδηγίες. -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. Page 14

15 Πολύ σωστά τα σχόλιά σου πριν τις συναρτήσεις, προσπάθησε όµως να γράφεις και τα pre και post conditions κάθε συνάρτησης και να κάνεις ακόµα πιο ευανάγνωστο τον κώδικά σου. Διάβασε ξανά το φυλλάδιο commenting_standard.pdf. -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος "i leksi me to megalitero megethos einai i". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να 1129 υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! 1130 ενθουσιαστικά -Πρόσεχε πολύ την στοίχιση! -Δεν υπάρχουν επαρκή σχόλια! - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτική χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. - Οι δύο συνθήκες στην εντολή if της συνάρτησης find_longest θα µπορούσαν να συµπτυχθούν σε µία, όπου θα γινόταν έλεγχος βάσει του τελεστή >=. - Προσοχή στην µορφοποίηση του µηνύµατος προς τον χρήστη. Αυτό που ζητούνταν, ήταν µόνο η εκτύπωση της λέξης µε το µέγιστο µήκος. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να συµµορφώνεται µε τις αντίστοιχες οδηγίες. - Προσοχή στην στοίχιση των εντολών. Επίσης, οι αγκύλες '}' πρέπει να βρίσκονται στην ίδια στήλη µε την εντολή που ''κλείνουν''. πολύ οριακά -Δεν εκτυπώνεις την λέξη που είναι λεξικογραφικά µεγαλύτερη. Η printf() έπρεπε να ήταν έξω από την for()! -Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS. Δηλαδή στο πρόγραµµα σου αντί για i<75; θα έπρεπε να είχες γράψει i<numwords; -Πρόσεχε πως δηλώνεις τα πρωτότυπα των συναρτήσεων σου (µην αφήνεις κενά). -Πρόσεχε πολύ την στοίχιση! -Δε περνάει από compile. - Δεν έχεις υλοποιήσει τη find_longest Page 15

16 Πρόσεχε λίγο τη στοίχιση -Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS. Δηλαδή στο πρόγραµµα σου αντί για i<=74; θα έπρεπε να είχες γράψει i<= NUMWORDS -1; Ή i< NUMWORDS;. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι max) -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο max κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. Η σταθερά για το µέγεθος της λέξης είναι ίση µε 9 ενώ θα επρεπε να είναι ίση µε 10, 9 χαρακτήρες για τη λέξη και έναν για το \0. -Εφόσον δηλώνεις την σταθερά AR_LEKSEWN=75 θα έπρεπε και να τη χρησιµοποιείς παντού και να µην γράφεις 75. -Πολύ σωστά τα σχόλιά σου πριν τις συναρτήσεις, προσπάθησε όµως να γράφεις και τα pre και post conditions κάθε συνάρτησης και να κάνεις ακόµα πιο ευανάγνωστο τον κώδικά σου. Διάβασε ξανά το φυλλάδιο commenting_standard.pdf. -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος "The longest word is:". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! -Πρόσεξε την στοίχισή σου!!!! -Πρόσεχε την στοίχιση! -Πρέπει να κλείνεις ένα } στη στήλη που ξεκινά το αντίστοιχο block -Πολύ σωστά τα σχόλια που έβαλες αλλά προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. - Πρόσεχε τη στοίχιση Page 16

17 Τα σχόλια των συναρτήσεων δεν συµµορφώνονται µε τους κανόνες του αντίστοιχου φυλλαδίου. - Προσοχή στην στοίχιση των εντολών. Επίσης, οι αγκύλες '}' πρέπει να βρίσκονται στην ίδια στήλη µε την εντολή που ''κλείνουν''. -Δεν δηλώνεις σωστά τα πρωτότυπα των συναρτήσεων. Διάβασε καλά την θεωρία! - Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS και όχι Προσοχή στην µορφοποίηση του µηνύµατος προς τον χρήστη. Αυτό που ζητούνταν ήταν µόνο η εκτύπωση της λέξης µε το µέγιστο µήκος. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να συµµορφώνεται µε τις αντίστοιχες οδηγίες. - Τα σχόλια των συναρτήσεων δεν συµµορφώνονται µε τους κανόνες του αντίστοιχου φυλλαδίου. - Προσοχή στην µορφοποίηση του µηνύµατος προς τον χρήστη. Αυτό που ζητούνταν ήταν µόνο η εκτύπωση της λέξης µε το µέγιστο µήκος και όχι η γραµµή του αρχείου στην οποία αυτή βρίσκεται. Είναι χρήσιµο η µορφοποίηση των µηνυµάτων προς τον χρήστη να συµµορφώνεται µε τις αντίστοιχες οδηγίες. - Προσοχή στην στοίχιση των εντολών. Οι αγκύλες '}' πρέπει να βρίσκονται στην ίδια στήλη µε την εντολή που ''κλείνουν''. - Είναι χρήσιµο να υπάρχουν κάποιες κενές γραµµές µεταξύ διαδοχικών ορισµών συναρτήσεων ώστε να διευκολύνεται η ανάγνωση του προγράµµατος. -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Το πρόγραµµά σου δεν κάνει compile. -Διάβασε καλά την θεωρία για τον τρόπο δήλωσης µιας συναρτησης καθώς και για τον τρόπο χρήσης. Η σύνταξή σου και το σηµείο τοποθέτησης δεν είναι καθόλου σωστά. -Πρόσεξε την στοίχισή σου!!!! -Αν διαβάσεις λίγο παραπάνω θα τα καταφέρεις καλύτερα στο επόµενο εργαστήριο. Page 17

18 Τα σχόλια των συναρτήσεων δεν συµµορφώνονται µε τους κανόνες του αντίστοιχου φυλλαδίου. Επί παραδείγµατι, ως preconditions αναφέρουµε τις διάφορες υποθέσεις που έχουµε κάνει όσον αφορά στην λειτουργία της αντίστοιχη συνάρτησης και όχι το αποτέλεσµα που αυτή επιστρέφει. - έχεις warning στο if(x=0) που θα έπερεπε να είναι if(x==0). Είναι σηµαντικό λάθος και το πρόγραµµα σου εντέλει τρέχει σωστά επειδή αν δύο λέξεις είναι ίδιες δεν µας επηρεάζει να αλλάξει ή να µην αλλάξει η ανάθεση στο max. - δεν υπάρχει λόγος να αντιγράφεις ένα string στον εαυτό του. Οι συγκρίσεις για x<0 και χ==0 είναι περιττές - λάθος αριθµός χαρακτήρων στη scanf, θέλουµε λέξεις µε 9 χαρακτήρες και εσύ διαβάζεις µε Να χρησιµοποιείς τις σταθερές αντί για τιµές µέσα στο πρόγραµµά σου όποτε χρειάζεται -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Η άσκηση ζητάει την εκτύπωση µόνο της λέξης και όχι την πρόσθετη εκτύπωση του µηνύµατος "The word with the biggest length is:". Πρόσεξε λίγο καλύτερα την εκφώνηση, είναι αρκετά σηµαντικό να υλοποιείς αυτό που πραγµατικά σου ζητείται και όχι αυτό που θέλεις εσύ! - Δεν καλείς ποτέ τη συνάρτηση find_longest - Πρόσεχε τη στοίχιση - Δεν υπολογίζει τη θέση στην οποία βρίσκεται η λέξη µε το µεγαλύτερο µήκος - Μη χρησιµοποιείς \n στη scanf - Δεν υπάρχουν σχόλια. Page 18

19 Ουσιαστικά κάνεις σύγκριση χαρακτήρων και όχι συµβολοσειρών. Το αποτέλεσµα είναι ένας παράξενος συνδυασµός των µεγαλύτερων γραµµάτων και όχι η µεγαλύτερη λέξη! -Εφόσον δηλώνεις τις σταθερές numwords=75 και wordsize=10 θα έπρεπε και να τις χρησιµοποιείς και να µην γράφεις 74 και 9. -Εφόσον δηλώνεις την βιβλιοθήκη <string.h> θα έπρεπε να χρησιµοποιείς κάποια συνάρτησή της. -Η συµβολοσειρά maxword είανι ελλειπής γιατί δεν βάζεις στην τελευταία της θέση τον χαρακτήρα '\0'. Αυτός είναι ο λόγος που τυπώνονται αυτά τα παράξενα σύµβολα! -Αντί για την printf("%c", maxword[i]); µπορούσες να γράψεις printf("%s", maxword); -Από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. - Η συνάρτηση έπρεπε να εκτυπώνει σκέτη τη λέξη. -Δεν υλοποίησες σχεδόν καθόλου την συνάρτηση find_longest. Επιπλέον, δεν την καλείς πουθενά. -Από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο commenting_standard.pdf. Είναι πολύ σηµαντικά για την κατανόηση ενός προγράµµατος. -Πρόσεξε την στοίχισή σου!!!! -Εφόσον δηλώνεις τις σταθερές numwords=75 και wordsize=10 θα έπρεπε και να τις χρησιµοποιείς και να µην γράφεις 74 και 9 ή 10. -Η συνάρτηση read_words πάντως είναι σωστή, εποµένως αν διαβάσεις παραπάνω θα τα καταφέρεις καλύτερα στο επόµενο εργαστήριο. - Το κενό µεταξύ του χαρακτήρα '' και του χαρακτήρα % στην εντολή scanf δεν είναι απαραίτητο. - Από την στιγµή που στην αρχή του προγράµµατος σου δηλώνεις τις σταθερές NUMWORDS 75 και WORDSIZE 10, στην συνέχεια όταν θα θέλεις να αναφερθείς π.χ. στο πλήθος των λέξεων θα γράφεις NUMWORDS. Δηλαδή στο πρόγραµµα σου αντί για i<=74; θα έπρεπε να είχες γράψει i<= NUMWORDS -1; Ή i< NUMWORDS;. -Να χρησιµοποιείς περιγραφικά ονόµατα πινάκων (π.χ. όχι max) -Δεν υπάρχουν επαρκή σχόλια! Page 19

20 Είναι χρήσιµο τα ονόµατα των σταθερών να είναι σε συµφωνία µε την ποσότητα που αναπαριστούν. Έτσι, οι σταθερές NUMWORDS και WORDSIZE θα έπρεπε να έχουν τιµές 75 και 10 αντίστοιχα. - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτική χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. -H scanf() δεν συντάσσεται έτσι! Ποτέ δεν βάζουµε \n µέσα στην scanf(). -Να χρησιµοποιείς περιγραφικά ονόµατα σταθερών και πινάκων (π.χ. όχι max). -Μέσα στην for() της συνάρτησης find_longest() θα έπρεπε να βάλεις i=1; και όχι i=0;, αφού ήδη στο max κρατάς την πρώτη λέξη του πίνακα ο έλεγχος θα πρέπει να ξεκινά από την δεύτερη λέξη! Ξεκινώντας τον έλεγχο από την δεύτερη λέξη µειώνεις τον υπολογιστικό φόρτο του συστήµατος. -Πρόσεχε πολύ την στοίχιση της συνάρτησης find_longest()! - Εκτός από τα γενικά σχόλια για το πρόγραµµά σου στην αρχή του κώδικα είναι σηµαντικό να σχολιάζεις πάνω από κάθε συνάρτηση τι κάνει, αλλά και να εξηγείς τα µη ξεκάθαρα ή δυσνόητα σηµεία του κώδικά σου. -Ο κώδικάς σου είναι άψογος! Τα σχόλιά σου είναι πολύ σωστά και κατανοητά! Συνέχισε έτσι! - Εφόσον ο αριθµός των λέξεων έχει δηλωθεί ως σταθερά, αποτελεί καλή πρακτικ χρησιµοποιείται η σταθερά και όχι η τιµή αυτής όπου είναι απαραίτητο, ώστε να διευκολύνονται µελλοντικές επεκτάσεις. Page 20

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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. - Ονόµατα µεταβλητών: Καλά, εκτός

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β 1. (10 μον.) Απαντήστε σωστό ή λάθος στις παρακάτω ερωτήσεις (αʹ) _2togo είναι έγκυρο όνομα μεταβλητής (βʹ) Αν p είναι δείκτης στο πρώτο στοιχείο

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

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 1η εβδομάδα. Κοζάνη, 5 Οκτωβρίου 2007. Βασικά στοιχεία γραφής προγραμμάτων με τη C: α) Case Sensitive!!! β) Δυνατότητα εισαγωγής σχολίων με /*

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

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

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

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

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

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

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

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

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

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

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

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

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

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

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

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας

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

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

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

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

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

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

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις Προγραμματισμός Η/Y Διάλεξη 6 η : Συναρτήσεις Η C είναι συναρτησιακή γλώσσα προγραμματισμού Ως τώρα όλα τα προγράμματα που είδαμε ήταν γραμμένα μέσα στην main Τι θα κάνουμε όμως αν Το πρόγραμμα είναι τεράστιο

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C Εισαγωγή στη Γλώσσα C Η C είναι µια δοµηµένη (structured ) γλώσσα ηλαδή ένα C πρόγραµµα αποτελείται από υποπρογράµµατα τα οποία ονοµάζονται συναρτήσεις ( functions ), όπου η κάθε συνάρτηση εκτελεί µια

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών

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

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

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

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

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

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

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017 Σημειωματάαριο Δευτέρας 16 Οκτ. 2017 Λίστες και ανακύκλωση for Είδαμε στην αρχή (ξανά) μερικά βασικά πράγματα για λίστες. Λίστα είναι μια πεπερασμένη ακολουθία από αντικείμενα (αριθμούς, strings, άλλες

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