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

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

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

Transcript

1 ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ - Δεν χρησιµοποιείτε καλά ονόµατα µεταβλητών και παραµέτρων στις συναρτήσεις. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Ο χαρακτήρας τερµατισµού \0 θα έπρεπε να µπαίνει στο τέλος του intersection_array(και όχι str3 ή z) και όχι µια φορά στο 1ο στοιχείο. - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζεται µέσα σε εισαγωγικά "Helo". Μ.ΣΠ FAIL - Η ανάγνωση της συµβολοσειράς δεν έπρεπε να µπει σε επανάληψη, µια φορά θα διαβαστεί. - Στη main, ξαναδιαβάζει το enter και τρέχει ακόµα 1 φορά, βάλτε κενό στη γραµµη 31 " %c". - Επίσης αν δοθεί δολλάριο, εκτελεί το πρόγραµµα, εκτυπώνει character not found!, και µετά τερµατίζει. Έπρεπε να βάλετε τον έλεγχο πριν εκτελεστεί η επανάληψη. - Η συνάρτηση remove_char υπολογίζει και επιστρέφει σωστά τις φορές που συναντάται ο χαρακτήρας. - Δεν γίνεται σωστά η αντιγραφή των επόµενων θέσεων του string, ολοκληρώστε τη χρησιµοποιώντας τη memmove. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Σωστή καταχώρηση '\0' στο str3 (µπορούσατε να δώσετε καλύτερα ονόµατα, π.χ intersection). - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζετε µέσα σε εισαγωγικά "Helo". - Υπολοποιήσατε σωστά τη συνάρτηση. - Καλώς σκεφτήκατε να χρησιµοποιήσετε τις συναρτήσεις strchr και memmove. - Αν δοθεί $ ως χαρακτήρας εκτελείται το πρόγραµµα, βγάζει λάθος αποτελέσµατα και µετά τερµατίζει, ο έλεγχος θα έπρεπε να γίνει πριν την εκτέλεση της επανάληψης. - Σωστή λογική. - Γενικά, καλή προσπάθεια. - Σωστή στοίχιση. - Σωστός έλεγχος αν υπάρχει και σωστή αφαίρεση του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Λάθος υλοποίηση της συνάρτηση create_intersection_str. - Υλοποιήστε την άσκηση στο σπίτι. - Υλοποιήστε την άσκηση στο σπίτι. Page 1

2 lab10grades - Σωστή στοίχιση. Απουσία σχολίων. - Δεν τσεκάρετε αν υπάρχει και δεν αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Οι εντολές ανακύκλωσης στην συνάρτηση create_intersection_str πρέπει να σταµατούν στο strlen(str1) και να µην αυξάνουν τον δείκτη µέχρι SIZE. - Δεν τσεκάρετε εάν ο χαρακτήρας που πάτε να εισάγετε έχει ήδη καταχωρηθεί σε προηγούµενη επανάληψη στον instersection string. - Καµία αρχικοποίηση για το intersection_array! - Η άσκηση φαίνεται να δουλεύει (µε κάποια λάθη), έχει όµως αρκετά προβλήµατα. - Προσπαθήστε να κάνετε την άσκηση στο σπίτι. - Σωστή στοίχιση. Απουσία σχολίων. - Δεν τσεκάρετε αν υπάρχει και δεν αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets πράγµα που δηµιουργεί πρόβληµα στο πρόγραµµα σας. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Η εντολή τερµατισµού της ανακύκλωσης στο while είναι σωστή. - Η ανακύκλωση µέσα στη συνάρτηση remove_char θα πρέπει να πηγαίνει µέχρι strlen(str) και όχι µέχρι SIZE. - H memmove θα πρέπει να αντιγράφει έως strlen(a) - i και όχι έως SIZE-i. - Προσπαθήστε να επαναλάβετε σωστά την άσκηση στο σπίτι. -Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι καλά. Επίσης, σωστά καλείτε τις συναρτήσεις που φτιάξατε -Σωστή χρήση της strlen(str) - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; Πολλά Warnings!!! -Η άσκηση σας είναι ηµιτελής και η ζητούµενη αντικατάσταση δεν γίνεται -Υλοποιήστε την άσκηση στο σπίτι. - Καλά ονόµατα µεταβλητών και παραµέτρων στις συναρτήσεις. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Στη γραµµη 38, µάλλον ξεχάσατε το backslash: '0' -> '\0'. Γι' αυτό αν δοθεί απλά enter ως 2ο string δίνει τοµή 0, ενώ δεν έπρεπε να εκτυπώνει κάτι. - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζεται µέσα σε εισαγωγικά "Helo". - Υπολοποιήσατε σωστά τη συνάρτηση. - Καλώς σκεφτήκατε να χρησιµοποιήσετε τις συναρτήσεις strchr και memmove. - Εκτυπώνονται επιπλέον χαρακτήρες µετά την αφαίρεση, γιατί δε δουλεύει σωστά η memmove. Αυτή η συνάρτηση είναι void, απλά την καλείται (αφαιρεστε το string_1=). Επίσης δεν ορίζονταν σωστά τα bytes, memmove(ptr,ptr + 1,strlen(string_1) - i); - Σωστή λογική. - Γενικά, καλή προσπάθεια. Page 2

3 Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι καλά. Επίσης, σωστά καλείτε τις συναρτήσεις που φτιάξατε -Σωστή χρήση της strlen(str) - Σωστή αρχικοποίηση όλων των στοιχείων σε '\0' µε τη δήλωση: char string1[size]={'\0'}; -Δεν εκτυπώνονται αποτελέσµατα γιατί δεν έχετε τελειώσει την άσκηση.είστε κοντά στη λύση ωστόσο -Συνεχίστε την άσκηση στο σπίτι. - Το αρχείο πρέπει να έχει επέκταση.tgz FAIL : - Λάθος αρχικοποίηση. Το three_str έχει µέγεθος 2*SIZE και αρχικοποιείτε µόνο το µισό. - Μετά την κλήση στην fgets έπρεπε να ανιχνεύετε αν έχει αποθηκευτεί και το \n στο string, κι αν ναι, να το σβήνετε. - Λάθος υλοποίηση της create_union_str. Κατ'αρχήν έπρεπε να πηγαίνετε µέχρι strlen και όχι µέχρι SIZE-1. Επιπλέον, ο µετρητής για το third_str έπρεπε να είναι διαφορετικός του i. Τέλος, η χρήση της strcat είναι λάθος γιατί αντιγράφει ολόκληρο το δεύτερο string στο τρίτο χωρίς να ελέξει αν οι υπόλοιποι χαρακτήρες του υπάρχουν ήδη. - Στην εκτύπωση του τελικού string έπρεπε να υπάρχουν και " " : - Λάθος µεγέθη των strings. Μην κάνετε copy+paste από τη µια άσκηση στην άλλη! - Άσχηµα ονόµατα παραµέτρων.. Γιατί δε χρησιµοποιείτε τα dest, target, replacement που είναι περιγραφικά? - Η µεταβλητή k (επίσης άσχηµο όνοµα) έπρεπε να αυξάνεται µόνο όποτε γίνεται αντικατάσταση, κι όχι πάντα. - Το loop έπρεπε να τρέχει όσο η strstr επιστρέφει µη-µηδενικό pointer. - Η σύγκριση των strlen θα ήταν καλύτερα να γίνεται στην αρχή της συνάρτησης ώστε να επιστρέφει απευθείας αν δεν είναι ίσα. - Η χρήση strcat είναι λάθος γιατί κολλάει το ένα string στο άλλο. Εµείς θέλουµε αντιγραφή: το σωστό θα ήταν να χρησιµοποιούσατε strncpy. : - Το σβήσιµο του \n δε γίνεται µε πολύ καλό τρόπο. Αν υπάρχει, θα είναι µια θέση πριν το \0. Αρκούσε να ελέγξετε εκεί αντί για όλο το string. Σε κάθε περίπτωση, δεν έχει νόηµα να πάτε µέχρι το SIZE.Οτιδήποτε µετά το \0 είναι "σκουπίδια" - Όταν διατρέχουµε strings δεν πάµε ποτέ µέχρι το SIZE, αλλά µέχρι το \0. Οτιδήποτε είναι µετά το \0 είναι σκουπίδια και όχι έγκυρα δεδοµένα, άρα δεν πρέπει να το κοιτάµε. - Κατά τα άλλα σωστός και καλογραµµένος αλγόριθµος. : - Και πάλι προσέξτε τα όρια των loops. Δεν πρέπει να πηγαίνετε µέχρι SIZE. Ακόµη χειρότερα, βγαίνετε εκτός ορίων του string. - Ελλιπής άσκηση. Τελειώστε τη στο σπίτι. Προσέξτε ιδιαίτερα πώς θα σβήσετε διαδοχικούς ίδιους χαρακτήρες. Επίσης, έπρεπε να χρησιµοποιείτε συναρτήσεις από το string.h, για παράδειγµα strchr. Page 3

4 : - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; - Οι γραµµές 60 κι 67 είναι περιττές αφού αµέσως µετά δίνετε τιµή στο backnfinder. - Το string3 θα µπορούσε να λεγόταν string_union. - Το k είναι περιττό. Θα µπορούσατε να ξαναχρησιµοποιούσατε i στη θέση του. - Αυτό που κάνετε µε το j είναι σωστό, αλλά όχι πολύ κοµψό κι απλό. Αντί να το αυξάνετε κάθε φορά µαζί µε το i και να το µειώνετε στο else, θα µπορούσατε να είχατε παραλήψει τελείως το else και να αυξάνατε το j µόνο µέσα στο if. - Σωστός αλγόριθµος. - Σωστά ελέγχετε τα strings µέχρι το strlen. Θα µπορούσατε να είχατε <len1 αντί για <=len1, αφού δε µας ενδιαφέρει να ελέγξουµε και το \0 - Σωστή εκτύπωση των " " γύρω από το string. : - Η strcpy δεν είναι καλή επιλογή γιατί αντιγράφει και το \0 που δεν θέλουµε. Έπρεπε να είχατε χρησιµοποιήσει strncpy. - Κατά τα άλλα όλα οκ : - Τα '\n' έπρεπε να αφαιρούνται (αν υπάρχουν) από τα input1, input2 στη main. Είναι θέµα design: Η συνάρτηση create_union_str έχει ως σκοπό να κατασκευάζει την ένωση των strings που της δίνουµε. Δεν είναι δουλειά της να ξέρει αν έχουν περιττά \n µέσα ή όχι. - Θα µπορούσατε να είχατε αποφύγει τις putchar και να είχατε απλά \" στην printf στο σηµείο που θέλετε να εκτυπώσετε τα " - Για να λειτουργήσει σωστά η strchr, πρέπει το output να έχει πάντα \0 µετά το τελευταίο έγκυρο στοιχείο του. Η πιο απλή λύση γι αυτό θα ήταν να το αρχικοποιείτε ώστε να έχει παντού \0 πριν ξεκινήσετε να γράφετε πράγµατα σε αυτό. - Σωστά ελέγχετε τα strings µέχρι το strlen - Κατά τα άλλα οκ. : - Εδώ γίνεται σωστα ο έλεγχος για \n πριν αφαιρεθεί από το string. - Σωστή η µία αντικατάσταση. Βάλτε και το loop στο σπίτι για να ολοκληρώσετε την άσκηση Καλά ονόµατα µεταβλητών. - Σωστός ορισµός συναρτήσεων. - Σωστός ο έλεγχος και η αφαίρεση του \n. - Σωστή η αρχικοποίηση του union_string στην main. - Δεν εκτυπώνετε τα διπλά εισαγωγικά στο τελικό µήνυµα. - Σωστά τα όρια των δύο while loops στη συνάρτηση create_union_str. - Η έξοδος του προγράµµατος είναι σωστή αλλά όχι συνεπής. - Αν δεν καλούσατε την str_replace στην γραµµη 58 άσκοπα το πρόγραµµά σας θα δούλευε σωστά. - Σωστή χρήση της strstr και strncpy. - Σωστός ο έλεγχος µε την strlen. - Σωστή υλοποίηση της συνάρτησης. Page 4

5 02118 lab10grades Άσκηση - ΧΑΛΙΑ όνοµατα µεταβλητών και παραµέτρων. - Καθόλου σχόλια. - Επρεπε να χρησιµοποιήσετε τις συναρτήσεις απο το string.h για να αφαιρέσετε τον χαρακτήρα \n από τις συναρτήσεις που διαβάζετε. - Δεν αφαιρείτε τον χαρακτήρα \n από το δέυτερο string που διαβάζετε. - Το σωστό θα ήταν η αρχικοποίηση όλων των στοιχείων σε '\0' το οποίο µπορείί να γίνει και στη δήλωση: char strfinal[2*size]={'\0'}; και όχι char union_string[2*size]=""; που κάνατε εσείς. - Σωστός αλγόριθµος στο union. - Δεν εκτυπώνετε το ζητούµενο µήνυµα εξόδου για την union string. - Λάθος αποτελέσµατα γιατί παραµένει ο χαρακτήρας \n και δεν υπάρχει \0 στο union_string. - H άσκηση δεν κάνει compile, συνεχίστε την άσκηση σπίτι Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι καλά. Επίσης, σωστά καλείτε τις συναρτήσεις που φτιάξατε -Σωστή χρήση της strlen(str) - Σωστή αρχικοποίηση όλων των στοιχείων σε '\0' µε τη δήλωση: char string1[size]={'\0'}; Υπολοποιήσατε σωστά τη συνάρτηση. - Σωστή χρήση συναρτήσεων - Καλά όνοµατα µεταβλητών και παραµέτρων. Άσκηση - Καλά όνοµατα µεταβλητών και παραµέτρων. - Θα θέλαµε και άλλα σχόλια. - Επρεπε να χρησιµοποιήσετε τις συναρτήσεις απο το string.h για να βρίσκετε αν κάποιος χαρακτήρας υπάρχει (βλέπε γραµµές 12-38). - Σωστή αρχικοποίηση του union_str σε '\0'. - Σωστός αλγόριθµος στο union ΑΛΛΑ πολύπλοκος!. - Δεν εκτυπώνετε το ζητούµενο µήνυµα εξόδου για την union string. - Η άσκηση δεν κάνει compile γιατι δεν έχετε βάλει σωστά τα σχόλια σας. - Το αρχείο που στέλνετε πρέπει να έχει κατάληξη.tgz Page 5

6 Σωστή στοίχιση, σχόλια ΟΚ. - Kάνετε έλεγχο αν υπάρχει και σωστά αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Σωστά όρια στην εντολή ανακύκλωσης στην συνάρτηση create_intersection_str. - Σωστά ελέγχετε εάν υπάρχει ο χαρακτήρας που αναζητείτε στο str1 και εάν δεν υπάρχει στο str3 µε χρήση της συνάρτησης strchr. - Σωστή αρχικοποίηση του int_str. Επίσης, σωστά κάθε φορά που καταχωρείτε ένα νέο χαρακτήρα στο str3 βάζετε αµέσως µετά τον χαρακτήρα '\0' ώστε να τερµατίσετε και πάλι το string. - Σωστή στοίχιση και σχόλια. - Κάνετε έλεγχο αν υπάρχει και σωστά αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Σωστή εντολή ανακύκλωσης do-while, σωστή συνθήκη τερµατισµού και σωστές εκτυπώσεις. - Η υλοποίηση της remove_char δεν δουλεύει σωστά. H σωστή συνθήκη στην memmove θα ήταν memmove(str+i,str+i+1,strlen(str+i)); ή memmove(&str[i],&str[i+1],strlen(&str[i])); αντί για memmove(str,str+1,size-i); - Τα ονόµατα των µεταβλητών και των παραµέτρων θα µπορούσαν να ήταν πιο περιγραφικά. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε και ελέγχετε πριν κάνετε την αφαίρεση. - Σηµαντική παράλειψη είναι οτι δεν εχετε κάνει αρχικοποίηση τον πίνακα intersection. Μπορούσατε είτε να αρχικοποιήσετε ολόκληρο τον πίνακα µε \0 είτε σε κάθε βήµα της επανάληψης να θέτετε \0 στην επόµενη θέση. - H έξοδος που εκτυπώνετε δεν είναι ακριβώς όπως σας τη ζητάµε Ηµιτελής άσκηση. Ολοκληρώστε την στο σπίτι. - Η άσκηση δεν κάνει αυτό που ζητήσαµε. Εν µέρη έχετε κάνει κάποια πράγµατα όπως να αφαιρείτε τα ψηφία αλλά αντι να συγχωνεύετε το καινούριο string, απλά βάζετε στη θέση τους κενούς χαρακτήρες. Επίσης δεν είναι σωστός ο τρόπος που ζητάτε να σας δοθεί το καινούριο γράµµα. - Καλά ονόµατα µεταβλητών και παραµέτρων. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζεται µέσα σε εισαγωγικά "Helo". - Καλή προσπάθεια σε αυτή την άσκηση. - Δεν έκανε compile. - Το όνοµα της συνάρτησης είναι memmove, ψάξ'τε πως συντάσσεται. Δε παίρνει ορίσµατα θέσεις πινάκων αλλά δείκτες. *pointer = str1[i]; memmove(pointer, pointer +1,strlen(str1)-i); - Η συνάρτηση θα επέστρεφε σωστά αποτελέσµατα αν είχατε σωστά τη memmove. - Η επανάληψη στη main δε λειτουργεί εντελώς σωστά, οι γραµµές θα έπρεπε να µπουν πριν τη while. Page 6

7 02126 FAIL : - Καλή χρήση #define, αλλά το µέγεθος του format string δεν πρέπει να εξαρτάται από το SIZE. - Σωστός αλγόριθµος δηµιουργιας της ένωσης. - Σωστά πηγαίνετε µέχρι strlen στα loops. - Μην αφήνετε µεγάλα κενά στον κώδικα! - Σωστός έλεγχος και απαλοιφή του \n που αποθηκευει η fgets. - Στην εκτύπωση του τελικού string έπρεπε να υπάρχουν και " " : - Ελάχιστη δουλειά, και δεν κάνει compile. Ολοκληρώστε τη στο σπίτι. - Καλά ονόµατα µεταβλητών. - Σωστός ορισµός συναρτήσεων. - Η αφαίρεση του \n γίνεται σωστά αλλά όχι µε τον προτεινόµενο τρόπο (strchr). - Σωστή αρχικοποίηση του union_string στην main. - Σωστά τα όρια των δύο for loops στη συνάρτηση create_union_str. - Δεν εκτυπώνετε τα διπλά εισαγωγικά στο τελικό µήνυµα. - Η έξοδος του προγράµµατος είναι σωστή. - Υπολογίζετε κάθε φορά το µήκος του target ενώ είναι σταθερό. - Η επανάληψη δεν είναι σωστή! Θέλετε ο κώδικας να συνεχίζει όσο υπάρχουν εµφανίσεις του target. - Η sizeof επιστρέφει µέγεθος σε bytes και όχι µήκος συµβολοσειράς. - Στην fgets δεν ελέγχετε για NULL τιµές. - Έχετε αλγοριθµικό λάθος στην str_replace µε αποτέλεσµα ο κώδικας να "σκάει". - Το αρχείο που στέλνετε πρέπει να έχει κατάληξη.tgz - Τα ονόµατα των µεταβλητών θα µπορούσαν να είναι πιο περιγραφικά. - Καλός ο ορισµός των συναρτήσεων αλλά δεν χρειαζόταν να βάλετε πάλι τα µεγέθη των πινάκων στη συνάρτηση create_union_str. - Σωστός ο έλεγχος και η αφαίρεση του \n από τo πρώτο µήνυµα. Αλλά δεν το κάνετε στο δεύτερο. - Σωστά τα όρια των δύο for loops στη συνάρτηση create_union_str. - Σωστή η αρχικοποίηση του union_string στην main. - Δεν εκτυπώνετε τα διπλά εισαγωγικά στο τελικό µήνυµα. - Η έξοδος του προγράµµατος είναι σωστή αλλά η εκτύπωση του τελικού µηνύµατος έπρεπε να γίνεται µέσα στην main. - Ζητάτε από τον χρήστη 3 διαφορετικές εισόδους µε το ίδιο µήνυµα. - Δεν επιστρέφετε το αποτέλεσµα σε µία µεταβλητή, ούτε την εκτυπώνετε. - Στην str_replace θα µπορούσατε πρώτα να θέσεταε το temp µε τον δείκτη που επιστέφει η strstr και µετά στην συνθήκη να βάλετε το temp µόνο. - Δεν αφαιρείτε το '\n' από το µήνυµα που διαβάζει η fgets. - Λάθος ο έλεγχος για τα µήκη του target και replacement. Αντί για το replacement έχετε βάλει το µήκος του αρχικού string. - Ο κώδικας δεν λειτουργεί σωστά και γίνεται αντικατάσταση µόνο στην τελική εµφάνιση του target. Page 7

8 FAIL - Σωστή στοίχιση. Απουσία σχολίων. - Δεν κάνετε έλεγχο αν υπάρχει και δεν αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. Η γραµµή 29 είναι το κόλπο για να αφαιρέσετε τον χαρακτήρα αλλαγής γραµµής εκ των υστέρων. - Σωστά όρια στην εντολή ανακύκλωσης στην συνάρτηση create_intersection_str (έως strlen(str1). - Απουσιάζει η αρχικοποίηση του int_str. Σωστά ανανεώνετε τον χαρακτήρα '\0' στο τέλος του init_str, χωρίς όµως να το έχετε αρχικοποιήσει. - Σωστή στοίχιση. Απουσία σχολίων. - Σωστά αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. Θα ήταν σωστότερο αν τσεκάρατε αν υπάρχει ο χαρακτήρας πριν τον αφαιρέσετε. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Σωστή εντολή ανακύκλωσης while() και σωστές εκτυπώσεις. - Σωστή υλοποίηση της remove_char. Θα ήταν προτιµότερο να γράφατε char *ptr = strchr(str,character); memmove(ptr,ptr+1,strlen(ptr)); ώστε να µην καλείτε την strchr πολλές φορές για την ίδια λειτουργία. Άσκηση - ΧΑΛΙΑ όνοµατα µεταβλητών και παραµέτρων. - Καθόλου σχόλια. - Θα έπρεπε η αρχικοποίηση του union string και η αφαίρεση του χαρακτήρα '\n' να γίνονται στην main και όχι µέσα στην συνάρτηση. - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char strfinal[2*size]={'\0'}; - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. Αλλά δεν τσεκάρατε αν όντως ο τελευταίος χαρακτήρας είναι '\n'. - Σωστός αλγόριθµος στο union. - Δεν εκτυπώνετε το ζητούµενο µήνυµα εξόδου για την union string. - Σωστά αποτελέσµατα. - Καθόλου σχόλια. - Καλά όνοµατα µεταβλητών και παραµέτρων. - Η υλοποίηση σας δεν δουλεύει συνεχίστε την άσκηση σπίτι. Hint: Η strncpy δεν µπορεί να κάνει αυτό που ζητάει η άσκηση, και επίσης την χρησιµοποιείται και λάθος. - Στείλατε µαζί και το εκτελέσιµο αρχείο (θυµίζω να µη το ξανακάνετε). - Καλά ονόµατα µεταβλητών και παραµέτρων στις συναρτήσεις. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζεται µέσα σε εισαγωγικά "Helo". - Καλή προσπάθεια σε αυτή την άσκηση. - Δεν στείλατε κάτι. Υλοποιήστε τη µόνοι σας, είναι καλή εξάσκηση. Για τη συνάρτηση remove_char χρησιµοποιήστε τη strchr και τη memmove. Page 8

9 Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Σωστή καταχώρηση '\0' στο str3 (µπορούσατε να δώσετε καλύτερα ονόµατα, π.χ intersection). - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζετε µέσα σε εισαγωγικά "Helo". - Υπολοποιήσατε σωστά τη συνάρτηση. - Καλώς σκεφτήκατε να χρησιµοποιήσετε τις συναρτήσεις strchr και memmove. - Αν δοθεί $ ως χαρακτήρας εκτελείται το πρόγραµµα, βγάζει λάθος αποτελέσµατα και µετά τερµατίζει, ο έλεγχος θα έπρεπε να γίνει πριν την εκτέλεση της επανάληψης. - Σωστή λογική. - Γενικά, καλή προσπάθεια. : - Πολύ άσχηµα ονόµατα µεταβλητών - Μετά τις fgets έπρεπε να γίνεται έλεγχος για το αν έχει αποθηκευτεί στο string το \n κι αν ναι να σβήνεται - Για να λειτουργήσει σωστά η strchr, πρέπει το output να έχει πάντα \0 µετά το τελευταίο έγκυρο στοιχείο του. Η πιο απλή λύση γι αυτό θα ήταν να το αρχικοποιείς ώστε να έχει παντού \0 πριν ξεκινήσεις να γράφεις πράγµατα σε αυτό. - Στη διάτρεξη των string πρέπει να πηγαίνεις µέχρι όσο είναι το µήκος του (strlen) και όχι το µέγεθος του πίνακα. - Δεν είναι άσχηµη η ιδέα σου για τη χρήση strlen ώστε να βρεις σε ποιο σηµείο του τρίτου string πρέπει να µπει ο χαρακτήρας αλλά δε λειτουργεί σωστά γιατί δεν τον έχεις αρχικοποιήσει µε \0 (οπότε η strlen δεν ξέρει πότε να σταµατήσει να µετράει). Επιπλέον, αντί για strlen(str3+1) µήπως εννοούσες strlen(str3)+1? - Στην εκτύπωση του τελικού string έπρεπε να υπάρχουν και " " : - Δεν αρχικοποιείς τη µεταβλητή antikatastash µε αποτέλεσµα να περιέχει σκουπίδια τελικά. - Η τρίτη παράµετρος της strncpy πρέπει να είναι ακέραιος που λέει πόσους χαρακτήρες θέλουµε να αντιγραφούν. Όχι δείκτης. - Οι παράµετροι της strstr είναι λάθος. Θέλουµε να βρούµε το target στο dest, άρα έπρεπε να έχουν την αντίθετη σειρά. - Ο έλεγχος του µήκους θα ήταν καλύτερα να γίνεται στην αρχή της συνάρτησης ώστε να επιστρέφει αµέσως αν δεν είναι ίσα. : - Το string3 θα µπορούσε να λεγόταν string_union. - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; - Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι πολύ καλά Επίσης, σωστά καλείτε τις συναρτήσεις που φτιάξατε. -Σωστή χρήση της strlen(str) -Καλή δουλειά - Υπολοποιήσατε σωστά τη συνάρτηση. - Σωστή χρήση συναρτήσεων - Καθόλου σχόλια. - Καλά όνοµατα µεταβλητών και παραµέτρων. Page 9

10 02139 lab10grades : - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; - Πριν σβήσετε το \n, πρέπει να ελέγξετε αν όντως το έβαλε η fgets στο τέλος του string - Σωστή συνάρτηση. - Σωστά ελέγχετε τα strings µέχρι το strlen. - Στην τελική printf έπρεπε να εκτυπώνετε και " " γύρω από το string ένωσης : - Η συνάρτηση έπρεπε να είναι int κι όχι void γιατί πρέπει να επιστρέφει το πλήθος αντικαταστάσεων. - Προσθέστε και το loop στο σπίτι, ώστε να γίνονται όλες οι αντικαταστάσεις. - Τα ονόµατα των µεταβλητών και των παραµέτρων θα µπορούσαν να ήταν πιο περιγραφικά. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε και ελέγχετε πριν κάνετε την αφαίρεση. - Σηµαντική παράλειψη είναι οτι δεν εχετε κάνει αρχικοποίηση τον πίνακα intersection. Μπορούσατε είτε να αρχικοποιήσετε ολόκληρο τον πίνακα µε \0 είτε σε κάθε βήµα της επανάληψης να θέτετε \0 στην επόµενη θέση. - H έξοδος που εκτυπώνετε δεν είναι ακριβώς όπως σας τη ζητάµε Ηµιτελής άσκηση. Ολοκληρώστε την στο σπίτι. - Η άσκηση δεν κάνει αυτό που ζητήσαµε. Εν µέρη έχετε κάνει κάποια πράγµατα όπως να αφαιρείτε τα ψηφία αλλά αντι να συγχωνεύετε το καινούριο string, απλά βάζετε στη θέση τους κενούς χαρακτήρες. Επίσης δεν είναι σωστός ο τρόπος που ζητάτε να σας δοθεί το καινούριο γράµµα. Άσκηση1 -Δεν έχετε καλά ονόµατα παραµέτρων. -Σωστή χρήση fgets -Δεν ελέγχετε αν έχει αποθηκευτεί ο χαρακτήρας αλλαγής γραµµής στις συµβολοσειρές, επίσης στις σειρές 31,34 πάτε και βάζετε το \0 µε αποτέλεσµα να διαγράψετε ένα στοιχείο και να µη δουλεύει σωστά το πρόγραµµά σας. Το strlen επιστρέφει το µέγεθος του string χωρίς να µετράει το \0. -Σωστοί τύποι και κλήση συναρτήσεων. -Στην τελική printf δεν τυπώνετε διπλά εισαγωγικά γύρω από το τελικό string. Άσκηση2 -Δεν υλοποιείτε σωστά την άσκηση. -Η εκτύπωση για το πόσα γράµµατα αφαιρέθηκαν έπρεπε να γίνετε στη main και όχι µέσα στη συνάρτηση. Page 10

11 lab10grades - Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι οκ. Μπορείτε να τα κάνετε και πιο περιγραφικά. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε και ελέγχετε πριν κάνετε την αφαίρεση. - Σηµαντική παράλειψη είναι οτι δεν εχετε κάνει αρχικοποίηση τον πίνακα intersection. Μπορούσατε είτε να αρχικοποιήσετε ολόκληρο τον πίνακα µε \0 είτε σε κάθε βήµα της επανάληψης να θέτετε \0 στην επόµενη θέση. - H έξοδος που εκτυπώνετε είναι σωστή - Ηµιτελής άσκηση. Ολοκληρώστε την στο σπίτι. - Το αρχείο που στέλνετε πρέπει να έχει κατάληξη.tgz - Τα ονόµατα των µεταβλητών θα µπορούσαν να είναι πιο περιγραφικά. - Καλός ο ορισµός των συναρτήσεων αλλά δεν χρειαζόταν να βάλετε πάλι τα µεγέθη των πινάκων στη συνάρτηση create_union_str. - Σωστός ο έλεγχος και η αφαίρεση του \n από τo πρώτο µήνυµα. Αλλά δεν το κάνετε στο δεύτερο. - Σωστά τα όρια των δύο for loops στη συνάρτηση create_union_str. - Σωστή η αρχικοποίηση του union_string στην main. - Δεν εκτυπώνετε τα διπλά εισαγωγικά στο τελικό µήνυµα. - Η έξοδος του προγράµµατος είναι σωστή αλλά η εκτύπωση του τελικού µηνύµατος έπρεπε να γίνεται µέσα στην main. - Ζητάτε από τον χρήστη 3 διαφορετικές εισόδους µε το ίδιο µήνυµα. - Δεν επιστρέφετε το αποτέλεσµα σε µία µεταβλητή, ούτε την εκτυπώνετε. - Στην str_replace θα µπορούσατε πρώτα να θέσεταε το temp µε τον δείκτη που επιστέφει η strstr και µετά στην συνθήκη να βάλετε το temp µόνο. - Δεν αφαιρείτε το '\n' από το µήνυµα που διαβάζει η fgets. - Λάθος ο έλεγχος για τα µήκη του target και replacement. Αντί για το replacement έχετε βάλει το µήκος του αρχικού string. - Ο κώδικας δεν λειτουργεί σωστά και γίνεται αντικατάσταση µόνο στην τελική εµφάνιση του target. Page 11

12 Σωστή στοίχιση, σχόλια ΟΚ. - Kάνετε έλεγχο αν υπάρχει και σωστά αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. Θα µπορούσατε για την αναζήτηση του χαρακτήρα να χρησιµοποιήσετε την συνάρτηση strchr. - Σωστά όρια στην εντολή ανακύκλωσης στην συνάρτηση create_intersection_str. - Δεν χρησιµοποιείται τη συνάρτηση strchr για να εντοπίσετε αν υπάρχει ένα χαρακτήρας από το str1 µέσα στο str2. Αντ' αυτού το κάνετε µε εντολή ανακύκλωσης. - Απουσιάζει η αρχικοποίηση του int_str. Επίσης, παραλείτε κάθε φορά που καταχωρείτε ένα χαρακτήρα στο str3 να βάλετε αµέσως µετά τον χαρακτήρα '\0' ώστε να τερµατίσετε το string. - Σωστή στοίχιση και σχόλια. - Δεν διαβάζετε µε fgets, όπως σας υποδείχθηκε αλλά µε scanf. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Σωστή εντολή ανακύκλωσης do-while, σωστή συνθήκη τερµατισµού και σωστές εκτυπώσεις. - Σωστή υλοποίηση της remove_char. - Σωστή στοίχιση. - Σωστά τσεκάρετε αν υπάρχει και αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Δεν χρησιµοποιείται τη συνάρτηση strchr από το string.h για να εντοπίσετε αν υπάρχει ο χαρακτήρας µέσα στο 2ο string, αλλά το κάνετε µε µία εντολή ανακύκλωσης for. - Η αρχικοποίηση του πίνακα cr_inter_str είναι ανύπαρκτη Σωστή στοίχιση. - Σωστά τσεκάρετε αν υπάρχει και αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Η εντολή τερµατισµού της ανακύκλωσης µε χρήση if είναι σωστή. - Δεν χρησιµοποιείται τη συνάρτηση strchr από το string.h για να εντοπίσετε αν υπάρχει ο χαρακτήρας µέσα στη συµβολοσειρά πράγµα που ζητούνταν από την άσκηση. - Η ανακύκλωση µέσα στη συνάρτηση remove_char είναι σωστή. - Η αντιγραφή των στοιχείων κατά µία θέση είναι σωστή, όπως και τα όρια από τα οποία αντιγράφετε. : - Στο σηµείο που ελέγχετε αν η fgets αποθήκευσε το \n στο string, καλείτε 3 φορές την strlen για κάθε string. Αυτό είναι αρκετά "σπάταλη" χρήση συναρτήσεων. Εφόσον χρειάζεστε περισσότερες από µία φορά αυτό το αποτέλεσµα, βάλτε το σε µια µεταβλητή και χρησιµοποιήστε αυτή. - Σωστός υπολογισµός της τοµής, αλλά προσπαθήστε να σκεφτείτε µια πιο κοµψή/σύντοµη λύση (hint: χρησιµοποιήστε strchr) - Σωστή εκτύπωση των " " γύρω από το τελικό string : - Σωστή λύση, αλλά θα ήταν ακόµη πιο σωστό να διαβάζετε το χαρακτήρα προς αφαίρεση µε getchar, ώστε να διαβαστεί σωστά ακόµη και κενό (space). Η scanf θα αγνοήσει το κενό. - Πολύ καλά ονόµατα µεταβλητών και γενικά καλογραµµένος κώδικας. Page 12

13 02149 lab10grades Άσκηση1 -Δεν έχετε καλά ονόµατα παραµέτρων. -Σωστή χρήση fgets -Δεν ελέγχετε αν έχει αποθηκευτεί ο χαρακτήρας αλλαγής γραµµής στις συµβολοσειρές, επίσης στις σειρές 31,34 πάτε και βάζετε το \0 µε αποτέλεσµα να διαγράψετε ένα στοιχείο και να µη δουλεύει σωστά το πρόγραµµά σας. Το strlen επιστρέφει το µέγεθος του string χωρίς να µετράει το \0. -Σωστοί τύποι και κλήση συναρτήσεων. -Στην τελική printf δεν τυπώνετε διπλά εισαγωγικά γύρω από το τελικό string. Άσκηση2 -Δεν υλοποιείτε σωστά την άσκηση. -Η εκτύπωση για το πόσα γράµµατα αφαιρέθηκαν έπρεπε να γίνετε στη main και όχι µέσα στη συνάρτηση. - Σωστή στοίχιση. - Σωστά τσεκάρετε αν υπάρχει και αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Δεν χρησιµοποιείται τη συνάρτηση strchr από το string.h για να εντοπίσετε αν υπάρχει ο χαρακτήρας µέσα στο 2ο string, αλλά το κάνετε µε µία εντολή ανακύκλωσης for. - Η αρχικοποίηση του πίνακα cr_inter_str είναι ανύπαρκτη Σωστή στοίχιση. - Σωστά τσεκάρετε αν υπάρχει και αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Η εντολή τερµατισµού της ανακύκλωσης µε χρήση if είναι σωστή. - Δεν χρησιµοποιείται τη συνάρτηση strchr από το string.h για να εντοπίσετε αν υπάρχει ο χαρακτήρας µέσα στη συµβολοσειρά πράγµα που ζητούνταν από την άσκηση. - Η ανακύκλωση µέσα στη συνάρτηση remove_char είναι σωστή. - Η αντιγραφή των στοιχείων κατά µία θέση είναι σωστή, όπως και τα όρια από τα οποία αντιγράφετε. - Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι οκ. Θα µπορούσαν βέβαια να είναι και πιο περιγραφικά. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. Έχετε παραλείψει όµως να ελέγχετε οτι πραγµατικά υπάρχει το \n στο τέλος. - Έχετε κάνει σωστή αρχικοποίηση του πίνακα intersection σε κάθε βήµα της επανάληψης. - Σωστή η έξοδος που εκτυπώνετε. - Ηµιτελής άσκηση. Ολοκληρώστε την στο σπίτι. Page 13

14 : - Σωστή αρχικοποίηση του τελικού πίνακα και εισαγωγή δεδοµένων. - Σωστός αλγόριθµος στο union. - Σωστά ελέγχετε τα strings µόνο µέχρι το strlen. - Το σβήσιµο του \n δε γίνεται µε πολύ καλό τρόπο. Αν υπάρχει, θα είναι µια θέση πριν το \0. Αρκούσε να ελέγξετε εκεί αντί για όλο το string. Σε κάθε περίπτωση, δεν έχει νόηµα να πάτε µέχρι το SIZE.Οτιδήποτε µετά το \0 είναι "σκουπίδια" - Στην εκτύπωση του τελικού string έπρεπε να υπάρχουν και " " : - Δεν έχετε περιγραφικά ονόµατα παραµέτρων και µεταβλητών. στη συνάρτηση. Γιατί δε χρησιµοποιήσατε τα ετοιµα ονόµατα dest, target, replacement? - Δε σβήνετε τα \n µε αποτέλεσµα να µη λειτουργεί σωστά η strstr - H χρήση strcpy είναι λάθος γιατί αντιγράφει και το \0. Το σωστό ήταν να χρησιµοποιήσετε strncpy. - Τα όρια του loop στη συνάρτηση δεν έχουν νόηµα. Πιο λογικό θα ήταν να τρέχει το loop όσο η strstr δεν επιστρέφει NULL. - Καλό θα ήταν να αποθηκεύατε το αποτέλεσµα της strstr σε µια µεταβλητή και να χρησιµοποιείτε αυτή, αντί να ξανακαλείτε τη συνάρτηση. - Η εκτύπωση του τελικού string έπρεπε να γίνεται στη main, όχι στην str_replace. - Η σύγκριση των strlen θα ήταν καλύτερα να γίνεται στην αρχή της συνάρτησης ώστε να επιστρέφει απευθείας αν δεν είναι ίσα Καλά ονόµατα µεταβλητών. - Σωστός ορισµός συναρτήσεων. - Δεν αφαιρείτε το '\n' από το µήνυµα που διαβάζει η fgets. - Σωστά τα όρια των δύο for loops στη συνάρτηση create_union_str. - Σωστή η αρχικοποίηση του union_string στην main. - Δεν εκτυπώνετε τα διπλά εισαγωγικά στο τελικό µήνυµα. - Αν και η λογική σας ήταν σωστή, στις δύο if στην συνάρτηση create_union_str έχετε κάνει ένα σηµαντικό λάθος. Στην if µπαίνουµε όταν η συνθήκη που του έχουµε δώσει είναι αληθής, δηλαδή µη µηδενική. Η συνάρτηση strchr επιστρέφει µη µηδενικό pointer αν βρει το χαρακτήρα και τότε "µπαίνει" στο if, ενώ εσείς θέλετε το ανάποδο. Αυτό έχει σαν αποτέλεσµα να το πρόγραµµά σας να µην µπαίνει ποτέ µέσα στην if και το τελικό string να είναι κενό. - Η έξοδος του προγράµµατος δεν είναι σωστή. - Το πρόγραµµά σας έχει λάθη µε αποτέλεσµα να µην κάνει compile. - Η συνάρτηση έπρεπε να είναι int ώστε να σας επιστρέφει το πλήθος των αντικαταστάσεων. Εσείς εκτυπώσατε στην main µία µεταβλητή που ορίσατε µόνο στην συνάρτηση αντικατάστασης. Page 14

15 Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι πολύ καλά - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. Έχετε παραλείψει όµως να ελέγχετε οτι πραγµατικά υπάρχει το \n στο τέλος. - Έχετε κάνει σωστή αρχικοποίηση του πίνακα intersection σε κάθε βήµα της επανάληψης. - Σωστή η έξοδος που εκτυπώνετε Η συνάρτηση που φτιάξατε υπολογίζει σωστά κι επιστρέφει τον ακέραιο που πρέπει. - Σηµαντική παράλειψη ήταν οτι φτιάξατε δικό σας loop για να βρείτε τον καθε χαρακτήρα που θα διαγράψετε (βασικά για να βρείτε τη θέση του). Υπάρχει τρόπος να το κάνετε µόνο µε µια strchr. Με µια απλή αναζήτηση στο internet µπορείτε να βρείτε και αυτόν τον τρόπο. Άσκηση - ΧΑΛΙΑ όνοµατα µεταβλητών και παραµέτρων. - Καθόλου σχόλια. - Θα έπρεπε η αρχικοποίηση του union string και η αφαίρεση του χαρακτήρα '\n' να γίνονται στην main και όχι µέσα στην συνάρτηση. - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char strfinal[2*size]={'\0'}; - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. Αλλά δεν τσεκάρατε αν όντως ο τελευταίος χαρακτήρας είναι '\n'. - Σωστός αλγόριθµος στο union. - Δεν εκτυπώνετε το ζητούµενο µήνυµα εξόδου για την union string. - Σωστά αποτελέσµατα Καθόλου σχόλια. - Καλά όνοµατα µεταβλητών και παραµέτρων. - Η υλοποίηση σας δεν δουλεύει συνεχίστε την άσκηση σπίτι. Hint: Η strncpy δεν µπορεί να κάνει αυτό που ζητάει η άσκηση, και επίσης την χρησιµοποιείται και λάθος. Άσκηση1 -Δεν έχετε πολύ καλά ονόµατα µεταβλητών και παραµέτρων. -Σωστή χρήση fgets -Δεν ελέγχετε άµα κατά την είσοδο των δεδοµένων διαβάζεται και αποθηκεύεται ο χαρακτήρας αλλαγής γραµµής στις συµβολοσειρές, έτσι ώστε να το σβήνετε πριν κληθεί η συνάρτηση. -Σωστοί τύποι και κλήση συναρτήσεων. -Στο for δεν έπρεπε να πάτε µέχρι SIZE. Δεν σηµαίνει ότι κάθε string θα έχει µήκος SIZE, έπρεπε να βρίσκετε το µήκος του µε strlen ή να σταµατάτε όταν βρίσκετε το \0. -Στην τελική printf δεν τυπώνετε διπλά εισαγωγικά γύρω από το τελικό string Άσκηση2 -Η εκτύπωση για το πόσα γράµµατα αφαιρέθηκαν έπρεπε να γίνετε στη main και όχι µέσα στη συνάρτηση Page 15

16 02161 : - Στο σηµείο που ελέγχετε αν η fgets αποθήκευσε το \n στο string, καλείτε 3 φορές την strlen για κάθε string. Αυτό είναι αρκετά "σπάταλη" χρήση συναρτήσεων. Εφόσον χρειάζεστε περισσότερες από µία φορά αυτό το αποτέλεσµα, βάλτε το σε µια µεταβλητή και χρησιµοποιήστε αυτή. - Σωστός υπολογισµός της τοµής, αλλά προσπαθήστε να σκεφτείτε µια πιο κοµψή/σύντοµη λύση (hint: χρησιµοποιήστε strchr) - Σωστή εκτύπωση των " " γύρω από το τελικό string : - Σωστή λύση, αλλά θα ήταν ακόµη πιο σωστό να διαβάζετε το χαρακτήρα προς αφαίρεση µε getchar, ώστε να διαβαστεί σωστά ακόµη και κενό (space). Η scanf θα αγνοήσει το κενό. - Πολύ καλά ονόµατα µεταβλητών και γενικά καλογραµµένος κώδικας. Άσκηση1 -Δεν έχετε καλά ονόµατα παραµέτρων. -Σωστοί τύποι και κλήση συναρτήσεων. -Στο for δεν έπρεπε να πάτε µέχρι SIZE. Δεν σηµαίνει ότι κάθε string θα έχει µήκος SIZE, έπρεπε να βρίσκετε το µήκος του µε strlen ή να σταµατάτε όταν βρίσκετε το \0. -Δεν αρχικοποιείτε σωστά τον str3 ώστε να έχει παντού /0 ούτε βάζετε το /0 στη σωστή θέση του πίνακα σε κάθε βήµα ώστε να δουλέψει σωστά το strchr, και έτσι δε δουλεύει σωστά το προγραµµά σας. -Στην τελική printf δεν τυπώνετε διπλά εισαγωγικά γύρω από το τελικό string. Άσκηση2 -Η άσκηση σας δεν κάνει compile - Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι πολύ καλά. -Στη for δεν έπρεπε να πάτε µέχρι SIZE. Δεν σηµαίνει ότι κάθε string θα έχει µήκος SIZE, έπρεπε να βρίσκετε το µήκος του µε strlen ή να σταµατάτε όταν βρίσκετε το \0. - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; -Δεν εκτυπώνονται ακριβώς τα ζητούµενα αποτελέσµατα ( εκτυπώνεται ένα '0' στην ένωση των strings -Η άσκηση σας δεν κάνει compile γιατί είναι ηµιτελής. -Υλοποιήστε την άσκηση στο σπίτι. Page 16

17 Τα ονόµατα των µεταβλητών και των παραµέτρων σας πρέπει να είναι πιο περιγραφικά. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. Έχετε παραλείψει όµως να ελέγχετε οτι πραγµατικά υπάρχει το \n στο τέλος. - Σηµαντική παραλειψη είναι οτι δεν εχετε κάνει αρχικοποιηση τον πίνακα intersection. Μπορούσατε είτε να αρχικοποιησετε ολοκληρο τον πίνακα µε \0 είτε σε κάθε βηµα της επανάληψης να θέτετε \0 στην επόµενη θέση. - H έξοδος που εκτυπώνετε δεν είναι ακριβώς όπως την ζητήσαµε. - H λειτουργικότητα που σας ζητήσαµε υπάρχει σε γενικές γραµµές. Υπάρχουν κάποια προβλήµατα µε τα µηνύµατα που εκτυπώνετε βέβαια! - Η συνάρτηση που φτιάξατε υπολογίζει σωστά κι επιστρέφει τον ακέραιο που πρέπει. - Πολύ σωστή η χρήση της συνάρτησης memmove! Άσκηση - Ονοµάτα µεταβλητών όπως "len1", "len2" δεν είναι αποδεκτά κατα τα άλλα οκ. - Σωστή αρχικοποίηση του union_str σε '\0'. - Σωστός αλγόριθµος στο union. - Δεν εκτυπώνετε το ζητούµενο µήνυµα εξόδου για την union string. - Σωστά αποτελέσµατα - Η άσκηση δεν κάνει compile Σωστή στοίχιση, σχόλια ΟΚ. - Kάνετε έλεγχο αν υπάρχει και σωστά αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. Θα µπορούσατε για την αναζήτηση του χαρακτήρα να χρησιµοποιήσετε την συνάρτηση strchr. - Σωστά όρια στην εντολή ανακύκλωσης στην συνάρτηση create_intersection_str. - Δεν χρησιµοποιείται τη συνάρτηση strchr για να εντοπίσετε αν υπάρχει ένα χαρακτήρας από το str1 µέσα στο str2. Αντ' αυτού το κάνετε µε εντολή ανακύκλωσης. - Απουσιάζει η αρχικοποίηση του int_str. Επίσης, παραλείτε κάθε φορά που καταχωρείτε ένα χαρακτήρα στο str3 να βάλετε αµέσως µετά τον χαρακτήρα '\0' ώστε να τερµατίσετε το string. - Σωστή στοίχιση και σχόλια. - Δεν διαβάζετε µε fgets, όπως σας υποδείχθηκε αλλά µε scanf. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Σωστή εντολή ανακύκλωσης do-while, σωστή συνθήκη τερµατισµού και σωστές εκτυπώσεις. - Σωστή υλοποίηση της remove_char. Page 17

18 - Σωστή στοίχιση, απουσία σχολίων. - Δεν κάνετε έλεγχο αν υπάρχει, αλλά σωστά αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Σωστά όρια στην εντολή ανακύκλωσης στην συνάρτηση create_intersection_str. - Σωστά ελέγχετε εάν υπάρχει ο χαρακτήρας που αναζητείτε στο string_1 και εάν δεν υπάρχει στο intersection_string µε χρήση της συνάρτησης strchr. - Σωστή τοποθέτηση του χαρακτήρα '\0' στο τέλος του intersection_string Σωστή στοίχιση, απουσία σχολίων. - Δεν κάνετε έλεγχο αν υπάρχει, αλλά σωστά αφαιρείτε του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Σωστή εντολή ανακύκλωσης do-while, σωστή συνθήκη τερµατισµού και σωστές εκτυπώσεις. - Αρκετά καλή υλοποίηση για την remove_char (βγάζει σωστά αποτελέσµατα), αλλά όχι απόλυτα σωστή. Το σωστό θα ήταν: char *ptr = strchr(string,character); memmove(ptr,ptr+1,strlen(ptr)); : - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; - Οι γραµµές 60 κι 67 είναι περιττές αφού αµέσως µετά δίνετε τιµή στο backnfinder. - Το string3 θα µπορούσε να λεγόταν string_union. - Το k είναι περιττό. Θα µπορούσατε να ξαναχρησιµοποιούσατε i στη θέση του. - Αυτό που κάνετε µε το j είναι σωστό, αλλά όχι πολύ κοµψό κι απλό. Αντί να το αυξάνετε κάθε φορά µαζί µε το i και να το µειώνετε στο else, θα µπορούσατε να είχατε παραλήψει τελείως το else και να αυξάνατε το j µόνο µέσα στο if. - Σωστός αλγόριθµος. - Σωστά ελέγχετε τα strings µέχρι το strlen. Θα µπορούσατε να είχατε <len1 αντί για <=len1, αφού δε µας ενδιαφέρει να ελέγξουµε και το \0 - Σωστή εκτύπωση των " " γύρω από το string. : - Η strcpy δεν είναι καλή επιλογή γιατί αντιγράφει και το \0 που δεν θέλουµε. Έπρεπε να είχατε χρησιµοποιήσει strncpy. - Κατά τα άλλα όλα οκ Page 18

19 : Σωστή δήλωση και κλήση της βοηθητικής συνάρτησης. - Ελλιπής στοίχιση, πολλές συνεχόµενες κενές γραµµές. - Η στοίχιση των βοηθητικών συναρτήσεων γίνεται στο ίδιο ύψος στοίχισης µε αυτό της main(). - Σωστά περιγραφικά ονόµατα µεταβλητών και παραµέτρων της βοηθητικής συνάρτησης. - Σωστή αναζήτηση χαρακτήρων µε βάση το µέγεθος της συµβολοσειράς και όχι το µέγεθος του πίνακα. - Σωστή αρχικοποίηση του τελικού πίνακα. - Σωστή αφαίρεση του χαρακτήρα αλλαγής γραµµής από τις συµβολοσειρές εισόδου. - Καλείτε την ίδια συνάρτηση (strlen()) δυο φορές άσκοπα αντί να αποθηκεύετε καπου το αποτέλεσµα την πρώτη φορά και να το χρησιµοποιεί µετά. - Στο µήνυµα εξόδου δεν περικλείετε την τελική συµβολοσειρά σε διπλά εισαγωγικά όπως ζητούσε η εκφώνηση. : FAIL - Καλείτε την ίδια συνάρτηση (strlen() και strstr()) δυο φορές άσκοπα αντί να αποθηκεύετε καπου το αποτέλεσµα την πρώτη φορά και να το χρησιµοποιεί µετά. - Σωστός έλεγχος ίσου µεγέθους µεταξύ του target και replacement. - Σωστή τιµή επιστροφής της βοηθητικής συνάρτησης. : -Προσέξτε µε τα ονόµατα των αρχείων (το σωστό είναι lab10a και όχι laba10)! - Το string3 θα µπορούσε να λεγόταν string_union. - Σωστή αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; - Τα αποτελέσµατα του union δεν είναι πάντα σωστά γιατί δε χρησιµοποιείτε σωστά την strspn. Η πιο κατάλληλη συνάρτηση γι αυτή την άσκηση είναι strchr. -Σωστή χρήση της strlen(str) -Η άσκηση σας δεν κάνει compile γιατί είναι ηµιτελής και υπάρχουν πολλά λάθη -Υλοποιήστε την άσκηση στο σπίτι FAIL - Σωστή στοίχιση. - Σωστός έλεγχος αν υπάρχει και σωστή αφαίρεση του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Λάθος υλοποίηση της συνάρτηση create_intersection_str. - Υλοποιήστε την άσκηση στο σπίτι. - Υλοποιήστε την άσκηση στο σπίτι FAIL Έχετε στείλει µόνο την πρώτη άσκηση, η οποία δεν κάνει compile. Page 19

20 Καλά ονόµατα µεταβλητών. - Σωστός ορισµός συναρτήσεων. - Η αφαίρεση του \n γίνεται σωστά αλλά όχι µε τον προτεινόµενο τρόπο (strchr). - Ο έλεγχος για την αφαίρεση του δεύτερου string δεν γίνεται στο σωστό σηµείο µε αποτέλεσµα ο κώδικας να µην τρέχει σωστά. - Δεν πραγµατοποιείτε αρχικοποίηση του union_string στην main. - Σωστά τα όρια των δύο for loops στη συνάρτηση create_union_str. - Δεν εκτυπώνετε τα διπλά εισαγωγικά. - Η έξοδος του προγράµµατος είναι δεν σωστή. - Σωστή χρήση της strstr και strncpy. - Σωστός ο έλεγχος µε την strlen. - Σωστή υλοποίηση της συνάρτησης. - Σωστή εκτύπωση της εξόδου. - Η αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char union_str[2*size]={'\0'}; - Σωστά ονόµατα µεταβλητών και παραµέτρων. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. - Σωστός αλγόριθµος στο union. - Το strlen(first_str)-1 και strlen(second_str)-1 θα ήταν προτιµότερο να το αποθηκεύσετε σε µεταβλητές ώστε να µην καλείτε περιττές φορές την συνάρτηση strlen. - Δεν εκτυπώνετε το ζητούµενο µήνυµα εξόδου για την union_str. Επίσης θα µπορούσατε να εκτυπώσετε την union_str µε την χρήση printf. - Σωστά αποτελέσµατα. - Συνεχίστε την άσκηση σπίτι. Page 20

21 : - Λείπουν τα γενικά σχόλια στην αρχή του προγράµµατος. - Σωστή δήλωση και κλήση της βοηθητικής συνάρτησης. - Σωστά περιγραφικά ονόµατα µεταβλητών και παραµέτρων της βοηθητικής συνάρτησης. - Σωστή αναζήτηση χαρακτήρων µε βάση το µέγεθος της συµβολοσειράς και όχι το µέγεθος του πίνακα. - Ο κώδικας της βοηθητικής συνάρτησης επεξεργάζεται διαφορετικά τον πρώτο χαρακτήρα της πρώτης λέξης. Αυτό οδηγεί σε λανθασµένα αποτελέσµατα εάν το µήκος της πρώτης συµβολοσειράς είναι µηδέν, κάτι το οποίο είναι πιθανό. Να σκέφτεστε όλα τα πιθανά σενάρια προτού κάνετε τέτοιες αλλαγές στο πρόγραµµά σας. - Η αρχικοποίηση του τελικού πίνακα χαρακτήρων πρέπει να γίνεται µε '\0'. Το 0 είναι ακέραιος. - Σωστή αφαίρεση του χαρακτήρα αλλαγής γραµµής από τις συµβολοσειρές εισόδου. - Καλείτε την ίδια συνάρτηση (strlen()) δυο φορές άσκοπα αντί να αποθηκεύετε καπου το αποτέλεσµα την πρώτη φορά και να το χρησιµοποιεί µετά. - Στο µήνυµα εξόδου δεν περικλείετε την τελική συµβολοσειρά σε διπλά εισαγωγικά όπως ζητούσε η εκφώνηση. : - Καλείτε την ίδια συνάρτηση (strstr()) δυο φορές άσκοπα αντί να αποθηκεύετε καπου το αποτέλεσµα την πρώτη φορά και να το χρησιµοποιεί µετά. - Δεν αφαιρείτε τον χαρακτήρα αλλαγής γραµµής από τις συµβολοσειρές εισόδου, µε αποτέλεσµα να µην λειτουργεί σωστά η αντικατάσταση. Άσκηση1 -Το πρόγραµµά σας δε δουλεύει σωστά, τερµατίζει µε segmentation fault -Δεν έχετε καλά ονόµατα παραµέτρων. -Σωστή χρήση fgets -Σωστοί τύποι και κλήση συναρτήσεων. -Δεν αρχικοποιείτε σωστά τον final_str ώστε να έχει παντού /0 ούτε βάζετε το /0 στη σωστή θέση του πίνακα σε κάθε βήµα ώστε να δουλέψει σωστά το strchr -Στην τελική printf δεν τυπώνετε σωστά τα διπλά εισαγωγικά γύρω από το τελικό String Άσκηση2 -Η άσκηση σας δεν κάνει compile. - Τα ονόµατα των µεταβλητών και των παραµέτρων είναι σχετικά οκ. Θα µπορούσαν να είναι και πιο περιγραφικά. - Δεν αφαιρείτε το \n που υπάρχει στο τέλος του string που λαµβάνετε σαν είσοδο. Αυτό έχει ως αποτέλεσµα να συµπεριλαµβάνετε το \n σαν κανονικό χαρακτήρα και να τον βάζετε στο τελικό string. - Σωστά κάνετε αρχικοποίηση του string intersection σε κάθε βήµα. - H έξοδος που εκτυπώνετε δεν είναι ακριβώς όπως σας τη ζητάµε - Ηµιτελής άσκηση. Ολοκληρώστε την στο σπίτι. Page 21

22 : lab10grades Σωστή δήλωση και κλήση της βοηθητικής συνάρτησης. - Σωστά περιγραφικά ονόµατα µεταβλητών και παραµέτρων της βοηθητικής συνάρτησης. - Σωστή αναζήτηση χαρακτήρων µε βάση το µέγεθος της συµβολοσειράς και όχι το µέγεθος του πίνακα. - Δεν χρησιµοποιείτε την συνάρτηση strchr() για την αναζήτηση ενός χαρακτήρα µέσα σε συµβολοσειρά, αλλά έχετε υλοποιήσει µια δική σας εκδοχή αυτής της συνάρτησης. Να χρησιµοποιείτε τις έτοιµες συναρτήσεις όπου αυτό είναι δυνατόν (για λόγους ταχύτητας, αποφυγή λαθών, κ.α.), εκτός εαν υπάρχει ΣΟΒΑΡΟΣ λόγος να µην το κάνετε. - Δεν υπάρχει αρχικοποίηση του τελικού πίνακα. Αυτό δεν επηρεάζει τον τρόπο λειτουργίας της βοηθητικής συνάρτησης µε τον τρόπο που την έχετε γράψει, αλλά θα επηρέαζε οποιαδήποτε άλλη συνάρτηση επεξεργασίας συµβολοσειρών του συστήµατος που ενδεχοµένως να χρησιµοποιούσατε σε ένα µεγαλύτερο πρόγραµµα. - Σωστή αφαίρεση του χαρακτήρα αλλαγής γραµµής από τις συµβολοσειρές εισόδου. Κι εδώ έπρεπε να χρησιµοποιήσετε την strchr() αντί να γράψετε τη δική σας δοµή επανάληψης. : - Κακή στοίχιση στο σώµα του while και στο τελευταίο if. - Ο έλεγχος ίσου µεγέθους µεταξύ του target και replacement πρέπει να γίνεται µέσα στη βοηθητική συνάρτηση. - Σωστή αφαίρεση του χαρακτήρα αλλαγής γραµµής από τις συµβολοσειρές εισόδου. Κι εδώ έπρεπε να χρησιµοποιήσετε την strchr() αντί να γράψετε τη δική σας δοµή επανάληψης. - Να προτιµάτε να αποθηκεύετε το αποτέλεσµα µιας συνάρτησης σε κατάλληλη µεταβλητή και να χρησιµοποιείτε αυτήν όπου χρειάζεται. : - Το σβήσιµο του \n δε γίνεται µε πολύ καλό τρόπο. Αν υπάρχει, θα είναι µια θέση πριν το \0. Αρκούσε να ελέγξετε εκεί αντί για όλο το string. Σε κάθε περίπτωση, δεν έχει νόηµα να πάτε µέχρι το SIZE.Οτιδήποτε µετά το \0 είναι "σκουπίδια" - Όταν διατρέχουµε strings δεν πάµε ποτέ µέχρι το SIZE, αλλά µέχρι το \0. Οτιδήποτε είναι µετά το \0 είναι σκουπίδια και όχι έγκυρα δεδοµένα, άρα δεν πρέπει να το κοιτάµε. - Κατά τα άλλα σωστός και καλογραµµένος αλγόριθµος. : - Και πάλι προσέξτε τα όρια των loops. Δεν πρέπει να πηγαίνετε µέχρι SIZE. Ακόµη χειρότερα, βγαίνετε εκτός ορίων του string. - Ελλιπής άσκηση. Τελειώστε τη στο σπίτι. Προσέξτε ιδιαίτερα πώς θα σβήσετε διαδοχικούς ίδιους χαρακτήρες. Επίσης, έπρεπε να χρησιµοποιείτε συναρτήσεις από το string.h, για παράδειγµα strchr. Page 22

23 02186 lab10grades - Τα ονόµατα µεταβλητών και παραµέτρων µπορούσαν να είναι καλύτερα. - Σωστή χρήση της fgets. - Θα έπρεπε πρώτα να ελέγχετε αν υπάρχει \n και µετά να το αντικαθιστάται µε \0. - Έπρεπε να αρχικοποιήσετε το πίνακα που θα περιέχει την τοµή (intersection_array και όχι table3) µε '\0'. - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζεται µέσα σε εισαγωγικά "Helo". - Η main είναι σωστά υλοποιηµένη, εκτός από τις scanf, δεν πρέπει να έχουν \n, δε γίνεται σωστά η σύγκριση. - Δεν εκτυπώνεται τίποτα. - Η συνάρτηση remove_char θα έπρεπε να επιστρέφει στη man ένα int, τις φορές που εντοπίζεται και αφαιρείται ο χαρακτήρας. - Η εκτύπωση θα έπρεπε να γίνει από τη main, όπως κάνατε και στη 1η άσκηση Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι πολύ καλά - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε. Έχετε παραλείψει όµως να ελέγχετε οτι πραγµατικά υπάρχει το \n στο τέλος. - Έχετε κάνει σωστή αρχικοποίηση του πίνακα intersection σε κάθε βήµα της επανάληψης. - Σωστή η έξοδος που εκτυπώνετε. - Η συνάρτηση που φτιάξατε υπολογίζει σωστά κι επιστρέφει τον ακέραιο που πρέπει. - Σηµαντική παράλειψη ήταν οτι φτιάξατε δικό σας loop για να βρείτε τον καθε χαρακτήρα που θα διαγράψετε (βασικά για να βρείτε τη θέση του). Υπάρχει τρόπος να το κάνετε µόνο µε µια strchr. Με µια απλή αναζήτηση στο internet µπορείτε να βρείτε και αυτόν τον τρόπο. : Σωστή δήλωση και κλήση της βοηθητικής συνάρτησης. - Ελλιπής στοίχιση στη γραµµή κλήσης της συνάρτησης. - Σωστά περιγραφικά ονόµατα µεταβλητών και παραµέτρων της βοηθητικής συνάρτησης. - Ο πίνακας UNION δεν είναι σταθερά. Να ονοµάζετε µε κεφαλαία γράµµατα µόνο τις σταθερές του προγράµµατος. - Σωστή αναζήτηση χαρακτήρων µε βάση το µέγεθος της συµβολοσειράς και όχι το µέγεθος του πίνακα. - Σωστή αρχικοποίηση του τελικού πίνακα. - Σωστή αφαίρεση του χαρακτήρα αλλαγής γραµµής από τις συµβολοσειρές εισόδου. - Στο µήνυµα εξόδου δεν περικλείετε την τελική συµβολοσειρά σε διπλά εισαγωγικά όπως ζητούσε η εκφώνηση. : - Τα ονόµατα των µεταβλητών µέσα στη main() δεν είναι περιγραφικά. - Σωστός έλεγχος ίσου µεγέθους µεταξύ του target και replacement. Page 23

24 lab10grades - Σωστή στοίχιση. Απουσία σχολίων. - Δεν τσεκάρετε αν υπάρχει και δεν αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Οι εντολές ανακύκλωσης στην συνάρτηση create_intersection_str πρέπει να σταµατούν στο strlen(str1) και να µην αυξάνουν τον δείκτη µέχρι SIZE. - Δεν τσεκάρετε εάν ο χαρακτήρας που πάτε να εισάγετε έχει ήδη καταχωρηθεί σε προηγούµενη επανάληψη στον instersection string. - Καµία αρχικοποίηση για το intersection_array! - Η άσκηση φαίνεται να δουλεύει (µε κάποια λάθη), έχει όµως αρκετά προβλήµατα. - Προσπαθήστε να κάνετε την άσκηση στο σπίτι. - Σωστή στοίχιση. Απουσία σχολίων. - Δεν τσεκάρετε αν υπάρχει και δεν αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets πράγµα που δηµιουργεί πρόβληµα στο πρόγραµµα σας. - Διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf. - Η εντολή τερµατισµού της ανακύκλωσης στο while είναι σωστή. - Η ανακύκλωση µέσα στη συνάρτηση remove_char θα πρέπει να πηγαίνει µέχρι strlen(str) και όχι µέχρι SIZE. - H memmove θα πρέπει να αντιγράφει έως strlen(a) - i και όχι έως SIZE-i. - Προσπαθήστε να επαναλάβετε σωστά την άσκηση στο σπίτι. Άσκηση1 -Καλά ονόµατα µεταβλητών και παραµέτρων. -Σωστή χρήση fgets -Σωστοί τύποι και κλήση συναρτήσεων. -Στο for δεν έπρεπε να πάτε µέχρι SIZE. Δεν σηµαίνει ότι κάθε string θα έχει µήκος SIZE, έπρεπε να βρίσκετε το µήκος του µε strlen ή να σταµατάτε όταν βρίσκετε το \0. -Στην τελική printf δεν τυπώνετε διπλά εισαγωγικά γύρω από το τελικό string Άσκηση2 -Η άσκηση δεν έχει ολοκληρωθεί, δεν κάνει compile FAIL : -Προσέξτε µε τα ονόµατα των αρχείων (το σωστό είναι lab10a και όχι laba10)! - Το string3 θα µπορούσε να λεγόταν string_union. - Σωστή αρχικοποίηση όλων των στοιχείων σε '\0' µπορεί να γίνει και στη δήλωση: char string1[size]={'\0'}; - Τα αποτελέσµατα του union δεν είναι πάντα σωστά γιατί δε χρησιµοποιείτε σωστά την strspn. Η πιο κατάλληλη συνάρτηση γι αυτή την άσκηση είναι strchr. -Σωστή χρήση της strlen(str) -Η άσκηση σας δεν κάνει compile γιατί είναι ηµιτελής και υπάρχουν πολλά λάθη -Υλοποιήστε την άσκηση στο σπίτι. Page 24

25 lab10grades - Τα ονόµατα των µεταβλητών και των παραµέτρων σας είναι οκ. Μπορείτε να τα κάνετε και πιο περιγραφικά. - Σωστά αφαιρείτε το \n στο τέλος του κάθε input string που λαµβάνετε και ελέγχετε πριν κάνετε την αφαίρεση. - Σηµαντική παράλειψη είναι οτι δεν εχετε κάνει αρχικοποίηση τον πίνακα intersection. Μπορούσατε είτε να αρχικοποιήσετε ολόκληρο τον πίνακα µε \0 είτε σε κάθε βήµα της επανάληψης να θέτετε \0 στην επόµενη θέση. - H έξοδος που εκτυπώνετε είναι σωστή - Ηµιτελής άσκηση. Ολοκληρώστε την στο σπίτι. - Σωστή στοίχιση. Απουσία σχολίων. - Σωστός έλεγχος αν υπάρχει και σωστή αφαίρεση του χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets. - Οι εντολές ανακύκλωσης στην συνάρτηση create_intersection_str πρέπει να σταµατούν στο strlen(str2) και να µην αυξάνουν τον δείκτη µέχρι SIZE. - Η αρχικοποίηση του intersection_array είναι σωστή εφόσον ανανεώνετε τον χαρακτήρα '\0' στο τέλος του string όπως δείξαµε στην εισαγωγή του εργαστηρίου, πράγµα που δεν κάνετε. - Προσπαθήστε να λύσετε σωστά την άσκηση στο σπίτι. - Σωστή στοίχιση. Απουσία σχολίων. - Δεν τσεκάρετε αν υπάρχει και δεν αφαιρείτε τον χαρακτήρα '\n' από το τέλος της συµβολοσειράς που διαβάζει η fgets πράγµα που δηµιουργεί πρόβληµα στο πρόγραµµα σας. - Δεν διαβάζετε σωστά 1 χαρακτήρα µε χρήση της scanf πράγµα που δηµιουργεί και πάλι πρόβληµα στο πρόγραµµα σας. - Δεν υλοποιήσατε επί της ουσίας την 2η άσκηση. - Προσπαθήστε να υλοποιήσετε σωστά την άσκηση στο σπίτι. - Καλά ονόµατα µεταβλητών και παραµέτρων. - Σωστή χρήση της fgets. - Σωστός εντοπισµός του \n και αντικατάσταση µε \0. - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζεται µέσα σε εισαγωγικά "Helo". - Καλή προσπάθεια σε αυτή την άσκηση. - Δεν έκανε compile. - Το όνοµα της συνάρτησης είναι memmove, ψάξ'τε πως συντάσσεται. Δε παίρνει ορίσµατα θέσεις πινάκων αλλά δείκτες. *pointer = str1[i]; memmove(pointer, pointer +1,strlen(str1)-i); - Η συνάρτηση θα επέστρεφε σωστά αποτελέσµατα αν είχατε σωστά τη memmove. - Η επανάληψη στη main δε λειτουργεί εντελώς σωστά, οι γραµµές θα έπρεπε να µπουν πριν τη while. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FAIL PASS PASS οριακά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sheet PASS 1426 PASS 1428 PASS. Page 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to post PASS PASS FAIL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/2016, 21:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 Προθεσµία: 22/12/2016, 21:00 Διαδικαστικά Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι 2 ατόµων. Δεν είναι απαραίτητο να συνεργαστείτε

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

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

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές! Εντολές Επανάληψης Πολλές φορές χρειάζεται να επαναλάβουμε τις ίδιες εντολές Πχ. Έστω ότι θέλουμε να υπολογίσουμε το άθροισμα όρων μιας ακολουθίας διαδοχικών ακεραίων. Δηλαδή αν ο χρήστης δώσει τον αριθμό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 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, Στάδιο

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 27/11/11, 22:00

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

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

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

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

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

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΝΟΜΑΤΕΠΩΝΥΜΟ: AEM: ΜΕΡΟΣ Α: ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [15 µονάδες] ΣΗΜΑΝΤΙΚΕΣ ΔΙΕΥΚΡΙΝΙΣΕΙΣ: Επιλέξτε ΜΙΑ σωστή απάντηση για κάθε ερώτηση. Λάθος απαντήσεις βαθµολογούνται αρνητικά Σε ερωτήσεις που

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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