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

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 449 Η strcpy αντιγράφει µια γραµµή, οπότε δεν έπρεπε να βρίσκεται µέσα σε διπλό loop. Η εκτύπωση δεν έπρεπε να βρίσκεται µέσα στο loop που γίνεται η αντιγραφή, αλλά να είναι ανεξάρτητη (ώστε να είναι φανερό αν έγινε σωστά η αντιγραφή ή όχι) Η strcpy αντιγράφει µια γραµµή, οπότε δεν έπρεπε να βρίσκεται µέσα σε διπλό loop. Η εκτύπωση δεν έπρεπε να βρίσκεται µέσα στο loop που γίνεται η αντιγραφή, αλλά να είναι ανεξάρτητη (ώστε να είναι φανερό αν έγινε σωστά η αντιγραφή ή όχι). - #define: Δε χρησιµοποιείς σχεδόν πουθενά τις τιµές ROWS, COLUMNS αλλά χρησιµοποιείς 10. Αν αλλάξουν τα ROWS, COLUMNS, το πρόγραµµά σου δε θα λειτουργεί. Το 15 έπρεπε επίσης να είναι ορισµένο ως σταθερά. - scanf : σωστή - Στοίχιση: σωστή - Ονόµατα µεταβλητών: οκ, εκτός από το temp. - Έλεγχοι: Λίγο "περίεργος" ο έλεγχος για το µέγεθος, αλλά σωστός. Θα ήταν πιο κοµψή η χρήση strlen. Καλό είναι να αποφεύγεις άσκοπη χρήση flags (όπως το islarge). Δες πώς γίνεται στη λύση. Το loop πρέπει να τερµατίζει αν δοθεί η λέξη "$" αλλά όχι αν δοθεί λέξει που ξεκινά µε δολλάριο. - Λειτουργία: οκ, αλλά δες τα σχόλια για τους ελέγχους. - Εκτύπωση: Σωστή - Δεν έγινε. 486 FAIL Δεν ελήφθη άσκηση 1733 Oριακό Διαδικαστικά: Να προσέχετε όταν κάνετε tar τον φάκελο. -Καλή στοίχιση -Σωστά χρησιµοποιείτε τα defines για τα όρια των loops. -Σωστοί έλεγχοι για την είσοδο.για τον έλεγχο των κεφαλαίων γραµµάτων θα µπορούσατε να χρησιµοποιείτε την isupper() συνάρτηση. - Ο έλεγχος i!=rows δεν είναι λάθος, αλλά συνηθίζεται να γράφουµε i<rows όταν διατρέχουµε πίνακα. -Το πρόγραµµα τερµατίζει σωστά όταν δοθεί $ ή αφαιρεθούν όλα τα γράµµατα. -Σωστό το output του προγράµµατος. -Η άσκηση ήταν ηµιτελής σε αρχικό στάδιο και δεν έκανε compile. -Όταν κάνετε scanf για strings να µην χρησιµποιείτε το %s σκετο. Να βάζετε και τον αριθµό των γραµµάτων που διαβάζετε π.χ. %14s 1756 FAIL Διαδικαστικά: Έκανες απλά copy+paste το πρόγραµµα στο !! : Δεν κάνει compile. Page 1

2 1779 Οριακό : - Χρήση #define: ΟΚ - scanf: ΟΚ - Στοίχιση: ΟΚ - Ονόµατα Μεταβλητών: Άσχηµα. Τ σηµαίνει temp? - Χρήση loop: ΟΚ - Έλεγχοι: θα έπρεπε να ήταν if(len>=columns), µην ξεχνάτε και τον χαρακτήρα τερµατισµού! - Τερµατισµός: OK - Προσθήκη λέξης: OK - Εκτύπωση: OK - scanf: Λάθος. Δε χρησιµοποιούµε ΠΟΤΕ σκέτο %s στη scanf. Πάντα προσδιορίζουµε µέγιστο µήκος συµβολοσειράς που θα διαβαστεί. - Σύγκριση συµβολοσειρών: ΟΚ - Ορθότητα element: θα πρέπει να µετράτε από δεξιά προς τα αριστερά! - Ορθότητα copy: Δεν έγινε - Γενικά: Πολύ λίγα σχόλια στο πρόγραµµά σας! 1899 : - Χρήση #define: OK - scanf: OK - Στοίχιση: Kακή στοίχιση στο do - Ονόµατα Μεταβλητών: Μέτρια. Το tmp είναι κακό, και το strwrd είναι σαν πολωνέζικη λέξη. Γιατί όχι word? - Χρήση loop: OK - Έλεγχοι: OK - Τερµατισµός: Θα πρέπει να τερµατίζει µε το $ αλλά το "$abv" είναι έγκυρη λέξη! - Προσθήκη λέξης: ΟΚ - Εκτύπωση: ΟΚ - Γενικά: Κανένα σχόλιο στο πρόγραµµά σας! - scanf: λάθος format, ζητάµε περιορισµούς στο µέγεθος του string που διαβάζεται. - Σύγκριση συµβολοσειρών: ΟΚ - Ορθότητα element: Δεν δουλεύει αρκετά καλά, το y>n θα έπρεπε να αντικατασταθεί από strlen(in1). Δεν υπάρχει δοµή επανάληψης. - Ορθότητα copy: Δεν έγινε Page 2

3 : - Χρήση #define: OK - scanf: OK - Στοίχιση: Kακή στοίχιση στο do - Ονόµατα Μεταβλητών: Μέτρια. Το tmp είναι κακό, και το strwrd είναι σαν πολωνέζικη λέξη. Γιατί όχι word? - Χρήση loop: OK - Έλεγχοι: OK - Τερµατισµός: Θα πρέπει να τερµατίζει µε το $ αλλά το "$abv" είναι έγκυρη λέξη! - Προσθήκη λέξης: ΟΚ - Εκτύπωση: ΟΚ - Γενικά: Κανένα σχόλιο στο πρόγραµµά σας! - scanf: λάθος format, ζητάµε περιορισµούς στο µέγεθος του string που διαβάζεται. - Σύγκριση συµβολοσειρών: ΟΚ - Ορθότητα element: Δεν δουλεύει αρκετά καλά, το y>n θα έπρεπε να αντικατασταθεί από strlen(in1). Δεν υπάρχει δοµή επανάληψης. - Ορθότητα copy: Δεν έγινε - #define: Σωστή χρήση - scanf : Σωστό - Στοίχιση: Ο κώδικας είναι σωστά στοιχισµένος αλλά τα σχόλια άσχηµα. Πρέπει να στοιχίζονται στην ίδια ευθεία µε τον κώδικα και πάντα να αποφεύγετε να γράφετε πέραν της 80ής στήλης - Ονόµατα µεταβλητών: Μέτρια. Ειδικά το flag δεν είναι καθόλου περιγραφικό και δεν είναι προφανές τι κάνει - Έλεγχοι: Λάθος έλεγχος ορθότητας εισόδου. Δεν είναι δυνατό ένας χαρακτήρας να είναι ταυτόχρονα µικρότερος του 'A' και µεγαλύτερος του 'Z' - Λειτουργία: Το πρόγραµµα λειτουργεί σωστά, αλλά δέχεται βελτίωση στη λογική του. Για κάποιο λόγο έχετε την ανάγνωση του χαρακτήρα και έξω από το loop και µέσα. Γιατί να µη χρησιµοποιήσετε ένα do-while? Η χρήση της flag είναι τελείως περιττή. Προσπαθήστε να το ξαναγράψετε χωρίς αυτή. Στη µεταφορά των χαρακτήρων δε χρειάζεται να γίνει αντιµετάθεση. Έτσι κι αλλιώς, θέλουµε να σβηστεί ο χαρακτήρας που βρέθηκε. Ο έλεγχος if (k==(columns-1)) είναι περιττός. Σε κάθε περίπτωση, ο µόνος τρόπος να βγούµε από το παραπάνω loop είναι όταν το k θα έχει γίνει COLUMNS-1 - Εκτύπωση: Σωστή. - Δεν κάνει compile. Page 3

4 " lab7grades 1904 η: -Στοίχιση: Χάνει σε κάποια σηµεία η στοίχιση σας. -Σωστή χρήση #define. Τα ονόµατα που έχετε δώσει δεν είναι και τα καλύτερα. Είναι σηµαντικό να δίνετε προσοχή στα ονόµατα που διαλέγετε. Επίσης, έχετε γράψει λάθος τη λέξη character. -Καθόλου σχόλια. -Σωστός έλεγχος εισόδου. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). - Σωστές οι πράξεις που κάνατε. Η λύση σας όµως τρέχει κάθε γραµµή όσες είναι και οι στήλες µε αποτέλεσµα να µην είναι καθόλου αποτελεσµατική. Σκεφτείτε τι θα µπορούσε να είναι σαν βελτίωση. Hint: Κάθε πότε πρέπει να γίνεται ξανά διάτρεξη της ίδιας γραµµής πάνω απο µία φορά και πως µπορεί να γίνει χωρίς επιπλέον επανάληψη. Τέλος, για κάποιο λόγο έχετε µια γραµµή η οποία δεν συνεισφέρει στη λύση σας και το µόνο που κάνει είναι να βάζει ξανά το γράµµα που θέλετε να διώξετε στην επόµενη θέση. Το πρόγραµµα σας πρέπει να τρέχει σωστά και χωρίς αυτή τη γραµµή. η: - Η scanf που χρησιµοποιείτε είναι σωστά ορισµένη. - Επιλογή elements: - Υπάρχει ένα βασικό λάθος που είναι οτι εµφανίζετε το γράµµα απο το string string(βλέπετε τώρα πόσο λάθος είναι το όνοµα που έχετε δώσει) και όχι το γράµµα απο το string που ζητήσατε να σας δώσει ο χρήστης. - Επιλογή catenate: -Διαβάζετε σωστά τα 2 strings αλλά δεν τα ενώνετε σωστά µε την εντολή strcat. Είναι πολύ απλή εντολή και θα µπορούσατε να τη βάλετε µέσα σε ένα printf. - Επιλογή mix: - Δεν έχει υλοποιηθεί. Προσπαθήστε να τελειώσετε σωστά την άσκηση καθώς η χρήση συναρτήσεων για διαχείριση strings θα πρέπει να είναι κάτι το οποίο θα πρέπει να το κάνετε µε ευκολία." Το συµπιεσµένο αρχείο πρέπει να έχει κατάληξη.tgz : - Λείπουν τα γενικά σχόλια προγράµµατος. - Για να διαβάσουµε έναν χαρακτήρα µε την scanf(), χρησιµοποιούµε "%c" και όχι "%1s". Το δεύτερο αποθηκεύει ΚΑΙ ένα \0 στο επόµενο byte στη µνήµη εποµένως µπορεί να "σβήσει" κάποια άλλη τιµή µεταβλητής που τυχαίνει να βρίσκεται εκεί. - Η συνθήκη στο 'µεγάλο' while() µπορεί να απλοποιηθεί. Αρκεί να ελέγχετε µόνο εάν ο χαρακτήρας είναι διαφορετικός απο τον '$' από την στιγµή που έχετε σωστό τον έλεγχο εισόδου (εάν δεν είναι '$', τότε είναι σίγουρα κεφαλαίο γράµµα). - Δείτε πως δουλεύει η isupper() και προσπαθήστε να αλλάξετε τον κώδικά σας χρησιµοποιώντας την. - Για τον έλεγχο του πλήθους των στοιχείων που έχουν αποµείνει στον πίνακα µπορείτε να χρησιµοποιήσετε τον πίνακα counter που ήδη κρατάει τον αριθµό των χαρακτήρων ανά γραµµή. - Επίσης το όνοµα counter δεν είναι περιγραφικό, είναι καλύτερο θα ήταν το remaining_characters. - Το πρόγραµµα βγάζει warning για αχρησιµοποίητη µεταβλητή. - Ο έλεγχος για την µεταβλητή position πρέπει να ελέγχει εάν η τιµή είναι µεγαλύτερη ή ίση του 1. Εάν ο χρήστης ζητήσει την θέση 0, τότε το πρόγραµµα θα διαβάσει µια θέση εκτός πίνακα. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. Page 4

5 Διαδικαστικά: ΟΚ 1909 FAIL - Σωστή στοίχιση. - Ανύπαρκτα σχόλια. - Το πρόγραµµα σας αναζητά σωστά το επόµενο στοιχείο για αντικατάσταση, αλλά κατά την αντιγραφή του στοιχείου χάνεται. - Επίσης, στην γραµµή 54 γράφετε array[i][columns]='\0'; πράγµα που δείχνει ότι δεν έχετε κατανοήσει τα όρια των πινάκων. Σε ένα πίνακα µεγέθους Ν τα στοιχεία αριθµούνται από 0 έως N-1. - Δεν κάνει compile. Το συµπιεσµένο αρχείο πρέπει να έχει κατάληξη.tgz : - Λείπουν τα γενικά σχόλια προγράµµατος. - Για να διαβάσουµε έναν χαρακτήρα µε την scanf(), χρησιµοποιούµε "%c" και όχι "%1s". Το δεύτερο αποθηκεύει ΚΑΙ ένα \0 στο επόµενο byte στη µνήµη εποµένως µπορεί να "σβήσει" κάποια άλλη τιµή µεταβλητής που τυχαίνει να βρίσκεται εκεί. - Η συνθήκη στο 'µεγάλο' while() µπορεί να απλοποιηθεί. Αρκεί να ελέγχετε µόνο εάν ο χαρακτήρας είναι διαφορετικός απο τον '$' από την στιγµή που έχετε σωστό τον έλεγχο εισόδου (εάν δεν είναι '$', τότε είναι σίγουρα κεφαλαίο γράµµα). - Δείτε πως δουλεύει η isupper() και προσπαθήστε να αλλάξετε τον κώδικά σας χρησιµοποιώντας την. - Για τον έλεγχο του πλήθους των στοιχείων που έχουν αποµείνει στον πίνακα µπορείτε να χρησιµοποιήσετε τον πίνακα counter που ήδη κρατάει τον αριθµό των χαρακτήρων ανά γραµµή. - Επίσης το όνοµα counter δεν είναι περιγραφικό, είναι καλύτερο θα ήταν το remaining_characters. - Το πρόγραµµα βγάζει warning για αχρησιµοποίητη µεταβλητή. - Ο έλεγχος για την µεταβλητή position πρέπει να ελέγχει εάν η τιµή είναι µεγαλύτερη ή ίση του 1. Εάν ο χρήστης ζητήσει την θέση 0, τότε το πρόγραµµα θα διαβάσει µια θέση εκτός πίνακα. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. Page 5

6 1911 Οριακό Διαδικαστικά: ΟΚ - Σωστή στοίχιση. - Ανύπαρκτα σχόλια. - Γραµµή 32, χρησιµοποιείτε τις σταθερές που κάνετε #define όπου είναι δυνατόν. counter = ROWS*COLUMNS. - H επιλογή να βάλετε τη συνθήκη ελέγχου if 2 φορές είναι ανορθόδοξη. Αντιµετωπίζει το πρόβληµα των κολλητών εγγραφών του ίδιου χαρακτήρα αν αυτός εµφανιστεί 2 φορές, αλλά όχι αν εµφανιστεί περισσότερες από δύο φορές. - Η χρήση δεκαεξαδικών κωδικών για τους χαρακτήρες µειώνει αισθητά την αναγνωσιµότητα του προγράµµατος. Κανείς δεν ξέρει απέξω τους κωδικούς. Γιατί δε χρησιµοποιείτε την πιο φυσιολογική αναπαράσταση 'A' κτλ.? - Το πρόγραµµα σας λειτουργεί σωστά. - Το πρόγραµµα κάνει compile µε warnings. - Γραµµή 21. Η συνθήκη στο while() είναι λάθος. Εάν δίνεται σωστό νούµερο το πρόγραµµα δεν βγαίνει ποτέ από το while. - Γραµµή 22. Ο χρήστης ζητά του χαρακτήρες από 1 έως Ν. Εκτυπώνουµε τους χαρακτήρες αφαιρώντας από την θέση input την µονάδα, µιας και η αρίθµηση στον πίνακα είναι 0 έως Ν-1. Page 6

7 1913 lab7grades -define: στο skeleton είχε οριστεί define 10 για τις γραµµές και τις στήλες του πίνακα άρα µέσα στα for loops έπρεπε να χρησιµοποιήσετε τα ονόµατα row και columns που έχουν γίνει define και όχι τις τιµές τους, επίσης έπρεπε να κάνετε define και το µέγεθος του string -scanf:σωστά χρησιµοποιείτε %14s για την ανάγνωση του string -Στοίχιση:Σωστή, αλλά µην αφήνετε τόσες κενές γραµµές. Το πρόγραµµα δε διαβάζεται εύκολα γιατί δε χωράει µεγάλο µέρος του στην οθόνη. -Ελάχιστα σχόλια -Ονόµατα µεταβλητών: Την επόµενη φορά χρησιµοποιήστε ποιο περιγραφικά ονόµατα γενικά το array και flag δεν είναι περιγραφικά και δεν θεωρούνται καλά ονόµατα -Χρήση loop: Σωστά χρησιµοποιείτε do-while για το εξωτερικό loop -Έλεγχοι: σωστά κάνετε έλεγχο άµα δόθηκε $ αλλά έτσι πως έχετε γράψει τον έλεγχο άµα δοθεί οποιαδήποτε λέξη που περιέχει στην αρχή δολάριο το πρόγραµµα πάλι θα τερµατίζει, σωστά ελέγχετε αν η λέξη σας είναι µεγαλύτερη από τα όρια του διδιάστατου πίνακα αλλά µετά το υλοποιείτε λάθος γράφοντας στο for (j=0;j<leng;j++) αυτό σηµαίνει ότι θα προσπαθήσει να βάλει όλη τη λέξη µέσα στον διδιάστατο πίνακα και θα βγει εκτός ορίων. Το θέµα είναι άµα δεν χωράει η λέξη να µην αντιγράφετε καθόλου στον πίνακα. -scanf: σωστά χρησιµοποιείτε στη πρώτη scanf %29s για την ανάγνωση του string στις υπόλοιπες όµως είναι λάθος να γράφετε απλό %s γιατί άµα εισάγουµε συµβολοσειρά µε περισσότερους από 29 χαρακτήρες θα υπάρξει πρόβληµα καθώς αυτοί θα αποθηκευτούν εκτός ορίων του πίνακα - Σύγκριση συµβολοσειρών (για τις επιλογές): Σωστά χρησιµοποιείτε την strcmp - Ορθότητα element: σωστή αλλά δεν κάνετε τους απαραίτητους ελέγχους άµα δοθεί κάποια τιµή µεγαλύτερη από το µήκος του αλφαριθµητικού ή µικρότερη του 1 - Δεν υλοποιείτε σωστά τη strncpy και στις 2 περιπτώσεις θέλουµε το string2 να αποθηκεύεται στο string1 εσείς στη δεύτερη περίπτωση αντιγράφεται το πρώτο στο δεύτερο. Page 7

8 lab7grades η: -Στοίχιση: Καλή. -Σωστή χρήση #define. Μπορείτε να προσπαθήσετε και άλλο για τα ονόµατα των µεταβλητών. Θα µπορούσατε να διευκρινίσετε µε ένα καλύτερο όνοµα τι κάνει το flag που έχετε βάλει. Για παράδειγµα, θα µπορούσατε να βάλετε acceptable_char. -Ελλειπή σχόλια καθώς δεν βάλατε τι κάνει το πρόγραµµά σας στην αρχή σαν περιγραφή. -Σωστός ο έλεγχος για την είσοδο που έδωσε ο χρήστης. - Μια παρατήρηση που µπορεί να γίνει είναι ότι κάνετε 2 φορές τη διάτρεξη του πίνακα. Η πρώτη είναι όταν λαµβάνετε ένα γράµµα για να δείτε αν υπάρχει µέσα στον πίνακα και η δεύτερη είναι για να αφαιρέσετε τα γράµµατα απο τον πίνακα. Αυτό έχει σαν αποτέλεσµα να απορρίπτετε γράµµατα τα οποία µπορεί να µην ανήκουν µέσα στον πίνακα αλλά είναι νόµιµα σαν είσοδο. Επίσης, κάνετε έλεγχο ο οποίος δε ζητήθηκε και φορτώνει επιπλέον το πρόγραµµα. Για να ελέγχετε την είσοδο θα µπορούσατε να χρησιµοποιήσετε την συνάρτηση isupper() που συζητήθηκε στο µάθηµα. Αλλάξτε το πρόγραµµα σας για να δουλεύει µε τη συνάρτηση αυτή. Τέλος, θα έπρεπε να ελέγχετε οτι το $ είναι µόνο του όταν το δίνει και όχι απλά η αρχή σε ένα string εισόδου(θα έπρεπε να ελέγχετε οτι ο χρήστης δίνει µοναδικό χαρακτήρα σαν είσοδο). -Σωστές πράξεις, αλλά δεν χρειαζόταν να κάνετε αντιµετάθεση για να σβήνετε τους χαρακτήρες. -Γενικά καλά η: - Σωστή η χρήση του scanf για να διαβάζετε τις διάφορες συµβολοσειρές - Στην επιλογή element έχετε κάνει διάφορα λάθη: - Αρχικά ελέγχετε το string str1 για να δείτε αν είναι element αυτό που δίνει ο χρήστης ενώ σε όλα τα υπόλοιπα το έχετε βάλει σωστά. - Δεν ζητάτε να σας δώσει ο χρήστης µια συµβολοσειρά µε αποτέλεσµα να ελέγχετε ένα κενό πινακα(στην πραγµατικότητα έχει σκουπίδια µέσα). - Επίσης εκεί που έχετε βάλει printf για να δώσει ο χρήστης µια συµβολοσειρά εµφανίζετε και τα περιεχόµενα των πινάκων str1 και str2 οι οποίοι σε αυτό το σηµείο δεν είναι αρχικοποιηµένοι. - Με µικρές διορθώσεις µπορείτε να κάνετε το πρόγραµµα για αυτή την περίπτωση να δουλεύει σωστά. - Όταν διαβάζετε και ολοκληρώνετε την εκτέλεση µιας απο τις επιλογές που έχει δώσει ο χρήστης θα πρέπει να µπορούσε να βάζει και άλλη επιλογή γιατί έτσι πως είναι το πρόγραµµα δεν µπορεί να τερµατίσει ποτέ η εκτέλεση. - Σωστή χρήση της strcmp - Σωστή χρήση της strcat - Σε πολλά σηµεία έχετε χρησιµοποιήσει for loops(µε σωστό τρόπο) για να βρείτε το µέγεθος που έχει το string. Την ίδια διαδικασία µπορείτε να την κάνετε και µε την εντολή strlen. - Στη συγχώνευση των strings έχετε χρησιµοποιήσει λάθος συνθήκες στα for loops. Σαν σκέψη είναι σωστή αλλά πρέπει να δείτε λίγο καλύτερα πως θα βάλετε τις συνθήκες. Σε περίπτωση που το ένα string είναι µεγαλύτερο απο το άλλο τότε η λύση σας δεν δουλεύει. -Η στοίχιση σας είχε αρκετά λάθη και ίσως να είναι αυτός ο λόγος που ξεχάσατε πολλά απο τα πράγµατα που προαναφέρθηκαν. Προσπαθείτε να στοιχίζετε τον κώδικα όπως γράφετε το πρόγραµµα και όχι στο τέλος. Προσπαθήστε να διορθώσετε τα λάθη καθώς είστε πολύ κοντά στη σωστή λύση. Page 8

9 lab7grades 1915 η: -Στοίχιση: Χάνει σε κάποια σηµεία η στοίχιση σας. -Σωστή χρήση #define. Τα ονόµατα που έχετε δώσει δεν είναι και τα καλύτερα. Είναι σηµαντικό να δίνετε προσοχή στα ονόµατα που διαλέγετε. Επίσης, έχετε γράψει λάθος τη λέξη character. -Καθόλου σχόλια. -Σωστός έλεγχος εισόδου. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). - Σωστές οι πράξεις που κάνατε. Η λύση σας όµως τρέχει κάθε γραµµή όσες είναι και οι στήλες µε αποτέλεσµα να µην είναι καθόλου αποτελεσµατική. Σκεφτείτε τι θα µπορούσε να είναι σαν βελτίωση. Hint: Κάθε πότε πρέπει να γίνεται ξανά διάτρεξη της ίδιας γραµµής πάνω απο µία φορά και πως µπορεί να γίνει χωρίς επιπλέον επανάληψη. Τέλος, για κάποιο λόγο έχετε µια γραµµή η οποία δεν συνεισφέρει στη λύση σας και το µόνο που κάνει είναι να βάζει ξανά το γράµµα που θέλετε να διώξετε στην επόµενη θέση. Το πρόγραµµα σας πρέπει να τρέχει σωστά και χωρίς αυτή τη γραµµή. η: - Η scanf που χρησιµοποιείτε είναι σωστά ορισµένη. - Επιλογή elements: - Υπάρχει ένα βασικό λάθος που είναι οτι εµφανίζετε το γράµµα απο το string string(βλέπετε τώρα πόσο λάθος είναι το όνοµα που έχετε δώσει) και όχι το γράµµα απο το string που ζητήσατε να σας δώσει ο χρήστης. - Επιλογή catenate: -Διαβάζετε σωστά τα 2 strings αλλά δεν τα ενώνετε σωστά µε την εντολή strcat. Είναι πολύ απλή εντολή και θα µπορούσατε να τη βάλετε µέσα σε ένα printf. - Επιλογή mix: - Δεν έχει υλοποιηθεί. Προσπαθήστε να τελειώσετε σωστά την άσκηση καθώς η χρήση συναρτήσεων για διαχείριση strings θα πρέπει να είναι κάτι το οποίο θα πρέπει να το κάνετε µε ευκολία FAIL Στείλατε το lab6. Διαδικαστικά: 6 λεπτά εκπρόθεσµη. tar.gz αντί για tgz : - Χρήση #define: ΟΚ - scanf: ΟΚ - Στοίχιση: Το τελευταίο if έχει πολύ κακή στοίχιση, γενικά βάζετε πολλές αλλαγες γραµµής. Σας έχει ξαναγίνει σύσταση για στοίχιση - ΜΗΝ το αγνοείτε - Ονόµατα Μεταβλητών: πολύ άσχηµα ονόµατα, Κ, flag κτλ. Καλό είναι να έχετε πιο περιγραφικά. - Χρήση loop: ΟΚ - Έλεγχοι: ΟΚ, αλλά να αποφεύγετε άσκοπη χρήση flags, γιατί τείνουν να κάνουν δυσνόητο τον κώδικα. - Τερµατισµός: ΟΚ - Προσθήκη λέξης: ΟΚ - Εκτύπωση: ΟΚ - scanf: Η scanf του oper θα έπρεπε να είναι µέσα στο do! - Σύγκριση συµβολοσειρών: η strcmp επιστρέφει 0 όταν οι συµβολοσειρές είναι ίδιες. Άρα όλα σας τα condition στα if θα έπρεπε να είναι µε! - Ορθότητα element: Νοµίζω θα δούλευε αν είχατε σωστά το if - Ορθότητα catenate/copy: Νοµίζω θα δούλευε αν είχατε σωστά το if - Γενικά: Δεν έχετε κανένα σχόλιο στο πρόγραµµά σας. Page 9

10 1920 Οριακό η: -Στοίχιση: Καλή. -Καλά ονόµατα µεταβλητών και σωστή χρήση #define. -Ελλειπή σχόλια, τι κάνει το πρόγραµµά σας; -Λάθος έλεγχος εισόδου, αν ο χρήστης δώσει 'a' την πρώτη φορά τι γίνεται; Προσπαθήστε να µεταφέρετε την είσοδο σε 1 σηµείο. - Όταν διαβάζουµε χαρακτήρες µε scanf, βάζουµε ένα κενό ανάµεσα στο " και στο %c. - Τι σκοπό εξυπηρετεί το array[w][z-2]='\0'; Σε εκείνο το σηµείο το z είναι ίσο µε COLUMNS, οπότε πάντα κάνετε τον ίδιο χαρακτήρα \0 -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). -Σωστές πράξεις, αλλά δεν χρειαζόταν να κάνετε αντιµετάθεση για να σβήνετε τους χαρακτήρες. -Γενικά καλά. η: -Το πρόγραµµα δεν έκανε compile, δοκιµάστε να το τελειώσετε FAIL : - Χρήση #define: Και το µέγεθος του επιτρεπτού string θα µπορούσε να είναι σταθερά. Εκτός από τις αρχικοποιήσεις και τις δηλώσεις, δεν φαίνεται να χρησιµοποιείτε αλλού τις σταθερές σας. - scanf: ΟΚ - Στοίχιση: ΟΚ - Ονόµατα Μεταβλητών: OK - Χρήση loop: Τα όρια στα loop µπορεί να ξεφεύγουν από το µέγεθος του αλφαριθµητικού που διαβάζεται. - Αποφεύγετε την άσκοπη χρήση flags γιατί τείνουν να κάνουν δυσνόητα τα προγράµµατα. - Έλεγχοι: Στο τελευταίο if Θα έπρεπε να είναι str[0] αντί για str[1] και να βγει το j==1. Αυτό είναι το κυριότερο λάθος του προγράµµατος, διότι έτσι όποια λέξη δεν έχει µέγεθος 1 τότε θα τερµατίζει το loop και θα πηγαίνει το πρόγραµµα στο στάδιο της εκτύπωσης! Επίσης το if θα έπρεπε να είναι έξω από το loop. - Αν δοθεί λέξη µεγαλύτερου µεγέθους το πρόγραµµα πέφτει σε ατέρµονο loop γιατί δεν διαβάζετε νέα λέξη εντός του while οπότε το stop είναι πάντα 0. - Τερµατισµός: Δείτε και παραπάνω για τους ελέγχους. - Προσθήκη λέξης: ΟΚ - Εκτύπωση: Έτσι όπως το κάνατε, θα τύπωνε µια αλλαγή γραµµής µετά από κάθε γράµµα! - Γενικά. Δεν χρησιµοποιείτε συναρτήσεις strings. Θα σας διευκόλυναν αρκετά. Compiler errors Page 10

11 Οριακό Οριακό lab7grades Διαδικαστικά: Στείλατε χύµα τα αρχεία σας χωρίς να περιέχονται σε φάκελο epwnumo1_aem1_epwnumo2_aem2 - Σωστή στοίχιση. - Ανύπαρκτα σχόλια. - Γραµµές 30,33, 54,57. Ο κωδικός για ανάγνωση χαρακτήρα είναι %c κι όχι %1c - Γραµµές 31, 54. Η συνθήκη είναι λάθος. Δεν υπάρχει χαρακτήρας για τον οποίο ισχύει η συνθήκη (input<'a' && input>'z'). Λόγω αυτής της συνθήκης το πρόγραµµα σας δεν δουλεύει καθόλου. - Κατά την αντιγραφή των στοιχείων, γραµµές χρειάζεστε άλλον ένα µετρητή. Ο τρόπος που επιλέγετε είναι λάθος διότι α. η συνθήκη while(j<3) είναι αυθαίρετη β. αλλάζετε τον µετρητή j µέσα στο while µε συνέπεια µετά την έξοδο από το while ο µετρητής να έχει άλλη τιµή από αυτή µε την οποία µπήκε. - Δεν εκτυπώνετε τον πίνακα σε κάθε βήµα, όπως ζητούνταν από την εκφώνηση. - Σωστή στοίχιση. - Ανύπαρκτα σχόλια. - Σωστή χρήση %29s για το διάβασµα ενός strings που να χωράει σε πίνακα 30 χαρακτήρων. - Η γραµµή 54 είναι λάθος µε αποτέλεσµα να µην τρέχει το πρόγραµµα σας 2η επανάληψη. Η σωστή εντολή είναι η παρακάτω printf("operation: "); - Κατά τα άλλα το πρόγραµµα σας δουλέυει σωστά. - Προσπαθήστε να κάνετε την mix στο σπίτι. : - Χρήση #define: το µέγεθος του string γιατί να µην είναι σταθερά; - scanf: ΟΚ - Στοίχιση: Θέλει λίγη προσοχή, τα κενά εµφώλευσης είναι ή παρα πολλά ή πολύ λίγα. Χρειάζεται να είστε συνεπείς σε αυτό. - Ονόµατα Μεταβλητών: ΟΚ - Χρήση loop: ΟΚ - Έλεγχοι: ΟΚ αν και θα µπορούσατε να χρησιµποιήσετε την strcmp - Τερµατισµός: OK - Προσθήκη λέξης: OK - Εκτύπωση: OK - Γενικά: Κανένα σχόλιο στο πρόγραµµά σας! does not compile. Page 11

12 1926 : - Χρήση #define: OK - scanf: OK - Στοίχιση: OK - Ονόµατα Μεταβλητών: OK - Χρήση loop: OK - Έλεγχοι: OK - Τερµατισµός: OK - Προσθήκη λέξης: OK - Εκτύπωση: OK - Γενικά σχόλια: πολύ καλό παιδιά! - scanf: OK - Σύγκριση συµβολοσειρών: OK - Ορθότητα element: OK - Ορθότητα copy: OK - Γενικά σχόλια: Πολύ ωραία! Λίγο άσχηµα ονόµατα µεταβλητών όµως, πχ c Σωστά χρησιµοποιείτε τα define στα for loops -scanf: σωστά χρησιµοποιείτε %14s για την ανάγνωση του string -Στοίχιση: Γενικά καλή σας ξέφυγε σε κάποια σηµεία -Ονόµατα µεταβλητών: Γενικά καλά το array και help δεν θεωρούνται πολύ περιγραφικά -Χρήση loop: Σωστά χρησιµοποιείτε do-while για το εξωτερικό loop -Σωστή χρήση του continue -Σωστά βρίσκετε το µήκος του πίνακα µπορούσατε να κάνετε και χρήση της συνάρτησης strlen, σωστά ελέγχεται το µήκος της λέξης άµα χωράει στον πίνακα. Κάνοντας έλεγχο αν help[0]!='$' να τερµατίσει το πρόγραµµα τότε θα τερµατίζει γενικά άµα δοθεί οποιαδήποτε λέξη που το πρώτο γράµµα της θα είναι $, το ζητούµενο της άσκησης ήτανε να τερµατίζει το πρόγραµµα άµα δίνονταν αποκλειστικά µόνο του το $ -Σωστά γεµίζεται τον πίνακα Άσκηση2 -scanf:σωστά χρησιµοποιείτε στη scanf %29s για την ανάγνωση του string - Σύγκριση συµβολοσειρών (για τις επιλογές): Σωστά χρησιµοποιείται την strcmp, δεν ελέγχετε άµα ο χρήστης ζητήσει κάτι άσχετο από τα ζητούµενα της άσκησης να βγάζει το µήνυµα unrecognizable command. Try again! -Ορθότητα element: σωστή αλλά έχετε λάθος έλεγχο για άµα ο χρήστης ζητήσει κάποια θέση εκτός ορίων του πίνακα. Διαβάστε ξανά πως δουλεύουν τα && και το -Δεν υλοποιείται ακριβώς αυτό που ζητάει η άσκηση διαβάστε τι κάνει η strncpy και σκεφτείτε πως θα µπορούσατε να λύσετε το ζητούµενο της άσκησης Page 12

13 lab7grades η: -Στοίχιση: Καλή. -Σωστή χρήση #define. Μπορείτε να προσπαθήσετε και άλλο για τα ονόµατα των µεταβλητών. Θα µπορούσατε να διευκρινίσετε µε ένα καλύτερο όνοµα τι κάνει το flag που έχετε βάλει. Για παράδειγµα, θα µπορούσατε να βάλετε acceptable_char. -Ελλειπή σχόλια καθώς δεν βάλατε τι κάνει το πρόγραµµά σας στην αρχή σαν περιγραφή. -Σωστός ο έλεγχος για την είσοδο που έδωσε ο χρήστης. - Μια παρατήρηση που µπορεί να γίνει είναι ότι κάνετε 2 φορές τη διάτρεξη του πίνακα. Η πρώτη είναι όταν λαµβάνετε ένα γράµµα για να δείτε αν υπάρχει µέσα στον πίνακα και η δεύτερη είναι για να αφαιρέσετε τα γράµµατα απο τον πίνακα. Αυτό έχει σαν αποτέλεσµα να απορρίπτετε γράµµατα τα οποία µπορεί να µην ανήκουν µέσα στον πίνακα αλλά είναι νόµιµα σαν είσοδο. Επίσης, κάνετε έλεγχο ο οποίος δε ζητήθηκε και φορτώνει επιπλέον το πρόγραµµα. Για να ελέγχετε την είσοδο θα µπορούσατε να χρησιµοποιήσετε την συνάρτηση isupper() που συζητήθηκε στο µάθηµα. Αλλάξτε το πρόγραµµα σας για να δουλεύει µε τη συνάρτηση αυτή. Τέλος, θα έπρεπε να ελέγχετε οτι το $ είναι µόνο του όταν το δίνει και όχι απλά η αρχή σε ένα string εισόδου(θα έπρεπε να ελέγχετε οτι ο χρήστης δίνει µοναδικό χαρακτήρα σαν είσοδο). -Σωστές πράξεις, αλλά δεν χρειαζόταν να κάνετε αντιµετάθεση για να σβήνετε τους χαρακτήρες. -Γενικά καλά η: - Σωστή η χρήση του scanf για να διαβάζετε τις διάφορες συµβολοσειρές - Στην επιλογή element έχετε κάνει διάφορα λάθη: - Αρχικά ελέγχετε το string str1 για να δείτε αν είναι element αυτό που δίνει ο χρήστης ενώ σε όλα τα υπόλοιπα το έχετε βάλει σωστά. - Δεν ζητάτε να σας δώσει ο χρήστης µια συµβολοσειρά µε αποτέλεσµα να ελέγχετε ένα κενό πινακα(στην πραγµατικότητα έχει σκουπίδια µέσα). - Επίσης εκεί που έχετε βάλει printf για να δώσει ο χρήστης µια συµβολοσειρά εµφανίζετε και τα περιεχόµενα των πινάκων str1 και str2 οι οποίοι σε αυτό το σηµείο δεν είναι αρχικοποιηµένοι. - Με µικρές διορθώσεις µπορείτε να κάνετε το πρόγραµµα για αυτή την περίπτωση να δουλεύει σωστά. - Όταν διαβάζετε και ολοκληρώνετε την εκτέλεση µιας απο τις επιλογές που έχει δώσει ο χρήστης θα πρέπει να µπορούσε να βάζει και άλλη επιλογή γιατί έτσι πως είναι το πρόγραµµα δεν µπορεί να τερµατίσει ποτέ η εκτέλεση. - Σωστή χρήση της strcmp - Σωστή χρήση της strcat - Σε πολλά σηµεία έχετε χρησιµοποιήσει for loops(µε σωστό τρόπο) για να βρείτε το µέγεθος που έχει το string. Την ίδια διαδικασία µπορείτε να την κάνετε και µε την εντολή strlen. - Στη συγχώνευση των strings έχετε χρησιµοποιήσει λάθος συνθήκες στα for loops. Σαν σκέψη είναι σωστή αλλά πρέπει να δείτε λίγο καλύτερα πως θα βάλετε τις συνθήκες. Σε περίπτωση που το ένα string είναι µεγαλύτερο απο το άλλο τότε η λύση σας δεν δουλεύει. -Η στοίχιση σας είχε αρκετά λάθη και ίσως να είναι αυτός ο λόγος που ξεχάσατε πολλά απο τα πράγµατα που προαναφέρθηκαν. Προσπαθείτε να στοιχίζετε τον κώδικα όπως γράφετε το πρόγραµµα και όχι στο τέλος. Προσπαθήστε να διορθώσετε τα λάθη καθώς είστε πολύ κοντά στη σωστή λύση. Page 13

14 Διαδικαστικά: ΟΚ 1929 FAIL - Ελάχιστα σχόλια. - Η µεταβλητή g έπρεπε να έχει πιο περιγραφικό όνοµα - Λάθος στοίχιση στις γραµµές Οι έλεγχοι στις συνθήκες ελέγχου και ανακύκλωσης είναι λάθος. Το πρόγραµµα δεν δουλεύει σωστά. Για παράδειγµα, η συνθήκη στο do-while έπρεπε να είναι count!= 0 ή count > 0 - Γίνεται προσπέλαση εκτός ορίων πίνακα (όταν το j είναι COLUMNS-1 το array[i+1][j+1] θα είναι array[i+1][columns] - Κάνει compile µε warnings. - Πολύ λάθος στοίχιση! - Γραµµές 14 και 27. Δεν µπορούµε να ελέγξουµε την ισότητα δύο αλφαριθµητικών µε τον τελεστή ==. Χρησιµοποιήστε τη συνάρτηση strcmp. Τα απλά εισαγωγικά ' ' µπορούν να περιέχουν χαρακτήρες και όχι αλφαριθµητικό. Το αλφαριθµητικό περιέχεται σε διπλά εισαγωγικά. - Γραµµή 20. Λάθος έλεγχος των ορίων του pos. Το σωστό είναι (position>lenght position<1) - Γραµµή 25. Λάθος επιλογή θέσης χαρακτήρα. Η σωστή θέση είναι string[position-1] - Η λογική υλοποίησης της συνάρτησης catenate είναι εντελώς λάθος FAIL Στείλατε το lab Διαδικαστικά:ΟΚ -Καλή στοίχιση. -Δεν έχετε καθόλου σχόλια. -Σωστά χρησιµοποιείτε τα defines για τα όρια των loops. -Σωστός έλεγχος για unacceptable characters. Για τον έλεγχο για τα κεφαλαία γράµµατα θα µπορούσατε να χρησιµοποιήσετε την συνάρτηση isupper(). -Σωστά τερµατίζει το πρόγραµµα µε το $. -Το output του προγράµµατος είναι σωστό. -Το πρόγραµµά σας έχει ένα bug. Δεν κάνετε σωστά τα shift και την προσθήκη του \0 και εµφανίζονται κάποιοι χαρακτήρες της κάτω γραµµής στην πάνω. Επίσης βγαίνει στο τέλος του πίνακα ένας χαρακτήρας σκουπίδι. Ένα σοβαρό λάθος είναι η ανάθεση στο array[i] [COLUMNS] το οποίο βρίσκεται εκτός των ορίων της γραµµής i (και κατ'επέκταση του πίνακα). Επίσης ξαναβγαίνετε εκτός των ορίων του πίνακα στο for ακριβώς πάνω από αυτή τη γραµµή. Κάνετε προσπέλαση του array[i][a+1] αλλά όταν το a γίνει ίσο µε COLUMNS-1 τότε πάει στο array[i][columns]. - Η χρήση while δεν είναι κατάλληλη. Θα έπρεπε να χρησιµοποιούσατε do-while και να µην έχετε την εισαγωγή δεδοµένων σε δύο σηµεία. -Πάρα πολλά warning στο compilation -To πρόγραµµα δεν κάνει τίποτα. -Προσπαθείτε να κάνετε σύγκριση µεταξύ 2 strings χρησιµοποιώντας το ==, πράγµα που είναι λάθος. Για να γίνει σύγκριση 2 strings πρέπει να γίνει µε την χρήση συναρτήσεων για τα strings (strcmp) Page 14

15 1934 η: -Στοίχιση: Καλή. -Καλά ονόµατα µεταβλητών και σωστή χρήση #define. -Καλά σχόλια. -Λάθος έλεγχος εισόδου, προσπαθήστε να µεταφέρετε την είσοδο ώστε να γίνεται στην κύρια επανάληψη -Σωστές πράξεις, αλλά δεν χρειαζόταν να κάνετε αντιµετάθεση για να σβήνετε τους χαρακτήρες. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). -Πολύ καλή δουλειά η: -Λάθος στοίχιση, προσέξτε το. -Δεν χρειαζόταν να κάνετε έλεγχο εισόδου 2 φορές, σκεφτείτε µια λύση µε if()/else -Κάνετε χρήση της strncat(),strncpy() -Ο έλεγχος για το µέγεθος του τελικού αποτελέσµατος πρέπει να γίνει πριν κάνετε την συνένωση. -Γενικά, καλά. η: - Στοίχιση: Καλή. - Καλά ονόµατα µεταβλητών και σωστή χρήση #define. - Ελλειπή σχόλια, τι κάνει το πρόγραµµά σας; - Σχεδόν σωστός έλεγχος εισόδου. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). - Οι πράξεις σας δεν είναι σωστές. Δεν κάνετε σωστά την αντιµετάθεση καθώς έχετε µπερδέψει τα j, k µε αποτέλεσµα να µην γίνεται σωστά η αντικατάσταση των γραµµάτων. Το array[i][j]=array[i][j+1] συνεπώς είναι λάθος. Μπορείτε να δείτε πως θα έπρεπε να ήταν το σωστό µε τη χρήση του k αντι για το j; Επίσης, δεν θα το θεωρήσουµε λάθος αλλά δείτε πως θα µπορούσατε να κάνετε τη λύση σας µε τέτοιο τρόπο έτσι ώστε να διαγράφει όλα τα ίδια γράµµατα που είναι το ένα δίπλα στο άλλο. - Αν τα j, k ήταν σωστά, θα κάνατε προσπέλαση εκτός των ορίων µιας γραµµής του πίνακα. Όταν το k (ουσιαστικά το j) είναι ίσο µε COLUMNS-1 το array[i][j+1] γίνεται array[i][columns] η: - Δεν κάνει compile. Προσπαθείστε να την ολοκληρώσετε και να είστε εξικοιωµένοι µε τις συναρτήσεις που κάνουν πράξεις πάνω σε strings όπως strcpy, srcmp, strlen και ότι άλλες υπάρχουν στις διαφάνειες καθώς θα τις χρειαστείτε στη συνέχεια. Page 15

16 Διαδικαστικά: Λάθος όνοµα αρχείου Στοίχιση: Καλή. -Καλά ονόµατα µεταβλητών και σωστή χρήση #define. -Ελλειπή σχόλια. -Σωστή είσοδος. -Σωστές πράξεις. - Ο κώδικας στις γραµµές δε θα εκτελεστεί ποτέ, γιατί σε εκείνο το σηµείο το k θα είναι πάντα ίσο µε COLUMNS (γιατί όταν γίνει ίσο µε COLUMN θα γινει για πρώτη φορά false η συνθήκη του παραπάνω for) -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). -Πολύ καλή δουλειά. η: -Εφόσον επιλέξατε να βάλετε τις διαφορετικές εισόδους σε πίνακα έπρεπε να τις ορίσετε σαν σταθερές και να τα αντίστοιχα ονόµατα να είναι µε κεφαλαία γράµµατα. -Δεν χρειαζόταν να κάνετε έλεγχο εισόδου 2 φορές, σκεφτείτε µια λύση µε if()/else -Κάνετε χρήση της strncat(),strncpy() -Ο έλεγχος για το µέγεθος του τελικού αποτελέσµατος πρέπει να γίνει πριν κάνετε την συνένωση. -Γενικά, καλά FAIL -define: σωστά κάνετε define τα ονόµατα row columns και size αλλά δεν τα χρησιµοποιείτε όλα µέσα στα for loops -scanf: Στη scanf έπρεπε να γράφατε %14s για να διαβάσουµε το πολύ 14 χαρακτήρες εκτός από το /0 που θα αποθηκευτεί ως τελευταίος χαρακτήρας της συµβολοσειράς, είναι λάθος να γράφετε απλό %s γιατί άµα εισάγουµε συµβολοσειρά µε περισσότερους από 14 χαρακτήρες θα υπάρξει πρόβληµα καθώς αυτοί θα αποθηκευτούν εκτός ορίων του πίνακα -Στοίχιση: Καθόλου καλή -Ονόµατα µεταβλητών: Την επόµενη φορά προσπαθήστε να χρησιµοποιείτε πιο περιγραφικά ονόµατα γενικά το array και str δεν είναι περιγραφικά και δεν θεωρούνται καλά ονόµατα -Χρήση loop: Δεν χρησιµοποιείτε κάποιο while, do-while για το εξωτερικό loop -Έλεγχοι: σωστά πάτε να ελέγξετε άµα δόθηκε $ αλλά έτσι πως έχετε γράψει τον έλεγχο άµα δοθεί οποιαδήποτε λέξη που περιέχει στην αρχή δολάριο το πρόγραµµα πάλι θα τερµατίζει, δεν γεµίζετε σωστά τον πίνακα, δεν αντιγράφεται σωστά το string στον πίνακα. Δεν κάνετε έλεγχο να µπαίνουν µόνο γράµµατα από Α έως Ζ και όχι άλλοι χαρακτήρες. Δεν κάνετε σωστό έλεγχο για το µέγεθος του string δεν λαµβάνετε υπόψη τον χαρακτήρα /0 που αποθηκεύεται στο τέλος του string το strlen επιστρέφει το µέγεθος του string χωρίς το /0 -Δεν υλοποιείτε σωστά τη βασική λειτουργία της προσθήκης λέξεις στον πίνακα -Δεν εκτυπώνετε τον πίνακα Δεν έγινε Page 16

17 Διαδικαστικά: ΟΚ 1942 FAIL - Σωστή στοίχιση. - Ανύπαρκτα σχόλια. - Το πρόγραµµα σας αναζητά σωστά το επόµενο στοιχείο για αντικατάσταση, αλλά κατά την αντιγραφή του στοιχείου χάνεται. - Επίσης, στην γραµµή 54 γράφετε array[i][columns]='\0'; πράγµα που δείχνει ότι δεν έχετε κατανοήσει τα όρια των πινάκων. Σε ένα πίνακα µεγέθους Ν τα στοιχεία αριθµούνται από 0 έως N-1. - Δεν κάνει compile η: -Στοίχιση: Καλή. -Καλά ονόµατα µεταβλητών και σωστή χρήση #define. -Ελλειπή σχόλια, τι κάνει το πρόγραµµά σας; - Σωστός έλεγχος εισόδου. Το λάθος που έχετε κάνει είναι οτι στην scanf που έχετε βάλει µέσα στις επαναλήψεις θα πρέπει να έχει ένα κενό πριν το %c (θα πρέπει να είναι scanf( %c )). Ο λόγος είναι οτι κάθε φορά που βάζετε ένα γράµµα πατάτε και το enter το οποίο είναι ένας έξτρα ειδικός χαρακτήρας. Διαβάζεται το πρώτο γράµµα αλλά το enter µένει στη µνήµη µε αποτέλεσµα στην επόµενη επανάληψη να το διαβάζει χωρίς να το δώσετε εσείς και να το θεωρεί λανθασµένο χαρακτήρα. Προσέξτε το την επόµενη φορά ή χρησιµοποιήστε το getchar() για να είστε πιο ασφαλείς. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). -Σωστές πράξεις. Δεν θα το θεωρήσουµε λάθος αλλά δείτε πως θα µπορούσατε να κάνετε τη λύση σας µε τέτοιο τρόπο έτσι ώστε να διαγράφει όλα τα ίδια γράµµατα που είναι το ένα δίπλα στο άλλο. η: -Εντυπωσιακή η χρήση του sprintf σε αυτό το στάδιο για να φτιάξετε ένα string το οποίο θα διαβάζει το σωστό αριθµό γραµµάτων για κάθε µέγεθος πίνακα! - Για τις περιπτώσεις element και catenate το πρόγραµµά σας λειτουργεί σωστά. Δεν έχετε υλοποιήσει τις υπόλοιπες δυνατότητες. Επίσης, θα έπρεπε να µην τελειώνει το πρόγραµµα σας µέχρι να το ζητήσει ο χρήστης. - Έχετε χρησιµοποιήσει έναν δείκτη για να βάλετε το περιεχόµενο που επιστρέφει η strcat. Δεν χρειαζόταν να τον χρησιµοποιήσετε το δείκτη καθώς αν δείτε την διατύπωση της εντολής αυτό που κάνει είναι να βάζει το αποτέλεσµα στη θέση του πρώτου string που δίνετε σαν όρισµα. Με λίγα λόγια ορίζεται σαν strcat(destination, source). Φυσικά και αυτό που έχετε κάνει δεν είναι λάθος αλλά δεν χρειαζόταν. - Γενικά καλή δουλειά Page 17

18 1947 Οριακό : - Δεν χρησιµοποιείτε τα #defines στα loops.( θα έπρεπε len > ROWS - 1 αντί για hardcoded if (len+1>=11) - Σωστή χρήση του %14s στην scanf. - Χρησιµοποιήστε πιο περιγραφικά ονόµατα στις µεταβλητές σας. - Σωστά χρησιµοποιείτε do-while και for loops. - Προσέξτε την στοίχισή σας, έχετε πολλές κένες γραµµές και παράξενα άγκιστρα. - Σωστός αλγόριθµος της βασικής λειτουργίας. - Σχεδον σωστοί έλεγχοι. Ο αλγόριθµος δεν τερµατίζει αν γεµίσουν οι γραµµές του πίνακα. - Δεν κάνει compile το πρόγραµµα σας. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. (ο κώδικας σας, δείχνει οτι έχετε καταλάβει τα ζητούµενα) : Καλή δουλειά! - Δεν χρησιµοποιείτε τα #defines στα loops.( θα έπρεπε ROWS - 1 αντί για hardcoded 9) - Στην scanf χρειάζεται %14s και όχι %9s, µιας και αναφέρεστε στον πίνακα char word[15]. - Σωστά χρησιµοποιείτε do-while και for loops. - Σωστός αλγόριθµος της βασικής λειτουργίας. - Σχεδον σωστοί έλεγχοι. Εφόσον έχετε %9s στην scanf, το while (len>9) θα είναι πάντα false. Δείτε το στο σπίτι Καλή προσπάθεια! - Σωστή χρήση της strcmp για τα strings εισόδου. - Σωστή χρήση του %29s. - Σχεδόν σωστή υλοποίηση της element. Τα εκτυπώνετε ανάποδα δηλαδή, Ν-οστή θέση αντί για 1η. - Σωστή χρήση της strcpy στην copy λειτουργία. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. Αποστολή ΟΚ : - Καθόλου σχόλια! - Ο βρόχος do {} while (); που µετακινεί τα επόµενα στοιχεία του πίνακα δεξιότερα, έπρεπε να γραφτεί κάνοντας πρώτα έλεγχο και µετά µετακίνηση (δηλαδή µε while () {}). Εάν σβήνουµε τον τελευταίο χαρακτήρα της γραµµής (k=j=columns - 1), τότε η πρώτη επανάληψη θα διαβάσει το στοιχείο k+1 που είτε ανήκει στην επόµενη γραµµή είτε είναι εκτός του πίνακα. Η ανάθεση του '\0' µετά τον βρόχο κρύβει την προσπέλαση εκτός ορίων αλλα δεν την διορθώνει! - Επίσης ο 'µεγάλος' βρόχος do {} while (); πρέπει να αλλάξει σε while () {}. Εάν ο χρήστης δώσει σαν πρώτη είσοδο το '$', το πρόγραµµα τρέχει µια επανάληψη πριν τερµατίσει. - Δεν κανει compile. Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. Page 18

19 1955 Οριακό Διαδικαστικά: ΟΚ - Σωστή στοίχιση. - Αρκετά σχόλια. Λείπει η περιγραφή του προγράµµατος στην αρχή. - Η αντιµετάθεση που κάνετε στις γραµµές δεν είναι σωστή και δεν τεκµηριώνεται από τα σχόλια. Σε αρκετές περιπτώσεις το πρόγραµµα σας δουλεύει, αλλά σε άλλες βγάζει λάθη. - Το for() στην γραµµή 48 κάνει σε κάθε ανακύκλωση το ίδιο πράγµα. Συνεπώς είναι περιττό. - Σωστή στοίχιση - Γραµµή 54. Η συνθήκη στο while είναι λάθος. Θα έπρεπε να είναι η αντίστροφη. - element: Tα όρια που προσδιορίζει ο χρήστης είναι από 1 έως Ν και ο πίνακας έχει θέσεις από 0 έως Ν-1. Εσείς δέχεστε τιµες από 0 έως Ν που βγαίνουν εκτός ορίων του πίνακα. - Η catenate είναι λάθος και δεν εκτυπώνει κανένα αποτέλεσµα FAIL : - Χρήση #define: Και το µέγεθος του επιτρεπτού string θα µπορούσε να είναι σταθερά. Εκτός από τις αρχικοποιήσεις και τις δηλώσεις, δεν φαίνεται να χρησιµποιείτε αλλού τις σταθερές σας. - scanf: ΟΚ - Στοίχιση: ΟΚ - Ονόµατα Μεταβλητών: OK - Χρήση loop: Τα όρια στα loop µπορεί να ξεφεύγουν από το µέγεθος του αλφαριθµητικού που διαβάζεται. - Έλεγχοι: Στο τελευταίο if Θα έπρεπε να είναι str[0] αντί για str[1] και να βγει το j==1. Αυτό είναι το κυριότερο λάθος του προγράµµατος, διότι έτσι όποια λέξη δεν έχει µέγεθος 1 τότε θα τερµατίζει το loop και θα πηγαίνει το πρόγραµµα στο στάδιο της εκτύπωσης! Επίσης το if θα έπρεπε να είναι έξω από το loop. - Τερµατισµός: Δείτε και παραπάνω για τους ελέγχους. - Προσθήκη λέξης: ΟΚ - Εκτύπωση: Έτσι όπως το κάνατε, θα τύπωνε µια αλλαγή γραµµής µετά από κάθε γράµµα! Έτ - Γενικά. Δεν χρησιµοποιείται συναρτήσεις strings. Γιατί; Compiler errors Αποστολή ΟΚ 1957 FAIL : - Καθόλου σχόλια! - Δεν έχετε υλοποιήσει τα ζητούµενα της άσκησης. - Δεν στάλθηκε. Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. Page 19

20 1959 Οριακό : - Χρήση #define: ΟΚ - scanf: ΟΚ - Στοίχιση: ΟΚ - Ονόµατα Μεταβλητών: Άσχηµα. Τ σηµαίνει temp? - Χρήση loop: ΟΚ - Έλεγχοι: θα έπρεπε να ήταν if(len>=columns), µην ξεχνάτε και τον χαρακτήρα τερµατισµού! - Τερµατισµός: OK - Προσθήκη λέξης: OK - Εκτύπωση: OK - scanf: Λάθος. Δε χρησιµοποιούµε ΠΟΤΕ σκέτο %s στη scanf. Πάντα προσδιορίζουµε µέγιστο µήκος συµβολοσειράς που θα διαβαστεί. - Σύγκριση συµβολοσειρών: ΟΚ - Ορθότητα element: θα πρέπει να µετράτε από δεξιά προς τα αριστερά! - Ορθότητα copy: Δεν έγινε - Γενικά: Πολύ λίγα σχόλια στο πρόγραµµά σας! 1960 η: -Στοίχιση: Καλή. -Καλά ονόµατα µεταβλητών και σωστή χρήση #define. -Ελλειπή σχόλια, τι κάνει το πρόγραµµά σας; -Σωστός έλεγχος εισόδου. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). -Σωστές πράξεις, αλλά δεν χρειαζόταν να κάνετε αντιµετάθεση για να σβήνετε τους χαρακτήρες. -Διαβάζετε κι ελέγχετε την είσοδο από το χρήστη σε δύο σηµεία. Καλό θα ήταν να είχατε χρησιµοποιήσει do-while για να αποφύγετε κάτι τέτοιο. η: -Στοίχιση: Καλή -Καλά ονόµατα µεταβλητών, αλλά έχετε λάθος µεγέθη για τους πίνακες. -Σωστό φίλτρο εισόδου. -Σωστές πράξεις. -Πολύ καλή δουλειά. Page 20

21 Διαδικαστικά: Δεν έχετε σωστό όνοµα αρχείου, προσέξτε το FAIL η: -Δεν παραδίδουµε άσκηση που έχει warning, για τις ανάγκες του µαθήµατος θεωρείστε πως κάθε warning ισοδυναµεί µε error. Πολλές φορές ένα warning κρύβει από πίσω του κάποιο σοβαρό λογικό/συντακτικό λάθος. -Πολλές κενές γραµµές χωρίς λόγο στο κείµενο, και άσχηµη στοίχιση. Προσέξτε το. -Λάθος έλεγχος εισόδου. Δεν είναι δυνατό το γράµµα να είναι ταυτόχρονα µεγαλύτερο του 'Ζ' και µικρότερο του 'Α'. - Όταν διαβάζετε χαρακτήρα µε scanf να βάζετε ένα κενό ανάµεσα στο " και στο %c - Αλλάζετε το j δύο φορές µέσα στο loop που κάνει τη µεταφορά. Γιατί? - Έπρεπε να εκτυπώνετε τα στοιχεία του πίνακα µετά την ολοκλήρωση της µεταφοράς σε κάθε επανάληψη. Με το να εκτυπώνετε ένα-ένα χαρακτήρα στο σηµείο που το κάνετε, δεν συνειδητοποιείτε ότι τελικά το πρόγραµµα δε λειτουργεί σωστά. Δοκιµάστε να βάλετε ένα loop που εκτυπωνει τον πίνακα µετά τη γραµµή 53 και θα δείτε τι τελικά περιέχει ο πίνακας. - Το while(j==columns) θα προκαλέσει ατέρµονο loop γιατί δεν αλλάζει το j µέσα σε αυτό. Ο µόνος λόγος που φαίνεται να λειτουργεί είναι επειδή το j δεν πρόκειται να έχει ποτέ την τιµή COLUMNS σε αυτό το σηµείο. -Κάντε την άσκηση στο σπίτι σας, δεν φαίνεστε εξοικειωµένοι µε την C Οριακό η: -Κάντε την άσκηση στο σπίτι. Διαδικαστικά:ΟΚ -Καλή στοίχιση -Σωστά χρησιµοποείτε τα define για τα όρια των loops -Σωστο output του προγράµµατος. -Σωστά κάνετε έλεγχο για τα κεφαλαία γράµµατα.(θα µπορούσατε να χρησιµοποιείτε και την συνάρτηση isupper() για αυτό τον έλεγχο.) -Γινονται σωστοί έλεγχοι για τις υπόλοιπες περιπτώσεις εισόδου. - Προσοχή στα όρια των loops: Όταν το k πάρει τιµή COLUMNS-1 τότε το array[i][k+1] θα είναι array[i][columns] το οποίο είναι εκτός ορίων γραµµής (και κατ'επέκταση πίνακα). - Λάθος η χρήση while σε αυτή την άσκηση. Το πιο σωστό θα ήταν do-while για να αποφύγετε να κάνετε παρόµοια είσοδο δεδοµένων σε δύο σηµεία. -Το πρόγραµµά σας δουλεύει σωστά ΑΛΛΑ όχι για όλους τους χαρακτήρες (Δεν τερµατίζει όταν αφαιρεθούν όλοι οι χαρακτήρες απο τον πίνακα). Τερµατίζει είτε µε το $ είτε αν δοθούν καποιοι χαρακτήρες προς αφαίρεση. (Συνήθως 5 ήταν αυτός ο αριθµός.) Αφαιρείτε πολλαπλές φορές από το πλήθος γραµµάτων. -Δεν στάλθηκε.προσπαθήστε την στο σπίτι για εξάσκηση FAIL Στείλατε το lab6. Page 21

22 : Καλή δουλειά! - Δεν χρησιµοποιείτε τα #defines στα loops.( θα έπρεπε ROWS - 1 αντί για hardcoded 9) - Στην scanf χρειάζεται %14s και όχι %9s, µιας και αναφέρεστε στον πίνακα char word[15]. - Σωστά χρησιµοποιείτε do-while και for loops. - Σωστός αλγόριθµος της βασικής λειτουργίας. - Σχεδον σωστοί έλεγχοι. Εφόσον έχετε %9s στην scanf, το while (len>9) θα είναι πάντα false. Δείτε το στο σπίτι. - Καλή προσπάθεια! - Σωστή χρήση της strcmp για τα strings εισόδου. - Σωστή χρήση του %29s. - Σχεδόν σωστή υλοποίηση της element. Τα εκτυπώνετε ανάποδα δηλαδή, Ν-οστή θέση αντί για 1η. - Σωστή χρήση της strcpy στην copy λειτουργία. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. Αποστολή ΟΚ 1968 FAIL : - Καθόλου σχόλια! - Ατέρµων βρόχος, εάν ο χρήστης δώσει έγκυρο χαρακτήρα εισόδου, το πρόγραµµα δεν ζητάει νέο χαρακτήρα. - Μετά το σβήσιµο του χαρακτήρα, οι επόµενοι χαρακτήρες δεν µετακινούνται δεξιότερα. - Η εκτύπωση έπρεπε να γίνεται µετά την ολοκλήρωση του σβησίµατος του χαρακτήρα - Όταν διαβάζετε χαρακτήρα µε scanf, να βάζετε ένα κενό ανάµεσα στο " και στο %c - Δεν στάλθηκε. Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι Σωστά χρησιµοποιείτε τα define στα for loops -scanf:σωστά χρησιµοποιείτε %14s για την ανάγνωση του string -Στοίχιση: Γενικά καλή -Οι δηλώσεις γίνονται στην αρχή του προγράµµατος και όχι στη µέση -Ονόµατα µεταβλητών: Γενικά καλά το flag δεν θεωρείται περιγραφικό όνοµα -Χρήση loop: Σωστά χρησιµοποιείτε do-while για το εξωτερικό loop -Το εξωτερικό for δεν χρειάζονταν αλλά µάλλον σας ξέφυγε από τα σχόλια -Σωστή χρήση break και continue -Σωστά ελέγχετε το µήκος της λέξης άµα χωράει στον πίνακα, σωστά ελέγχετε αν δοθεί µόνο $ να τερµατίζεται το πρόγραµµα, δεν έχετε πουθενά έλεγχο έτσι ώστε να γίνονται δεκτοί µόνο λέξεις αποτελούµενες από χαρακτήρες από Α-Ζ -Σωστά γεµίζεται τον πίνακα Άσκηση2 -scanf: σωστά χρησιµοποιείτε στη scanf %29s για την ανάγνωση του string - Σύγκριση συµβολοσειρών (για τις επιλογές): Σωστά χρησιµοποιείτε την strcmp - Ορθότητα element: σωστή αλλά στον έλεγχο άµα δοθεί θέση εκτός ορίων δεν έπρεπε να βάλετε µεγαλύτερο του 29 αλλά το µήκους κάθε φορά της λέξης που δίνετε, µπορούσατε ναχρησιµοποιήσετε την strlen - Δεν υλοποιείται ακριβώς αυτό που ζητάει η άσκηση διαβάστε τι κάνει η strncpy και προσπαθήστε να σκεφτείτε πως θα µπορούσατε να λύσετε το ζητούµενο της άσκησης Page 22

23 Οριακό Οριακό lab7grades Διαδικαστικά:ΟΚ -Καλή στοίχιση -Σωστά χρησιµοποιείτε τις defined τιµές για τα όρια των loops. -Δεν είναι σωστοί οι έλεγχοι για unacceptable τιµές. Μπαίνει σε ατέρµων loop. Χρησιµποιείτε continue µετά τον έλεγχο για τα γράµµατα και µετά δεν ξαναδιαβάζετε καινούριο γράµµα οπότε µπαίνει σε ατέρµων loop. -Τερµατίζει σωστά το πρόγραµµα όταν δώσεις είσοδο $. -To output του προγράµµατος είναι σωστό. -Το πρόγραµµά σας δεν δουλεύει σωστά. Δεν βάζετε σωστά το '\0'. Το σωστό θα ήταν να µπαίνει στη στήλη COLUMNS-1. Μην ξεχνάτε ότι για να βγούµε από το παραπάνω loop πρέπει να γίνει ψευδής η συνθήκη κι αυτό γίνεται όταν το k γίνει ίσο µε COLUMNS οπότε το array[i][k] είναι ουσιαστικά εκτός των ορίων της γραµµής (και κατ'επέκταση του πίνακα) - Ανύπαρκτη στοίχιση. Μην ξαναστείλετε πρόγραµµα σε αυτή τη µορφή. -Πολλά warnings στο compilation. -Βγάζει segmentation fault για όλα τα operations. Έχετε δίαφορα λάθη. Ένα βασικό είναι οτι δεν έχετε ξεχωρίσει την διαφορά του ' ' από το " " για τα strings. Επίσης όταν συγκρίνεις string µε string το κάνετε µε το == που είναι λάθος. Πρέπει να χρησιµοποιείτε τις συναρτήσεις για τα strings.(strcmp είναι για την σύγκιρση.) -Όταν διαβάζετε ενα string µεγέθους 10 πρέπει να το διαβάζετε µε %9s διότι το string είναι (9 χαρακτήρες + '\0')=10. Εσείς διαβάζατε µε %10s. : - Δεν χρησιµοποιείτε τα #defines στα loops.( θα έπρεπε len > ROWS - 1 αντί για hardcoded if (len+1>=11) - Σωστή χρήση του %14s στην scanf. - Χρησιµοποιήστε πιο περιγραφικά ονόµατα στις µεταβλητές σας. - Σωστά χρησιµοποιείτε do-while και for loops. - Προσέξτε την στοίχισή σας, έχετε πολλές κένες γραµµές και παράξενα άγκιστρα. - Σωστός αλγόριθµος της βασικής λειτουργίας. - Σχεδον σωστοί έλεγχοι. Ο αλγόριθµος δεν τερµατίζει αν γεµίσουν οι γραµµές του πίνακα. - Δεν κάνει compile το πρόγραµµα σας. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι. (ο κώδικας σας, δείχνει οτι έχετε καταλάβει τα ζητούµενα) 1983 : - Χρήση #define: OK - scanf: OK - Στοίχιση: OK γενικά, αλλά σας ξέφυγε σε κάποια σηµεία. - Ονόµατα Μεταβλητών: OK - Χρήση loop: OK - Έλεγχοι: Δεν έπρεπε να τερµατίζει αν απλά η λέξη περιέχει $. Μόνο αν η λέξη _είναι_ "$". - Τερµατισµός: OK - Προσθήκη λέξης: OK - Εκτύπωση: OK - scanf: OK - Σύγκριση συµβολοσειρών: OK - Ορθότητα element: OK - Ορθότητα copy: OK - Γενικά σχόλια: Πολύ ωραία! Λίγο άσχηµα ονόµατα µεταβλητών όµως, πχ c Page 23

24 1984 Οριακό : - Σωστά χρησιµοποιείτε τα #defines στα loops. - Σωστή χρήση του %14s στην scanf. - Σωστή χρήση for loops. Θα µπορούσατε να χρησιµοποιήσετε και do-while στο σηµείο όπου κάνετε τον έλεγχο τερµατισµού. - Καλή στοίχιση. - Σωστός αλγόριθµος της βασικής λειτουργίας. - Σωστοί έλεγχοι. Πρέπει να εκτυπώνετε τα περιεχόµενα του πίνακα σε κάθε εισαγωγή input string και όχι µόνο στο τελος, όπως το κάνετε τώρα. - Δεν εστάλη. - Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι η: -Στοίχιση: Καλή. -Καλά ονόµατα µεταβλητών και σωστή χρήση #define. -Ελλειπή σχόλια, τι κάνει το πρόγραµµά σας; - Σωστός έλεγχος εισόδου. Το λάθος που έχετε κάνει είναι οτι στην scanf που έχετε βάλει µέσα στις επαναλήψεις θα πρέπει να έχει ένα κενό πριν το %c (θα πρέπει να είναι scanf( %c )). Ο λόγος είναι οτι κάθε φορά που βάζετε ένα γράµµα πατάτε και το enter το οποίο είναι ένας έξτρα ειδικός χαρακτήρας. Διαβάζεται το πρώτο γράµµα αλλά το enter µένει στη µνήµη µε αποτέλεσµα στην επόµενη επανάληψη να το διαβάζει χωρίς να το δώσετε εσείς και να το θεωρεί λανθασµένο χαρακτήρα. Προσέξτε το την επόµενη φορά ή χρησιµοποιήστε το getchar() για να είστε πιο ασφαλείς. -Αλλάξτε τον κώδικα σας για να κάνετε χρήση της isupper(). -Σωστές πράξεις. Δεν θα το θεωρήσουµε λάθος αλλά δείτε πως θα µπορούσατε να κάνετε τη λύση σας µε τέτοιο τρόπο έτσι ώστε να διαγράφει όλα τα ίδια γράµµατα που είναι το ένα δίπλα στο άλλο. η: -Εντυπωσιακή η χρήση του sprintf σε αυτό το στάδιο για να φτιάξετε ένα string το οποίο θα διαβάζει το σωστό αριθµό γραµµάτων για κάθε µέγεθος πίνακα! - Για τις περιπτώσεις element και catenate το πρόγραµµά σας λειτουργεί σωστά. Δεν έχετε υλοποιήσει τις υπόλοιπες δυνατότητες. Επίσης, θα έπρεπε να µην τελειώνει το πρόγραµµα σας µέχρι να το ζητήσει ο χρήστης. - Έχετε χρησιµοποιήσει έναν δείκτη για να βάλετε το περιεχόµενο που επιστρέφει η strcat. Δεν χρειαζόταν να τον χρησιµοποιήσετε το δείκτη καθώς αν δείτε την διατύπωση της εντολής αυτό που κάνει είναι να βάζει το αποτέλεσµα στη θέση του πρώτου string που δίνετε σαν όρισµα. Με λίγα λόγια ορίζεται σαν strcat(destination, source). Φυσικά και αυτό που έχετε κάνει δεν είναι λάθος αλλά δεν χρειαζόταν. - Γενικά καλή δουλειά Page 24

25 1986 Αποστολή ΟΚ : - Καθόλου σχόλια! - Ο βρόχος do {} while (); που µετακινεί τα επόµενα στοιχεία του πίνακα δεξιότερα, έπρεπε να γραφτεί κάνοντας πρώτα έλεγχο και µετά µετακίνηση (δηλαδή µε while () {}). Εάν σβήνουµε τον τελευταίο χαρακτήρα της γραµµής (k=j=columns - 1), τότε η πρώτη επανάληψη θα διαβάσει το στοιχείο k+1 που είτε ανήκει στην επόµενη γραµµή είτε είναι εκτός του πίνακα. Η ανάθεση του '\0' µετά τον βρόχο κρύβει την προσπέλαση εκτός ορίων αλλα δεν την διορθώνει! - Επίσης ο 'µεγάλος' βρόχος do {} while (); πρέπει να αλλάξει σε while () {}. Εάν ο χρήστης δώσει σαν πρώτη είσοδο το '$', το πρόγραµµα τρέχει µια επανάληψη πριν τερµατίσει. - Δεν κανει compile. Δείτε την λύση και προσπαθείστε να υλοποιήσετε τις λειτουργίες στο σπίτι FAIL Δεν ελήφθη άσκηση 1992 Διαδικαστικά:ΟΚ -Καλή στοίχιση γενικά, αλλά σας έχει ξεφύγει σε κάποια σηµεία. -Δεν έχετε καθόλου σχόλια. -Σωστά χρησιµοποιείτε τις defined τιµές για τα όρια των loops. -Σωστοί έλεγχοι για την είσοδο. Για τον έλεγχο των κεφαλαίων γραµµάτων θα µπορούσατε να χρησιµοποιείτε την συνάρτηση isupper(). -To πρόγραµµά σας τερµατίζει µόνο όταν δοθεί το $. Όταν τελιώσουν τα γράµµατα απο τον πίνακα συνεχίζει να εκτελείται. Το πρόβληµα είναι ότι µειώνετε τον counter µε κάθε µεταφορά χαρακτήρων εντός της γραµµής και τελικά γίνεται αρνητικός πολύ γρήγορα (αν είχατε >0 στη συνθήκη θα τερµάτιζε, αν και πάλι όχι σωστά). Έπρεπε το counter-- να είναι έξω από το εσωτερικό for. Επίσης δεν αφαιρούνται 2 ίδιοι χαρακτήρες απο την ίδια γραµµή. - Δεν υπάρχει λόγος να κάνετε αντιµετάθεση. Αρκεί να µεταφέρετε κάθε χαρακτήρα µια θέση αριστερά. -Σωστό output του προγράµµατος. -Πάρα πολλά errors και warnings στο compilation. -Να προσέχετε να διορθώνετε τα errors πριν στείλετε την άσκηση, διότι φαίνεται οτί την δουλέψατε αλλά δεν "τρέχει". Page 25

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lab3grades οριακό PASS

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

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

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

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

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

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

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

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >=2 που

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

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

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

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

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

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

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

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

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

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

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

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

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

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