kak0s1931 Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Καλησπέρα σας, Έχω μια μικρή άσκηση στην C με binary tree κτλπ.. Όποιος έχει χρόνο και μπορεί να με βοηθήσει να μου στείλει ΠΜ και θα του στείλω την άσκηση.. ΥΓ. Για κάποιο που γνωρίζει C είναι πολύ εύκολη. Ευχαριστώ εκ των προτέρων..
Star_Light Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Καλησπέρα σας, Έχω μια μικρή άσκηση στην C με binary tree κτλπ.. Όποιος έχει χρόνο και μπορεί να με βοηθήσει να μου στείλει ΠΜ και θα του στείλω την άσκηση.. ΥΓ. Για κάποιο που γνωρίζει C είναι πολύ εύκολη. Ευχαριστώ εκ των προτέρων.. Οτι θες εδώ. Να το δούν και άλλοι που εχουν το ιδιο θεμα.
kak0s1931 Δημοσ. 22 Νοεμβρίου 2013 Μέλος Δημοσ. 22 Νοεμβρίου 2013 https://www.dropbox.com/s/6puq427po5z4eht/EPL035_HW4_%20Binary_Trees.pdf?n=239006615 Αυτή είναι η άσκηση Εδώ είναι ο σκελετός που μας δόθηκε: https://www.dropbox.com/s/p3vi3mlfnus85mm/HW4_skeleton.c
migf1 Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 https://www.dropbox.com/s/6puq427po5z4eht/EPL035_HW4_%20Binary_Trees.pdf?n=239006615 Αυτή είναι η άσκηση Εδώ είναι ο σκελετός που μας δόθηκε: https://www.dropbox.com/s/p3vi3mlfnus85mm/HW4_skeleton.c Καλημέρα, Δεν τη λες και μικρή την εργασία, διότι από ότι διάβασα στα γρήγορα στην εκφώνηση της δεν αρκεί απλώς να συμπληρώσεις όσα σου υποδεικνύει ο σκελετός που σας έχει δοθεί, αλλά θα χρειαστεί να γράψεις κι άλλες δικές σου συναρτήσεις. Και για να πάρεις full-credit θα πρέπει να έχεις επαρκή τεκμηρίωση, και να ακολουθείς καλό coding-style. Η ερώτησή σου όμως ποια είναι; (ελπίζω να μη ζητάς να σου λύσουμε εμείς την άσκηση ). Παρεμπιπτόντως, στο σκελετό, η συνάρτηση NODE *readTreeFromFile(char *filename) δείχνει να περιέχει bug στη γραμμή... while (fscanf(inputFile, "%s", tmptext) != EOF) { ... διότι δεν είδα να δεσμεύει κάπου μνήμη για το tmptext (έχει κι άλλα θέματα θαρρώ, αλλά εμπίπτουν περισσότερο σε nitpicking ... Π.χ. != 1 αντί για != EOF και clean exit σε περίπτωση που παρουσιαστεί πρόβλημα).
Star_Light Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Έχει λάθος η εκφώνηση του καθηγητή σου. Στην δομή : typedef struct node { char *data; struct node *yes, no; } NODE; To no θέλει εναν αστερισκο διπλα του δεν πάει σκέτο struct node *yes , *no ;
migf1 Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Στον σκελετό το έχει σωστά, αλλά γενικώς υπάρχουν θέματα με τη ρουτίνα που τους έχει δώσει για να διαβάζουν το αρχείο. Πέρα από το bug με το tmptext που επισήμανα προηγουμένως, προσπαθεί βλέπω τώρα να διαβάσει την κάθε γραμμή του αρχείου με fscanf(fp, "%s", tmptext) που είναι προβληματικό, γιατί αυτό διαβάζει μονάχα την 1η λέξη της όποιας γραμμής. Οπότε χρειάζονται έξτρα βήματα κι έλεγχοι μέσα στη λούπα (π.χ. για διάβασμα της γραμμής "Does it fly?"), τα οποία δεν βλέπω να τα λαμβάνει υπόψη του. Στην πλειοψηφία τους λύνονται αν αντί για fscanf() χρησιμοποιήσει fgets(). Τα υπόλοιπα δεν τα κοίταξα καθόλου.
Star_Light Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Ποιο έχει σωστα? το no χωρις αστερισκο μεσα στην δομη? Ναι στον σκελετο το εχει αλλα στον σκελετο το σπαει σε 2 statements χαχαχα οποτε στην εκφωνηση παιζει να νομιζει οτι αμα βαλεις τον πρωτο αστερισκο και μετα βαλεις το κομμα πιάνει και τον δευτερο.
migf1 Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Ναι, αλλά στον σκελετό που τους έχει δώσει (στην εκφώνηση όντως του έχει ξεφύγει). Btw, ωραία ασκησούλα, δεν είναι "στείρα"... τους έχει παιχνιδάκι για περιτύλιγμα
Star_Light Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Ναι, αλλά στον σκελετό που τους έχει δώσει (στην εκφώνηση όντως του έχει ξεφύγει). Btw, ωραία ασκησούλα, δεν είναι "στείρα"... τους έχει παιχνιδάκι για περιτύλιγμα Καλη φαινεται αλλα δυσκολα θα την λύσει. Ειδικα αμα δεν τους εχει μιλήσει για αναδρομη πως θα φτιάξουν το δέντρο ?
migf1 Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Δεν νομίζω πως υπάρχει περίπτωση να τους έχει βάλει άσκηση με δέντρο και να μην τους έχει μιλήσει για αναδρομή. ΥΓ. Πιθανότατα είναι τυπογραφικό η έλλειψη του * στην εκφώνηση (δεν πιστεύω ότι υπάρχει περίπτωση να είναι άγνοια).
kak0s1931 Δημοσ. 22 Νοεμβρίου 2013 Μέλος Δημοσ. 22 Νοεμβρίου 2013 ευχαριστω για την δυναμη που μ δινετε να την κανω
Star_Light Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 ευχαριστω για την δυναμη που μ δινετε να την κανω Απο δεικτες , δομες και αναδρομη ξέρεις? http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/tree.html , μπορεις να καταλαβεις την λειτουργια της συνάρτησης insert? αν ναι τοτε μπορεις να βγαλεις αυτη την ασκηση μεσα στο σαββατοκυριακο διοτι απλα θα προσαρμοσεις την εκφωνηση (πχ μια συναρτηση που θα διαβαζει προτασεις και θα τις βάζει σε κομβους.) στα δεδομενα της ασκησης. ΥΓ Θα γινει λεει ελεγχος με χρηση ειδικου λογισμικου για αντιγραφες αχαχαχα
nilosgr Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 ΥΓ Θα γινει λεει ελεγχος με χρηση ειδικου λογισμικου για αντιγραφες αχαχαχα Ναι αυτο παντα το λεν... Μαλιστα το ειδικο λογισμικο ψαχνει μεχρι και στο ιντερνετ!! χααχαχαχαααχαχααχαχαχαχααααααχααχαχααχαχαχααχαχαχααχαχααχαχαχααχαχαχααχαχααχαχααχαχααχαχαχααχααχααχαχαααχαχααχαχαχααχαχαχα 1
Star_Light Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Ναι αυτο παντα το λεν... Μαλιστα το ειδικο λογισμικο ψαχνει μεχρι και στο ιντερνετ!! χααχαχαχαααχαχααχαχαχαχααααααχααχαχααχαχαχααχαχαχααχαχααχαχαχααχαχαχααχαχααχαχααχαχααχαχαχααχααχααχαχαααχαχααχαχαχααχαχαχα μπααααχαχαχχαα ΚΛΑΙΩ.
migf1 Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 ευχαριστω για την δυναμη που μ δινετε να την κανω Επειδή με χάλασε αρκετά η κακή υλοποίηση της NODE *readTreeFromFile() στον σκελετό που σας έδωσε, σου έφτιαξα μια που νομίζω είναι bullet-proof. Έλεγξέ την όμως με διάφορα test cases αν είναι να την υιοθετήσεις, γιατί εγώ δεν το έκανα... σημείωσε επίσης πως διαβάζει μέχρι MAXINPUT-1 χαρακτήρες ανά γραμμή (δηλαδή μέχρι 255 με τον τρέχοντα ορισμό της MAXINPUT). Κώδικας: #define MAXINPUT (255+1) ... NODE *readTreeFromFile( char *filename ) { NODE *root = NULL; char line[MAXINPUT] = {'\0'}; FILE *fp = fopen(filename, "r"); if ( NULL == fp ) { fputs("Error opening data file for reading the tree\n", stderr); exit(1); // εδώ θα προτιμούσα: return NULL; } // Read & add into the tree every line of the file while ( fgets(line, MAXINPUT, fp) ) { // remove trailing '\n' (if any) from line char *cp = strchr(line, '\n'); if ( cp ) { *cp = '\0'; } // flush characters beyond MAXINPUT-1 (if any) else { int c = '\0'; while ( '\n' != (c = fgetc(fp)) && '\r' != c && EOF != c ) ; // void; } // se periptwsi poy to keimeno tis grammis einai to "#" if ( 0 == strcmp(line, "#") ) { // KANETE TIS ANALOGES ENERGEIES GIA NA MPEI O EPOMENOS // KOMVOS STO SWSTO SIMEIO TOY DENTROY } else { // dimiourgia komvou me dedomena text kai prothesi sto dentro //SYMPLIRWSTE ANALOGWS } } fclose( fp ); return root; } Για τα υπόλοιπα, αν έχεις αφήσει την εργασία για την τελευταία στιγμή, νομίζω θα ζοριστείς αρκετά έως πολύ για να τη βγάλεις. Αν επιπρόσθετα δεν έχεις παρακολουθήσει και τις διδακτικες ώρες που τις αντιστοιχούν, τότε το πιο πιθανό είναι να μην μπορέσεις να την κάνεις καθόλου. Αν έχεις κάποια συγκεκριμένη ερώτηση σε κώδικα που έχεις γράψει ήδη, παρέθεσέ τον μαζί με περιγραφή του προβλήματος που αντιμετωπίζεις και όλο και κάποιος από το φόρουμ θα ξεκλέψει λίγο από το χρόνο του για να σε βοηθήσει
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα