Γιώργος
Τιμώμενο Μέλος
Χαίρω πολύ, κι εγώ. Όλα τα βιβλία αυτό λένε, αλλά σε κανέναν δεν έχει δουλέψει.Δεν την έχω χρειαστεί ποτέ εγώ αλλά την έχω δει σε βιβλίο C για καθαρισμό της scanf
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Καλά, δοκίμασέ το κι άμα σου πιάσει πόσταρε κώδικα.Γίνεται νομίζω και έτσι απλά η fflush θέλει λίγο προσοχή να ξέρεις τι δεδομένα σου διώχνει.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Ωραία, πες μας πρώτα τι δεν κατάλαβες απ' αυτά που εξηγήσαμε και δείξε τι προσπάθεια έχεις κάνει και πού έχεις κολλήσει. Συγκεκριμένα, δηλαδή, πού είναι το πρόβλημά σου.Παιδιά είμαι 1 ετής κ ακόμα δεν την καταλαβαίνω... την έχω προσπαθήσει πολύ αλλα τπτ
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Μονοδιάστατος πίνακας, έτσι; Λοιπόν, βασικό tip για την άσκηση: η δομή σου είναι ΜΟΝΟ-διάσταση, αλλά το παιχνίδι είναι ΔΙ-διάστατο. Δεν επιτρέπεται μεν να χρησιμοποιήσεις άλλο πίνακα, δεκτό, αλλά κανείς δεν σου απαγορεύει να φτιάξεις ένα... mapping.σας παρακαλω θα ηθελα να με βοηθησετε να λυσω αυτη την ασκηση διοτι πρεπει να την παραδωσω μεχρι την πεμπτη.στο παρακατω αρχειο βρισκεται η εκφωνηση (ο πίνακας είναι μονοδιάστατος)
Με λίγα λόγια, ορίζεις μία συνάρτηση:
- int loc( int x , int y ), η οποία παίρνει τις διαστάσεις (x,y) και επιστρέφει ένα μόνο index, για τον μονοδιάστατο πίνακα.
- Μπορεί να χρειαστεί να φτιάξεις και μία αντίστροφη, η οποία να παίρνει το μονοδιάστατο i και να επιστρέφει δύο διαστάσεις.
Διάβασε αυτό που έγραψα ξανά και ξανά αν δεν το κατάλαβες με την πρώτη.
Εάν θέλεις διευκρινήσεις, ρωτάς. Η υλοποίηση της loc, αφήνεται σε εσένα.
Επίσης, μπορείς να μας παραθέσεις τον μέχρι τώρα κώδικά σου (με καλή στοίχηση) και/ή να μας πεις ακριβώς πού προβληματίζεσαι, σε ποια σημεία. Έτοιμο κώδικα μην περιμένεις - από εμένα τουλάχιστον - γιατί το βρίσκω αντιεκπαιδευτικό. Μόνη σου θα γράψεις την άσκηση, εν τέλει, αλλά αν θελήσεις βοήθεια ρωτάς.
-----
PS: προσοχή, κατά την υλοποίηση της loc, να μην βγεις out of bounds.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Θα σου δώσω ένα hint, που είναι πολύ χρήσιμο όταν προγραμματίζεις: να κοιτάς τις βιβλιοθήκες. Είναι πολύ σημαντικό και για σένα, αλλά και για την μετέπειτα συντήρηση του κώδικά σου, να χρησιμοποιείς έτοιμες βιβλιοθήκες και να μην εφευρίσκεις τον τροχό, κάθε φορά.αν για παραδειγμα οι επιτρεπτοι βαθμοι ειναι Α Β C F το προγραμμα θα πρεπει να το δεχεται ειτε ετσι ειτε ως a b c f...δηλαδη ο χρηστης μπορει να δωσει ειτε μικρα ειτε κεφαλαια και να γινουν δεκτα και τα 2
Εν προκειμένω, η ctype.h έχει κάτι ωραίες συναρτήσεις που θα σε βοηθήσουν.
παιδιά εγώ θέλω να αρχίζω τη C. Έχω μερικές απορίες:
1) το Programming in C του Kochan ειναι καλό για πρώτο βιβλίο?
2) Είναι προτιμότερο ν αρχίσω σε Linux ή σε Windows??
- Η "βίβλος" της C είναι το The C Programming Language, των K&R. Είναι μικρό, συνοπτικό, clear to the point. Θα έλεγα ότι είναι χρήσιμο να έχεις κάποια πρότερη εξοικείωση με τον προγραμματισμό, αλλά και πληκτρολόγιο δίπλα σου για να το ακολουθήσεις. Με άλλα λόγια, αυτό δεν είναι να το διαβάσεις σαν λογοτεχνικό, αλλά θέλει να βλέπεις το παράδειγμα και να το πληκτρολογήσεις. Αλλά με αυτό θα μάθεις καλή C.
- Το άλλο βιβλίο που ακούστηκε, "Η γλώσσα C σε βάθος", έχει πάρει το μάτι μου ότι είναι ένα πιο χαλαρό βιβλίο, που σε πάει βήμα-βήμα. Αν δεν έχεις ιδέα από προγραμματισμό, ίσως βοήθαγε. Στο τέλος, έχει και μια εισαγωγή στην C++. Αλλά προτείνω το 1ο βιβλίο, γιατί δεν φλυαρεί.
- Περιβάλλον: linux. Δεν χρειάζεται να εγκαταστήσεις τίποτα, έχεις τον gcc (compiler) από τη μάνα του. Και με έναν καλό text editor (vim), είσαι έτοιμος σε ένα λεπτό να ξεκινάς να προγραμματίζεις.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Για δοκίμασε να το κάνεις ως εξής:Εχω ενα προγραμμα και διαβαζω ενα αρχειο:
Για καποιο λογο δε διαβαζει την τελευταια λεξη του αρχειου.Εχω κανει ο,τι λεει το βιβλιο και οι σημειωσεις του καθηγητη.Τι φταιει?Code:...Εντολες.... fscanf(file,"%s",word); while(!feof(file)){ ....Εντολες.... fscanf(file,"%s",word); }
...Εντολες....
do {
fscanf(file,"%s",word);
....Εντολες....
} while(!feof(file));
Δηλαδή, διαβάζεις την τελευταία γραμμή μεν, αλλά στην ανακύκλωση του while "χτυπά" το eof, οπότε ποτέ δεν μπαίνει στην επεξεργασία. Είναι wild guess που έκανα τώρα, δοκίμασέ το να δεις.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Ή εναλλακτικά, σκέφτεται κάποιον άλλον τρόπο.Αν γίνεται με κάποιο τρόπο ίσως με function pointer, δεν το χω δοκιμάσει βέβαια απλά δες το μπας και.
Function pointers και παρόμοια πράγματα είναι για μένα "χακιές" που απλά επιτρέπει η C. Η δουλειά μπορεί να γίνει και με πιο εύκολο τρόπο, συνήθως. Χώρια που ένα τέτοιο πρόγραμμα θα είναι δύσκολο στη συντήρηση.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Και μάλιστα βλέπω ότι η εκφώνηση σε καθοδηγεί πώς θα το κάνεις. Ξαναδιάβασέ την καλά και προσεκτικά.ΤΤο πρόγραμμα κα πρεπει να είναι οργανωμενο ωσ εξης: Να εχει συναρτηση main με βρόχο επανάληψης κατά τον οποίο
να εισάγεται η επιλογη του χρηστη (ξεχωριστη συναρτηση) και ανάλογα με την
επιλογη, θα τερματίζεται ο βρόχος ή θα καλείται αντίστοιχη συναρτηση εκτυπωσης. Θα
πρεπει να αντιστοιχεί μια συνάρτηση στην εκτύπωση του κάθε είδους σχήματος.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Αν δώσεις ένα ψάρι σ' έναν άνθρωπο θα φάει μια φορά. Αν του μάθεις να ψαρεύει θα τρώει σ' όλη του τη ζωή.αμα μπορειτε να τον βοηθησετε εντελώς γιατι να μην το κανετε?
Χάνεις συνήθως τμήμα της βαθμολογίας.μου δημιουργηθηκε απορια αμα δεν καταφερεις να την λυσεις τι γινεται? εννοω στο σχολειο δεν γινεται και τιποτα..να μην λυσουμε μια ασκηση...στο πανεπιστημιο ετσι παει?
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Τι ακριβώς έχεις κάνει έως τώρα, πού κόλλησες και τι σε προβληματίζει;Την παρακατω ασκηση μας την εχουν βαλει στην σχολη.Ειναι σε γλωσσα προγραμματισμου C. Μηπως μπορει να βοηθησει καποιος?
Την δούλεψες καθόλου; Προχώρησες ό,τι μπορούσες;
Μην περιμένεις να τα πάρεις όλα στο πιάτο. Τουλάχιστον από μένα.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Μου μυρίζει για Segmentation Fault. Κάπου πιθανώς να διαβάζεις εκτός ορίων πίνακα ή εν γένει προσπαθείς να προσπελάσεις μνήμη που δεν σου ανήκει.Εχεις δικιο...κατα την εκτελεση.
Μπορεις να με προσανατολίσεις για το που βρισκεται το προβλημα γιατι σε λιγο τελειωνει η προθεσμια;
Μία καλή λύση για εύκολο debugging είναι η χρήση του gdb. Γράφεις (αν a.out είναι το εκτελέσιμό σου)
gdb ./a.out
Στο debugging βοηθάει εάν κατά το compile ανεβάσεις και το flag -g.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Έπειτα, σκεφτείτε λίγο πώς μπορείτε να δείτε αν ένας αριθμός είναι ακέραιος ή όχι (hint, hint, έχει δεκαδικά; )
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Τότε θα πρέπει να διαβάζεις έναν float. Αν διαβάζεις int, you can't tell the original input, since it will be casted to (int).Να πληκτρολογει εναν αριθμο και αν δεν ειναι ακεραιος να πληκτρολογει καταλληλο μυνημα.
Δηλαδή αν έχεις int και δώσει ο άλλος 2.4, θα γίνει cast σε 2. So, you need to read floats.
Κι από εκεί κοιτάς αν κόβοντας τα δεκαδικά παίρνεις τον ίδιο αριθμό.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
C file input/output.Που θα βρω τα περιεχόμενα των βιβλιοθηκών; (stdio πχ τί περιέχει) Έχω βρει κάποια πράγματα αλλά δεν είναι και πολύ κατατοπιστικά.. και επίσης αν βρείτε τίποτα που να εξηγεί τί κάνει κάθε συνάρτηση των βιβλιοθηκών..
Σε αυτά, google is your friend.
Σημείωση: Το μήνυμα αυτό γράφτηκε 12 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.