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

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου Σωστά αποτελέσματα - Περιγραφικά ονόματα μεταβλητών. - Δεν έχετε σχόλια - Ανάγνωση συμβολοσειρών: - Θέλουμε %31s όταν το μέγεθος του string είναι 32. Έχετε σκέτο %s, το οποίο είναι επικίνδυνο γιατί θέλουμε να διαβάζουμε το πολύ μέχρι 31 χαρακτήρες χωρίς το /0, και το %31s μας προστατεύει ώστε να μην ξεπεράσουμε το όριο. - Εφόσον το string μικραίνει σε κάθε επανάληψη και εσείς για το first_string ελέγχεται το μήκος του στο for, πρέπει να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. Το i-- δεν χρειάζεται, αλλά χρειάζεται len_1--; - Δεν έχετε κενό μετά από κάθε λέξη. Η εκφώνηση σας λέει προσθέστε ένα κενό στο τέλος της πρότασης κι αμέσως μετά επικολλάτε τη συμβολοσειρά. Το κενό πρέπει να προστεθεί και κατά την εισαγωγή της πρώτης λέξης. - Το Length και το Remaining είναι λάθος. - Σωστά επικολλάτε τη συμβολοσειρά που διαβάζεται κάθε φορά στην πρόταση με την strcat. - Σωστός ο έλεγχος του προηγούμενο αναγνωσθέντος string με το τρέχων με την strcmp. Σημείωση: Αν η άσκηση είχε σταλεί στην ώρα της, θα είχατε pass. 400, αλλά να περιλαμβάνετε μόνο τα.c αρχεία στο φάκελο. Άσκηση 1η -Σωστή είσοδος, αν και έπρεπε να χρησιμοποιήσετε πίνακα με μέγιστο αριθμό χαρακτήρων 32 και όχι 10 -Η στοίχιση χαλάει προς το τέλος του κειμένου, μην χρησιμοποιείτε μίξη tabs και κενών χαρακτήρων γιατί ανάλογα με τις ρυθμίσεις του editor έχετε διαφορετική στοίχιση. Διαλέξτε είτε tabs είτε spaces και μείνετε με αυτή την επιλογή σας. -Ο αλγόριθμός σας δεν δουλεύει σωστά όταν τα διπλότυπα εμφανίζονται σε συνεχόμενες θέσεις στον πίνακα. -Όταν μετακινούνται τα γράμματα προς τα αριστερά το μέγεθος της λέξης μειώνεται κατά 1, δεν το παίρνετε αυτό υπόψην σας. Άσκηση 2η -Δεν έχει ολοκληρωθεί -Η strcat περιμένει πως το 1ο όρισμα έχει αρκετό χώρο για να χωρέσει τον συνδυασμό και των 2 ορισμάτων, έτσι δεν είναι σωστό να χρησιμοποιείτε τον πίνακα pinc. -Καλείτε 2 φορές την strcat μία για να συνδυάσετε τα μέλη κι άλλη μία για να πάρετε το μήκος, αυτό όμως στην ουσία βάζει 2 φορές το 2ο όρισμα στο 1ο. -Δεν έχετε καθόλου σχόλια

2 402 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Ασκηση 1 Ανάγνωση συμβολοσειρών: ok Όρια loops: ok Αλγόριθμος: το λάθος είναι ότι δεν προσαρμόζετε το j ώστε να αλλάζει αν γίνεται κάποιο shift (και να ελέγχετε τον χαρακτήρα που ήρθε στη θέση αυτού που σβήσατε) Στοίχιση: οκ Ονόματα μεταβλητών:ok Χρήση σταθερών: οκ Σχόλια Προγράμματος: πολύ λίγα. Δώστε μια περιγραφή της κάθε μεταβλητής και μερικά ακόμα σχόλια για το πως λειτουργεί το πρόγραμμα. Σχόλια: Αρκετά καλή προσπάθεια. Το μόνο πρόβλημα είναι το παραπάνω που σας είπα. Άσκηση 2 Ανάγνωση συμβολοσειρών: οκ Όρια loops: το όριο του πρώτου do loop είναι εντελώς λάθος. Αλγόριθμος: Αρκετά καλά, αλλά το παραπάνω όριο χαλάει εντελώς την εικόνα. Στοίχιση: οκ Ονόματα μεταβλητών: a,b αδικαιολόγητα. Χρήση σταθερών: οκ Σχόλια Προγράμματος: κανένα σχόλιο Χρήση string.h: για να βρείτε μήκη συμβολοσειρών έπρεπε να χρησιμοποιήσετε την strlen. Για το strcat, δεν έχετε αρχικοποιήση τα left και right σε strings (δλδ να υπάρχει ο '\0') οπότε το cat που κάνετε δεν είναι μεταξύ 2 strings! Σχόλια: Μέτρια προσπάθεια. Διαφέρει αρκετά από αυτό που ζητάμε. 403 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου. - Σωστά αποτελέσματα - Περιγραφικά ονόματα μεταβλητών. - Δεν έχετε σχόλια - Ανάγνωση συμβολοσειρών: - Θέλουμε %31s όταν το μέγεθος του string είναι 32. Έχετε σκέτο %s, το οποίο είναι επικίνδυνο γιατί θέλουμε να διαβάζουμε το πολύ μέχρι 31 χαρακτήρες χωρίς το /0, και το %31s μας προστατεύει ώστε να μην ξεπεράσουμε το όριο. - Εφόσον το string μικραίνει σε κάθε επανάληψη και εσείς για το first_string ελέγχεται το μήκος του στο for, πρέπει να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. Το i-- δεν χρειάζεται, αλλά χρειάζεται len_1--; - Δεν έχετε κενό μετά από κάθε λέξη. Η εκφώνηση σας λέει προσθέστε ένα κενό στο τέλος της πρότασης κι αμέσως μετά επικολλάτε τη συμβολοσειρά. Το κενό πρέπει να προστεθεί και κατά την εισαγωγή της πρώτης λέξης. - Το Length και το Remaining είναι λάθος. - Σωστά επικολλάτε τη συμβολοσειρά που διαβάζεται κάθε φορά στην πρόταση με την strcat. - Σωστός ο έλεγχος του προηγούμενο αναγνωσθέντος string με το τρέχων με την strcmp. Σημείωση: Αν η άσκηση είχε σταλεί στην ώρα της, θα είχατε pass.

3 Σωστά αποτελέσματα - Μη περιγραφικά ονόματα μεταβλητών. Μη διαχωρίζετε τα ονόματα μόνο με έναν αριθμό. - Δεν έχετε σχόλια - Η στοίχιση καλή είναι αλλά έχετε πάρα πολλά enters πριν την εντολή return 0; - Τις σταθερές τις δηλώνουμε με κεφαλαία. SIZE, όχι size. - Ξεκινήσατε μόνο να διαβάζετε την πρώτη λέξη και να μετράτε το μήκος της. 1588, αλλά προσέχετε το χρόνο! - Σωστή λειτουργία (εκτός από τις ειδικές περιπτώσεις που αναφέρονται παρακάτω) - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθεράς SIZE για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά τα σχόλια που γράψατε, θα μπορούσατε να είχατε γράψει λίγα παραπάνω (π.χ. για τη μεταφορά στοιχείων). - Χρησιμοποιώντας <SIZE-1 (δηλαδή το τέλος του πίνακα ως όριο στις συνθήκες τερματισμού των for loops) το for loop σας διατρέχει όλα τα στοιχεία του πίνακα (για την ακρίβεια όχι όλα αλλά ένα λιγότερο, κάτι που είναι επίσης λάθος μιας και για λέξη 31 χαρακτήρων θα χρειαζόσαστε άλλη μια θέση για το '\0'), ενώ μας ενδιαφέρει να διατρέχει τα στοιχεία του string. Αυτό μπορεί να γίνει ελέγχοντας για '\0' στη συνθήκη ή με το μήκος του string, προσέχοντας να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. - Η μεταβλητή thesh δεν είναι αναγκαία, σκεφτείτε πώς μπορείτε να κάνετε τις μεταφορές στοιχείων χρησιμοποιώντας μόνο τις μεταβλητές j και k. - Δοκιμάστε να βάλετε ως παράδειγμα το string του 2ου παραδείγματος της εκφώνησης ("aaabccc-bb"). Θα παρατηρήσετε ότι δεν απαλείφονται όλοι οι χαρακτήρες που πρέπει. Αυτό συμβαίνει σε ειδικές περιπτώσεις, π.χ. όπου έχουμε ίδιους διαδοχικούς χαρακτήρες (π.χ. "aaa"). Σκεφτείτε γιατί συμβαίνει αυτό και προσπαθήστε να το λύσετε στο σπίτι. - Έχετε γράψει κώδικα για την εισαγωγή λέξεων στους δύο πίνακες μόνο για την πρώτη φορά. Επίσης, όταν εισάγετε μια λέξη σε έναν πίνακα (π.χ. αυτόν της αριστερής πρότασης), επειδή δεν έχετε αρχικοποιήσει τις μεταβλητές για τον άλλον (εδώ, αυτόν της δεξιάς πρότασης) εκτυπώνονται σκουπίδια. Η εισαγωγή της εκάστοτε λέξης στον κατάλληλο πίνακα πάντως γίνεται σωστά. - Σωστή χρήση των συναρτήσεων strlen, strcmp, strcat. - Eκτυπώνετε το string length αντί για το remaining στον πίνακα right. - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθερών. - Καλά ονόματα μεταβλητών. - Καλή στοίχιση. - Απουσία σχολίων.

4 Σωστή είσοδος - Σωστός αλγόριθμος. Υπάρχει πρόβλημα στη αναγνώριση συνεχόμενων ίδιων γραμμάτων. Για να λυθεί θα πρέπει να ελέγχετε το ίδιο γράμμα μετά την αντικατάσταση. -Γενικά δεν είναι ορθή πρακτική να χρησιμοποιείτε "καρφωτές" τιμές στον κώδικά σας. -Σωστή χρήση Ν (SIZE) - Κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών -Σωστή είσοδος. -Δεν έχετε προχωρήσει αρκετά την υλοποίηση σας. Έχετε περιοριστεί στην είσοδο και στον υπολογισμό των χαρακτήρων FAIL -Το Ν είναι κακό όνομα σταθεράς. Θα μπορούσατε να βάλετε SIZE. -Σωστή εισαγωγή του string. -Τα loop σας θα επρεπε να τρέχουν μέχρι να βρουν το τέλος του string, δηλαδή το '\0' και όχι μέχρι 31. Δεν πρέπει να αντιμετωπίζουμε τα δεδομένα μετά το '\0' ως εγκυρα. -O αλγόριθμος σας χρειάζεται και άλλη δουλειά για να ολοκληρωθεί. -Δεν υπάρχουν σχόλια. -Δεν έχει γίνει σχεδόν καμία προσπάθεια.

5 1717 FAIL - Λειτουργία κοντά στο ζητούμενο αλλά όχι ακριβώς (βάλτε π.χ. τη λέξη independent ως παράδειγμα για να δείτε το ouput). Αυτό οφείλεται σε αλγοριθμικά λάθη όπως στο ότι όταν βρεθεί ένας ίδιος χαρακτήρας κατά το ψάξιμο η μεταφορά των στοιχείων μία θέση αριστερά πρέπει να γίνεται επαναληπτικά για όλους τους χαρακτήρες δεξιά του χαρακτήρα που βρέθηκε. (Επίσης η αρχικοποίηση του i στη 2η for θα πρέπει να γίνει στην τιμή a+1 και όχι 1, ώστε να ξεκινάει το πρόγραμμα να ψάχνει για πιθανούς ίδιους χαρακτήρες μετά τον εκάστοτε χαρακτήρα του string που ελέγχει). - Σωστή είσοδος δεδομένων. - Δε χρησιμοποιήσατε σταθερά για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Απουσία σχολίων. - Σωστή χρήση του '\0' στις συνθήκες τερματισμού των for loops. - Λίγη δουλειά, έχετε γράψει μόνο το διάβασμα των input strings και (λανθασμένη) σύγκρισή τους με τα "left", "right" και το πρόγραμμά σας δεν κάνει compile. Τα errors που βγάζει οφείλονται στο ότι προσπαθείτε να αντιγράψετε ένα string σε ένα άλλο χρησιμοποιώντας τον τελεστή "=". Αυτό βέβαια δεν είναι επιτρεπτό, για αυτό το σκοπό θα πρέπει να χρησιμοποιήσετε κάποια έτοιμη συνάρτηση όπως την strcpy ή να κάνετε την αντιγραφή επαναληπτικά χαρακτήρα-χαρακτήρα. - Λανθασμένη χρήση της strcmp (επιστρέφει 0 όταν τα 2 strings είναι ίδια και όχι 1) και μη χρήση άλλων συναρτήσεων (strcat, strlen). - Δε χρησιμοποιείτε σταθερές για τα μεγέθη πινάκων. - Να αποφεύγονται ονόματα μεταβλητών όπως word1, word2. - Καλή στοίχιση σε ό,τι έχετε κάνει. - Απουσία σχολίων Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές. Δεν ακολουθείτε επακριβώς τις οδηγίες τις άσκησης για την είσοδο. - Λάθος αποτέλεσμα. Υπάρχει ένα μικρό πρόβλημα στην αντικατάσταση των χαρακτήρων. Προσέξετε τους μετρητές σας. -Σωστή χρήση του SIZE. -Κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών -Δεν ακολουθείτε καλή στοίχιση. - Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές -Πολύ πρόχειρη υλοποίηση. -Δεν ακολουθείτε επαναληπτική είσοδο με βάση το μέγεθος του ελεύθερου buffer. -Λανθασμένη έξοδος.

6 - Σωστά αποτελέσματα - Μη περιγραφικά ονόματα μεταβλητών, μην διαχωρίζετε τα ονόματα των μεταβλητών με έναν αριθμό π.χ. word1, word2. Καλύτερα first_string, second_string. - Δεν έχετε σχόλια - Ανάγνωση συμβολοσειρών: - Θέλουμε %31s όταν το μέγεθος του string είναι 32. Έχετε σκέτο %s, το οποίο είναι επικίνδυνο γιατί θέλουμε να διαβάζουμε το πολύ μέχρι 31 χαρακτήρες χωρίς το /0, και το %31s μας προστατεύει ώστε να μην ξεπεράσουμε το όριο Σωστή λειτουργία. - Σωστή χρήση των συναρτήσεων strlen, strcat και strcmp. - Σωστή είσοδος δεδομένων. - Καλά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά σχόλια. - Aν με το string που δίνει ο χρήστης ξεπερνάται το μήκος της προτασης, εσείς το προσθέτετε στην πρόταση και μετά κάνετε break. if (len2 > SIZE) { break; } Λάθος τρόπος, δεν πρέπει να κάνετε επικόλληση του string στην πρόταση και μετά break αλλά κατευθείαν break. Μόλις διαβάζετε το string πρέπει να ελέγχετε για τον πιθανόν τερματισμό του προγράμματος FAIL -Tα αποτελέσματα είναι λάθος. - Δεν έχετε σχόλια - Η διάσχιση των strings την κάνετε σε ένα for. Χρειάζονται εμφωλευμένα fors ώστε για κάθε χαρακτήρα του second string ελέγχουμε όλο το first string. Δηλαδή στο εξωτερικό loop διασχίζουμε το second string, και στο εσωτερικό το first string. Διαβάστε τη λύση του lab5 που χειρίζεται παρόμοιο πρόβλημα και ξαναπροσπαθήστε. - Βγαίνει λάθος στο compile, γιατί ξεχάσατε την αγκύλη της main. - Απλά διαβάζετε δύο string, τα συγκρίνετε με την strcmp, και αν είναι διαφορετικά αναθέτετε το ένα string στο άλλο με την strcpy. Δεν είναι κατανοητό γιατί το κάνετε αυτό αφού δεν ζητείται αυτό από την άσκηση.

7 1721 -Στην ανάγνωση του string θα έπρεπε να χρησιμοποιήσετε το %31s. Είναι πολύ επικίνδυνο να μη δηλώνετε το μέγιστο πλήθος χαρακτήρων που μπορούν να διαβαστούν και να αποθηκευτούν σε κάποιον πίνακα. -Σχεδόν σωστά αποτελέσματα. Ωστόσο εάν δώσετε τη λέξη π.χ. independence έχετε αποτέλεσμα indepnc. Σωστή η σκέψη σας να μειώνετε το μετρήτη για να εξετάζετε ξανά τη θέση που έγινε αντικατάσταση, αλλά προσέξτε λίγο ποιον μετρητή μειώνετε. -Δεν έχετε χρησιμοποιήσει σταθερά για το μέγεθος του πίνακα. -Σχόλια: ΟΚ, αλλά είναι σχετικά πυκνογραμμένα. -Καλή δουλειά. -Σωστά αποτελέσματα. -Προσέξτε ξανά το %s κατά την εισαγωγή των δεδομένων. -Καλή χρήση των συναρτήσεων. -Καλή στοίχιση και ονόματα μεταβλητών. -Σχόλια: ΟΚ. Ωστόσο ξανά αρκετά πυκνογραμμένα. Να βάζετε σχόλια σύντομα και περιεκτικά οπου νομίζετε ότι χρειάζονται Σωστή είσοδος - Σωστή έξοδος. -Σωστή χρήση του Ν (SIZE) -Κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών - -Σωστή είσοδος. -Σωστή χρήση Ν και Μ - Προβληματική έξοδος λόγο μη αρχικοποίησης του πίνακα protasi. 1723, αλλά προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου. - Σωστή είσοδος. - Σωστό αποτέλεσμα, αλλά κατά τύχη. Το μήκος του string μειώνεται κάθε φορά που μεταφέρονται στοιχεία, επομένως έπρεπε να ανανεώνεται αναλόγως το len1 ώστε τα loops να μην ελέγχουν πέρα του τέλους του string -Να κάνετε χρήση ποιό περιγραφικών ονομάτων μεταβλητών. - Σωστή είσοδος. - Δεν γίνεται σωστή χρήση του Ν (SIZE). Γιατί ενώ το δηλώνετε κανονικά στη συνέχεια δεν το χρησιμοποιείτε? - Η άσκηση σας δεν είναι ολοκληρωμένη. Γίνετε μόνο η αντιγραφή του πρώτου string. - Καλή στοίχιση.

8 Σωστή είσοδος. -Λάθος έξοδος. Αν και είστε πολύ κοντά στη λύση έχετε πρόβλημα στο τμήμα του κώδικα που κάνετε αφαίρεση και αντικατάσταση χαρακτήρων. Θα πρέπει να προσέχετε την αρχικοποίηση του κ. Γενικά οι μετρητές των εσωτερικών loop δεν έπρεπε να ξεκινούν από 0 -Σωστή χρήση του Ν (SIZE). -Στην έξοδο δεν ακολουθείτε τις οδηγίες τις άσκησης. Τυπώνετε χαρακτήρα χαρακτήρα αντί για string - compilation failure \ 1725 Ασκηση 1 Ανάγνωση συμβολοσειρών: ok Όρια loops: Δεν πρέπει τα όρια να είναι μέχρι το τέλος του string, αλλά μέχρι τον χαρακτήρα '\0'. Με το τρόπο που αλλάζετε τους δείκτες, σβήνετε τους χαρακτήρες στην πρώτη τους εμφάνιση! (και μετατοπίζετε ως προς αυτή). Η αρχικοποίηση σε κενά γράφει εκτός ορίων πίνακα (στη θέση Ν) Αλγόριθμος: Η αρχικοποίηση δεν χρειαζόταν. Το loop σας κάνει άσκοπες επαναλήψεις και τελικά διαγράφει την πρώτη εμφάνιση του χαρακτήρα! Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο Σχόλια: Κακή δουλειά. Προσέχετε τα όρια των loops Άσκηση 2 Ανάγνωση συμβολοσειρών: Όρια loops: To πρώτο do δεν θα βγει ποτέ από το loop, γιατί απαιτείτε και τα δύο result να είναι 0, το οποίο δεν μπορεί να γίνει! Αλγόριθμος: Σε καλό δρόμο. Ίσως και να δούλευε αν κάνατε τα άλλα σωστά. Στοίχιση: ok. Μην αφήνετε πάρα πολλά κενά μεταξύ εντολών. Ονόματα μεταβλητών: Η σταθερά θα μπορούσε να έχει καλύτερο όνομα (πχ SIZE) Χρήση σταθερών: ok Σχόλια Προγράμματος: Κανένα σχόλιο Χρήση string.h: Δεν χρησιμοποιείτε την σωστή συνάρτηση για append, η οποία είναι η strcat. Για να βρείτε το μήκος μιας συμβολοσειράς υπάρχει το strlen. Σχόλια: Μέτρια δουλειά. Προσπαθήσετε να την κάνετε ξανά σπίτι. Νομίζω η συνθήκη του πρώτου do σας έκανε τη μεγαλύτερη ζημιά.

9 1726, αλλά να περιλαμβάνετε μόνο τα.c αρχεία στο φάκελο. -Να δίνετε πιο περιγραφικά ονόματα στις σταθερές/μεταβλητές και να μην χρησιμοποιείτε 1 και 2. π.χ. first_word και second_word αντί str1, str2 και SIZE αντί Ν. Πολλές φορές η εκφώνηση δίνει κατάλληλα ονόματα. -Στην ανάγνωση των strings ΕΠΡΕΠΕ να βάλετε το προσδιοριστικό %31s. Είναι επικίνδυνο να μην δηλώνετε το μέγιστο πλήθος χαρακτήρων που μπορούν να διαβαστούν από την είσοδο και αποθηκεύονται σε έναν πίνακα. -Απουσία σχολίων. Αλγόριθμός: -Σωστός έλεγχος των ορίων των strings στις δομές επανάληψεις. -Σωστή αφαίρεση των χαρακτήρων και μεταφορά των υπολοίπων στοιχείων. -Η κακή ονομασία μεταβλητών/σταθερών και η έλλειψη σχολίων σε αυτή την άσκηση που είναι πιο πολύπλοκη, δυσκολεύει πολύ την κατανόηση του κώδικά σας. -Για την εύρεση του μήκους ενός string μπορούσατε να χρησιμοποιήσετε τη σχετική συνάρτηση της βιβλιοθήκης (strlen) ή έναν εναλλακτικό τρόπο σαν αυτόν που έχει παρουσιαστεί στο μάθημα. Δεν είναι καθόλου κατανοητό αυτό που προσπαθείτε να κάνετε στον κώδικά σας με τη χρήση του πίνακα len. -O τελεστής "==" που χρησιμοποιείτε για την σύγκριση 2 strings είναι λάθος, υπάρχει σχετική συνάρτηση της βιβλιοθήκης (strcmp). -Αλγόριθμός: -Υπάρχουν αρκετά προβλήματα στον αλγόριθμό σας. -Κάθε νέα λέξη που διαβάζετε δεν την τοποθετείτε στην πρόταση, αλλά συνεχώς γράφετε στην πρόταση την πρώτη λέξη που διαβάσατε (λόγω κακής ονομασίας έχετε μπερδέψει το str1 με το str2). -Δεν ανανεώνετε την προηγούμενη λέξη που διαβάσατε (με την οποία πρέπει να συγκριθεί η νέα), αλλά προσπαθείτε να την συγκρίνετε με την πρώτη λέξη που διαβάστηκε στο πρόγραμμα.

10 Τα μεγέθη των πινάκων πρέπει να είναι σταθερές τιμές! Υποθέτω το κάνατε απλό int γιατί παραπονιόταν ο compiler για το size=size-1. Το σωστό θα ήταν να είχατε κανονικά το size ως σταθερά (με #define) και μετά να είχατε μια άλλη μεταβλητή, πχ length στην οποία θα αποθηκεύατε το μήκος του string (με χρήση strlen). Επίσης, χρησιμοποιώντας <=size-1 (δηλαδή το τέλος του πίνακα ως όριο στις συνθήκες τερματισμού των for loops) το for loop σας διατρέχει όλα τα στοιχεία του πίνακα, ενώ μας ενδιαφέρει να διατρέχει τα στοιχεία του string. Αυτό μπορεί να γίνει ελέγχοντας για '\0' στη συνθήκη ή με το μήκος του string, προσέχοντας να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. - Λειτουργία κοντά στο ζητούμενο αλλά όχι ακριβώς. - Σωστή είσοδος δεδομένων. - Δε χρησιμοποιείτε σταθερά για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Η εκτύπωση strings με printf και %s εκτυπώνει τους χαρακτήρες ενός string μέχρι να βρει το '\0'. Στο τελικό string σας το '\0' παραμένει στη θέση που βρισκόταν στο αρχικό string με αποτέλεσμα να εκτυπώνονται παραπάνω χαρακτήρες από ό,τι θέλουμε. Βάλτε ως παράδειγμα τη λέξη "independent" για να δείτε το πρόβλημα. - Θα ήταν προτιμότερο να χρησιμοποιούσατε for αντί για dο-while για λόγους αναγνωσιμότητας. Έχουμε μετρητές και γνωρίζουμε το πλήθος επαναλήψεων, οπότε η δομή for είναι πιο κατάλληλη. - Απουσία σχολίων. Σε συνδυασμό με το παραπάνω κάνουν το πρόγραμμα αρκετά δυσνόητο. - Το πρόγραμμά σας δεν κάνει compile και βγάζει πληθώρα από errors και warnings που οφείλονται μεταξύ άλλων σε παράλειψη του #include <string.h> για τις συναρτήσεις χειρισμού strings, ";" που λείπουν και κακή σύνταξη στις δηλώσεις πινάκων. Μην προχωράτε με το γράψιμο κώδικα χωρίς να κάνετε από την αρχή και συχνά compile. - Λάθος κατανόηση της εκφώνησης (τα 2 input strings δεν αποθηκεύονται σε 2 πίνακες left και right). - Κακά, μη περιγραφικά ονόματα μεταβλητών (a, b, le, ri, str1, str2). - Σωστή χρήση σταθεράς size για το μέγεθος πίνακα αλλά συνηθίζεται να γράφουμε τις σταθερές με κεφαλαία. - Καλή στοίχιση σε ό,τι γράψατε. - Απουσία σχολίων., αλλά προσέχετε το χρόνο! - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθεράς για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά σχόλια. - Σωστή χρήση του '\0' στις συνθήκες τερματισμού των for loops. - Στην πιο εσωτερική for αρχικοποιείτε το z με i+1, ενώ θα έπρεπε να είναι j ώστε η μεταφορά των στοιχείων του πίνακα να αρχίσει από τη θέση στην οποία βρέθηκε ίδιος χαρακτήρας. Ως αποτέλεσμα οι απαλοιφές των πολλαπλά εμφανιζόμενων χαρακτήρων δε γίνονται σωστά. - Δοκιμάστε να βάλετε ως παράδειγμα το string του 2ου παραδείγματος της εκφώνησης ("aaabccc-bb"). Θα παρατηρήσετε ότι δεν απαλείφονται όλοι οι χαρακτήρες που πρέπει. Αυτό συμβαίνει σε ειδικές περιπτώσεις, π.χ. όπου έχουμε ίδιους διαδοχικούς χαρακτήρες (π.χ. "aaa"). Σκεφτείτε γιατί συμβαίνει αυτό και προσπαθήστε να το λύσετε στο σπίτι. - Ελάχιστη και βιαστική δουλειά (κάνετε μόνο εισαγωγή δεδομένων), δεν κάνει βέβαια compile λόγω διαφόρων λαθών (αδήλωτες μεταβλητές, λείπουν ";" κ.ά.)

11 1729 FAIL - Σωστή είσοδος. -Λάθος αποτέλεσμα. Δεν γίνεται απομάκρυνση και αντικατάσταση χαρακτήρων. --Να κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών. -compilation failure 1731 FAIL -Καλά ονόματα μεταβλητών, όμως και η σταθερά σας θα έπρεπε να έχει πιο περιγραφικό όνομα. π.χ. SIZE αντί Ν -Στην ανάγνωση των strings ΕΠΡΕΠΕ να βάλετε το προσδιοριστικό %31s. Είναι επικίνδυνο να μην δηλώνετε το μέγιστο πλήθος χαρακτήρων που μπορούν να διαβαστούν από την είσοδο και αποθηκεύονται σε έναν πίνακα. -Καλή στοίχιση εν γένει, αν και σε κάποια σημεία έχει προβληματάκια. Επαναλαμβάνουμε: o κώδικας που βρίσκεται μέσα σε ένα block πρέπει να είναι ένα tab πιο μέσα. -Απουσία σχολίων. Αλγόριθμος: -Έχετε αρκετά λάθη στην υλοποίηση σας και με την έλλειψη σχολίων δεν είναι κατανοητό τι ακριβώς προσπαθείτε να κάνετε. -Η μεταφορά των στοιχείων σε έναν πίνακα σας έχει δοθεί και εξηγείται αναλυτικά στο lab5sol.pdf που είναι αναρτημένο στο site του μαθήματος. Διαβάστε το! Δεν κάνει compile. -Έχετε χρησιμοποιήσει μεταβλητές που δεν είναι καν δηλωμένες. ΜΗΝ το κάνετε αυτό! -Έχετε αφήσει πολλά blocks κώδικα ανοιχτά!καλό θα ήταν όταν ανοίγετε αγκύλες για ένα block κώδικα, να τις κλείνετε αμέσως. - Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές. Δεν ακολουθείτε επακριβώς τις οδηγίες τις άσκησης για την είσοδο. - Λάθος αποτέλεσμα. Υπάρχει ένα μικρό πρόβλημα στην αντικατάσταση των χαρακτήρων. Προσέξετε τους μετρητές σας. -Σωστή χρήση του SIZE. -Κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών -Δεν ακολουθείτε καλή στοίχιση. - Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές -Πολύ πρόχειρη υλοποίηση. -Δεν ακολουθείτε επαναληπτική είσοδο με βάση το μέγεθος του ελεύθερου buffer. -Λανθασμένη έξοδος.

12 Σωστή είσοδος - Σωστός αλγόριθμος. Υπάρχει πρόβλημα στη αναγνώριση συνεχόμενων ίδιων γραμμάτων. Για να λυθεί θα πρέπει να ελέγχετε το ίδιο γράμμα μετά την αντικατάσταση. -Γενικά δεν είναι ορθή πρακτική να χρησιμοποιείτε "καρφωτές" τιμές στον κώδικά σας. -Σωστή χρήση Ν (SIZE) - Κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών -Σωστή είσοδος. -Δεν έχετε προχωρήσει αρκετά την υλοποίηση σας. Έχετε περιοριστεί στην είσοδο και στον υπολογισμό των χαρακτήρων Σωστή λειτουργία. - Σωστή είσοδος δεδομένων. - Δε χρησιμοποιήσατε σταθερά για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά σχόλια. - Σωστή χρήση του '\0' στις συνθήκες τερματισμού των for loops. Δε χρειάζεται να ελέγχετε για το τέλος του πίνακα μαζί με τον έλεγχο για '\0', αφού το '\0' θα βρίσκεται πάντα σε θέση μικρότερη ή ίση του τελευταίου στοιχείου του πίνακα. - Σωστή αντιμετώπιση των ειδικών περιπτώσεων ίδιων διαδοχικών χαρακτήρων. - Σωστή λειτουργία. - Σωστή χρήση των συναρτήσεων strlen, strcat και strcmp. - Σωστή είσοδος δεδομένων. - Δε χρησιμοποιήσατε σταθερές για τα μεγέθη πινάκων. - Καλά ονόματα μεταβλητών εκτός του temp. - Καλή στοίχιση. - Καλά σχόλια.

13 Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές. -Σωστό αποτέλεσμα. - Ενώ δηλώνετε το SIZE στο πρόγραμμά σας δεν το χρησιμοποιείτε. Γενικά δεν είναι ορθή πρακτική να βάζετε "καρφωμένες " τιμές στον κώδικά σας. -Το loop σας διατρέχει τον πίνακα μέχρι το SIZE-1 και όχι μέχρι το τέλος του string με αποτέλεσμα να μη γίνετε έλεγχος για το '\0'. - Δεν βάζετε ποτέ τον τερματικό χαρακτήρα με αποτέλεσμα να τυπώνετε μαζί με το αποτέλεσμα και τα σκουπίδια του buffer -Καλή στοίχιση και καλά ονόματα μεταβλητών. -Σωστή είδος. -Σωστή έξοδος. -Υπάρχει ένα μικρό πρόβλημα αρχικοποίησης που εμφανίζετε κατά την αρχική είσοδο. Θα πρέπει να αρχικοποιήσετε τον πίνακα πρόταση με '\0' στο πρώτο στοιχείο και όχι με κενό/ -καλή στοίχιση 1738 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί - Σωστά αποτελέσματα - Περιγραφικά ονόματα μεταβλητών. - Έχετε ωραία σχόλια - Καλή στοίχιση - Εφόσον το first string μικραίνει σε κάθε επανάληψη, το σωστό είναι να τσεκάρετε για \0 ή να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. Θα έπρεπε με κάθε μετατόπιση που γίνεται προς τα αριστερά στο first_string να μειώνετε το μήκος του first string. - Μπράβο! Ελέγχετε και την περίπτωση που αν βρούμε ίδιο χαρακτήρα ελέγχουμε και τον επόμενο. - Λάθος αποτελέσματα. - Κάνετε μεταφορά από το ένα string στο άλλο χαρακτήρα χαρακτήρα. Θα έπρεπε να χρησιμοποιήσετε τις συναρτήσεις strcat για επικόλληση δυο strings, και την strcpy για την αντιγραφή από το ένα string στο άλλο. - Χρησιμοποιείτε σωστά την strcmp για να συγκρίνετε δυο strings, αλλά δεν είναι ξεκάθαρο τι προσπαθείτε να κάνετε. Δεν έχετε και περιγραφικά ονόματα μεταβλητών και σχόλια.

14 , αλλά προσέχετε το χρόνο! Επίσης, προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου - Σε κάποιες περιπτώσεις τα αποτελέσματα είναι λάθος. π.χ. Σωστά αποτελέσματα Enter first word: applepie Enter second word: lie appp Λάθος αποτελέσματα Enter first word: applepie Enter second word: ape apli 1739 FAIL - Μη περιγραφικά ονόματα μεταβλητών. Μην διαχωρίζετε τις μεταβλητές μόνο με έναν κωδικό. - Δεν έχετε σχόλια - Εφόσον το string μικραίνει σε κάθε επανάληψη, το σωστό είναι να τσεκάρετε για \0 ή να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. Εσείς τσεκάρετε το μήκος. Θα πρέπει με κάθε μετατόπιση που γίνεται προς τα αριστερά στο first_string να μειώνετε το μήκος του first string. - Επίσης το έχετε κάνει πιο πολύπλοκο απ' ότι χρειαζόταν. Έχετε χρησιμοποιήσει ενα do-while και flags, δεν είναι ξεκάθαρο για ποιο λόγο τα χρησιμοποιείτε. Στο do while στη συνθήκη έχετε ανάθεση flag = 0 και όχι κάποια λογική έκφραση. Σας έδωσε σχετικό warning ο compiler και ειδικά αυτό το λάθος είχε αναφερθεί στο που λάβατε με τίτλο "Sxetika me ti bathmologisi tou lab5". Για τη λύση αρκούσαν 3 εμφωλευμένα for. Δείτε και τη λύση του lab5 που χειριζόταν παρόμοιο πρόβλημα. - Δεν την κάνατε.

15 Σωστά αποτελέσματα - Περιγραφικά ονόματα μεταβλητών. - Δεν έχετε σχόλια - Ανάγνωση συμβολοσειρών: - Θέλουμε %31s όταν το μέγεθος του string είναι 32. Έχετε σκέτο %s, το οποίο είναι επικίνδυνο γιατί θέλουμε να διαβάζουμε το πολύ μέχρι 31 χαρακτήρες χωρίς το \0, και το %31s μας προστατεύει ώστε να μην ξεπεράσουμε το όριο. - Τα loops πρέπει να πηγαίνουν μέχρι το τέλος του string, όχι το τέλος του πίνακα. Εφόσον το string μικραίνει σε κάθε επανάληψη, το σωστό είναι να τσεκάρετε για \0 ή να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. Για το second string ελέγχετε για '\0' που είνsi σωστό αλλά γiα το first string ελέγχεται στο for i<size, που είναι λάθος γιατί δεν πρέπει να αντιμετωπίζουμε τα δεδομένα μετά το \0 ως έγκυρα. Θα έπρεπε με κάθε μετατόπιση που γίνεται προς τα αριστερά στο first_string να μειώνετε το μήκος του first string. Γενικά καλό είναι να υιοθετείτε έναν τρόπο για να ελέγχεται για το τέλος του string, ή να ελέγχετε για το '\0' ή να κρατάτε σε μια μεταβλητή το μήκος του string. - Δεν την κάνατε. - Σωστά αποτελέσματα - Μη περιγραφικά ονόματα μεταβλητών, μην διαχωρίζετε τα ονόματα των μεταβλητών με έναν αριθμό π.χ. word1, word2. Καλύτερα first_string, second_string. - Δεν έχετε σχόλια - Ανάγνωση συμβολοσειρών: - Θέλουμε %31s όταν το μέγεθος του string είναι 32. Έχετε σκέτο %s, το οποίο είναι επικίνδυνο γιατί θέλουμε να διαβάζουμε το πολύ μέχρι 31 χαρακτήρες χωρίς το /0, και το %31s μας προστατεύει ώστε να μην ξεπεράσουμε το όριο Σωστή λειτουργία. - Σωστή χρήση των συναρτήσεων strlen, strcat και strcmp. - Σωστή είσοδος δεδομένων. - Καλά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά σχόλια. - Aν με το string που δίνει ο χρήστης ξεπερνάται το μήκος της προτασης, εσείς το προσθέτετε στην πρόταση και μετά κάνετε break. if (len2 > SIZE) { break; } Λάθος τρόπος, δεν πρέπει να κάνετε επικόλληση του string στην πρόταση και μετά break αλλά κατευθείαν break. Μόλις διαβάζετε το string πρέπει να ελέγχετε για τον πιθανόν τερματισμό του προγράμματος.

16 1742 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Ασκηση 1 Ανάγνωση συμβολοσειρών: οκ Όρια loops: οκ Αλγόριθμος: οκ Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο. Σας προτρέπω να δείτε ξανά τον κώδικά σας το καλοκαίρι και να προσπαθήσετε να καταλάβει τι κάνει. Πρώτα χωρίς σχόλια και μετά με σχόλια! Σχόλια: Πολύ καλή δουλειά! Είναι πολύ σημαντικό να βάζετε σχόλια όμως. Άσκηση 2 Ανάγνωση συμβολοσειρών: ok Όρια loops: while(1);; Αλγόριθμος: πρέπει οι ενώσεις να τελειώνουν ΠΡΙΝ εξαντληθεί ο χώρος! Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο Χρήση string.h: το strcat(str,message1) δε βγάζει κάποιο νόημα και ούτε είναι σωστό. (το str έτσι όπως το ορίσατε δεν είναι string). Σχόλια: Δεν κάνει compile 1743 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Ασκηση 1 Ανάγνωση συμβολοσειρών: οκ Όρια loops: οκ Αλγόριθμος: οκ Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο. Σας προτρέπω να δείτε ξανά τον κώδικά σας το καλοκαίρι και να προσπαθήσετε να καταλάβει τι κάνει. Πρώτα χωρίς σχόλια και μετά με σχόλια! Σχόλια: Πολύ καλή δουλειά! Είναι πολύ σημαντικό να βάζετε σχόλια όμως. Άσκηση 2 Ανάγνωση συμβολοσειρών: ok Όρια loops: while(1);; Αλγόριθμος: πρέπει οι ενώσεις να τελειώνουν ΠΡΙΝ εξαντληθεί ο χώρος! Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο Χρήση string.h: το strcat(str,message1) δε βγάζει κάποιο νόημα και ούτε είναι σωστό. (το str έτσι όπως το ορίσατε δεν είναι string). Σχόλια: Δεν κάνει compile

17 1744 FAIL - Σωστή είσοδος. -Λάθος αποτέλεσμα. Δεν γίνεται απομάκρυνση και αντικατάσταση χαρακτήρων. --Να κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών. -compilation failure Καλή ονομασία μεταβλητών/σταθερών. -Στην ανάγνωση των strings ΕΠΡΕΠΕ να βάλετε το προσδιοριστικό %31s. Είναι επικίνδυνο να μην δηλώνετε το μέγιστο πλήθος χαρακτήρων που μπορούν να διαβαστούν από την είσοδο και αποθηκεύονται σε έναν πίνακα. -Ευανάγνωστος και επαρκώς σχολιασμένος κώδικας με καλή στοίχιση. Αλγόριθμός: -Σωστός έλεγχος των ορίων των strings στις δομές επανάληψεις. -Σωστή αφαίρεση των χαρακτήρων και μεταφορά των υπολοίπων στοιχείων. -Δεν ελέγχετε αν στην θέση ενός στοιχείου που μόλις αφαιρέθηκε, το νέο στοιχείο (μετά την μεταφορά των υπολοίπων) περιέχει και αυτό τον ίδιο χαρακτήρα. -Να δίνετε πιο περιγραφικά ονόματα στις μεταβλητές και να μην χρησιμοποιείτε 1 και 2. π.χ. word_new και word_old αντί string1, string2. -Έχετε λάθος στο διάβασμα των string στην αρχή του προγράμματος ενώ θα ΕΠΡΕΠΕ να έχετε και το προσδιοριστικό %20s. -Η έλλειψη σχολίων δεν βοηθάει στην κατανόηση του τί προσπαθείτε να κάνετε στον κώδικά σας. Αλγόριθμός: -Προσπαθείτε να χρησιμοποιήσετε τις συναρτήσεις της string.h αλλά με λάθος τρόπο. π.χ. η strcmp επιστρέφει 0 αν είναι ίδιες οι συμβολοσειρές που έχουν περαστεί ως παράμετροι (οπότε θα πρέπει να αλλάξει αναλόγως ο σχετικός έλεγχος που κάνετε) -Κάθε φορά προσπαθείτε να συγκρίνετε τη νέα λέξη με την πρώτη που διαβάστηκε στο πρόγραμμα. -Χρησιμοποιείτε πολύπλοκους και λανθασμένος ελέγχους (πχ ελέγχετε αν το μήκος της πρότασης είναι μεγαλύτερο από το μέγιστο ΑΦΟΥ έχετε τοποθετήσει την νέα λέξη στην πρόταση (!)).

18 FAIL - Σωστή λειτουργία (εκτός από τις ειδικές περιπτώσεις που αναφέρονται παρακάτω) - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθεράς SIZE για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά σχόλια. - Σωστή χρήση του '\0' στις συνθήκες τερματισμού των for loops. - Δοκιμάστε να βάλετε ως παράδειγμα το string του 2ου παραδείγματος της εκφώνησης ("aaabccc-bb"). Θα παρατηρήσετε ότι δεν απαλείφονται όλοι οι χαρακτήρες που πρέπει. Αυτό συμβαίνει σε ειδικές περιπτώσεις, π.χ. όπου έχουμε ίδιους διαδοχικούς χαρακτήρες (π.χ. "aaa"). Σκεφτείτε γιατί συμβαίνει αυτό και προσπαθήστε να το λύσετε στο σπίτι. - Το πρόγραμμα δεν κάνει compile λόγω κακής σύνταξης της while. Επίσης εμφανίζει αρκετά warnings το πιο σημαντικό εκ των οποίων οφείλεται στο ότι προσπαθείτε να βρείτε αν 2 strings είναι ίδια χρησιμοποιώντας τον τελεστή "==", ενώ για αυτό το σκοπό πρέπει να χρησιμοποιείται η συνάρτηση strcmp. - Σωστή χρήση της συνάρτησης strlen. Όπως αναφέρθηκε δε χρησιμοποιείτε τη συναρτηση strcmp αλλά ούτε και την strcat για τη συνένωση strings. Αντ' αυτού αντιγράφετε επαναληπτικά χαρακτήρες (λανθασμένα). Γενικότερα αυτό δεν είναι απαραίτητα λάθος, αλλά είναι πολύ πιο χρονοβόρο κι επιρρεπές σε λάθη. - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθεράς SIZE, θα μπορούσε να δηλωθεί και ο αριθμός 10 ως σταθερά. - Καλά ονόματα μεταβλητών. - Προσοχή στη στοίχιση (π.χ. στην do-while) - Απουσία σχολίων. Στείλατε το εκτελέσιμο κι όχι το.c αρχείο. Ο λόγος που ζητάμε να στέλνετε αντίγραφο και στα δικά σας , είναι για να ελέγχετε αν είναι όλα οκ με το emai;

19 , αλλά προσέχετε το χρόνο! - Σωστή λειτουργία (εκτός από τις ειδικές περιπτώσεις που αναφέρονται παρακάτω) - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθεράς SIZE για το μέγεθος του πίνακα. - Σωστά ονόματα μεταβλητών. - Καλή στοίχιση. - Καλά τα σχόλια που γράψατε, θα μπορούσατε να είχατε γράψει λίγα παραπάνω (π.χ. για τη μεταφορά στοιχείων). - Χρησιμοποιώντας <SIZE-1 (δηλαδή το τέλος του πίνακα ως όριο στις συνθήκες τερματισμού των for loops) το for loop σας διατρέχει όλα τα στοιχεία του πίνακα (για την ακρίβεια όχι όλα αλλά ένα λιγότερο, κάτι που είναι επίσης λάθος μιας και για λέξη 31 χαρακτήρων θα χρειαζόσαστε άλλη μια θέση για το '\0'), ενώ μας ενδιαφέρει να διατρέχει τα στοιχεία του string. Αυτό μπορεί να γίνει ελέγχοντας για '\0' στη συνθήκη ή με το μήκος του string, προσέχοντας να υπολογίζετε το νέο μήκος σε κάθε επανάληψη. - Η μεταβλητή thesh δεν είναι αναγκαία, σκεφτείτε πώς μπορείτε να κάνετε τις μεταφορές στοιχείων χρησιμοποιώντας μόνο τις μεταβλητές j και k. - Δοκιμάστε να βάλετε ως παράδειγμα το string του 2ου παραδείγματος της εκφώνησης ("aaabccc-bb"). Θα παρατηρήσετε ότι δεν απαλείφονται όλοι οι χαρακτήρες που πρέπει. Αυτό συμβαίνει σε ειδικές περιπτώσεις, π.χ. όπου έχουμε ίδιους διαδοχικούς χαρακτήρες (π.χ. "aaa"). Σκεφτείτε γιατί συμβαίνει αυτό και προσπαθήστε να το λύσετε στο σπίτι. - Έχετε γράψει κώδικα για την εισαγωγή λέξεων στους δύο πίνακες μόνο για την πρώτη φορά. Επίσης, όταν εισάγετε μια λέξη σε έναν πίνακα (π.χ. αυτόν της αριστερής πρότασης), επειδή δεν έχετε αρχικοποιήσει τις μεταβλητές για τον άλλον (εδώ, αυτόν της δεξιάς πρότασης) εκτυπώνονται σκουπίδια. Η εισαγωγή της εκάστοτε λέξης στον κατάλληλο πίνακα πάντως γίνεται σωστά. - Σωστή χρήση των συναρτήσεων strlen, strcmp, strcat. - Eκτυπώνετε το string length αντί για το remaining στον πίνακα right. - Σωστή είσοδος δεδομένων. - Σωστή χρήση σταθερών. - Καλά ονόματα μεταβλητών. - Καλή στοίχιση. - Απουσία σχολίων. Ασκηση 1 Ανάγνωση συμβολοσειρών: οκ Όρια loops: οκ Αλγόριθμος: οκ Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: Θα έπρεπε να χρησιμοποιείται και στο δεύτερο loop. Σχόλια Προγράμματος: Κανένα σχόλιο Σχόλια: Πολύ καλή δουλειά! Άσκηση 2 Ανάγνωση συμβολοσειρών: - Όρια loops: - Αλγόριθμος: - Στοίχιση: - Ονόματα μεταβλητών: - Χρήση σταθερών: - Σχόλια Προγράμματος: - Χρήση string.h: - Σχόλια: Δεν έγινε.

20 1750 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Ασκηση 1 Ανάγνωση συμβολοσειρών: ok Όρια loops: ok Αλγόριθμος: το λάθος είναι ότι δεν προσαρμόζετε το j ώστε να αλλάζει αν γίνεται κάποιο shift (και να ελέγχετε τον χαρακτήρα που ήρθε στη θέση αυτού που σβήσατε) Στοίχιση: οκ Ονόματα μεταβλητών:ok Χρήση σταθερών: οκ Σχόλια Προγράμματος: πολύ λίγα. Δώστε μια περιγραφή της κάθε μεταβλητής και μερικά ακόμα σχόλια για το πως λειτουργεί το πρόγραμμα. Σχόλια: Αρκετά καλή προσπάθεια. Το μόνο πρόβλημα είναι το παραπάνω που σας είπα. Άσκηση 2 Ανάγνωση συμβολοσειρών: οκ Όρια loops: το όριο του πρώτου do loop είναι εντελώς λάθος. Αλγόριθμος: Αρκετά καλά, αλλά το παραπάνω όριο χαλάει εντελώς την εικόνα. Στοίχιση: οκ Ονόματα μεταβλητών: a,b αδικαιολόγητα. Χρήση σταθερών: οκ Σχόλια Προγράμματος: κανένα σχόλιο Χρήση string.h: για να βρείτε μήκη συμβολοσειρών έπρεπε να χρησιμοποιήσετε την strlen. Για το strcat, δεν έχετε αρχικοποιήση τα left και right σε strings (δλδ να υπάρχει ο '\0') οπότε το cat που κάνετε δεν είναι μεταξύ 2 strings! Σχόλια: Μέτρια προσπάθεια. Διαφέρει αρκετά από αυτό που ζητάμε Καλή ονομασία μεταβλητών, αλλά να κάνετε το ίδιο και για τις σταθερές. π.χ. SIZE αντί Ν -Σωστά χρησιμοποιείτε το %31s στην ανάγνωση των strings. -Ευανάγνωστος και επαρκώς σχολιασμένος κώδικας με καλή στοίχιση. Αλγόριθμός: -Σωστός έλεγχος των ορίων των strings στις δομές επανάληψης -Σωστή αφαίρεση των χαρακτήρων και μεταφορά των υπολοίπων στοιχείων. -Να δίνετε πιο περιγραφικά ονόματα στις σταθερές/μεταβλητές και να μην χρησιμοποιείτε 1 και 2. π.χ. word_new και word_old αντί input1, input2 και SIZE_SENTENCE, SIZE_WORD αντί Ν,M -Η έλλειψη σχολίων και τα άσχημα ονόματα των μεταβλητών/σταθερών δεν βοηθάνε στην κατανόηση του τί προσπαθείτε να κάνετε στον κώδικά σας Αλγόριθμός: -Προσπαθείτε να χρησιμοποιήσετε τις συναρτήσεις της string.h αλλά με λάθος τρόπο. π.χ. η strcpy αντιγράφει την συμβολοσειρά που δίνεται ως 2η παράμετρος στην 1η (και όχι το αντίστροφο όπως φαίνεται να θεωρείτε εσείς) -Δεν κάνετε σύγκριση της νέας λέξης που διαβάζετε με την προηγούμενη (υπάρχει σχετική συνάρτηση, strcmp). -Δεν χρησιμοποιείτε σωστά την strcat για να προσθέσετε την νέα λέξη στην πρόταση (στον κώδικά σας βασικά δεν βάζετε καμιά λέξη στην μεταβλητή sentence που τυπώνετε (!)).

21 1752, αλλά προσέχετε το χρόνο! Άσκηση 1η -Σωστή είσοδος -Σωστή στοίχιση -Ο αλγόριθμός σας δεν δουλεύει σωστά όταν τα διπλότυπα εμφανίζονται σε συνεχόμενες θέσεις στον πίνακα. -Πρέπει να ελέγχετε ότι δεν έχετε ξεπεράσει τον χαρακτήρα '\0' και όχι το αν έχετε φτάσει στη θέση 31. Άσκηση 2η -Έλλειψη σχολίων,πχ τι προσπαθείτε να πετύχετε στις γραμμές 13-18; -Χρησιμοποιείτε την scanf() με μη ασφαλή τρόπο ( αν δοθούν πάνω από Ν-1 χαρακτήρες θα έχετε buffer overflow ) 1753 FAIL Στείλατε το εκτελέσιμο κι όχι το.c αρχείο. Ο λόγος που ζητάμε να στέλνετε αντίγραφο και στα δικά σας , είναι για να ελέγχετε αν είναι όλα οκ με το emai; 1758 FAIL -Το Ν είναι κακό όνομα σταθεράς. Θα μπορούσατε να βάλετε SIZE. -Σωστή εισαγωγή του string. -Τα loop σας θα επρεπε να τρέχουν μέχρι να βρουν το τέλος του string, δηλαδή το '\0' και όχι μέχρι 31. Δεν πρέπει να αντιμετωπίζουμε τα δεδομένα μετά το '\0' ως εγκυρα. -O αλγόριθμος σας χρειάζεται και άλλη δουλειά για να ολοκληρωθεί. -Δεν υπάρχουν σχόλια. -Δεν έχει γίνει σχεδόν καμία προσπάθεια., αλλά προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου FAIL - Λάθος αποτελέσματα - Μη περιγραφικά ονόματα μεταβλητών. Μη διαχωρίζετε τα ονόματα μόνο με έναν αριθμό. - Δεν έχετε σχόλια - Η στοίχιση καλή είναι απλά η main πρέπει να είναι στο ύψος του define και του include. - Τις σταθερές τις δηλώνουμε με κεφαλαία. SIZE, όχι size. - Όσον αφορά τον αλγόριθμο, δεν δίνουμε περισσότερες λεπτομέρειες, διότι ο κώδικας δεν είναι κατανοητός λόγω χρήσης μη περιγραφικών μεταβλητών, έλλειψης σχολιασμού και γενικά το έχετε κάνει αρκετά πιο πολύπλοκο απ' ότι χρειαζόταν. - Δεν την κάνατε.

22 Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί 1760 FAIL -Η άσκηση βγάζει λάθος στο compile γιατί έχετε ένα επιπλέον άγκιστρο στο for της σειράς 17. Δεν έχετε καλή στοίχιση στα άγκιστρα και είναι πολύ εύκολο να γίνει λάθος. - Αν αφαιρεθεί το επιπλέον άγκιστρο, και τρέξουμε το πρόγραμμα, προκύπτει segmentation fault. - Δεν έχετε περιγραφικά ονόματα μεταβλητών. - Δε δίνουμε περισσότερες λεπτομέρειες για τα λάθη σας στο αλγοριθμικό κομμάτι γιατί είναι η άσχημη μορφή του προγράμματος και δεν υπάρχει σχολιασμός. - Ανάγνωση συμβολοσειρών: - Θέλουμε %31s όταν το μέγεθος του string είναι 32. Έχετε σκέτο %s, το οποίο είναι επικίνδυνο γιατί θέλουμε να διαβάζουμε το πολύ μέχρι 31 χαρακτήρες χωρίς το \0, και το %31s μας προστατεύει ώστε να μην ξεπεράσουμε το όριο. - Δεν έχετε ορίσει σταθερά για το μήκος του string με define. - Έχετε for που βρίσκει το μήκος του string. for (i=0; mat1[i]!='\0'; i++) { len1=len1+1; } Αυτόν τον υπολογισμό τον κάνει η συνάρτηση strlen, δεν χρειάζεται να το κάνετε εσείς. - Τρέχοντας το πρόγραμμα προκύπτει segmentation fault. - Σωστή χρήση strcmp - Ο αλγόριθμος δεν είναι σωστός, σ' αυτήν δεν πρέπει να κάνετε μεταφορές από string σε string χαρακτήρα χαρακτήρα αλλά με τις συναρτήσεις strcpy, strcat. - Παρομοίως με την πρώτη άσκηση, δεν έχετε περιγραφικά ονόματα μεταβλητών, δεν έχετε σχόλια FAIL Δεν ελήφθη άσκηση. Στο μέλλον καλό είναι να μην αφήνετε την αποστολή για την εκπνοή του χρόνου, για να μη γίνονται λάθη, αλλά προσέχετε το χρόνο! Άσκηση 1η -Σωστή είσοδος -Σωστή στοίχιση -Ο αλγόριθμός σας δεν δουλεύει σωστά όταν τα διπλότυπα εμφανίζονται σε συνεχόμενες θέσεις στον πίνακα Άσκηση 2η -Η είσοδος έπρεπε να γίνει με %(Ν-1)s δηλαδή %19s για Ν=20 ώστε να υπάρξει μέριμνα για τον χαρακτήρα '\0' στο τέλος κάθε string. -Δεν κάνει compile, γιατί χρησιμοποιείτε λάθος την strcmp(), η σωστή χρήση θα ήταν " if( strcmp(s1, str1) == 0 ) {..." -Η ονομασία των μεταβλητών σας είναι πολύ άσχημη. -Γενικά όταν γράφετε κώδικα να κάνετε συχνά πυκνά compile ώστε να διορθώνετε τα συντακτικά λάθη και να μην συσσωρεύονται.

23 - Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές - Σωστή έξοδος. -Σωστή χρήση του SIZE -Καλή χρήση ονομάτων μεταβλητών -Καλή υλοποίηση Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές - Σωστή έξοδος. -Σωστή χρήση του SIZE -Καλή χρήση ονομάτων μεταβλητών -Καλή υλοποίηση Καλή ονομασία μεταβλητών/σταθερών. -Στην ανάγνωση των strings ΕΠΡΕΠΕ να βάλετε το προσδιοριστικό %31s. Είναι επικίνδυνο να μην δηλώνετε το μέγιστο πλήθος χαρακτήρων που μπορούν να διαβαστούν από την είσοδο και αποθηκεύονται σε έναν πίνακα. -Ευανάγνωστος και επαρκώς σχολιασμένος κώδικας με καλή στοίχιση. Αλγόριθμός: -Σωστός έλεγχος των ορίων των strings στις δομές επανάληψεις. -Σωστή αφαίρεση των χαρακτήρων και μεταφορά των υπολοίπων στοιχείων. -Δεν ελέγχετε αν στην θέση ενός στοιχείου που μόλις αφαιρέθηκε, το νέο στοιχείο (μετά την μεταφορά των υπολοίπων) περιέχει και αυτό τον ίδιο χαρακτήρα. -Να δίνετε πιο περιγραφικά ονόματα στις μεταβλητές και να μην χρησιμοποιείτε 1 και 2. π.χ. word_new και word_old αντί string1, string2. -Έχετε λάθος στο διάβασμα των string στην αρχή του προγράμματος ενώ θα ΕΠΡΕΠΕ να έχετε και το προσδιοριστικό %20s. -Η έλλειψη σχολίων δεν βοηθάει στην κατανόηση του τί προσπαθείτε να κάνετε στον κώδικά σας. Αλγόριθμός: -Προσπαθείτε να χρησιμοποιήσετε τις συναρτήσεις της string.h αλλά με λάθος τρόπο. π.χ. η strcmp επιστρέφει 0 αν είναι ίδιες οι συμβολοσειρές που έχουν περαστεί ως παράμετροι (οπότε θα πρέπει να αλλάξει αναλόγως ο σχετικός έλεγχος που κάνετε) -Κάθε φορά προσπαθείτε να συγκρίνετε τη νέα λέξη με την πρώτη που διαβάστηκε στο πρόγραμμα. -Χρησιμοποιείτε πολύπλοκους και λανθασμένος ελέγχους (πχ ελέγχετε αν το μήκος της πρότασης είναι μεγαλύτερο από το μέγιστο ΑΦΟΥ έχετε τοποθετήσει την νέα λέξη στην πρόταση (!)) FAIL Στείλατε το lab5. Ο λόγος που ζητάμε να στέλνετε αντίγραφο και στα δικά σας , είναι για να ελέγχετε αν είναι όλα οκ με το emai; Επίσης, δεν προσέξατε ότι το attachment λεγόταν lab5_ κτλ και όχι lab6_ κτλ?

24 1767 Ασκηση 1 Ανάγνωση συμβολοσειρών: Όρια loops: Δεν πρέπει τα όρια να είναι μέχρι το τέλος του string, αλλά μέχρι τον χαρακτήρα '\0' Αλγόριθμος: το true δε βγάζει κάποιο νόημα. Ούτε και τα loops σας, για παράδειγμα αν i == j τότε απλά σβήνετε τον χαρακτήρα, ακόμα και αν έχει εμφανιστεί μια φορά! Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: Καμία σταθερά Σχόλια Προγράμματος: κανένα σχόλιο Σχόλια: Κακή δουλειά. Δεν κάνει αυτό που ζητάμε. Κολλάει στο while. Κοτάξτε το lab5sol.pdf Άσκηση 2 Ανάγνωση συμβολοσειρών: οκ Όρια loops: δεν βγάζουν νόημα. Οι λέξεις "left" και "right" δεν θα πρέπει να έχουν σχέση με τα όρια του while Αλγόριθμος: δεν φαίνεται σωστό. Τα pos δεν αλλάζουν σωστά, ο χαρακτήρας που τερματίζει ένα string είναι ο '\0' και όχι ο '0' Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: καμία σταθερά Σχόλια Προγράμματος: κανένα σχόλιο Χρήση string.h: δεν κάνετε include την βιβλιοθήκη που πρέπει. Ακόμα και να παραβλεφθεί αυτό, δεν χρησιμοποιείτε σωστά τις συναρτήσεις (οι τύποι μεταβλητών που βάζετε είναι για δηλώσεις) Δε γίνονται σωστά οι αρχικοποιήσεις σε "left", "right" Σχόλια: Δεν κάνει compile Παράδοση άσκησης: Εστάλη με καθυστέρηση. Να μην επαναληφθεί Ασκηση 1 Ανάγνωση συμβολοσειρών: ok Όρια loops: οκ Αλγόριθμος: θα πρέπει να γίνεται η μετατόπιση. Εσείς μετατοπίζετε μόνο έναν χαρακτήρα. (και αν το είχατε κάνει σωστά!) To j++ που έχετε αλλάζει το j, αυτό όμως δεν το θέλετε! Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο FAIL Σχόλια: Πολύ μέτριο. Θα μπορούσατε με λίγες αλλαγές να την είχατε τέλεια αυτή την άσκηση. Κοτάξτε το lab5sol.pdf Άσκηση 2 Ανάγνωση συμβολοσειρών: - Όρια loops: - Αλγόριθμος: - Στοίχιση: - Ονόματα μεταβλητών: - Χρήση σταθερών: - Σχόλια Προγράμματος: - Χρήση string.h: - Σχόλια: Δεν έγινε

25 Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές. -Σωστό αποτέλεσμα. - Ενώ δηλώνετε το SIZE στο πρόγραμμά σας δεν το χρησιμοποιείτε. Γενικά δεν είναι ορθή πρακτική να βάζετε "καρφωμένες " τιμές στον κώδικά σας. -Το loop σας διατρέχει τον πίνακα μέχρι το SIZE-1 και όχι μέχρι το τέλος του string με αποτέλεσμα να μη γίνετε έλεγχος για το '\0'. - Δεν βάζετε ποτέ τον τερματικό χαρακτήρα με αποτέλεσμα να τυπώνετε μαζί με το αποτέλεσμα και τα σκουπίδια του buffer -Καλή στοίχιση και καλά ονόματα μεταβλητών. -Σωστή είδος. -Σωστή έξοδος. -Υπάρχει ένα μικρό πρόβλημα αρχικοποίησης που εμφανίζετε κατά την αρχική είσοδο. Θα πρέπει να αρχικοποιήσετε τον πίνακα πρόταση με '\0' στο πρώτο στοιχείο και όχι με κενό/ -καλή στοίχιση - Σωστή είσοδος - Σωστή έξοδος. -Γενικά δεν είναι ορθή πρακτική να χρησιμοποιείτε "καρφωτές" τιμές στον κώδικά σας. -Καλή χρήση ονομάτων μεταβλητών -Μέτρια στοίχιση, έπρεπε όλα να είναι ένα tab πιο δεξιά Σωστή είσοδος. -Σωστή χρήση Ν και Μ - Προβληματική έξοδος συνδυασμού χρήσης strcat και μη αρχικοποίησης του πίνακα sentence. -Πολύ καλή χρήση ονομάτων μεταβλητών -Αν και δεν δουλεύει απόλυτα το πρόγραμμά σας έχετε καλή προσέγγιση.

26 , αλλά προσέξτε τις νέες οδηγίες για την ονομασία του φακέλου FAIL - Λάθος αποτελέσματα - Μη περιγραφικά ονόματα μεταβλητών. Μη διαχωρίζετε τα ονόματα μόνο με έναν αριθμό. - Δεν έχετε σχόλια - Η στοίχιση καλή είναι απλά η main πρέπει να είναι στο ύψος του define και του include. - Τις σταθερές τις δηλώνουμε με κεφαλαία. SIZE, όχι size. - Όσον αφορά τον αλγόριθμο, δεν δίνουμε περισσότερες λεπτομέρειες, διότι ο κώδικας δεν είναι κατανοητός λόγω χρήσης μη περιγραφικών μεταβλητών, έλλειψης σχολιασμού και γενικά το έχετε κάνει αρκετά πιο πολύπλοκο απ' ότι χρειαζόταν. - Δεν την κάνατε Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές - Σωστή έξοδος. -Σωστή χρήση του SIZE -Καλή χρήση ονομάτων μεταβλητών -Καλή υλοποίηση - Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές - Σωστή έξοδος. -Σωστή χρήση του SIZE -Καλή χρήση ονομάτων μεταβλητών -Καλή υλοποίηση

27 , αλλά να περιλαμβάνετε μόνο τα.c αρχεία στο φάκελο. Ασκηση 1 Ανάγνωση συμβολοσειρών: οκ Όρια loops: οκ Αλγόριθμος: Δεν κάνει αυτό που ζητάει η εκφώνηση, απλά αντιγράφει σε έναν επαναλαμβανόμενο χαρακτήρα τον επόμενό του. Χρειάζεστε και τρίτο εμφωλευμένο loop. Στοίχιση: οκ Ονόματα μεταβλητών: Η σταθερά θα μπορούσε να έχει καλύτερο όνομα (πχ SIZE) Χρήση σταθερών: οκ Σχόλια Προγράμματος: οκ 1774 FAIL Σχόλια: Μέτρια δουλειά. Δεν κάνει αυτό που θέλουμε. Κοτάξτε το lab5sol.pdf 1775 Άσκηση 2 Ανάγνωση συμβολοσειρών: - Όρια loops: - Αλγόριθμος: - Στοίχιση: - Ονόματα μεταβλητών: - Χρήση σταθερών: - Σχόλια Προγράμματος: - Χρήση string.h: - Σχόλια: Δεν έγινε άσκηση, αλλά προσέχετε το χρόνο! Άσκηση 1η -Σωστή είσοδος -Σωστή στοίχιση -Ο αλγόριθμός σας δεν δουλεύει σωστά όταν τα διπλότυπα εμφανίζονται σε συνεχόμενες θέσεις στον πίνακα. -Πρέπει να ελέγχετε ότι δεν έχετε ξεπεράσει τον χαρακτήρα '\0' και όχι το αν έχετε φτάσει στη θέση 31. Άσκηση 2η -Έλλειψη σχολίων,πχ τι προσπαθείτε να πετύχετε στις γραμμές 13-18; -Χρησιμοποιείτε την scanf() με μη ασφαλή τρόπο ( αν δοθούν πάνω από Ν-1 χαρακτήρες θα έχετε buffer overflow ) 1776 FAIL - O compiler εμφανίζει warning το οποίο σας επισημαίνει το λάθος στο προσδιοριστικό της printf (και το οποίο τελικά οδηγεί σε segmentation fault) - Μη περιγραφικά ονόματα μεταβλητών. - Δεν έχετε σχόλια - Όσον αφορά τον αλγόριθμο, φαίνεται ότι τα έχετε μπερδέψει αρκετά. Διαβάστε τη λύση του lab5 που χειρίζεται παρόμοιο πρόβλημα και ξαναπροσπαθήστε. - Δεν την κάνατε.

28 Ασκηση 1 Ανάγνωση συμβολοσειρών: οκ Όρια loops: οκ Αλγόριθμος: οκ... αλλά το l δεν χρειάζεται. Μπορείτε να χρησιμοποιήσετε το k+1 στη θέση του. Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: οκ 1777 Σχόλια: Πολύ καλή δουλειά! Άσκηση 2 Ανάγνωση συμβολοσειρών: οκ Όρια loops: οκ Αλγόριθμος: οκ Στοίχιση: Λίγο κακή στοίχιση. Μπορείτε να διαλέξετε όλες τις γραμμές που σας ενδιαφέρουν με το mouse και να πατήσετε tab (για μπροστά) ή shift+tab (για πίσω) Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: οκ Χρήση string.h: οκ Σχόλια: Πολύ καλή δουλειά! Συνεχίστε έτσι! 1778 FAIL Στείλατε το lab4. Να στέλνετε πάντα αντίγραφο στο δεύτερο μέλος της ομάδας και να το ελέγχετε για να δείτε αν είναι οκ το attachment Σωστή είσοδος - Σωστή έξοδος. -Σωστή χρήση του Ν (SIZE) -Κάνετε χρήση πιο περιγραφικών ονομάτων μεταβλητών - -Σωστή είσοδος. -Σωστή χρήση Ν και Μ - Προβληματική έξοδος λόγο μη αρχικοποίησης του πίνακα protasi Η είσοδος δεδομένων γίνεται μόνο με %s. Αυτό δεν είναι ασφαλές. -Σωστό αποτέλεσμα. Αλλά υπάρχει ένα μικρό πρόβλημα για τα διπλά γράμματα. Προσέξετε τους μετρητές σας. - Δεν κάνετε χρήση του SIZE. Γενικά δεν είναι ορθή πρακτική να βάζετε "καρφωμένες " τιμές στον κώδικά σας. -βάζετε πιο περιγραφικά ονόματα μεταβλητών -Καλή στοίχιση/ -Μόνο είσοδος 1783 FAIL Εστάλη μόνο το εκτελέσιμο. Δε μπορούμε να δούμε τον κώδικα.

29 1784 Ασκηση 1 Ανάγνωση συμβολοσειρών: οκ Όρια loops: Δεν πρέπει τα όρια να είναι μέχρι το τέλος του string, αλλά μέχρι τον χαρακτήρα '\0'. Αυτό το πετυχαίνετε με τα if που βάλατε, αλλά δεν χρειαζόταν. Αλγόριθμος: Το p-- δεν βγάζει κάποιο νόημα, τουλάχιστον όχι σύμφωνα με αυτά που λέει η εκφώνηση. Στοίχιση: οκ Ονόματα μεταβλητών: οκ Χρήση σταθερών: οκ Σχόλια Προγράμματος: Κανένα σχόλιο Σχόλια: Καλή προσπάθεια, αλλά δεν βγαίνουν σωστά αποτελέσματα. Π.χ δοκιμάστε την συμβολοσειρά hshshs. Κοτάξτε το lab5sol.pdf Άσκηση 2 Ανάγνωση συμβολοσειρών: οκ Όρια loops: To do δεν τελειώνει εκεί που ζητάει η άσκηση. Αλγόριθμος: Στοίχιση: οκ Ονόματα μεταβλητών: Η σταθερά θα μπορούσε να έχει καλύτερο όνομα (πχ SIZE) Χρήση σταθερών: Τα remaining left/right θα έπρεπε να αρχικοποιηθούν με N (την σταθερά που ορίσατε). Σχόλια Προγράμματος: Κανένα σχόλιο. Χρήση string.h: Δεν χρησιμοποιείτε σωστά την strcpy και γιαυτό σας βγάζει segmentation fault. Επίσης δεν είναι η συνάρτηση που πρέπει να χρησιμοποιήσετε! Σχόλια: Καλή προσπάθεια, αλλά σας βγάζει segmentation fault! 1785 FAIL -compilation failure - compilation failure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1 ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βαθμός Σχόλια. 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

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

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

Σημειωματάριο Τετάρτης 25 Οκτ. 2017 Σημειωματάριο Τετάρτης 25 Οκτ. 2017 Ένα πρόγραμμα που παίζει κρεμάλα Σήμερα φτιάξαμε ένα πρόγραμμα που παίζει "κρεμάλα" με το χρήστη. Το πρόγραμμα hangman.py link (http://fourier.math.uoc.gr/~mk/prog1718/files/hangman.py))

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

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

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

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

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

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

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

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

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

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

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

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή

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

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

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

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

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

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

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

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

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

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

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

lab3grades οριακό PASS

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

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