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

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Άσκηση 1: -Σωστά αποτελέσµατα και σωστή έξοδος. -Δεν έχετε περιορισµό στην scanf για την ανάγνωση strings. Δηµιουργείτε το format του string µε χρήση της µεθόδου µε το sprintf αλλά δεν το χρησιµοποιείτε τελικά στην ανάγνωση των strings! Διαβάστε πιο προσεκτικά τις αντίστοιχες διαφάνιες του µαθήµατος. -Πολύ καλά ονόµατα συναρτήσεων και µεταβλητών εκτός της string όπου θα µπορούσατε να χρησιµοποιήσετε κάτι πιο αντιπροσωπευτικό (π.χ. option, command ή action). Επίσης, να δίνετε και πιο περιγραφικά ονόµατα στις παραµέτρους των συναρτήσεων και όχι απλά να τα επεξηγείτε µέσω σχολίων. -Καλή στοίχιση, αλλά οι συναρτήσεις θα έπρεπε να βρίσκονται ένα tab πιο έξω. -Για σωστότερο σχολιασµό, διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του. 357 Άσκηση 2: -Σωστή υλοποίηση εν γένει και σωστή µορφοποίηση εξόδου. Κάποιες παρατηρήσεις: -Η strcat τοποθετεί τον '\0' character από µόνη της, δεν χρειάζεται να το κάνετε εσείς! Γενικά, αν θέλετε να δείτε πως χρησιµοιούνται και τί κάνουν οι διάφορες συναρτήσεις, από την κονσόλα κάντε man <όνοµα-συνάρτησης>. π.χ. man strcat, για να δείτε τις παραµέτρους και την λειτουργικότητα της strcat. -O compiler πετάει ένα warning στην printf γιατί χρησιµοποιείτε το %zu format ενώ το αντίστοιχο argument είναι τύπου integer. Nα διορθώνετε όλα τα warnings που εµφανίζονται κατά το compile ακόµα και αν το πρόγραµµα εκτελείται σωστά. -Όπως και στην 1η Άσκηση δεν έχετε περιορισµό στην scanf για την ανάγνωση strings ενώ δηµιουργείτε το format του string µε χρήση της µεθόδου µε το sprintf. Εφόσον έχετε δηµιουργήσει την µορφοποίηση των strings που θέλετε να διαβάσετε και την έχετε αναθέσει στην µεταβλητή format, η scanf σας θα έπρεπε να είναι: scanf(format, last_string); -Καλά ονόµατα µεταβλητών, όµως αντί για sting, last_string θα µπορούσατε να χρησιµοποιήσετε word, last_word. -Καλή στοίχιση, όµως η else δεν θα έπρεπε να ξεκινάει στην ίδια γραµµή που τελειώνει η if αλλά στην από κάτω. Επίσης, η else δεν είναι απαραίτητη στην συγκεκριµένη περίπτωση. Γενικά καλή προσπάθεια και στις δύο ασκήσεις, µπράβο! Προσπαθείστε να διορθώσετε τις όποιες ατέλειες σας τονίζουµε (σχόλια, string format, ονοµατοδοσία).

2 400 Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. - Ορθότητα υπολογισµών/έξοδος προγράµµατος:ok, αλλά το output δεν έχει το format που ζητάµε. Συγκεκριµένα, κάνετε πολλές αλλαγές γραµµών. - Χρήση scanf: %s αντί για τον περιορισµό %5s. Αδικαιολόγητο... - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Κανένα σχόλιο. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα:Μη χρησιµοποιείτε µονογραµµατικά ονόµατα µεταβλητών. Αποφεύγετε ονόµατα του στυλ number1/2 γιατί είναι πολύ εύκολο να µπερδευτούν. - Χρήση strings: οκ 402 Οριακό - Σωστά αποτελέσµατα και σωστή έξοδος. - Δε χρησιµοποιήσατε επικεφαλίδες συναρτήσεων (prototypes). - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Καλά ονόµατα µεταβλητών και συναρτήσεων, εκτός από τις τυπικές παραµέτρους x, y. Να αποφεύγετε µεταβλητές ενός χαρακτήρα, ειδικά αν δεν είναι µετρητές. - Σωστή χρήση της strcmp. Θα µπορούσατε να χρησιµοποιήσετε κατευθείαν string literal µέσα στη strcmp αντί να δηλώνετε τα strings power και sum (δηλαδή να γράφατε: if (strcmp(expr,"power")==0) ) - Καλά γενικά σχόλια και σχόλια προγράµµατος. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του για τα σχόλια συναρτήσεων. - Καλή στοίχιση.

3 Άσκηση 1: -Σωστά αποτελέσµατα και σωστή έξοδος. -Δεν έχετε περιορισµό στην scanf για την ανάγνωση strings. Δηµιουργείτε το format του string µε χρήση της µεθόδου µε το sprintf αλλά δεν το χρησιµοποιείτε τελικά στην ανάγνωση των strings! Διαβάστε πιο προσεκτικά τις αντίστοιχες διαφάνιες του µαθήµατος. -Πολύ καλά ονόµατα συναρτήσεων και µεταβλητών εκτός της string όπου θα µπορούσατε να χρησιµοποιήσετε κάτι πιο αντιπροσωπευτικό (π.χ. option, command ή action). Επίσης, να δίνετε και πιο περιγραφικά ονόµατα στις παραµέτρους των συναρτήσεων και όχι απλά να τα επεξηγείτε µέσω σχολίων. -Καλή στόιχιση, αλλά οι συναρτήσεις θα έπρεπε να βρίσκονται ένα tab πιο έξω. -Για σωστότερο σχολιασµό, διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του. 403 Άσκηση 2: -Σωστή υλοποίηση εν γένει και σωστή µορφοποίηση εξόδου. Κάποιες παρατηρήσεις: -Η strcat τοποθετεί τον '\0' character από µόνη της, δεν χρειάζεται να το κάνετε εσείς! Γενικά, αν θέλετε να δείτε πως χρησιµοιούνται και τί κάνουν οι διάφορες συναρτήσεις, από την κονσόλα κάντε man <όνοµα-συνάρτησης>. π.χ. man strcat, για να δείτε τις παραµέτρους και την λειτουργικότητα της strcat. -O compiler πετάει ένα warning στην printf γιατί χρησιµοποιείτε το %zu format ενώ το αντίστοιχο argument είναι τύπου integer. Nα διορθώνετε όλα τα warnings που εµφανίζονται κατά το compile ακόµα και αν το πρόγραµµα εκτελείται σωστά. -Όπως και στην 1η Άσκηση δεν έχετε περιορισµό στην scanf για την ανάγνωση strings ενώ δηµιουργείτε το format του string µε χρήση της µεθόδου µε το sprintf. Εφόσον έχετε δηµιουργήσει την µορφοποίηση των strings που θέλετε να διαβάσετε και την έχετε αναθέσει στην µεταβλητή format, η scanf σας θα έπρεπε να είναι: scanf(format, last_string); -Καλά ονόµατα µεταβλητών, όµως αντί για sting, last_string θα µπορούσατε να χρησιµοποιήσετε word, last_word. -Καλή στοίχιση, όµως η else δεν θα έπρεπε να ξεκινάει στην ίδια γραµµή που τελειώνει η if αλλά στην από κάτω. Επίσης, η else δεν είναι απαραίτητη στην συγκεκριµένη περίπτωση. Γενικά καλή προσπάθεια και στις δύο ασκήσεις, µπράβο! Προσπαθείστε να διορθώσετε τις όποιες ατέλειες σας τονίζουµε (σχόλια, string format, ονοµατοδοσία).

4 Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. Άσκηση Σωστά αποτελέσµατα, σωστή έξοδος - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Καλή η ονοµασία των µεταβλήτών, απλά κάποιες µεταβλητές όπως gin θα µπορούσατε να την βάλετε ginomeno. - Δεν έχετε σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του Άσκηση 2: - Επιχειρήσατε να τη λύσετε αλλά δεν την ολοκληρώσατε. - Σωστή χρήση strcmp και strcat. - Δείτε λύση στο site που θα αναρτηθεί Ορθότητα υπολογισµών/έξοδος προγράµµατος: οκ - Χρήση scanf: οκ. Μπράβο για τη χρήση sprintf. - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Κανένα σχόλιο. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: οκ - Χρήση strings: οκ Σχόλια: Πολύ καλή δουλειά. Μην αποφεύγετε όµως να γράφετε σχόλια, γιατί άλλη φορά δεν θα είµαστε ιδιαίτερα επιεικείς Στην είσοδο έχετε ένα \n παραπάνω από αυτό που ζητάει η εκφώνηση. Γενικά δώστε πολύ προσοχή στο format εισόδου/ εξόδου -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είστε ακόµη πιο σωστοί. -Έχει επισηµανθεί ΠΟΛΛΕΣ φορές να χρησιµοποιείτε περιγραφικά ονόµατα µεταβλητών. Τα x, y, ak1, ak2 κτλ είναι απαράδεκτα. - Δεν υπάρχουν σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main

5 Σωστά αποτελέσµατα, σωστή έξοδος. - Σωστή στοίχιση. - Μέτρια ονόµατα µεταβλητών και άσχηµα ονόµατα συναρτήσεων. Τι σηµαίνει sum2? Υπάρχει κάπου sum1? - Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Το µέγεθος του string δεν είναι ορισµένο µε #define. - Τυπικά βάζουµε τις επικεφαλίδες (prototypes) των συναρτήσεων πάνω από τη main και τις υλοποιήσεις κάτω.

6 - Για την strcmp εντός του βρόχου, η πρώτη παράµετρος είναι πάντα η διεύθυνση του Σωστά αποτελέσµατα, σωστή µορφοποίηση εξόδου - Σωστή χρήση της strcmp. - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Η µεταβλητή 'str2' στην main θα µπορούσε να έχει πιο περιγραφικό όνοµα, πχ. 'action' ή 'command'. - Για να αρχικοποιήσουµε ένα string µπορούµε απλά να γράψουµε το εξης: char message[] = "Hello world!"; Με αυτόν τον τρόπο ο compiler προσθέτει τον χαρακτήρα τερµατισµού '\0' αυτόµατα στο τέλος της συµβολοσειράς και θέτει αυτόµατα το µέγεθος του string (13). - Οι µεταβλητές str, str1 είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "modulo", "product" στην strcmp. Έτσι θα ήταν πιο κατανοητό το πρόγραµµα, γιατί θα φαινόταν άµεσα σε αυτή τη γραµµή τι προσπαθούµε να συγκρίνουµε. πχ. if (strcmp(action,"modulo") == 0) { //do_something - Οι δοµές ελέγχου 'if' ειναι προτιµότερο να συνδυαστούν σε µια δοµή 'if - else if - else'. Με αυτόν τον τρόπο αποφεύγουµε επαναλαµβανόµενους ελέγχους για την ίδια συνθήκη. πχ. if () { //ginomeno else if () { //ypoloipo else { //unknown expression - Στην αρχικοποίηση των µεταβλητών str, str1, δεν έχετε βάλει στο τέλος τον χαρακτήρα τερµατισµού συµβολοσειρών '\0' που περιµένει η strcmp() προκειµένου να δουλέψει σωστά. Βέβαια χρησιµοποιείτε την strncmp() η οποία ελέγχει µόνο τoυς x πρώτους χαρακτήρες. Είναι προτιµότερο να τερµατίζουµε πάντα τις συµβολοσειρές µε '\0' για την αποφυγή προβληµάτων µε υπάρχουσες συναρτήσεις. Εάν αντι για 'product' και 'modulo' ο χρήστης έδινε strings µε ίδιους τους πρώτους 7 χαρακτήρες πχ. 'action_product' και 'action_modulo', µε την µορφή των δοµών ελέγχου 'if' και την χρήση της strncmp() αντί της strcmp() το πρόγραµµά σας θα εκτύπωνε και το γινόµενο και το υπόλοιπο σε κάθε περίπτωση. - Επίσης καλό είναι να υπάρχει ένα σύντοµο σχόλιο για το τι υπολογίζει κάθε συνάρτηση, τί είναι η κάθε παράµετρος και οτιδήποτε άλλο δεν είναι εµφανές. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. --- Άσκηση 2 - Στην εντολή for η συνθήκη ελέγχου πρέπει να είναι αληθής για να µπούµε στο σώµα του βρόχου. Η συνθήκη της δεύτερης for θα έπρεπε να είναι παρόµοια µε αυτήν της πρώτης for.

7 1719 Παράδοση άσκησης: οκ Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf(""%s"" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Περιγραφικά ονόµατα µεταβλητών και συναρτήσεων. - Η µορφή σχολίων των συναρτήσεων δεν είναι έτσι. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του. - Καλή στοίχιση. Παράδοση άσκησης: οκ Άσκηση Σωστά αποτελέσµατα, σωστή έξοδος - Λάθος στη µορφοποίηση εξόδου εκτυπώνεται 7...3, αντι για Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Καλή η ονοµασία των µεταβλήτών.. - Δεν έχετε σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου FAIL - Ορθότητα υπολογισµών/έξοδος προγράµµατος: Η power είναι εντελώς λάθος. Mπορούσατε τις strcmp να τις κάνετε µέσα στο if, πχ if(! strcmp(exrp,"power")) - Χρήση scanf: ok. Την επόµενη φορά χρησιµοποιήστε sprintf για τη δηµιουργία του format string για να είναι ακόµη πιο σωστό το πρόγραµµα. - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Κανένα σχόλιο. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: Αποφεύγετε ονόµατα του στυλ number1/2 γιατί είναι πολύ εύκολο να µπερδευτούν. - Χρήση strings: οκ Σχόλια: Μέτρια δουλειά. Δεν κάνει αυτό που ζητάµε και έχει πολλές λεπτοµέρειες που είναι λάθος FAIL Δεν ελήφθη άσκηση

8 1723 -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση strcmp -Καλή περιγραφή µεταβλητών συναρτήσεων -Καθόλου σχολιασµός. Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του. - Σωστός ο περιορισµός της scanf στην ανάγνωση strings. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είναι ακόµη πιο σωστό. -Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main 1724, αλλά είστε τµήµα 1, όχι 7 Άσκηση 1 -Προσέξτε την είσοδο που ζητάει η εκφώνηση αντί για module που έχετε το σωστό είναι modulo -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Μπράβο για την κατασκευή του format string µε χρήση sprintf. -Έχει επισηµανθεί ΠΟΛΛΕΣ φορές να χρησιµοποιείτε περιγραφικά ονόµατα µεταβλητών (όχι x, y) - Καλός σχολιασµός, αλλά γραµµένος µε τρόπο που κάνει δυσανάγνωστο τον κώδικα. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" - Καλός διαχωρισµός µεταξύ δηλώσεων πρωτοτύπων συναρτήσεων και υλοποιήσεων. Άσκηση 2 -Σωστή είσοδος -Μικρό πρόβληµα στην αρχή του buffer εξόδου λόγο του κενού αρχικοποίησης -Καλή υλοποίηση! - Μπράβο για την προσπάθεια

9 1725 Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. Άσκηση 1η: - Καλά ονόµατα µεταβλητών στη main, αλλά όχι στις άλλες συναρτήσεις. Να χρησιµοποιείτε περιγραφικά ονόµατα και όχι του ενός γράµµατος. - Τυπικά βάζουµε τις επικεφαλίδες (prototypes) ρων συναρτήσεων πάνω από τη main και τις υλοποιήσεις µετά τη main. - Λίγα σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του - Σωστή στοίχιση. - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Δεν είναι απαραίτητο να δεσµεύσετε µεταβλητές για την αποθήκευση του αποτελέσµατος σύγκρισης. Επίσης δεν χρειάζεται να δηµιουργήσετε µεταβλητές για τα "power" και "sum" (τουλάχιστον για την συγκεκριµένη απλή περίπτωση). Σε σενάρια που όντως χρειάζεται κάτι τέτοιο πχ γιατί υπάρχουν πολλές τέτοιου είδους επιλογές θα χρησιµοποιούσατε constant char πίνακες. Γενικά θα µπορούσατε να κάνετε το εξής if ( strcmp(message, "power") == 0 ) {... else if ( strcmp(message, "sum") == 0) {... else {...

10 Σωστά αποτελέσµατα, σωστή µορφοποίηση εξόδου - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Η µεταβλητή simvoloseira1 στην main θα µπορούσε να έχει πιο περιγραφικό όνοµα, πχ. 'action' ή 'command'. - Σωστή χρήση της strcmp. - Για να αρχικοποιήσουµε ένα string µπορούµε απλά να γράψουµε το εξης: char message[] = "Hello world!"; Με αυτόν τον τρόπο ο compiler προσθέτει τον χαρακτήρα τερµατισµού '\0' αυτόµατα στο τέλος της συµβολοσειράς και θέτει αυτόµατα το µέγεθος του string (13). - Οι µεταβλητές str1_voithitiko, str2_voithitiko είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "modulo", "product" στις strcmp. Έτσι θα ήταν πιο κατανοητό το πρόγραµµα, γιατί θα φαινόταν άµεσα σε αυτή τη γραµµή τι προσπαθούµε να συγκρίνουµε. πχ. if (strcmp(action,"modulo") == 0) { //do_something - Οι δοµές ελέγχου 'if' ειναι προτιµότερο να συνδυαστούν σε µια δοµή 'if - else if - else'. Με αυτόν τον τρόπο αποφεύγουµε επαναλαµβανόµενους ελέγχους για την ίδια συνθήκη. πχ. if () { //ginomeno else if () { //ypoloipo else { //unknown expression - Επίσης καλό είναι να υπάρχει ένα σύντοµο σχόλιο για το τι υπολογίζει κάθε συνάρτηση, τί είναι η κάθε παράµετρος και οτιδήποτε άλλο δεν είναι εµφανές. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του.

11 1727 Άσκηση 1η: - Αποφεύγουµε να βάζουµε ονόµατα µεταβλητών όπως (int1, int2) ή ονόµατα του ενός γράµµατος. Να χρησιµοποιείτε περιγραφικά ονόµατα. - Τυπικά βάζουµε τις επικεφαλίδες (prototypes) των συναρτήσεων πάνω από τη main και τις υλοποιήσεις µετά τη main. - Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Σωστή στοίχιση. - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Στο µέλλον να χρησιµοποιείτε ΟΛΟ το δίωρο του εργαστηρίου για δουλειά και να µη χαζεύετε. Είχατε πολύ χρόνο να δουλέψετε και τη δεύτερη άσκηση και δεν το κάνατε Ορθότητα υπολογισµών/έξοδος προγράµµατος: ok, αλλά µπορούσατε τις strcmp να τις κάνετε µέσα στο if, πχ if(!strcmp(exrp,"power")) - Χρήση scanf: ok, µπράβο για τη χρήση sprintf στην κατασκευή του format string - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Πολύ λίγα σχόλια. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: Αποφεύγετε ονόµατα του στυλ numbera/b γιατί είναι πολύ εύκολο να µπερδευτούν. Θα µπορούσατε να τα είχατε low, high για το άθροισµα και base, exponent για τη δύναµη. Πώς σκεφτήκατε το summary? Σηµαίνει περίληψη και δεν έχει καµία σχέση µε την άσκηση! - Χρήση strings: οκ Σχόλια: Αρκετά καλή δουλειά. Προσέχετε τις παραπάνω λεπτοµέρειες Σωστά αποτελέσµατα, σωστή έξοδος - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Είναι άβολο να αρχικοποιείται ένα string χαρακτήρα-χαρακτήρα, όταν µπορεί κανείς να γράψει "product". Γενικά τα string_m, string_p είναι περιττά. Μπορούσατε να γράψετε if (strcmp(string"product")==0) το οποίο κάνει και πιο ευανάγνωστο το πρόγραµµα γιατί δε χρειάζεται ο αναγνώστης να ψάχνει πιο πάνω τι τιµή έχει το string_p. - Άσχηµα ονόµατα µεταβλητών τα z, y, x. - Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του.

12 - Για την strcmp εντός του βρόχου, η πρώτη παράµετρος είναι πάντα η διεύθυνση του Σωστά αποτελέσµατα, σωστή µορφοποίηση εξόδου - Σωστή χρήση της strcmp. - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Η µεταβλητή 'str2' στην main θα µπορούσε να έχει πιο περιγραφικό όνοµα, πχ. 'action' ή 'command'. - Για να αρχικοποιήσουµε ένα string µπορούµε απλά να γράψουµε το εξης: char message[] = "Hello world!"; Με αυτόν τον τρόπο ο compiler προσθέτει τον χαρακτήρα τερµατισµού '\0' αυτόµατα στο τέλος της συµβολοσειράς και θέτει αυτόµατα το µέγεθος του string (13). - Οι µεταβλητές str, str1 είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "modulo", "product" στην strcmp. Έτσι θα ήταν πιο κατανοητό το πρόγραµµα, γιατί θα φαινόταν άµεσα σε αυτή τη γραµµή τι προσπαθούµε να συγκρίνουµε. πχ. if (strcmp(action,"modulo") == 0) { //do_something - Οι δοµές ελέγχου 'if' ειναι προτιµότερο να συνδυαστούν σε µια δοµή 'if - else if - else'. Με αυτόν τον τρόπο αποφεύγουµε επαναλαµβανόµενους ελέγχους για την ίδια συνθήκη. πχ. if () { //ginomeno else if () { //ypoloipo else { //unknown expression - Στην αρχικοποίηση των µεταβλητών str, str1, δεν έχετε βάλει στο τέλος τον χαρακτήρα τερµατισµού συµβολοσειρών '\0' που περιµένει η strcmp() προκειµένου να δουλέψει σωστά. Βέβαια χρησιµοποιείτε την strncmp() η οποία ελέγχει µόνο τoυς x πρώτους χαρακτήρες. Είναι προτιµότερο να τερµατίζουµε πάντα τις συµβολοσειρές µε '\0' για την αποφυγή προβληµάτων µε υπάρχουσες συναρτήσεις. Εάν αντι για 'product' και 'modulo' ο χρήστης έδινε strings µε ίδιους τους πρώτους 7 χαρακτήρες πχ. 'action_product' και 'action_modulo', µε την µορφή των δοµών ελέγχου 'if' και την χρήση της strncmp() αντί της strcmp() το πρόγραµµά σας θα εκτύπωνε και το γινόµενο και το υπόλοιπο σε κάθε περίπτωση. - Επίσης καλό είναι να υπάρχει ένα σύντοµο σχόλιο για το τι υπολογίζει κάθε συνάρτηση, τί είναι η κάθε παράµετρος και οτιδήποτε άλλο δεν είναι εµφανές. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. --- Άσκηση 2 - Στην εντολή for η συνθήκη ελέγχου πρέπει να είναι αληθής για να µπούµε στο σώµα του βρόχου. Η συνθήκη της δεύτερης for θα έπρεπε να είναι παρόµοια µε αυτήν της πρώτης for.

13 Στην είσοδο έχετε ένα \n παραπάνω από αυτό που ζητάει η εκφώνηση. Γενικά δώστε πολύ προσοχή στο format εισόδου/ εξόδου -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είστε ακόµη πιο σωστοί. -Έχει επισηµανθεί ΠΟΛΛΕΣ φορές να χρησιµοποιείτε περιγραφικά ονόµατα µεταβλητών. Τα x, y, ak1, ak2 κτλ είναι απαράδεκτα. - Δεν υπάρχουν σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main Άσκηση 1η: - Να αποφεύγετε ονόµατα µεταβλητών του ενός γράµµατος. - Σωστή χρήση sprintf για την κατασκευή του format string της scanf. - Σωστά αποτελέσµατα κι έξοδος. - Σωστή στοίχιση - Καλά σχόλια γενικά, αλλά διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του σχετικά µε το σχολιασµό συναρτήσεων. Άσκηση 2η: - Μοναδικό "πρόβληµα" η έλλειψη σχολίων. Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Μπράβο για τη χρήση sprintf στην κατασκευή του format string. -Καλή περιγραφή µεταβλητών συναρτήσεων. -Καλός σχολιασµός. Διαβάστε και το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" για περισσότερες λεπτοµέρειες σχετικά µε το σχολιασµό συναρτήσεων. -Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main -Γενικά δεν είναι καλή προγραµµατιστική πρακτική να κάνετε ανάθεση string στους πίνακες. Μπορείτε να κάνετε χρήση strcpy ή sprintf Παράδοση άσκησης: οκ Σωστά αποτελέσµατα, σωστή έξοδος - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Καλή η ονοµασία των µεταβλήτών. - Έχετε σχόλια στην αρχή, αλλά δεν έχετε σε κάθε συνάρτηση.διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του

14 1739 Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Καλή η ονοµασία των µεταβλήτών. - Δεν έχετε σχόλια.διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του - Δεν χρειάζεται να δηλώσετε strings και να τα αρχικοποιήσετε στην αρχή για το modulo και το product, αλλά µπορείτε να τα βάλετε κατευθείαν στην strcmp, όπως ακολουθεί: if ( strcmp(pra3h, "modulo") == 0) { else if (strcmp(pra3h, "product") == 0) { else{ Επίσης, οι αρχικοποιήσεις σας είναι λάθος γιατί δε βάζετε το \0.Όταν κάνετε αρχικοποίηση προσδιορίζοντας ένα-ένα χαρακτήρα πρέπει να το βάζετε εσείς (ενώ αν είχατε απλά "modulo", θα έµπαινε αυτόµατα). Κατά τύχη µόνο δεν έβγαλε λάθος αποτελέσµατα η strcmp. - Άσκηση 2 - Μπράβο σας. - Σωστά αποτελέσµατα. - Καλύτερα να έχετε : if (strcmp(sole, new)==0) παρά comparison = strcmp(sole, new) if(comparison!= 0){ - Αυτες τις µετακινήσεις που κάνετε για την προσθήκη του κενού µε loops, µπορούν να γίνουν µε χρήση της strcat που είναι πιο απλό. Και η άσκηση ζηταέι να γίνει η διαχείριση συµβολοσειρών µε τις συναρτήσεις της string library. - Σωστή χρηση strcat και strcpy Παράδοση άσκησης: οκ Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf(""%s"" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Μη περιγραφικά ονόµατα µεταβλήτών. - Δεν έχετε σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του

15 1741 Παράδοση άσκησης: οκ Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Περιγραφικά ονόµατα µεταβλητών και συναρτήσεων. - Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του. - Καλή στοίχιση Σωστά αποτελέσµατα και σωστή έξοδος. - Σωστή χρήση επικεφαλίδων συναρτήσεων (prototypes). - Καλά ονόµατα µεταβλητών και συναρτήσεων (εκτός από τα n1, n2). - Σωστός ο περιορισµός της scanf στην ανάγνωση strings. Μπράβο για τη χρήση sprintf στην κατασκευή του format string. - Σωστή χρήση της strcmp. - Καλά γενικά σχόλια και σχόλια προγράµµατος. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του για τα σχόλια συναρτήσεων. - Καλή στοίχιση FAIL - Σωστά αποτελέσµατα και σωστή έξοδος. - Σωστή χρήση επικεφαλίδων συναρτήσεων (prototypes). - Καλά ονόµατα µεταβλητών και συναρτήσεων (εκτός από τα n1, n2). - Σωστός ο περιορισµός της scanf στην ανάγνωση strings. Μπράβο για τη χρήση sprintf στην κατασκευή του format string. - Σωστή χρήση της strcmp. - Καλά γενικά σχόλια και σχόλια προγράµµατος. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του για τα σχόλια συναρτήσεων. - Καλή στοίχιση. Η άσκηση δεν κάνει compile

16 1745 του φακέλου. Άσκηση 1: -Σωστά αποτελέσµατα. -Η έξοδος είναι λάθος στην περίπτωση του modulo. Θα έπρεπε να εµφανίζονται και οι τιµές των παραµέτρων (όπως κάνετε στην product) όχι απλά τα ονόµατά τους. -ΣΗΜΑΝΤΙΚΟ: Οι επικεφαλίδες των συναρτήσεων στις υλοποιήσεις τους ΠΡΕΠΕΙ να δηλώνουν τους τύπους των παραµέτρων (όπως έχετε κάνει στις δηλώσεις τους). -Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. -Θα ήταν καλύτερο να χρησιµοποιήσετε µια σταθερά για το µέγεθος -Καλά ονόµατα συναρτήσεων και µεταβλητών στην main. Ωστόσο, θα έπρεπε και τα ονόµατα των παραµέτρων των συναρτήσεων να είναι πιο περιγραφικά. π.χ. στην συνάρτηση modulo diaireteos, diairetis αντί των πολύ γενικών x,y. -Οι µεταβλητές modulostring, productstring είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "power", "sum" στις strcmp. Δηλ. θα µπορούσατε να είχατε: if (strcmp(userchoice, "modulo")==0) κτλ. -Καλή στοίχιση. -Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. Άσκηση 2: -Καλά ονόµατα µεταβλητών. -Σωστός περιορισµός της scanf στην ανάγνωση strings. Ξεκινήστε να χρησιµοποιείε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. -Οπως αναφέρουµε και στην 1η Άσκηση ξεκινήστε να κάνετε χρήση σταθερών για τα διάφορα µεγέθη.ειδικά τώρα που αρχίζουν µε µεγαλώνουν τα προγράµµατά σας σε µέγεθος οι σταθερές διευκολύνουν τις αλλαγές/επεκτάσεις σε αυτά και βοηθούν στην αποφυγή λαθών. Κάποιες παρατηρήσεις: -Δεν κάνετε αρχικοποίηση της sentence. Θα µπορούσατε να τοποθετήσετε τον χαρακτήρα '\0' στην πρώτη θέση του πίνακα. -Καλό θα ήταν να αρχικοποιούσατε την sentenceremaininglength σε 39 χωρίς να λαµβάνετε υπόψην σας τον string terminating character ('\0'). -Υπάρχουν κάποια προβλήµατα στους ελέγχους που κάνετε. Πιο συγκεκριµένα, H σωστή συνθήκη για να επικολληθεί η νέα λέξη στην πρόταση τότε θα έπρεπε να ήταν: if ((sentenceremaininglength - (strlen(userinput) + 1)) >0 ) όπου το +1 είναι για το κενό που θα βάλετε -Η συνθήκη της "if ((sentenceremaininglength - (strlen(userinput))) == 1)" είναι αχρείαστη και δεν υποδεικνύεται κάποιος σχετικός έλεγχος από την εκφώνηση. Επιπλέον, αναφέρεται σε µια πολύ συγκεκριµένη κατάσταση (µε την εισαγωγή της νέας λέξης να γεµίζουν και οι 39 θέσεις του πίνακα). Καλό θα ήταν να προσπαθήσετε να ξαναλύσετε την άσκηση σπίτι σας, ακολουθόντας τα βήµατα που δίνονται στην εκφώνηση. Γενικά καλή προσπάθεια και στις δύο ασκήσεις, µπράβο! Προσπαθείστε να διορθώσετε τα όποια λάθη σας τονίζουµε (µη χρήση σταθερών, ονοµατοδοσία, σχόλια).

17 1746 Άσκηση 1: -Σωστά αποτελέσµατα και σωστή έξοδος. -Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. -Θα ήταν καλύτερο να χρησιµοποιήσετε µια σταθερά για το µέγεθος -Καλά ονόµατα συναρτήσεων ΟΜΩΣ και τα ονόµατα των µεταβλητών/παραµέτρων θα έπρεπε να είναι πιο περιγραφικά. π.χ. στην main την string θα µπορούσατε να την ονοµάσετε option, command ή action και στην power αντί των number1 και number2 να χρησιµοποιήσετε base και exponent. Γενικά, αποφεύγετε να δίνετε ονόµατα που διαφέρουν µόνο σε κάποιο µετρητή (1, 2, 3 κτλ.). -Οι µεταβλητές epilogi1, epilogi2 είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "power", "sum" στις strcmp. Δηλ. θα µπορούσατε να είχατε: if (strcmp(string, "modulo")==0) κτλ. Έτσι θα ήταν και πιο κατανοητό το πρόγραµµα, γιατί θα φαινόταν άµεσα σε αυτή τη γραµµή τί προσπαθούµε να συγκρίνουµε. -Καλή στοίχιση. -Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του FAIL Δεν ελήφθη άσκηση Ορθότητα υπολογισµών/έξοδος προγράµµατος: οκ - Χρήση scanf: οκ. Μπράβο για τη χρήση sprintf. - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Κανένα σχόλιο. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: οκ - Χρήση strings: οκ Σχόλια: Πολύ καλή δουλειά. Μην αποφεύγετε όµως να γράφετε σχόλια, γιατί άλλη φορά δεν θα είµαστε ιδιαίτερα επιεικείς...

18 1749 Άσκηση 1: - Σωστά αποτελέσµατα. Λίγη προσοχή ώστε η έξοδος να είναι ακριβώς όπως ζητάται στην εκφώνηση. - Δε χρησιµοποίησες επικεφαλίδες συναρτήσεων (prototypes). - Σωστός ο περιορισµός του µεγέθους του εισαγόµενου string στη scanf. Την επόµενη φορά χρησιµοποίησεε sprintf για να κατασκευάσεις το format string και να είναι ακόµη πιο σωστό. - Καλά ονόµατα µεταβλητών και συναρτήσεων. - Σωστή χρήση της strcmp. - Δεν υπάρχουν σχόλια. Διάβασε το φυλλάδιο που βρίσκεται στο site του ακολούθησε τις οδηγίες του για τα σχόλια συναρτήσεων (και όχι µόνο). - Καλή στοίχιση. Άσκηση 2: - Δεν είναι ολοκληρωµένη, πάντως έχει µερικά θετικά δείγµατα. Για παράδειγµα η συνένωση γίνεται σωστά, όµως για να εξαλειφθεί το warning, πρέπει να γραφτεί strcat(protash, " ") αντί για strcat(protash, ' '). Πέρα από αυτό, θέλει βέβαια περισσότερη δουλειά στον έλεγχο της επανάληψης, στην εκτύπωση, τα σχόλια και σε µερικά άλλα σηµεία. - Καλά ονόµατα µεταβλητών. - Καλή στοίχιση. - Σωστός περιορισµός του µεγέθους του εισαγόµενου string στη scanf Οριακό - Σωστά αποτελέσµατα και σωστή έξοδος. - Δε χρησιµοποιήσατε επικεφαλίδες συναρτήσεων (prototypes). - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Καλά ονόµατα µεταβλητών και συναρτήσεων, εκτός από τις τυπικές παραµέτρους x, y. Να αποφεύγετε µεταβλητές ενός χαρακτήρα, ειδικά αν δεν είναι µετρητές. - Σωστή χρήση της strcmp. Θα µπορούσατε να χρησιµοποιήσετε κατευθείαν string literal µέσα στη strcmp αντί να δηλώνετε τα strings power και sum (δηλαδή να γράφατε: if (strcmp(expr,"power")==0) ) - Καλά γενικά σχόλια και σχόλια προγράµµατος. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του για τα σχόλια συναρτήσεων. - Καλή στοίχιση.

19 1751 Άσκηση 1 -Σωστή είσοδος -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf -Έχει επισηµανθεί ΠΟΛΛΕΣ φορές να χρησιµοποιείτε περιγραφικά ονόµατα µεταβλητών. - Καλός σχολιασµός, αλλά διαβάστε και το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του για τα σχόλια συναρτήσεων. - Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main Άσκηση 2 -Σωστή είσοδος -Σωστή έξοδος -Πολύ καλή και συνοπτική υλοποίηση! Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου Ορθότητα υπολογισµών/έξοδος προγράµµατος: οκ - Χρήση scanf: οκ. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string. - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Πολύ λίγα σχόλια. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: Άσχηµα ονόµατα, αποφεύγετε ονόµατα του στυλ number1/2 γιατί είναι πολύ εύκολο να µπερδευτούν. - Χρήση strings: οκ Σχόλια: Αρκετά καλά. Δείτε όµως τις παραπάνω λεπτοµέρειες FAIL Δεν ελήφθη άσκηση Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. Άσκηση Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf(""%s"" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Μη περιγραφικά ονόµατα µεταβλήτών. - Δεν έχετε σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του - Μη βάζετε τόσα κενά πριν τα includes.

20 Σωστά αποτελέσµατα, σωστή έξοδος - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Καλή προσπάθεια στα ονόµατα µεταβλητών, αλλά δεν υπάρχει λόγος να τα "κόβετε". Το ginomeno είναι πολύ πιο κατανοητό από το "gin". - Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. - Σωστά αποτελέσµατα και σωστή έξοδος. - Δε χρησιµοποιήσατε επικεφαλίδες συναρτήσεων (prototypes). - Σωστός ο περιορισµός της scanf στην ανάγνωση strings. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είναι ακόµη πιο σωστό. - Καλά ονόµατα µεταβλητών και συναρτήσεων γενικά. Το string θα µπορούσε να ονοµαστεί "action" ή "operation" κι επίσης τα prostheteos1, prostheteos2 θα µπορούσαν να ονοµαστούν αλλιώς (µιας και συνήθως δεν έχουµε 2 προσθετέους). - Σωστή χρήση της strcmp. - Καλά σχόλια γενικά, διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του και για τα σχόλια συναρτήσεων. - Καλή στοίχιση Ορθότητα υπολογισµών/έξοδος προγράµµατος: ok, αλλά µπορούσατε τις strcmp να τις κάνετε µέσα στο if, πχ if(!strcmp(exrp,"power")) - Χρήση scanf: %s αντί για τον περιορισµό %5s. Αδικαιολόγητο... - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Κανένα σχόλιο. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: το dinami2 πολύ κακό όνοµα για συνάρτηση.μη χρησιµοποιείτε µονογραµµατικά ονόµατα µεταβλητών για τις συναρτήσεις. Αποφεύγεται ονόµατα του στυλ number1/2 γιατί είναι πολύ εύκολο να µπερδευτούν. - Χρήση strings: οκ

21 1763 Άσκηση 1 -Σωστή είσοδος -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είστε ακόµη πιο σωστοί. -Καλά ονόµατα µεταβλητών και συναρτήσεων, εκτός από τα a, b. Επίσης, ο διαιρέτης λέγεται dividend όχι divisend. - Δεν υπάρχουν σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Καλός διαχωρισµός µεταξύ δηλώσεων πρωτοτύπων συναρτήσεων και υλοποιήσεων. -Πολύ καλή άσκηση! Άσκηση 2 (περσινή άσκηση) -Σωστή είσοδος -Σωστής έξοδος - -Πολύ Καλή υλοποίηση! - Πολλά Μπράβο για την προσπάθεια

22 1764 του φακέλου. Άσκηση 1: -Σωστά αποτελέσµατα. -Η έξοδος είναι λάθος στην περίπτωση του modulo. Θα έπρεπε να εµφανίζονται και οι τιµές των παραµέτρων (όπως κάνετε στην product) όχι απλά τα ονόµατά τους. -ΣΗΜΑΝΤΙΚΟ: Οι επικεφαλίδες των συναρτήσεων στις υλοποιήσεις τους ΠΡΕΠΕΙ να δηλώνουν τους τύπους των παραµέτρων (όπως έχετε κάνει στις δηλώσεις τους). -Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. -Θα ήταν καλύτερο να χρησιµοποιήσετε µια σταθερά για το µέγεθος -Καλά ονόµατα συναρτήσεων και µεταβλητών στην main. Ωστόσο, θα έπρεπε και τα ονόµατα των παραµέτρων των συναρτήσεων να είναι πιο περιγραφικά. π.χ. στην συνάρτηση modulo diaireteos, diairetis αντί των πολύ γενικών x,y. -Οι µεταβλητές modulostring, productstring είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "power", "sum" στις strcmp. Δηλ. θα µπορούσατε να είχατε: if (strcmp(userchoice, "modulo")==0) κτλ. -Καλή στοίχιση. -Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. Άσκηση 2: -Καλά ονόµατα µεταβλητών. -Σωστός περιορισµός της scanf στην ανάγνωση strings. Ξεκινήστε να χρησιµοποιείε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. -Οπως αναφέρουµε και στην 1η Άσκηση ξεκινήστε να κάνετε χρήση σταθερών για τα διάφορα µεγέθη.ειδικά τώρα που αρχίζουν µε µεγαλώνουν τα προγράµµατά σας σε µέγεθος οι σταθερές διευκολύνουν τις αλλαγές/επεκτάσεις σε αυτά και βοηθούν στην αποφυγή λαθών. Κάποιες παρατηρήσεις: -Δεν κάνετε αρχικοποίηση της sentence. Θα µπορούσατε να τοποθετήσετε τον χαρακτήρα '\0' στην πρώτη θέση του πίνακα. -Καλό θα ήταν να αρχικοποιούσατε την sentenceremaininglength σε 39 χωρίς να λαµβάνετε υπόψην σας τον string terminating character ('\0'). -Υπάρχουν κάποια προβλήµατα στους ελέγχους που κάνετε. Πιο συγκεκριµένα, H σωστή συνθήκη για να επικολληθεί η νέα λέξη στην πρόταση τότε θα έπρεπε να ήταν: if ((sentenceremaininglength - (strlen(userinput) + 1)) >0 ) όπου το +1 είναι για το κενό που θα βάλετε -Η συνθήκη της "if ((sentenceremaininglength - (strlen(userinput))) == 1)" είναι αχρείαστη και δεν υποδεικνύεται κάποιος σχετικός έλεγχος από την εκφώνηση. Επιπλέον, αναφέρεται σε µια πολύ συγκεκριµένη κατάσταση (µε την εισαγωγή της νέας λέξης να γεµίζουν και οι 39 θέσεις του πίνακα). Καλό θα ήταν να προσπαθήσετε να ξαναλύσετε την άσκηση σπίτι σας, ακολουθόντας τα βήµατα που δίνονται στην εκφώνηση. Γενικά καλή προσπάθεια και στις δύο ασκήσεις, µπράβο! Προσπαθείστε να διορθώσετε τα όποια λάθη σας τονίζουµε (µη χρήση σταθερών, ονοµατοδοσία, σχόλια).

23 Ορθότητα υπολογισµών/έξοδος προγράµµατος: ok - Χρήση scanf: οκ. Στο µέλλον χρησιµοποιήστε και το "τρυκ" µε την sprintf για να είναι πάντα σωστό το format string. - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Κανένα σχόλιο. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: Αποφεύγεται ονόµατα του στυλ number1/2 γιατί είναι πολύ εύκολο να µπερδευτούν. - Χρήση strings: ok Σχόλια: Αρκετά καλή δουλειά. Προσέξτε τις παραπάνω λεπτοµέρειες Σωστά αποτελέσµατα και σωστή έξοδος. - Σωστή χρήση του µεγέθους του string στη scanf (%5s). Την επόµενη φορά χρησιµοποίησεε sprintf για να κατασκευάσεις το format string και να είναι ακόµη πιο σωστό. - Δε χρησιµοποιήσατε επικεφαλίδες συναρτήσεων (prototypes). - Αποφεύγετε να χρησιµοποιείτε ονόµατα µεταβλητών (και τυπικών παραµέτρων συναρτήσεων) ενός χαρακτήρα µόνο (ειδικά αν δεν πρόκειται για µετρητές), όπως x. - Σωστή χρήση της strcmp. Θα µπορούσατε να χρησιµοποιήσετε κατευθείαν string literal µέσα στη strcmp αντί να δηλώνετε τις expr1, expr2 (δηλαδή να γράφατε: if (strcmp(expr,"power")==0) ) - Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του. Καλά τα υπόλοιπα σχόλια. - Καλή στοίχιση. - Σωστά αποτελέσµατα, σωστή έξοδος. - Μέτρια στοίχιση. Όλες οι εντολές έπρεπε να είναι ένα tab αριστερά - Άσχηµα ονόµατα µεταβλητών. Ειδικά τα int1, int2 είναι απαράδεκτα. Όχι µόνο µοιάζουν πολύ µε τον τύπο int, αλλά διαφέρουν και µόνο ως προς τα 1, 2. - Καλά ονόµατα συναρτήσεων - Καλά σχόλια στον κώδικα αλλά διαβάστε και το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" για να µάθετε τι σχόλια µπαίνουν σε συναρτήσεις. - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Το τρίτο if θα µπορούσε να είναι απλά ένα else. Δε χρειαζόταν να γίνει ξανά έλεγχος.

24 1769 Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Μπράβο για τη χρήση sprintf στην κατασκευή του format string. -Καλή περιγραφή µεταβλητών συναρτήσεων. -Καλός σχολιασµός. Διαβάστε και το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" για περισσότερες λεπτοµέρειες σχετικά µε το σχολιασµό συναρτήσεων. -Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main -Γενικά δεν είναι καλή προγραµµατιστική πρακτική να κάνετε ανάθεση string στους πίνακες. Μπορείτε να κάνετε χρήση strcpy ή sprintf Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είστε ακόµη πιο σωστοί. -Καλή περιγραφή µεταβλητών συναρτήσεων -Σχετικά καλός σχολιασµός. Διαβάστε και το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του για τα σχόλια συναρτήσεων. -Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main 1771 Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου. Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf(""%s"" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Μη περιγραφικά ονόµατα µεταβλήτών. - Δεν έχετε σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του - Μη βάζετε τόσα κενά πριν τα includes.

25 1772 Άσκηση 1 -Σωστή είσοδος -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση scanf. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είστε ακόµη πιο σωστοί. -Καλά ονόµατα µεταβλητών και συναρτήσεων, εκτός από τα a, b. Επίσης, ο διαιρέτης λέγεται dividend όχι divisend. - Δεν υπάρχουν σχόλια. Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Καλός διαχωρισµός µεταξύ δηλώσεων πρωτοτύπων συναρτήσεων και υλοποιήσεων. -Πολύ καλή άσκηση! Άσκηση 2 (περσινή άσκηση) -Σωστή είσοδος -Σωστής έξοδος - -Πολύ Καλή υλοποίηση! - Πολλά Μπράβο για την προσπάθεια 1774 Άσκηση 1η: - Σωστά αποτελέσµατα και έξοδος. - Γενικά καλά ονόµατα µεταβλητών αλλά να αποφεύγετε ονόµατα παραµετρων όπως (num1, num2) - Τυπικά βάζουµε τις επικεφαλίδες (prototypes) των συναρτήσεων πάνω από τη main και τις υλοποιήσεις µετά τη main. - Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Σωστή στοίχιση. - Σωστά σκεφτήκατε να βάλετε περιορισµό στη scanf στην ανάγνωση strings αλλά εφόσον ο πίνακας έχει µέγεθος 6, το σωστό θα ήταν %5s. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να αποφεύγετε τέτοια λάθη. Παράδοση άσκησης: οκ, αλλά προσέξτε τις νέες οδηγίες για την ονοµασία του φακέλου Ορθότητα υπολογισµών/έξοδος προγράµµατος: οκ - Χρήση scanf: οκ. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string. - prototypes: Είναι καλή πρακτική να βάζετε τα function prototypes πάνω από τη main και τις υλοποιήσεις κάτω από αυτή. - Σχόλια: Πολύ λίγα σχόλια. Διαβάστε το φυλλάδιο µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" στο site του εργαστηρίου - Ονόµατα: Άσχηµα ονόµατα, αποφεύγετε ονόµατα του στυλ number1/2 γιατί είναι πολύ εύκολο να µπερδευτούν. - Χρήση strings: οκ Σχόλια: Αρκετά καλά. Δείτε όµως τις παραπάνω λεπτοµέρειες.

26 1776 Παράδοση άσκησης: οκ Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Να γράφεις τις υλοποιήσεις των συναρτήσεων κάτω από τη main και - Σωστός ο περιορισµός στη scanf για την ανάγνωση Στο µέλλον βάλε το µέγεθος σε σταθερά και χρησιµοποίησε sprintf για να κατασκευάσεις το format string. - Μη περιγραφικά ονόµατα µεταβλητών. Δε χρησιµοποιούµε ονόµατα του ενός γράµµατος και δεν διαχωριζουµε τα ονόµατα των µεταβλητών µόνο µε αριθµούς όπως num1 και num2. - Δεν υπάρχουν σχόλια. Διάβασε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολούθησε τις οδηγίες του. - Καλή στοίχιση. - Δεν χρειάζεται να δηλώσεις strings σε ξεχωριστές µεταβλητές και να τα αρχικοποιήσεις στην αρχή για το modulo και το product, αλλά µπορείς να τα βάλεις κατευθείαν στην strcmp, όπως ακολουθεί: if ( strcmp(symbol, "modulo") == 0) { 1777 Άσκηση 1 - Σωστά αποτελέσµατα και σωστή έξοδος. - Δε χρησιµοποιήσατε επικεφαλίδες συναρτήσεων (prototypes). - Σωστός ο περιορισµός της scanf στην ανάγνωση strings. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είναι ακόµη πιο σωστό. - Καλά ονόµατα µεταβλητών, συναρτήσεων και τυπικών παραµέτρων, µπράβο. - Σωστή χρήση της strcmp. - Καλά σχόλια γενικά, διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του και για τα σχόλια συναρτήσεων. - Καλή στοίχιση. Άσκηση 2 - Καλή δουλειά, µπράβο.

27 1778 FAIL - Δεν εκτυπώνεται το αποτέλεσµα της πράξης. Έχετε φτιάξει τις συναρτήσεις αλλά δεν τις καλείτε µέσα από την main(). - Σωστός ο περιορισµός στη scanf. Την επόµενη φορά χρησιµοποιήστε sprint για να κατασκευάσετε το format string και να είναι ακόµη πιο σωστό. - Σωστή χρήση της strcmp. - Για να αρχικοποιήσουµε ένα string δεν ειναι απαραίτητη η χρήση της strcpy() Mπορούµε απλά να γράψουµε το εξης: char message[] = "Hello world!"; Με αυτόν τον τρόπο ο compiler προσθέτει τον χαρακτήρα τερµατισµού '\0' αυτόµατα στο τέλος της συµβολοσειράς και θέτει αυτόµατα το µέγεθος του string (13). Αλλά φυσικά και η strcpy είναι σωστή. - Οι µεταβλητές modulo_str, product_str είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "modulo", "product" στις strcmp. Έτσι θα ήταν πιο κατανοητό το πρόγραµµα, γιατί θα φαινόταν άµεσα σε αυτή τη γραµµή τι προσπαθούµε να συγκρίνουµε. πχ. if (strcmp(praksi,"modulo") == 0) { //do_something - Οι ξεχωριστές δοµές ελέγχου 'if' έπρεπε να συνδυαστούν σε µια δοµή 'if - else if - else'. Με τρόπο που το έχετε γράψει εάν ο χρήστης διαλέξει την επιλογή για "modulo" τότε θα εκτελεστεί ο κώδικας του πρώτου 'if' αλλά θα εκτελεστεί και ο κώδικας 'else' του δεύτερου 'if'. Η σωστή δοµή ελέγχου είναι η εξής: if () { //ginomeno else if () { //ypoloipo else { //unknown expression - Ο χαρακτήρας '%' είναι ειδικός χαρακτήρας για την printf(), για να τον εκτυπώσουµε µε την printf χρησιµοποιούµε διπλό '%': printf("%%"); 1781 FAIL Δεν ελήφθη άσκηση

28 1782 -Σωστός αλγόριθµος -Σωστή χρήση strcmp -Σχετικά καλά ονόµατα µεταβλητών, συναρτήσεων - Λίγα σχόλια.διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του. -ΠΡΟΣΟΧΗ!: Έχει τονιστεί επανειληµµένως ότι η χρήση σκέτου % ενέχει σοβαρούς κινδύνους. Μην επαναλαµβάνετε λάθη για τα οποία έχετε πάρει σχετικές οδηγίες για την αποφυγή τους -Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main Άσκηση 1η: - Σωστά αποτελέσµατα κι έξοδος - Αποφεύγουµε να βάζουµε ονόµατα µεταβλητών όπως (in1, in2). Κατά τα άλλα, πολύ καλά ονόµατα. - Τυπικά βάζουµε τις επικεφαλίδες (prototypes) των συναρτήσεων πάνω από τη main και τις υλοποιήσεις µετά τη main. - Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του - Σωστή στοίχιση. - Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. - Σωστά αποτελέσµατα, σωστή έξοδος. - Σωστή χρήση επικεφαλίδων συναρτήσεων (prototypes). - Δε βάζουµε ποτέ εµείς το \0 σε string literals. Από τη στιγµή που γράφουµε "product" το \0 µπαίνει αυτόµατα µετά το t. Το \0 χρειάζεται µόνο όταν κάνουµε αρχικοποίηση ένα-ένα χαρακτήρα. - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Καλά ονόµατα συναρτήσεων, παραµέτρων, µεταβλητών, εκτός από τα str1, str2, str3, apotelesma1, apotelesma2. Αποφεύγετε να δίνετε ονόµατα που διαφέρουν µόνο σε κάποιο µετρητή (1, 2, 3 κτλ.). Για παράδειγµα, το str1 θα µπορούσε να λέγεται action ή command. Το όνοµα factorial είναι παραπλανητικό, γιατί δεν υπολογίζετε παραγοντικό, αλλά ένα γινόµενο. - Οι µεταβλητές str2, str3 είναι περιττές. Θα µπορούσατε να είχατε χρησιµοποιήσει τα "modulo", "product" στις strcmp. Οµοίως, τα apotelesma1, apotelesma2 είναι περιττά. Θα µπορούσατε να είχατε: if (strcmp(str1, "modulo")==0) κτλ. Έτσι θα ήταν και πιο κατανοητό το πρόγραµµα, γιατί δε θα φαινόταν άµεσα σε αυτή τη γραµµή τι προσπαθούµε να συγκρίνουµε. - Το return 0; να το βάζετε ένα tab πιο δεξιά, ώστε να είναι στην ίδια στήλη µε τον υπόλοιπο κώδικα της συνάρτησης. - Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες του.

29 1787 Παράδοση άσκησης: οκ Άσκηση 1 - Σωστά αποτελέσµατα, σωστή έξοδος - Το scanf("%s" είναι επικίνδυνο. Το είπαµε ΑΚΡΙΒΩΣ στην αρχή του - Μέτρια η ονοµασία των µεταβλητών. Μη χρησιµοποιείτε ονόµατα του ενός γράµµατος ούτε ονόµατα που διαφέρουν µόνο κατά ένα µετρητή (πχ. pos_int1, pos_int2) -Έχετε σε κάθε συνάρτηση σχόλια αλλά δεν είναι στη µορφή που πρέπει για τον σχολιασµό συναρτήσεων. Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο ""Πρότυπα σχολιασµού προγραµµάτων"" και ακολουθήστε τις οδηγίες του - Δεν χρειάζεται να δηλώσετε strings σε ξεχωριστές µεταβλητές και να τα αρχικοποιήσετε στην αρχή για το modulo και το product, αλλά µπορείτε να τα βάλετε κατευθείαν στην strcmp, όπως ακολουθεί: if ( strcmp(symbol, "modulo") == 0) { Ειδικά για την αρχικοποίηση, µπορείτε να αποφύγετε να προσδιορίζετε ένα-ένα χαρακτήρα αν γράψετε char sumbol1[]="modulo" - Καλή στοίχιση, αλλά σας έχει ξεφύγει στη στοίχιση η τελευταία αγκύλη που κλείνει τη main Άσκηση 1: -Σωστά αποτελέσµατα και σωστή έξοδος. -Σωστός περιορισµός της scanf στην ανάγνωση strings. Στο µέλλον χρησιµοποιήστε και τη µέθοδο µε το sprintf για να είναι ακόµη πιο σωστό. -Αρκετά καλά και περιγραφικά ονόµατα µεταβλητών και συναρτήσεων εν γένει. Ωστόσο, θα µπορούσατε στο str να δώσετε ένα πιο αντιπροσωπευτικό όνοµα (π.χ. option, command ή action) καθώς και στη σταθερά Ν (π.χ. SIZE). -Καλή στοίχιση. -Διαβάστε το φυλλάδιο που βρίσκεται στο site του εργαστηρίου, µε τίτλο "Πρότυπα σχολιασµού προγραµµάτων" και ακολουθήστε τις οδηγίες -Σωστά αποτελέσµατα -Σωστή έξοδος -Σωστή χρήση strcmp -Καλή περιγραφή µεταβλητών συναρτήσεων -Καθόλου σχολιασµός. Διαβάστε το φυλλάδιο που βρίσκεται στο site του ακολουθήστε τις οδηγίες του. - Σωστός ο περιορισµός της scanf στην ανάγνωση strings. Την επόµενη φορά χρησιµοποιήστε sprintf για να κατασκευάσετε το format string και να είναι ακόµη πιο σωστό. -Γενικά είναι καλή προγραµµατιστική πρακτική να βάζετε τα πρωτότυπα των συναρτήσεων πάνω από τη main και να υλοποιείτε τις συναρτήσεις από κάτω από τη main

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

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

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

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

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

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 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Οι µεταβλητές πρέπει

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lab3grades οριακό PASS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LAB1 ΛΥΣΗ. Ευρετήριο απαντήσεων ανά τµήµα: Ευρετήριο απαντήσεων ανά µήνυµα λάθους/προειδοποίησης

LAB1 ΛΥΣΗ. Ευρετήριο απαντήσεων ανά τµήµα: Ευρετήριο απαντήσεων ανά µήνυµα λάθους/προειδοποίησης LAB1 ΛΥΣΗ Ευρετήριο απαντήσεων ανά τµήµα: Τµήµα 1 Τµήµα 2 Τµήµα 3 Τµήµα 4 Τµήµα 5 Ευρετήριο απαντήσεων ανά µήνυµα λάθους/προειδοποίησης error: invalid preprocessing directive #includes error: syntax error

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #6 εκτέλεση σε επανάληψη 1 Σπύρος Λάλης Εκτέλεση σε επανάληψη: while while () lexpr body true false Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται σε μια τιμή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2 Είσοδος / Έξοδος Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συνάρτηση εξόδου printf Συνάρτηση εισόδου scanf Βιβλίο µαθήµατος: Chapter 2,, Sec. 3 & 6 ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-1 Είσοδος

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

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

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

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

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 - Απουσία σχολίων στο πρόγραµµα σας. - Τα ονόµατα των µεταβλητών που έχετε επιλέξει είναι περιγραφικά,

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 14 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Συναρτήσεις - Εξωτερικές μεταβλητές - Κανόνες εμβέλειας - Διάρκεια

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Εξωτερικές µεταβλητές Κανόνες εµβέλειας ιάρκεια µεταβλητών Αρχικοποίηση

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

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

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

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

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 11-1 Μη- οµηµένος Προγραµµατισµός Το πρόγραµµα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δοµή). Όλη η λειτουργικότητα

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕ ΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραµµατισµού C ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή στην C Βασικά στοιχεία 24 Απριλίου 2015 Το σηµερινό

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

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

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

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

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

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

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

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