THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: Wanderer on July 08, 2007, 18:22:34 pm



Title: filopen() και εντολές read & write
Post by: Wanderer on July 08, 2007, 18:22:34 pm
Τί νόημα έχει να του λέμε "άνοιξέ το για διάβασμα", "εδώ άνοιξέ το για γράψιμο", δεν είναι καλύτερα να ανοίγουμε το αρχείο στην αρχή με μια εντολή fileopen("...",r+); και να το κρατάμε έτσι μέχρι το τέλος του προγράμματος, όπου και θα το κλείνουμε; Είναι λάθος αυτό;


Title: Re: filopen() και εντολές read & write
Post by: 4Dcube on July 08, 2007, 19:56:32 pm
Αν κατάλαβα καλά, ρωτάς γιατί να φέρνεις το ένα τετράδιο στο θρανίο τη φορά και δεν τα φέρνεις όλα μαζί;


Title: Re: filopen() και εντολές read & write
Post by: Wanderer on July 08, 2007, 19:59:31 pm
Δεν κατάλαβα τί σχέση έχει το παράδειγμα με αυτό που ρωτάω. Φταίει ίσως το ότι από file handling μέσω προγραμματισμού έχω μικρή εμπειρία :-\


Title: Re: filopen() και εντολές read & write
Post by: Wanderer on July 08, 2007, 20:01:36 pm
Ή μάλλον νομίζω ότι κατάλαβα, αλλά μπορείς να γίνει λίγο πιο σαφής;


Title: Re: filopen() και εντολές read & write
Post by: 4Dcube on July 08, 2007, 20:14:42 pm
Τί νόημα έχει να του λέμε "άνοιξέ το για διάβασμα", "εδώ άνοιξέ το για γράψιμο", δεν είναι καλύτερα να ανοίγουμε το αρχείο στην αρχή με μια εντολή fileopen("...",r+); και να το κρατάμε έτσι μέχρι το τέλος του προγράμματος, όπου και θα το κλείνουμε; Είναι λάθος αυτό;
Λοιπόν, λες ότι υπάρχουν ξεχωριστές εντολές που λένε η μία "άνοιξέ το για διάβασμα" η άλλη "άνοιξέ το για γράψιμο" και η άλλη "άνοιξέ το για διάβασμα και γράψιμο". Έτσι;
Ρωτάς αν είναι σωστό, αντί να κοιτάμε αν χρειάζεται διάβασμα ή γράψιμο, να του λέμε να τα κάνει όλα. Καλά τα λέω;

Ε, λοιπόν με το ποστ μου παραπάνω σου είπα στα γρήγορα ότι αναρωτιέσαι για τη χρησιμότητα της κάθε εντολής που ίσως να μη βλέπεις σε αυτό που δουλεύεις. Το ερώτημά σου είναι περισσότερο θεωρητικό έχω την εντύπωση. Γι'αυτό σου είπα το τσιτάτο με τα τετράδια. Είναι διαφορετικό να έχεις καθένα τετράδιο σύμφωνα με την εργασία σου στο θρανίο και διαφορετικό να τα έχεις όλα. Γιατί; Παίζει ρόλο ο χώρος που έχει το θρανίο αλλά και τα δυο σου χέρια, όπως και τα δυο σου μάτια.

Από μια άλλη άποψη, θα μπορούσαμε να μη χρησιμοποιούμε καθόλου βρόγχους επανάληψης ΑΚΑ loops και να χρησιμοποιούμε GOTO. Αλλά οι προγραμματιστές σε επίπεδο άνω της assembly το απεχθάνονται.

Άρα, κάθε εντολή έχει τα συν και τα πλην της. Εφόσον χρειάζεσαι σε κάποια περίπτωση ελάχιστη υπολογιστική ισχύ, θα επιλέξεις και την κατάλληλη εντολή. Γιατί κάθε εντολή, ανάλογα με την πολυπλοκότητά της δεσμεύει και περισσότερους διαύλους, καταχωρητές, αλλά κυρίως χρόνο (η διάρκεια της εκτέλεσης στους κύκλους του ρολογιού του υπολογιστή - βλέπε 3,1GHz λέμε τώρα). Καταλαβαίνεις την πολυπλοκότητα της εντολής αν δεις τη σύνταξή της.

Ελπίζω να έγινα κατανοητός.


Title: Re: filopen() και εντολές read & write
Post by: Wanderer on July 08, 2007, 22:42:40 pm
Πλήρως κατανοητός, ευχαριστώ πολύ :)