Title: Εργασία G Post by: ggpyr on June 02, 2009, 10:00:09 am Εργασία G
Για να ελεγχθούν οι αφίξεις επιβατών σε ένα αεροδρόμιο καταγράφονται, για κάθε ημέρα του έτους, ο αριθμός των αεροσκαφών που φτάνουν στο αεροδρόμιο, ο αριθμός της πτήσης και ο αριθμός των επιβατών κάθε αεροσκάφους. Για την καταγραφή αυτή ανοίγουν δύο αρχεία. Το αρχείο fly_num στο οποίο καταχωρείται, για κάθε ημέρα, ο αριθμός των αεροσκαφών που έφτασαν στο αεροδρόμιο και το αρχείο data στο οποίο καταχωρούνται ο αριθμός πτήσης και ο αριθμός των επιβατών κάθε αεροσκάφους. Να γραφεί το πρόγραμμα το οποίο διαβάζει, για κάθε ημέρα, τον αριθμό των αεροσκαφών που φτάνει στο αεροδρόμιο και τον καταχωρεί στο αρχείο fly_num και τον αριθμό πτήσης και τον αριθμό των επιβατών κάθε αεροσκάφους και τους καταχωρεί στο αρχείο data. Αφού καταχωρηθούν τα δεδομένα στα αρχεία να διαβάζονται η πρώτη και η τελευταία ημέρα μιας περιόδου και να εκτυπώνεται ο συνολικός αριθμός των επιβατών που έφτασαν στο αεροδρόμιο αυτήν την περίοδο. Βοηθητικές παρατηρήσεις Οι ημέρες του έτους να αριθμούνται από το 1 έως το 365. Για την περίοδο που γίνεται ο έλεγχος δίνεται ο αύξον αριθμός της πρώτης και της τελευταίας ημέρας. Τα κανάλια των αρχείων fly_num και data να είναι δυαδικά κανάλια. Title: Re: Εργασία G Post by: ggpyr on June 02, 2009, 11:12:42 am Μολις προσεξα οτι τα αρχεία που αναφέρει η άσκηση τα δημιουργεί πραγματικά στο C:\BORLANDC\BIN (για αυτόν τον compiler)...
Και εγώ που νόμιζα οτι αυτά τα "αρχεία" ήταν θεωρητικά.. :D :D Title: Re: Εργασία G Post by: Merlin on June 02, 2009, 11:24:26 am ^banghead^
Πόσες θα βάλει?.... Title: Re: Εργασία G Post by: ΡΕΣΑΛΤΟ on June 02, 2009, 13:12:34 pm ρε δεν παιζει να ειναι αυτη η εργασια... πολυ μικρη εκφωνηση.... :'(
Title: Re: Εργασία G Post by: Logan on June 02, 2009, 16:43:56 pm γνωριζει κανεις αν ειναι η τελευταια εργασια ή αν θα εχει και αλλη?
Title: Re: Εργασία G Post by: Θάνος on June 02, 2009, 17:07:13 pm θα έχει και μια με δομές. αυτή εύκολη δε φαίνεται?
Title: Re: Εργασία G Post by: nasia!! on June 02, 2009, 22:24:44 pm γνωριζει κανεις αν ειναι η τελευταια εργασια ή αν θα εχει και αλλη? Nαι,είπε πως έχουμε ακόμα μία(εκτός της G) και μετά από την παράλλη εβδομάδα θα γίνει προφορική εξέταση των ασκήσεων! ;) Title: Re: Εργασία G Post by: patoho on June 02, 2009, 22:31:01 pm προφορικη λεγοντας??
τι ακριβως θα εξετασουν??? εγω σε μερικες εχω λαθη κ χοντρα μαλιστα.... Title: Re: Εργασία G Post by: Merlin on June 02, 2009, 22:31:36 pm Γιατί ρε παιδιά μόνο άλλη μία?Εγώ θέλω κι άλλες :(
Title: Re: Εργασία G Post by: nasia!! on June 02, 2009, 22:32:26 pm Θα εξετάσουν απλά άν έχεις κάνει μόνος σου την εργασία ή την έχεις κάνει αντιγραφή από κανένα άλλον...δες και αντίστοιχο τόπικ που πρέπει να υπάρχει εδώ! ;)
Γιατί ρε παιδιά μόνο άλλη μία?Εγώ θέλω κι άλλες :( ^tomato^ ^tomato^ σορρυ αλλα Title: Re: Εργασία G Post by: patoho on June 02, 2009, 22:33:25 pm α οκ...
κ λαθος ν τν εχεις δηλ εισαι οκ?? αν ειναι ετσι μ αρεσει... Title: Re: Εργασία G Post by: El Niño on June 03, 2009, 02:00:39 am αποτι καταλαβα και απο τι εχω ακουσει απο μεγαλυτερους θα σε ρωτησει πανω σε μερικα πραγματα στην καθε εργασια σου γιατι τα εκανες....αν ειναι λαθος δεν θα πειραζει μαλλον!
Title: Re: Εργασία G Post by: palai on June 03, 2009, 13:01:57 pm Zητωντας μου τα καναλια των αρχειων να ειναι δυαδικα,και τα αρχεια δεν πρεπει να ειναι δυαδικα?
Title: Re: Εργασία G Post by: Emfanever on June 03, 2009, 14:29:02 pm ναι
νομίζω πρέπει να χρησιμοποιείσεις fread κ fwrite , τα fprintf και fscanf είναι για αρχεία κειμένου Title: Re: Εργασία G Post by: Merlin on June 03, 2009, 16:44:41 pm Ρε παιδιά,έτσι όπως το βλέπω το πρόγραμμα μου φαίνεται ότι θέλει να διαβάσουμε αριθμό επιβατών,αεροσκαφών και πτήσεων για 365 μέρες ...Τι δεν έχω καταλάβει?
Title: Re: Εργασία G Post by: Emfanever on June 03, 2009, 17:00:37 pm Ρε παιδιά,έτσι όπως το βλέπω το πρόγραμμα μου φαίνεται ότι θέλει να διαβάσουμε αριθμό επιβατών,αεροσκαφών και πτήσεων για 365 μέρες ...Τι δεν έχω καταλάβει? Πράγματι .. προφανώς εσύ όταν θέλεις να το τεστάρεις θα βάλεις μικρότερο νούμερο! :D Title: Re: Εργασία G Post by: palai on June 03, 2009, 20:23:43 pm Πως ακριβως θα περασω στο προγραμμα μονο το κομματι του αρχειου που με ενδιαφερει?Γινεται?
Title: Re: Εργασία G Post by: Γιώργος on June 03, 2009, 20:26:00 pm Θα 'θελες. :P
Μπορείς ωστόσο να κάνεις search στο αρχείο για κάτι που θες, αν δεν απατώμαι. Η stdio.h έχει συναρτήσεις αναζήτησης σε αρχείο. Title: Re: Εργασία G Post by: palai on June 03, 2009, 20:34:03 pm οκ ευχαριστω.Θα το ψαξω.
Η μπορει να το κανω μπακαλικα και να τον επιστρεψω ολο τον πινακα Title: Re: Εργασία G Post by: Γιώργος on June 03, 2009, 20:36:15 pm Ίσως σου κάνει η fseek. :)
Με αυτήν μπορείς να "πηδήξεις" ακόμη και ολόκληρο πίνακα. http://en.wikipedia.org/wiki/Fseek Title: Re: Εργασία G Post by: Emfanever on June 03, 2009, 20:39:47 pm Μπορείς επίσης αφού ξέρεις το μέγεθος σε byte κάθε μέρας, με ένα for να διαβάζεις τις μέρες 1-1 και να τυπώνεις με if αυτές που είναι στο διάστημα που θέλεις
edit: για να μη διαβάζεις από την αρχή , μπορείς να κάνεις fseek στην αρχή της περιόδου και συνεχίζεις όπως λέω παραπάνω Title: Re: Εργασία G Post by: palai on June 03, 2009, 21:27:59 pm Code: for(i=1;i<=lday;i++) Λογικα εδω πρεπει να εχω καποιο λαθος γιατι μου τυπωνει οτι να ναι.Καποια βοηθεια? Title: Re: Εργασία G Post by: Merlin on June 03, 2009, 21:50:46 pm Code: for(i=1;i<=lday;i++) Λογικα εδω πρεπει να εχω καποιο λαθος γιατι μου τυπωνει οτι να ναι.Καποια βοηθεια? Title: Re: Εργασία G Post by: Emfanever on June 03, 2009, 21:52:20 pm Code: for(i=1;i<=lday;i++) Λογικα εδω πρεπει να εχω καποιο λαθος γιατι μου τυπωνει οτι να ναι.Καποια βοηθεια? Code: for(i=1;i<=lday;i++) λογικά πρέπει να το κάνεις έτσι Title: Re: Εργασία G Post by: Merlin on June 03, 2009, 21:53:40 pm Επίσης τσέκαρε αν το epivates έχει σκουπίδια.Την έχω πατήσει πολλές φορές έτσι.
Title: Re: Εργασία G Post by: Emfanever on June 03, 2009, 22:02:37 pm βασικά αν κατάλαβα καλά μπορείς να κάνεις και το εξής, δε ξέρω αν θα δουλέψει αυτό που είπα πριν
μπορείς να βάλεις μια μεταβλητή temp και να γράψεις Code: for(i=1;i<=lday;i++) Το θέμα όμως είναι.. ο αριθμός των επιβατών κάθε μέρας, μέσα στο αρχείο, είναι στη σειρά ο ένας μετά τον άλλο, ή παρεμβάλονται και άλλες μεταβλητές? Title: Re: Εργασία G Post by: palai on June 03, 2009, 22:14:47 pm Το epivates έχει αρχική τιμή? Εχω βαλει αρχικη τιμη 0βασικά αν κατάλαβα καλά μπορείς να κάνεις και το εξής, δε ξέρω αν θα δουλέψει αυτό που είπα πριν Αν καταλαβα αυτο που ρωτας,τους επιβατες τους βαζω στο αρχειο μαζι με τον αριθμο πτησης στην ιδια forμπορείς να βάλεις μια μεταβλητή temp και να γράψεις Code: for(i=1;i<=lday;i++) Το θέμα όμως είναι.. ο αριθμός των επιβατών κάθε μέρας, μέσα στο αρχείο, είναι στη σειρά ο ένας μετά τον άλλο, ή παρεμβάλονται και άλλες μεταβλητές? Title: Re: Εργασία G Post by: Emfanever on June 03, 2009, 22:57:45 pm εσύ θέλεις με αυτόν τον κώδικα να βρεις το συνολικό αριθμό των επιβατών σωστά??
στο αρχείο λογικά είναι αποθηκευμένα έτσι αριθμός πτήση1 αριθμός επιβατών 1 αριθμός πτήση2 αριθμός επιβατών 2 . . . αριθμός πτήση365 αριθμός επιβατών 365 Άρα , έτσι όπως το έχει γράψεις, διαβάζει τον αριθμό πτήσης και ο δείκτης στο αρχείο (που δείχνει την τωρινή θέση) μετακινείται κατά sizeof(int). Στο επόμενο fread θα διαβάσει τον αριθμό των επιβατών και εναλλάξ θα διαβάζει αριθμό πτήσης και επιβατών . Οπότε μέσα στο if βάλε να διαβάζει πρώτα τον αριθμό πτήσης και μετά των αριθμό των επιβατών δλδ έτσι Code: for(i=1;i<=lday;i++) Title: Re: Εργασία G Post by: sarovios on June 04, 2009, 14:11:20 pm Στο παραδειγμα που εχει στις σημειωσεις σελ. 80 υπαρχουν λαθη?
Στην τεταρτη γραμμη γιατι κανει τι δηλωση FILE *fopen(); Για τις αλλες συναρτησεις γιατι δεν κανει παρομοια δηλωση?Και εστω οτι χρειαζεται δε θα επρεπε να βαλει και τα ορισματα μεσα? Title: Re: Εργασία G Post by: Merlin on June 04, 2009, 17:32:21 pm Για το αρχείο data θέλει ένα πίνακα για τον αριθμό πτήσης και ένα για τον αριθμό των επιβατών,ενώ για τον fly_num ένα πίνακα με τον αριθμό των αεροσκαφών?Εσεις πως το καταλάβατε?
edit:Επίσης οι πίνακες του data είναι δυσδιάστατοι? Title: Re: Εργασία G Post by: gate4 on June 04, 2009, 17:59:39 pm αν η αποθηκευση γινει στοιχειο προς στοιχειο, με την fseek πως γινεται η αναζητηση απο first day------last day ?
καταχωρησα τα δεδομενα στα αρχεια με fwrite sizeof(int μεγεθος ,στην fseek θελει μια Long int παραμετρο για να προσδιορισει την θεση τι σχεση εχει ιντ και long it? Title: Re: Εργασία G Post by: Merlin on June 04, 2009, 18:05:10 pm Στο παραδειγμα που εχει στις σημειωσεις σελ. 80 υπαρχουν λαθη? Εγώ δεν την δήλωσα και ο compiler δεν χτυπάει(Dev).Τώρα στον προιστορικό borland μπορεί να χρειάζεται να την δηλώσεις ξεχωριστά.Πάντως αν δεις εδώ (http://www.cplusplus.com/reference/clibrary/cstdio/fopen/) δεν τη δηλώνει και το πρόγραμμα δουλεύει θαυμάσια(σε dev!!!).Στην τεταρτη γραμμη γιατι κανει τι δηλωση FILE *fopen(); Για τις αλλες συναρτησεις γιατι δεν κανει παρομοια δηλωση?Και εστω οτι χρειαζεται δε θα επρεπε να βαλει και τα ορισματα μεσα? Title: Re: Εργασία G Post by: sarovios on June 04, 2009, 20:00:57 pm Στο παραδειγμα που εχει στις σημειωσεις σελ. 80 υπαρχουν λαθη? Εγώ δεν την δήλωσα και ο compiler δεν χτυπάει(Dev).Τώρα στον προιστορικό borland μπορεί να χρειάζεται να την δηλώσεις ξεχωριστά.Πάντως αν δεις εδώ (http://www.cplusplus.com/reference/clibrary/cstdio/fopen/) δεν τη δηλώνει και το πρόγραμμα δουλεύει θαυμάσια(σε dev!!!).Στην τεταρτη γραμμη γιατι κανει τι δηλωση FILE *fopen(); Για τις αλλες συναρτησεις γιατι δεν κανει παρομοια δηλωση?Και εστω οτι χρειαζεται δε θα επρεπε να βαλει και τα ορισματα μεσα? Επισης στο ιδιο παραδειγμα υπαρχει καποιος λογος που στην αρχει κανει την δηλωση char fn[80] Την εβγαλα και τρεχει σωστα. P.S. Τα παραδειγματα ειναι τραγικα.Πιο πολυ σε μπερδευουν παρα σε βοηθανε... >:( Title: Re: Εργασία G Post by: webslash on June 04, 2009, 20:43:14 pm Για το αρχείο data θέλει ένα πίνακα για τον αριθμό πτήσης και ένα για τον αριθμό των επιβατών,ενώ για τον fly_num ένα πίνακα με τον αριθμό των αεροσκαφών?Εσεις πως το καταλάβατε? edit:Επίσης οι πίνακες του data είναι δυσδιάστατοι? Αυτο το εχω κι εγω απορια! Βασικα εσεις πως τα εισαγαγατε τα στοιχεια?Ενα ενα ή με χρηση πινακων. Εγω σκεφτηκα το 2ο αλλα για το αρχειο data χρειαζεται μαλλον πινακας 3 διαστασεων γιατι καπως θα πρεπει να φαινεται σε ποια μερα αντιστοιχουν οι αριθμοι των πτησεων αλλα περιπλεκεται το πραγμα. Title: Re: Εργασία G Post by: Merlin on June 04, 2009, 20:58:51 pm Εγώ πάλι το έκανα με 2 πίνακες 2 διαστάσεων και τους έβαλα και τους δύο μέσα στο αρχέιο data.Το επόμενο test θα είναι να δω αν αυτά αποθηκεύονται σειριακά και αν χρειάζομαι κάποια ιδιαίτερη συνθήκη για να διαβάζω τα στοιχεία των πινάκων από κει μέσα.
Title: Re: Εργασία G Post by: Merlin on June 04, 2009, 21:50:19 pm Παιδιά ,δεν φαντάζομαι να πειράζει που με δοκιμαστικά νούμερα της τάξης των 2-3 επιβατών για 2-3 αεροπλάνα για 2-3 μέρες ,το πρόγραμμα μου βγάζει συνολικό αριθμό επιβατών ,από την 1η έως την 3η μέρα,μεγαλύτερο από τον πληθυσμό της γης,ε?
Title: Re: Εργασία G Post by: gate4 on June 04, 2009, 21:53:27 pm οταν διαβαζεις με μια fread μετακινειται ο δεικτης στο αρχειο μια θεση οπως οταν γραφεις με fwrite ola ta alla einai m@l@k13$........οποιος ξερει να εξηγησει για την fseek
Title: Re: Εργασία G Post by: Emfanever on June 04, 2009, 22:10:17 pm η fseek μπορεί να σε βοηθήσει απλά να μεταβείς σε οποιοδήπορε σημείο του αρχείου
fseek ( FILE * stream, long int offset, int origin ); stream Pointer to a FILE object that identifies the stream. offset Number of bytes to offset from origin. origin Position from where offset is added. It is specified by one of the following constants defined in <cstdio>: SEEK_SET Beginning of file SEEK_CUR Current position of the file pointer SEEK_END End of file όπως εξηγεί παραπάνω, εισάγεις στη μεσαία παράμετρο τον αριθμό των bytes που θα μετακινηθεί ο δείκτης . α) Από την αρχή SEEK_SET β) Από την τωρινή θέση SEEK_CUR γ)Από το τέλος SEEK_END τα α,β,γ μπαίνουν ως τρίτη παράμετρος. Μπορείς να βάλεις και αρνητικό αριθμό bytes (πάει προς τα πίσω) Οπότε εσύ υπολογίζεις πόσα bytes παρεμβάλονται από τν αρχή (τέλος κτλ) του αρχείου μέχρι τη θέση που θέλεις να πάει ο δείκτης Title: Re: Εργασία G Post by: Γιώργος on June 04, 2009, 22:16:41 pm Και φυσικά στη θέση των bytes μπορείς να βάλεις ένα sizeof() ;)
Μέσα στο sizeof το offset σου, πχ ένα κελί πίνακα - μπορείς να βάλεις int, αν είναι ένας ακέραιος- ή πολλά κελιά βάζοντας N*sizeof(). :) Title: Re: Εργασία G Post by: gate4 on June 04, 2009, 22:18:04 pm Quote Οπότε εσύ υπολογίζεις πόσα bytes παρεμβάλονται από τν αρχή (τέλος κτλ) του αρχείου μέχρι τη θέση που θέλεις να πάει ο δείκτης αποθηκευσα στο αρχειο τον αριθμο επηβατων και πτησεων στοιχειο προς στοιχειο χωρις πινακες δηλαδη μολις το διαβαζε,μετα fwrite με μεγεθος sizeof(int) στην fseek το προβλημα ειναι οτι το ποσα byte θα μετακινηθει ο δεικτης προσδιοριζεται απο mia metabliti long int 4 byte enw to sizeof int ειναι 2 byte οπως γραφτηκε στο αρχειο.. με fread μου βγηκε μονο Title: Re: Εργασία G Post by: Γιώργος on June 04, 2009, 22:19:33 pm Και ένα χρήσιμο λινκ. :)
http://computer.howstuffworks.com/c39.htm Title: Re: Εργασία G Post by: Emfanever on June 04, 2009, 22:22:18 pm Quote Οπότε εσύ υπολογίζεις πόσα bytes παρεμβάλονται από τν αρχή (τέλος κτλ) του αρχείου μέχρι τη θέση που θέλεις να πάει ο δείκτης αποθηκευσα στο αρχειο τον αριθμο επηβατων και πτησεων στοιχειο προς στοιχειο χωρις πινακες δηλαδη μολις το διαβαζε,μετα fwrite με μεγεθος sizeof(int) στην fseek το προβλημα ειναι οτι το ποσα byte θα μετακινηθει ο δεικτης προσδιοριζεται απο mia metabliti long int 4 byte enw to sizeof int ειναι 2 byte οπως γραφτηκε στο αρχειο.. με fread μου βγηκε μονο δεν έχει σχέση αυτό και sizeof (float) μπορείς να βάλεις κ οτιδήποτε ο αριθμός των bytes τον ενδιαφέρει, όχι η μεταβλητή αυτή κάθε αυτή. είναι μια μεταβλητή long int που δέχεται σαν τιμή έναν ακέραιο αριθμό (από bytes) ,no problem (το sizeof(int) ισοδυναμεί με τον αριθμό 2) Title: Re: Εργασία G Post by: Γιώργος on June 04, 2009, 22:23:31 pm Νομίζω 4 bytes είναι ο int. :P
Title: Re: Εργασία G Post by: Emfanever on June 04, 2009, 22:25:57 pm ναι , αλλά σε 64bito σύστημα
σε 32bito είναι 2 bytes και αντίστοιχα το float είναι 4 bytes Title: Re: Εργασία G Post by: Emfanever on June 04, 2009, 22:30:07 pm Quote Οπότε εσύ υπολογίζεις πόσα bytes παρεμβάλονται από τν αρχή (τέλος κτλ) του αρχείου μέχρι τη θέση που θέλεις να πάει ο δείκτης αποθηκευσα στο αρχειο τον αριθμο επηβατων και πτησεων στοιχειο προς στοιχειο χωρις πινακες δηλαδη μολις το διαβαζε,μετα fwrite με μεγεθος sizeof(int) στην fseek το προβλημα ειναι οτι το ποσα byte θα μετακινηθει ο δεικτης προσδιοριζεται απο mia metabliti long int 4 byte enw to sizeof int ειναι 2 byte οπως γραφτηκε στο αρχειο.. με fread μου βγηκε μονο να προσθέσω ένα παράδειγμα. αν ας πούμε θέλεις να μετακινηθείς 20 μέρες μέσα στο αρχείο από την αρχή , δεδομένου ότι κάθε μέρα αποτελείται από 2*sizeof(int) γράφεις fseek(arxeio, 20*2*sizeof(int),SEEK_SET); Title: Re: Εργασία G Post by: sarovios on June 04, 2009, 22:32:06 pm Επειδη εχω μπερδευτει λιγο.Μπορει να μου εξηγησει τι διαφορα εχουν η putc() με την fwrite()?
Ποια θα πρεπει να χρησιμοποιησουμε στο προγραμμα? Title: Re: Εργασία G Post by: Γιώργος on June 04, 2009, 22:37:57 pm Η putc βάζει κατευθείαν έναν χαρακτήρα. Η fwrite είναι για formatted γράψιμο, μπορείς να γράψεις και ολόκληρη "δομή" στο αρχείο με μία μόνο fwrite (φυσικά τότε δεν μπορείς να την διαβάσεις απευθείας από το .txt, αλλά θα πρέπει να κάνεις fread).
Title: Re: Εργασία G Post by: gate4 on June 04, 2009, 22:38:40 pm Quote Οπότε εσύ υπολογίζεις πόσα bytes παρεμβάλονται από τν αρχή (τέλος κτλ) του αρχείου μέχρι τη θέση που θέλεις να πάει ο δείκτης αποθηκευσα στο αρχειο τον αριθμο επηβατων και πτησεων στοιχειο προς στοιχειο χωρις πινακες δηλαδη μολις το διαβαζε,μετα fwrite με μεγεθος sizeof(int) στην fseek το προβλημα ειναι οτι το ποσα byte θα μετακινηθει ο δεικτης προσδιοριζεται απο mia metabliti long int 4 byte enw to sizeof int ειναι 2 byte οπως γραφτηκε στο αρχειο.. με fread μου βγηκε μονο να προσθέσω ένα παράδειγμα. αν ας πούμε θέλεις να μετακινηθείς 20 μέρες μέσα στο αρχείο από την αρχή , δεδομένου ότι κάθε μέρα αποτελείται από 2*sizeof(int) γράφεις fseek(arxeio, 20*2*sizeof(int),SEEK_SET); δουλευει ετσι η fseek αλλα καθε μερα εχει διαφορετικα sizeof(int) επειδη εχει διαφορετικο αριθμο αεροσκαφων, θελει μαλλον εναν αλλο μετρητη :-\ μετα για αποθηκευσω αυτο που βρηκε πχ εδω σωστο ειναι το metabliti=getw(arxeio)? Title: Re: Εργασία G Post by: Emfanever on June 04, 2009, 22:40:36 pm τι εννοείς έχει διαφορετικό αριθμό αεροσκαφών?
δυο μεταβλητές int δε χρησιμοποιείς για κάθε μερα? Η μια αποθηκεύει τον αριθμό επιβατών και ή άλλη των αριθμό πτήσεων Title: Re: Εργασία G Post by: sarovios on June 04, 2009, 22:41:55 pm δηλαδη τις fwrite/fread θελουμε για το προγραμμα?
Title: Re: Εργασία G Post by: gate4 on June 04, 2009, 22:53:51 pm Στο ενα αρχειο αποθηκευονται ο αριθμος των αεροσκαφων καθε μερα και στο αλλο αριμθοι πτησεων των αεροπλανων και επιβατες αρα τα αρχεια ειναι πχ
1η μερα αρχειο 1 αρχειο 2 3 αριθμος_πτησης επιβατες αριθμος_πτησης επιβατες αριθμος_πτησης επιβατες 2η μερα 1 αριθμος_πτησης επιβατες 3η μερα ................................. και εχουμε πχ απο 4 εως 7 μερα ποιος θα ειναι ο δεικτης στην fseek για να ξεκιναει απο την 4η μερα στο 2ο αρχειο ? Title: Re: Εργασία G Post by: Emfanever on June 04, 2009, 23:02:50 pm α κατάλαβα...
τότε μπορείς να κάνεις έναν extra πίνακα πχ Pin[365] όπου σαν πρώτο στοιχείο θα έχεις με βάση το παραδειγμα σου Pin[0]= 3 * (2*sizeof(int)) Pin[1]=1* (2*sizeod(int)) ktl είναι εύκολο να γίνει αφού έχεις έτοιμο συνολικό άριθμό πτήσεων κάθε μέρας. Έτσι οταν θέλεις να πάς στην Ν μέρα κάνεις ένα sum τα pin[i ] από 0 έως Ν και έχεις τον αριθμό bytes ή μπορείς κατευθείαν να σχηματίζεις το sum δλδ Pin[0]=tade Pin[1]=tade + Pin[0] Pin[2]=tade + Pin[1] ktl Title: Re: Εργασία G Post by: gate4 on June 04, 2009, 23:20:58 pm +1 παμε ετσι στην θεση που ψαχνουμε στο αρχειο 2
νομιζω μετα υπαρχει το προβλημα οτι τα δεδομενα ειναι ετσι στο αρχειο 2 αριθμος_πτησης επιβατες αριθμος_πτησης επιβατες αριθμος_πτησης επιβατες και θελουμε τους επιβατες απο την x μερα ωστε να βρουμε το συνολικο αριθμο..θελει ακομα ενα λουπ οσος ειναι ο αριθμος των αεροσκαφων εκεινη τη μερα και ενα μετρητη πχ η θεση που ξεκιναει στο αρχειο 2 ειναι y, y+j*sizeof(int) και j=j+1... παντως γινεται πολυ πιο ευκολα με fread Title: Re: Εργασία G Post by: sarovios on June 04, 2009, 23:24:44 pm sorry που βομβαρδιζω με χαζουλικες ερωτησεις.
Ελπιζω να μην καταλαβα καλα.Αλλα αρχικα θα πρεπει να δωσουμε για 365 μερες? Δηλαδα θα εχουμε ενα loop απο 0--->364 για να γεμισουμε τους πινακες τους οποιους θα τους μεταφερουμε στα αντιστοιχα αρχεια? Title: Re: Εργασία G Post by: Merlin on June 04, 2009, 23:28:22 pm 0<i<365
Title: Re: Εργασία G Post by: sarovios on June 04, 2009, 23:30:18 pm και για να τεσταρω το προγραμμα θα γραψω 365 φορες το αριθμο του αεροπλανου για καθε μερα? :D :D :D :D :D
Title: Re: Εργασία G Post by: Merlin on June 04, 2009, 23:32:57 pm Ε άμα γουστάρεις :)
Title: Re: Εργασία G Post by: sarovios on June 05, 2009, 00:10:16 am τρεχω το προγραμμα ,γεμιζω τον πινακα δγμιουργω το αρχειο με τις τιμες του πινακα και οταν ανοιγω το αρχειο αντι να γραφει 12345(οπως και εβαλα) εχει γραμμενο το εξης:
Τι κανω λαθος? Title: Re: Εργασία G Post by: gate4 on June 05, 2009, 00:50:48 am ποσταρε κωδικα...
Title: Re: Εργασία G Post by: sarovios on June 05, 2009, 00:55:10 am int main()
{ FILE *fly_num; int i; int flynum[SIZE] , **dat; //Dimiourgia tou arxeiou fly_num for (i=0 ; i<SIZE ; i++) { printf("MERA %d | Dose ton arithmo ton aeroskafon pou eftasan sto aerodromio\n",i+1); scanf("%d", &flynum); } fly_num = fopen("fly_num.txt" , "wb"); if (fly_num == NULL) { printf("Den mporo na anoikso to arxeio gia grapsimo\n"); exit(1); } fwrite(flynum , sizeof(flynum) , 1 , fly_num); fclose(fly_num); Title: Re: Εργασία G Post by: Emfanever on June 05, 2009, 00:57:37 am τρεχω το προγραμμα ,γεμιζω τον πινακα δγμιουργω το αρχειο με τις τιμες του πινακα και οταν ανοιγω το αρχειο αντι να γραφει 12345(οπως και εβαλα) εχει γραμμενο το εξης: Τι κανω λαθος? το αρχείο είναι δυαδικό, δε μπορείς να το διαβάσεις με text editor edit: αν θέλεις να βλέπεις 12345 κάντο με fscanf και fprintf Title: Re: Εργασία G Post by: gate4 on June 05, 2009, 00:59:34 am scanf("%d", &flynum[ι]); μηπως ξεχασες
και fwrite(flynum , sizeof flynum , 1 , fly_num); Title: Re: Εργασία G Post by: sarovios on June 05, 2009, 01:02:16 am το ιδιο γινεται παλι...
Δηλαδα για τσεκαρω τον κωδικα μεχρι εκει πρεπει να κανω fread και μετα να τα τυπωσω? Title: Re: Εργασία G Post by: gate4 on June 05, 2009, 01:07:24 am fread(flynum , sizeof flynum , 1 , fly_num); θα κανεις αφου ανοιξεις το αρχειο για διαβασμα ("rb" ) και ελεγχο για να εκτυπωσεις το συνολο των επιβατων για τις μερες που θα δωσεις
ετσι οπως το γραψες αποθηκευονται σωστα νομιζω,στο size bale 365 Title: Re: Εργασία G Post by: Emfanever on June 05, 2009, 01:14:45 am λέμε δε γίνεται να διαβάσεις δυαδικό αρχείο με text editor. Το ότι έβαλες .txt δε λέει τίποτα, οι fread και fwrite κάνουν δυαδικά αρχεία, δε τα αποθηκεύουν με τη μορφή χαρακτήρων ASCII και κατά συνέπεια δε διαβάζονται από notepad πχ.
αν θες να τα δεις κανονικά κάντο έτσι Code: #include <stdio.h> Title: Re: Εργασία G Post by: sarovios on June 05, 2009, 01:19:31 am Επισης.Γινεται σε ενα αρχειο να βαλω δυο πινακες?
Title: Re: Εργασία G Post by: Emfanever on June 05, 2009, 01:20:53 am όσους θέλεις μπορείς να βάλεις
Title: Re: Εργασία G Post by: Γιώργος on June 05, 2009, 01:22:22 am Επισης.Γινεται σε ενα αρχειο να βαλω δυο πινακες? Μπορείς να βάλεις τα πάντα όλα. Αρκεί να θυμάσαι ποιον έβαλες πρώτο και ποιον δεύτερο. :P Δεν θυμάμαι ωστόσο αν μπορείς να βάλεις ολόκληρο τον πίνακα με μία fwrite ή πρέπει να τον αποθηκεύσεις κατά γραμμές / στύλες - ανάλογα πώς τον έκανες malloc. Emfa, θυμάσαι; Title: Re: Εργασία G Post by: Emfanever on June 05, 2009, 01:28:24 am για δυσδιάστατο λες εσύ?
μονοδιάστατος πάντως μπαίνει σίγουρα κατευθείαν με fwrite λογικά και δυσδιάστατος Title: Re: Εργασία G Post by: Γιώργος on June 05, 2009, 01:31:31 am Ναι, για διδιάστατο λέω. :P
Title: Re: Εργασία G Post by: sarovios on June 05, 2009, 01:49:19 am πρεπει να κανω 2 fwrite η γινεται μεσα στα ορισματα να βαλω και τους 2 πινακες?
Title: Re: Εργασία G Post by: Emfanever on June 05, 2009, 02:23:50 am Ναι, για διδιάστατο λέω. :P η αλήθεια βρίσκεται κάπου ανάμεσα (τουλάχιστον εγώ το πρόφερα σωστά! ) :P http://el.wiktionary.org/wiki/%CE%B4%CE%B9%CF%83%CE%B4%CE%B9%CE%AC%CF%83%CF%84%CE%B1%CF%84%CE%BF%CF%82 Title: Re: Εργασία G Post by: webslash on June 05, 2009, 12:32:15 pm για δυσδιάστατο λες εσύ? μονοδιάστατος πάντως μπαίνει σίγουρα κατευθείαν με fwrite λογικά και δυσδιάστατος Ό,τι και να προσπαθησα μεχρι στιγμης,εχω καταφερει να περασω μονο την πρωτη γραμμη στο αρχειο μου. Ξερει κανεις πως περναει ολοκληρος ο δισδιαστατος πινακας στο αρχειο? Title: Re: Εργασία G Post by: Merlin on June 05, 2009, 14:10:11 pm Και γω που προσπάθησα να βάλω 2διάστατο πίνακα στο αρχείο μου πρέπει να δημιουργείται κάποιο λαθάκι, γιατί στο τελικό αποτέλεσμα παίζει να εκτυπώνει θέσεις μνήμης αντί για τα στοιχεία του πίνακα(ο 1394857568 δεν είναι λογικός αριθμός επιβατών!) και δεν παίζει να φταίνε σκουπίδια αυτή τη φορά.
Code: printf("\nDwse prwth mera periodou : "); Code: for(i=0;i<y;i++){ Fail fail fail... Title: Re: Εργασία G Post by: sarovios on June 05, 2009, 14:49:06 pm Επειδη κουραστικα να προσπαθω να βρω πως θα βαλω 2 δισδιαστατους πινακες σε ενα αρχειο το εκανα καπως αλλιως αλλα δεν ειμαι σιγουρος αν τα περναει σωστα τα δεδομενα στο καθε αρχειο.
for (i=0 ; i<SIZE ; i++) { printf("##########\n"); printf("# MERA %d #\n",i+1); printf("##########\n\n"); printf("Dose ton arithmo ton aeroskafon\n"); scanf("%d",&flynum); putw(flynum , fly_num); for (j=0 ; j<flynum ; j++) { printf("Dose dedomena gia to %do aeroskafos\n",j+1); printf("Arithmos ptisis:\n"); scanf("%d",&flight_num); printf("Arithmos epivaton:\n"); scanf("%d",&passengers_num); putw(flight_num , data); putw(passengers_num , data); } } Ειναι σωστο? Title: Re: Εργασία G Post by: Merlin on June 05, 2009, 22:26:48 pm Τελικά, καμιά ιδέα για τους 2-διάστατους πίνακες σε αρχεία?
Title: Re: Εργασία G Post by: webslash on June 06, 2009, 14:42:32 pm Τελικά, καμιά ιδέα για τους 2-διάστατους πίνακες σε αρχεία? Aυτο παλευω κι εγω 2 μερες τωρα αλλα τιποτα. Εγω δοκιμασα και τα putw() kai getw() αλλα δε δουλευουν... Title: Re: Εργασία G Post by: Merlin on June 06, 2009, 14:50:34 pm Αυτές είναι για μεμονομένες μεταβλητές,για πίνακες χρησιμοποιείς fread και fwrite ,αλλά για 2δ πίνακες είναι κάπως
Title: Re: Εργασία G Post by: webslash on June 06, 2009, 14:52:25 pm Το ξερω,απλα προσπαθησα να εισαγω τα στοιχεια στο αρχειο ενα-ενα με ενα loop..
Αλλα ουτε αυτο πετυχε. Μου επιστρεφει -1 κ δεν καταλαβαινω γιατι... Title: Re: Εργασία G Post by: Merlin on June 06, 2009, 15:50:32 pm Το δοκίμασα και γω με putw και getw,αλλά πάλι μου επιστρέφει μάλλον διευθύνσεις.Ρε παιδιά που δεν έχω κάνει dereference?Θα τρελαθώ...
Code: for(i=0;i<y;i++){ Title: Re: Εργασία G Post by: Grecs on June 06, 2009, 15:54:58 pm >Τα αρχεια που κανει το προγραμμα πως τα βλεπω?
και που ειναι στον dev? Title: Re: Εργασία G Post by: sarovios on June 06, 2009, 15:56:04 pm Εκει που αποθηκευεις το .c αρχειο σου ψαξε
Title: Re: Εργασία G Post by: Merlin on June 06, 2009, 15:57:28 pm Δες στην επιφάνεια εργασίας(ή όπου αποθηκεύεις τις εργασίες σου όταν τις κάνεις compile) σου αν έχουν δημιουργηθεί τίποτα "ύποπτα" πηγαία αρχεία(εκείνα με το εικονίδιο της τσαλακωμένης σελίδας με ένα παράθυρο και 3 χρωματιστές τελίτσες μέσα,που κάποιος άσχετος θα έλεγε:α!!!,να ένα κατεστραμμένο αρχείο)
Title: Re: Εργασία G Post by: Grecs on June 06, 2009, 15:58:55 pm Kαι πως βλεπω τι εχω γραψει μεσα σε αυτα ?
Title: Re: Εργασία G Post by: Merlin on June 06, 2009, 16:01:56 pm Κατέβασε το Notepad ++ (http://notepad-plus.sourceforge.net/uk/site.htm) και κάνε edit with notepad ++
Title: Re: Εργασία G Post by: Grecs on June 06, 2009, 16:07:23 pm Κατέβασε το Notepad ++ (http://notepad-plus.sourceforge.net/uk/site.htm) και κάνε edit with notepad ++ ΕυχαριστωΤελως παντων εκανα οτι μου ειπες και μοθ βγαζει στα αρχεια αντι για δεδομενα κατι SoH EXT σε μαυρο πλαισιο με ασπρα γραμματα, τι διαολο? Title: Re: Εργασία G Post by: Merlin on June 06, 2009, 16:09:29 pm Είναι binary αρχείο (http://en.wikipedia.org/wiki/Binary_file),μην τη ψάχνεις :)
Title: Re: Εργασία G Post by: Grecs on June 06, 2009, 16:10:52 pm Δλδ ο μονος τροπος να ελνχω αν ειναι σωστα ειναι με πριντ στο προγραμμα μου?
Title: Re: Εργασία G Post by: Merlin on June 06, 2009, 16:19:30 pm Μάλλον ναι,νομίζω ότι ο μόνος λόγος που δουλεύουμε με binary αρχεία εδώ είναι επειδή θέλει να χρησιμοποιήσουμε τις FSEEK συναρτήσεις για την προσπέλαση των δεδομένων μέσα στο αρχείο με τυχαίο τρόπο,όχι απαραίτητα σειριακό(πράγμα που δεν μπορείς να κάνεις με.txt αρχεία).
http://euklid.mi.uni-koeln.de/c/mirror/mickey.lcsc.edu/%257Esteve/c16.html (http://euklid.mi.uni-koeln.de/c/mirror/mickey.lcsc.edu/%257Esteve/c16.html) Title: Re: Εργασία G Post by: Emfanever on June 06, 2009, 18:14:56 pm Δλδ ο μονος τροπος να ελνχω αν ειναι σωστα ειναι με πριντ στο προγραμμα μου? Είχα ποστάρει στην προηγούμενη σελίδα γιαυτό αν θες να δεις πως αποθηκεύονται μπορείς να πάρεις μια ιδέα κάνοντας το με fprintf και fscanf (ωστοσο η εργασία ζητάει fread ,fwrite) http://www.thmmy.gr/smf/index.php?topic=32727.msg612745#msg612745 Title: Re: Εργασία G Post by: Andre on June 06, 2009, 22:22:55 pm Code: #include <stdio.h> Πού κάνω το λάθος? EDIT: Τελικά το βρήκα. Ενώ δημιουργούσα αρχείο για γράψιμο ("wb") χρησιμοποιούσα την fread() για διάβασμα από το αρχείο! Title: Re: Εργασία G Post by: Αιμιλία η φτερωτή χελώνα on June 07, 2009, 17:41:10 pm στο βιβλιο "Μαθαινοντας C++ απο το 0" που λεει για fopen κλπ κλπ κλπ; :( :???: :o :o :o :o :o :o :o :o :o :o :o
ή μηπως τα εχει μονο στις σημειωσεις του φυλλαδιου; >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( Title: Re: Εργασία G Post by: salala on June 07, 2009, 20:06:33 pm Αν δε χρησιμοποιήσω δισδιάστατο πίνακα αυτός ο κώδικας ειναι σωστός για την εισαγωγή των στοιχείων στο αρχείο ή τελείως μπούρδα; Code: for (i=0; i<365; i++){ Title: Re: Εργασία G Post by: Captain Mixos on June 07, 2009, 20:48:07 pm Code: for (i=0; i<365; i++){ Title: Re: Εργασία G Post by: Merlin on June 07, 2009, 21:13:53 pm Eξαρτάται,αν είναι pointer,τότε όχι,αν δεν είναι τότε ναι.Πάντως εσύ δεν θέλεις να βάλεις τιμή με αναφορά εκεί(&κάτι) αλλά pointer(σκέτο κάτι,αρκεί να το έχεις δηλώσει int *κάτι;),αλλιώς ποιος ξέρει τι αποτελέσματα θα έχει αυτό στο πρόγραμμά σου.
Title: Re: Εργασία G Post by: Andre on June 07, 2009, 22:54:57 pm Επισης.Γινεται σε ενα αρχειο να βαλω δυο πινακες? Μπορείς να βάλεις τα πάντα όλα. Αρκεί να θυμάσαι ποιον έβαλες πρώτο και ποιον δεύτερο. :P Έστω ότι βάζεις δύο πίνακες στο αρχείο με δύο fwrite. Χρησιμοποιώντας στη συνέχεια την fread (για να γεμίσω έναν πίνακα από δεδομένα του αρχείου), τα στοιχεία τίνος από τους δύο πίνακες θα αντιγράψει στον πίνακά μου? Title: Re: Εργασία G Post by: Merlin on June 07, 2009, 23:03:14 pm Μπορείς να κάνεις μία fseek για να είσαι σίγουρος,μιας και εδώ δουλεύεις με δυαδικά αρχεία.Νομίζω βγάζει σφάλματα για text files.
Title: Re: Εργασία G Post by: Merlin on June 07, 2009, 23:05:41 pm Και φυσικά keep in mind ότι με την σειρά που τα έγραψες στο αρχείο με αυτή την σειρά θα διαβάζονται.Δηλαδή ο 1ος πίνακας,τον οποίο έκανες fwrite θα μπορείς να τον διαβάσεις αν κάνεις fseek με seek_set(δηλαδή από την αρχή του αρχείου)
Title: Re: Εργασία G Post by: Θάνος on June 08, 2009, 12:20:43 pm Αν θέλω στο data να αποθηκεύσω 2 πίνακες, πώς θα ξέρω ποιον απ τους 2 θα διαβάσει όταν το κάνω fread??
Title: Re: Εργασία G Post by: Merlin on June 08, 2009, 13:25:30 pm Υπάρχει κάτι που λέγεται δείκτης αρχείου,αυτόν μπορείς να τον μετακινείς με την fseek συνάρτηση.
Title: Re: Εργασία G Post by: Merlin on June 08, 2009, 14:00:31 pm Οκ,τελικά δουλεύει με τις fprintf και fscanf,κάντε το έτσι(ούτε putw/getw,ούτε fread/fwrite)
Title: Re: Εργασία G Post by: Emfanever on June 08, 2009, 16:25:09 pm Οκ,τελικά δουλεύει με τις fprintf και fscanf,κάντε το έτσι(ούτε putw/getw,ούτε fread/fwrite) Απότι κατάλαβα η εκφώνηση λέει τα αρχεία να είναι δυαδικά Τα κανάλια των αρχείων fly_num και data να είναι δυαδικά κανάλια. αυτό σημαίνει ότι πρέπει να χρησιμοποιήσεις fread και fwrite , γτ τα fprintf και fscanf δημιουργούν αρχεία κειμένου. Μπορείς εύκολα να το καταλάβεις από το μέγεθος του αρχείου που δημιουργείται. δεν είμαι σίγουρος, αλλά καλύτερα ρωτήστε πριν το κάνετε έτσι Title: Re: Εργασία G Post by: Merlin on June 08, 2009, 16:28:55 pm :-X
Moυ καταστρέφεις τα όνειρα τώρα... Title: Re: Εργασία G Post by: Anastacia on June 08, 2009, 16:32:51 pm Επειδή έχασα το τελευταίο μάθημα με την αλλαγή που έγινε στην ώρα (καταραμένε Κορτέση, τώρα το θυμήθηκες? έχουμε φτιάξει το προγραμμά μας, γαμώ το κέρατο μου!) κ έχω ψιλοπελαγώσει με αύτα, θέλω να ρωτήσω το εξής απλοϊκό: είστε σίγουροι ότι το search της περιόδου πρέπει να γίνει μέσα στο αρχείο?? Κ εξηγούμαι: π.χ. γεμίζω τους πίνακες με κλασσικό τρόπο, περνάω τα δεδομένα που θέλω μέσα στα αρχεία με fwrite και μετά βρίσκω το άθροισμα των επιβατών από τους πίνακες που έφτιαξα εκτός αρχείων. Όχι??
Δεν μπορώ να καταλάβω πως θα χειριστώ τον δισδιάστατο πίνακα μέσα στο αρχείο data. (κ απ' ότι καταλαβαίνω το ψάχνετε κ εσείς!) Title: Re: Εργασία G Post by: Emfanever on June 08, 2009, 16:35:42 pm εγώ ακόμα δε κατάλαβα γιατί θέλετε δισδιάστατο πίνακα, αφού δε χρειάζεται
Title: Re: Εργασία G Post by: Anastacia on June 08, 2009, 16:41:20 pm Πως θα δομήσεις τα δεδομένα σου στο αρχείο data ώστε να βγαζουν κάπιο νόημα όταν θα τα ψάξεις?
Δλδ ψάχνεις τους επιβάτες των αεροπλάνων της 3ης μέρας, αν δεν είναι όλα τα αεροπλάνα της 3ης μέρας σε μια γραμμή (ή κάτι παρόμοιο) πως θα ξέρεις από που να αρχίσεις κ πόσα να πάρεις?? Παίζει να μην έχω καταλάβει καλά, βέβαια, τι ζητάει. Title: Re: Εργασία G Post by: Γιώργος on June 08, 2009, 16:44:03 pm να είναι δυαδικά κανάλια. Πολύ γλαφυρή έκφραση ομολογουμένως. Καλά τον λέω εγώ ποιητή... :P Title: Re: Εργασία G Post by: Emfanever on June 08, 2009, 16:44:22 pm διάβασε λίγο από εδώ και κάτω, λέω περίπου πως γίνεται
http://www.thmmy.gr/smf/index.php?topic=32727.msg612680#msg612680 Title: Re: Εργασία G Post by: Anastacia on June 08, 2009, 16:55:28 pm ΟΚ, thanks.
Title: Re: Εργασία G Post by: El Niño on June 08, 2009, 17:40:29 pm ισως να φανει λιγο ακυρη η ερωτηση αλλα η ασκηση χρειαζεται δυναμικη δεσμευση μνημης??
Title: Re: Εργασία G Post by: nasia!! on June 08, 2009, 17:45:37 pm Και να δεσμεύσεις μνήμη για ποιό πράγμα στην προκειμένη περίπτωση? :???:
Title: Re: Εργασία G Post by: Merlin on June 08, 2009, 17:46:45 pm ισως να φανει λιγο ακυρη η ερωτηση αλλα η ασκηση χρειαζεται δυναμικη δεσμευση μνημης?? Αν χρησιμοποιείς πουθενά πίνακες πέτα και μια δυναμική δέσμευση μνήμης να δείξεις ότι ξέρεις.Εγώ πάντως έβαλα :)Title: Re: Εργασία G Post by: El Niño on June 08, 2009, 17:48:29 pm για την δημιουργια του data...αναλογα με τον αριθμο των αεροπλανων που εχω πει οτι ερχονται καθε μερα!!
Title: Re: Εργασία G Post by: El Niño on June 08, 2009, 17:48:48 pm ισως να φανει λιγο ακυρη η ερωτηση αλλα η ασκηση χρειαζεται δυναμικη δεσμευση μνημης?? Αν χρησιμοποιείς πουθενά πίνακες πέτα και μια δυναμική δέσμευση μνήμης να δείξεις ότι ξέρεις.Εγώ πάντως έβαλα :)Title: Re: Εργασία G Post by: nasia!! on June 08, 2009, 17:50:52 pm για την δημιουργια του data...αναλογα με τον αριθμο των αεροπλανων που εχω πει οτι ερχονται καθε μερα!! σωστός! ^innocent^ Title: Re: Εργασία G Post by: Andre on June 08, 2009, 22:21:57 pm πχ Pin[365] Υποθέτω διπλασιάζεις το sizeof(int) γιατί η fseek δουλεύει με long? Αν όμως είναι sizeof (long int) = 4, χρειάζεται?όπου σαν πρώτο στοιχείο θα έχεις με βάση το παραδειγμα σου Pin[0]= 3 * (2*sizeof(int)) Pin[1]=1* (2*sizeod(int)) ktl είναι εύκολο να γίνει αφού έχεις έτοιμο συνολικό άριθμό πτήσεων κάθε μέρας. Έτσι οταν θέλεις να πάς στην Ν μέρα κάνεις ένα sum τα pin[i ] από 0 έως Ν και έχεις τον αριθμό bytes Title: Re: Εργασία G Post by: Emfanever on June 08, 2009, 22:35:06 pm όχι, διπλασιάζω το sizeofint γιατί κάθε πτήση περιλαμβάνει 2 μεταβλητές int , τον αριθμό επιβατών και τον αριθμό πτήσης
Title: Re: Εργασία G Post by: Grecs on June 08, 2009, 22:36:03 pm Να ρωτησω κατι αν ξερει κανεις οταν με την fseek παω στο πρωτο στοιχειο που θελω.
μετα οταν κανω getw o pointer μετακινειται? Δλδ αν παρω το πρωτο int μετα ο pointer παει στον 2ο αυτοματα? Title: Re: Εργασία G Post by: Emfanever on June 08, 2009, 22:40:28 pm υποθέτω ναι, έτσι γίνεται τουλάχιστον με τα fscanf και fread
edit: αν δε γινόταν δε θα ήταν καθόλου βολικό Title: Re: Εργασία G Post by: Grecs on June 08, 2009, 23:07:10 pm E Αυτο λεω κι εγω μιας και ολα βολικα ειναι στην c MOYXAXAXA
Title: Re: Εργασία G Post by: theo_mich on June 08, 2009, 23:51:34 pm οποιος την εχει τελειωσει ας μου στειλει ενα πμ να τον ρωτησω κατι
Title: Re: Εργασία G Post by: Captain Mixos on June 08, 2009, 23:53:13 pm Να ρωτησω κατι αν ξερει κανεις οταν με την fseek παω στο πρωτο στοιχειο που θελω. Οταν λες pointer τι εννοεις????μετα οταν κανω getw o pointer μετακινειται? Δλδ αν παρω το πρωτο int μετα ο pointer παει στον 2ο αυτοματα? παντως αν εννοεις τον δεικτη του αρχειου δεν νομιζω να μετακινειται..... Title: Re: Εργασία G Post by: Merlin on June 09, 2009, 00:02:16 am Να ρωτησω κατι αν ξερει κανεις οταν με την fseek παω στο πρωτο στοιχειο που θελω. Οταν λες pointer τι εννοεις????μετα οταν κανω getw o pointer μετακινειται? Δλδ αν παρω το πρωτο int μετα ο pointer παει στον 2ο αυτοματα? παντως αν εννοεις τον δεικτη του αρχειου δεν νομιζω να μετακινειται..... Title: Re: Εργασία G Post by: Αιμιλία η φτερωτή χελώνα on June 09, 2009, 05:31:35 am εκανα την εργασιαααααααα ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^
[σβηστε με αν θελετε!] Title: Re: Εργασία G Post by: Γιώργος on June 09, 2009, 10:47:30 am εκανα την εργασιαααααααα ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ [σβηστε με αν θελετε!] (http://web.linguist.umass.edu/~whisc/2007/11/01/candy.png) Title: Re: Εργασία G Post by: Αιμιλία η φτερωτή χελώνα on June 09, 2009, 20:28:10 pm καραμελααααααααααααααααααααααααααααααα
καραμελααααααααααααααααααααααααααααααα ^wav^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ ^carnaval^ |