Αρχεία εδοµένων. Προγραµµατισµός Ι 1

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

Download "Αρχεία εδοµένων. Προγραµµατισµός Ι 1"

Transcript

1 Αρχεία εδοµένων Προγραµµατισµός Ι 1

2 Μόνιµη αποθήκευση δεδοµένων Η µνήµη (RAM) του Η/Υ κρατάδεδοµένα µόνο όσο της δίνεται µια ικανοποιητική παροχή ρεύµατος. Τα περιεχόµενα της µνήµης χάνονται (αµέσως) µε το που διακοπεί η τροφοδοσία ρεύµατος στον Η/Υ. Υπάρχει ανάγκη για την µόνιµη αποθήκευση δεδοµένων (των προγραµµάτων) ώστε αυτά να εξακολουθούν να υφίστανται αφού σβήσει ο Η/Υ. Αυτό επιτυγχάνεται µε µαγνητικά/οπτικά µέσα. Τα δεδοµένα «γράφονται» αλλάζοντας είτε την µαγνητική κατεύθυνση είτε την επιφανειακή δοµή του υλικού (µαγνητική ταινία, µαγνητικός δίσκος, οπτικός δίσκος, κλπ) έτσι ώστε να µπορεί να γίνει διαχωρισµός µεταξύ των καταστάσεων 0 και 1. Προγραµµατισµός Ι lalis@inf.uth.gr 2

3 Μοντέλο πρόσβασης Το µοντέλο µνήµης που δίνεται στον προγραµµατιστή είναι του πίνακα από bytes µε άµεση πρόσβαση σε όλαταστοιχείαµε το ίδιο κόστος (direct access). Η πρόσβαση στα µόνιµα µέσα αποθήκευσης είναι (πολύ) πιο αργή και διαφορετική στη φύση της, απαιτώντας πολύπλοκες λειτουργίες διαχείρισης. Γιααυτότολόγο(κυρίως) τα µέσα µόνιµης αποθήκευσης χρησιµοποιούνται µέσα από ένα ειδικό υποσύστηµα λογισµικού: το σύστηµα αρχείων. Το µοντέλο που δίνεται στον προγραµµατιστή για τα µέσα αποθήκευσης είναι µια ακολουθία από bytes µε σειριακή πρόσβαση (sequential access). Προγραµµατισµός Ι 3

4 Σχετικές συναρτήσεις #include <stdio.h> FILE fopen(const char *fname, const char *mode); void fclose(file *f); void fflush(file *f); int fgetc(file *f); int fputc(int c, FILE *f); int fscanf(file *f, const char *fmt, ); int fprintf(file *f, const char *fmt, ); size_t fread(const void *ptr, size_t size, size_t n, FILE *f); size_t fwrite(const void *ptr, size_t size, size_t n, FILE *f); int fseek(file *f, long int offset, int whence); int feof(file *f); int ferror(file *f); void clearerr(file *f); Προγραµµατισµός Ι 4

5 Βασικές συναρτήσεις FILE *fopen(const char *fname, const char *mode) άνοιγµα τουαρχείουµε όνοµα fname σύµφωνα µε τον προσδιορισµό mode και επιστροφή δείκτη σε αντίστοιχη δοµή πρόσβασης void fclose(file *f) κλείσιµο της δοµής πρόσβασης αρχείου f (που έχει επιστραφεί από επιτυχηµένη κλήση της fopen) void fflush(file *f) µονιµοποίηση αλλαγών που έγιναν στο αρχείο, χωρίς να γίνει κλείσιµο τουαρχείου σε κάποια συστήµατα αρχείων, η fclose δεν κάνει fflush Προγραµµατισµός Ι lalis@inf.uth.gr 5

6 Προσδιορισµοί της fopen "r" "w" "a" "r+" "w+" "a+" άνοιγµα αρχείου(που ήδη υπάρχει) για ανάγνωση άνοιγµα αρχείουπουήδηυπάρχειγιαεγγραφή (µε διαγραφήτωνδεδοµένων που υπάρχουν) ή δηµιουργία νέου αρχείου αν αυτό δεν υπάρχει άνοιγµα αρχείου που υπάρχει για εγγραφή, αποκλειστικά µε προσθήκη στο τέλος του αρχείου ήδηµιουργία νέου αρχείου αν αυτό δεν υπάρχει "r" µε εγγραφή, χωρίς δηµιουργία νέου αρχείου "w" µε ανάγνωση "a" µε ανάγνωση Μη επιτρεπτός προσδιορισµός (mode) οδηγεί σε επιστροφή λάθους (τιµής 0) από την fopen. Προγραµµατισµός Ι 6

7 Βασικές συναρτήσεις int fgetc(file *f) ανάγνωση του «επόµενου» byteστο αρχείο (ή EOF) int fputc(int c, FILE *f) γράψιµο του«επόµενου» byteστο αρχείο int fscanf(file *f, const char *frmt, ) ανάγνωση bytes από το αρχείο σύµφωνα µε τον προσδιορισµό frmt και αποθήκευση τιµών στις µεταβλητές των οποίων οι διευθύνσεις δίνονται σαν παράµετροι σε αντιστοιχία µε την scanf int fprintf(file *f, const char *frmt, ) γράψιµο bytes στοαρχείοσύµφωνα µε τον προσδιορισµό frmt σε αντιστοιχία µε την printf Προγραµµατισµός Ι lalis@inf.uth.gr 7

8 Βασικές συναρτήσεις size_t fread(const void *p, size_t size, size_t n, FILE *f) ανάγνωση από n αντικείµενα µεγέθους size bytes και αποθήκευση στη µνήµη, αρχίζοντας από την διεύθυνση p επιστρέφει τον αριθµό των αντικειµένων που διαβάστηκαν επιτυχώς size_t fwrite(const void *p, size_t size, size_t n, FILE *f) γράψιµο απόn αντικείµενα µεγέθους size bytes στο αρχείο, αρχίζοντας από την διεύθυνση p επιστρέφει τον αριθµό των αντικειµένων που γράφτηκαν επιτυχώς Προγραµµατισµός Ι lalis@inf.uth.gr 8

9 Βασικές συναρτήσεις int feof(file *f) επιστρέφει τιµή!0 αν η επόµενη πράξη θα προσπαθήσει να «περάσει» το µέγεθος του αρχείου, διαφορετικά 0 int ferror(file *f) επιστρέφει τιµή!0 αν παρουσιαστεί κάποιο πρόβληµα µε τις πράξεις πρόσβασης για το συγκεκριµένο αρχείο (ο λόγος της αποτυχίας αποθηκεύεται ως ακέραιος στην καθολική µεταβλητή errno, και το αντίστοιχο µήνυµα λάθους επιστρέφεται µέσω της strerror) int clearerr(file *f) επαναφέρει την κατάσταση πρόσβασης σε «κανονική», αγνοώντας τυχόν προηγούµενο πρόβληµα πρόσβασης Προγραµµατισµός Ι lalis@inf.uth.gr 9

10 Σειριακή πρόσβαση Για κάθε αρχείο διατηρείται (εσωτερικά) µια µεταβλητή που υποδεικνύει την θέση στο αρχείο από την οποία θα αρχίσει η επόµενη πράξη (ανάγνωσης/εγγραφής). Κάθε πράξη ανάγνωσης ή εγγραφής αυξάνει την τιµή του δείκτη κατά τον αριθµό των bytes που διαβάστηκαν από το αρχείο ή γράφτηκαν στο αρχείο. Όταν ο δείκτης φτάσει το τέλος του αρχείου, οι πράξεις ανάγνωσης δεν εκτελούνται και επιστρέφουν EOF ή/και κωδικό λάθους (οι πράξεις εγγραφής απλά επεκτείνουν το µέγεθος του αρχείου όσο χρειάζεται). Πρέπει πάντα να γίνεται έλεγχος της τιµής που επιστρέφουν οι πράξεις πρόσβασης σε αρχεία. Προγραµµατισµός Ι 10

11 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 11

12 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 12

13 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 13

14 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 14

15 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 15

16 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 16

17 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' Προγραµµατισµός Ι lalis@inf.uth.gr 17

18 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 18

19 FILE *f; char c; f = fopen("test.txt","r+"); fputc('!',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 19

20 Βασικές συναρτήσεις Ο δείκτης µπορεί να επανατοποθετηθεί σε κάποιο σηµείο του αρχείου µέσω της πράξης fseek. int fseek(file *f, long offset, int whence) τοποθέτηση σηµείου ανάγνωσης/εγγραφής στην θέση offset και σε σχέση µε τον προσδιορισµό whence Ητιµές για την παράµετρο whence: SEEK_SET (από την αρχή του αρχείου) SEEK_CUR (από την τρέχουσα θέση) SEEK_END (από το τέλος του αρχείου) Επιστρέφει 0 εάν επιτύχει, διαφορετικά -1. Προγραµµατισµός Ι lalis@inf.uth.gr 20

21 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 21

22 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 22

23 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 23

24 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 24

25 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'e' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 25

26 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'i' 'l' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 26

27 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'i' ' ' 'l' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 27

28 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'i' ' ' 'y' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 28

29 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'i' ' ' 'y' 'o' '!' Προγραµµατισµός Ι lalis@inf.uth.gr 29

30 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'i' ' ' 'y' 'o' 'u' Προγραµµατισµός Ι lalis@inf.uth.gr 30

31 FILE *f; char c; f = fopen("test.txt","r+"); fseek(f,-1,seek_end); fseek(f,-5,seek_cur); fputc('i',f); fflush(f); fputc(' ',f); fflush(f); fputc('y',f); fflush(f); fputc('o',f); fflush(f); fputc('u',f); fflush(f); αρχείο "test.txt" 'h' 'i' ' ' 'y' 'o' 'u' Προγραµµατισµός Ι lalis@inf.uth.gr 31

32 #include <stdio.h> int main(int argc, char *argv[]) { FILE *f; char c; } f = fopen(argv[1],"w"); do { c = getchar(); fputc(c,f); } while (c!= '~'); fflush(f); f = fopen(argv[1],"r"); while (!feof(f)) { c = fgetc(f); putchar(c); } Προγραµµατισµός Ι lalis@inf.uth.gr 32

33 #include <stdio.h> int main(int argc, char *argv[]) { FILE *f; char s[64]; f = fopen(argv[1],"w"); do { scanf("%63s",s); fprintf(f,"%s ",s); } while (strcmp(s,"end")); fflush(f); κενός χαρακτήρας ως διαχωριστικό ανάµεσα στα δύο αλφαριθµητικά f = fopen(argv[1],"r"); while (!feof(f)) { fscanf(f,"%63s",s); printf("%s ",s); } } Προγραµµατισµός Ι lalis@inf.uth.gr 33

34 Αποθήκευση binary / ASCII Μπορούµε να αποθηκεύσουµε τα δεδοµένα σε µορφή binary ήσεµορφή χαρακτήρων ASCII (text). Για την ίδια πληροφορία διαφέρει ο αριθµός και φυσικά(!) οι τιµές των bytes που γράφονται. Π.χ. int i=1; binary: x00 0x00 0x00 0x01 ascii: 0x31 Π.χ. int i= ; binary: 0x3Β 0x9Α 0xCA 0x00 ascii: 0x31 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 Προγραµµατισµός Ι lalis@inf.uth.gr 34

35 Αποθήκευση binary Γίνεται µε την συνάρτηση fwrite. εν απαιτούνται (απαραίτητα) διαχωριστικά bytes καθώς για κάθε τύπο δεδοµένων γράφεται ένας συγκεκριµένος αριθµός bytes ακριβώς όσα bytes αντιστοιχούν στο µέγεθος του τύπου. Κατά την ανάγνωση, µέσω fread, διαβάζονται όσα bytes αντιστοιχούν στο µέγεθος του τύπου. Υπάρχει πρόβληµα ασυµβατότητας, αν τα δεδοµένα γράφονται / διαβάζονται από προγράµµατα που εκτελούνται σε περιβάλλοντα µε διαφορετικές συµβάσεις (α) για τα µεγέθη βασικών και σύνθετων τύπων ή/και (β) την αποθήκευση τους στην µνήµη. Προγραµµατισµός Ι lalis@inf.uth.gr 35

36 f=fopen("test","w"); i=1; j= ; fwrite((void*)&i,sizeof(int),1,f); fwrite((void*)&j,sizeof(int),1,f); fflush(f); τα όρια µεταξύ των δεδοµένων δίνονται έµµεσα από το µέγεθος των τύπων 0x01 0x00 0x00 0x00 0x00 0xCA 0x9A 0x3Β αρχείο "test" Προγραµµατισµός Ι 36

37 Συµβάσεις κωδικοποίησης δεδοµένων Για να επιτευχθεί µεταφερσιµότητα των δεδοµένων, υιοθετούνται κοινές συµβάσεις εξωτερικής αναπαράστασης, για το πως αποθηκεύονται τιµές όλων των βασικών τύπων δεδοµένων µε τρόπο που είναι ανεξάρτητος της µεθόδου αποθήκευσης δεδοµένων στην µνήµη του εκάστοτε περιβάλλοντος εκτέλεσης (γλώσσα, µεταφραστής, επεξεργαστής). Σηµείωση: το ίδιο πρόβληµα πρέπει να λυθεί για να επιτευχθεί ανταλλαγή δεδοµένων πάνω από δίκτυο. Μια κλασική λύση: αποθήκευση σε µορφή ASCII. Προγραµµατισµός Ι 37

38 Αποθήκευση ASCII Γίνεται µε την συνάρτηση fprintf. Απαιτείται η εισαγωγή επιπλέον χαρακτήρων µορφοποίησης έτσι ώστε να οριοθετούνται τα διάφορα δεδοµένα που αποθηκεύονται. Ως διαχωριστικό χρησιµοποιούνται συνήθως οι χαρακτήρες ' ' ή '\n', όπως και για τις τιµές που εκτυπώνουµε στην οθόνη µέσω printf, για να µπορεί ο χρήστης να εντοπίζει (οπτικά) τον τερµατισµό µιας τιµής και την αρχή της επόµενης. Σηµείωση: χρειάζεται προσοχή για τον σωστό χειρισµό των«διαχωριστικών» χαρακτήρων που τυχόν δηµιουργούνται (ότι δεν είναι γράµµα/ψηφίο). Προγραµµατισµός Ι 38

39 f=fopen("test","w"); i=1; j= ; fprintf(f,"%d %d",i,j); fflush(f); κενός χαρακτήρας ως διαχωριστικό ανάµεσα στα δύο αλφαριθµητικά '1' ' ' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' αρχείο "test" Προγραµµατισµός Ι 39

40 Σύµβαση γραψίµατος/ανάγνωσης Ανεξάρτητα µε τηνµορφή που γίνεται η αποθήκευση, binary ή ASCII, πρέπει να υπάρχει κοινή σύµβαση γραψίµατος και ανάγνωσης δεδοµένων την οποία να ακολουθεί τόσο ο κώδικας γραψίµατος όσο και ο κώδικας ανάγνωσης των δεδοµένων. Πρέπει να καθοριστούν: (α) η µορφή αποθήκευσης,, (β) η κωδικοποίηση των δεδοµένων, καθώς και (γ) η σειρά (και η λογική) µε την οποία γράφονται τα δεδοµένα στο αρχείο και σύµφωνα µε την οποία θα διαβαστούν τα δεδοµένα από το αρχείο. Αυτήησύµβαση πρέπει να τεκµηριωθεί κατάλληλα. Η µετατροπή πολύπλοκων δοµών σε αποθηκεύσιµη µορφή ονοµάζεται συχνά και «σειριοποίηση». Προγραµµατισµός Ι 40

41 αποθήκευση δεδοµένων σε δοµές κυρίως µνήµης Η/Υ σειριοποίηση αποθήκευση δεδοµένων σε «επίπεδη» µορφή αποσειριοποίηση Προγραµµατισµός Ι 41

42 Παρένθεση (σώσιµο και επαναφορά βάσης δεδοµένων σε αρχείο) Προγραµµατισµός Ι 42

43 Πρόβληµα Ζητούµενο: επιθυµούµε νασώσουµε ταδεδοµένα που διαχειριζόµαστε µέσω της δοµής στην κυρίως µνήµη σεένααρχείο, καθώς και να επαναφέρουµε µια «προηγούµενη»κατάσταση ανά πάσα στιγµή διαβάζοντας τα δεδοµένα από το αντίστοιχο αρχείο. ιαδικασία εγγραφής διασχίσουµε τηνδοµή τωνδεδοµένων για κάθε στοιχείο / κόµβο που είναι υπό χρήση, πραγµατοποιούµε αντίστοιχη εγγραφή στο αρχείο ιαδικασία ανάγνωσης δηµιουργούµε µια «άδεια» δοµή για κάθε εγγραφή που διαβάζουµε απότοαρχείο, προσθέτουµε ένα αντίστοιχο στοιχείο / κόµβο Προγραµµατισµός Ι lalis@inf.uth.gr 43

44 αποµάκρυνση προσθήκη επόµενο στοιχείο προς αποθήκευση νέων δεδοµένων... στοιχεία υπό χρήση ελεύθερα στοιχεία Προγραµµατισµός Ι 44

45 /* phone book */ #define N 100 struct entry { char used; char name[64]; char phone[64]; }; struct entry entries[n]; void phonebook_init() { int i; for (i=0; i<n; i++) { entries[i].used=0; } } Προγραµµατισµός Ι lalis@inf.uth.gr 45

46 void phonebook_save_binary(const char *fname) { int i; FILE *f; } f = fopen(fname,"w"); for (i=0; i<n; i++) { if (entries[i].used) { fwrite(&entries[i],sizeof(struct entry),1,f); } } void phonebook_load_binary(const char *fname) { int i; FILE *f; char tag; } phonebook_init(); /* clean state */ f = fopen(fname,"r"); i=0; while (fread(&entries[i],sizeof(struct entry),1,f)) { i++; } Προγραµµατισµός Ι lalis@inf.uth.gr 46

47 Σχόλιο Οι συναρτήσεις save και restore αποθήκευουν τα δεδοµένα σε µορφή binary, και µάλιστα «ως έχουν» στην µνήµη του περιβάλλοντος εκτέλεσης του Η/Υ. Η υλοποίηση δεν επιτυγχάνει µεταφερσιµότητα δεδοµένων, π.χ. στην περίπτωση που το πρόγραµµα (ξανα)µεταφραστεί µε διαφορετικό µεταφραστή ή/και εκτελεστεί πάνω σε διαφορετική αρχιτεκτονική. Για να επιτευχθεί µεταφερσιµότητα πρέπει να ορίσουµε και να υλοποιήσουµε µια κωδικοποίηση που είναι ανεξάρτητη περιβάλλοντος εκτέλεσης. Μια «εύκολη» λύση: µετατρέπουµε ταδεδοµένα σε/από χαρακτήρες ASCII, µέσω fprintf/fscanf. Προγραµµατισµός Ι 47

48 void phonebook_save_ascii(const char *fname) { int i; FILE *f; } f = fopen(fname,"w"); for (i=0; i<n; i++) { if (entries[i].used) { fprintf(f,"%s %s\n",entries[i].name,entries[i].phone); } } void phonebook_load_ascii(const char *fname) { int i,tag; FILE *f; } phonebook_init(); /* clean state */ f = fopen(fname,"r"); i=0; while (fscanf(f,"%s %s",entries[i].name,entries[i].phone)==2) { entries[i].used = 1; i++; } Προγραµµατισµός Ι lalis@inf.uth.gr 48

49 Σε µια σοβαρή εφαρµογή Θα γινόταν έλεγχος για περίπτωση αποτυχίας µετά από κάθε πράξη εγγραφής / ανάγνωσης αρχείου. Κατά την ανάγνωση θα γινόταν έλεγχος για το κατά πόσο υπάρχει πρόβληµα ακεραιότητας του αρχείου (για την αποφυγή ανάγνωσης αρχείων που δεν περιέχουν δεδοµένα του προγράµµατος ή αρχείων που έχουν «καταστραφεί»). Ηαντικατάστασητωνδεδοµένων του προγράµµατος θα γινόταν εφόσον η διαδικασία ανάγνωσης των δεδοµένων ολοκληρωνόταν επιτυχώς. Προγραµµατισµός Ι lalis@inf.uth.gr 49

50 Παρένθεση (σώσιµο και επαναφορά βάσης δεδοµένων σε αρχείο) Προγραµµατισµός Ι 50

FILE *fopen(const char *fname, const char *mode) void fclose(file *f) void fflush(file *f)

FILE *fopen(const char *fname, const char *mode) void fclose(file *f) void fflush(file *f) Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 19: Αρχεία Μόνιµη αποθήκευση δεδοµένων Η µνήµη (RAM) του Η/Υ κρατά δεδοµένα µόνο όσο της δίνεται µια ικανοποιητική παροχή ρεύµατος. Τα περιεχόµενα της µνήµης χάνονται (αµέσως)

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 15 η Αρχεία Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Σύνοψη Ορίστηκε από τον Dennis Ritchie το 1975 Μέρος του προτύπου ANSI C Λειτουργίες εισόδου/εξόδου υψηλού επίπεδου και ανεξάρτητες λειτουργικού συστήματος Υποστήριξη για

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

ιαφάνειες παρουσίασης #6 (β)

ιαφάνειες παρουσίασης #6 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ FILE SYSTEM >_ ΔΙΚΑΙΩΜΑΤΑ >_ ΔΙΚΑΙΩΜΑΤΑ? >_ ΜΕΤΑΒΟΛΗ ΔΙΚΑΙΩΜΑΤΩΝ +- chmod

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

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

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

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

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

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

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

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Αρχεία Το γενικό πλαίσιο: data stream (ρεύμα δεδομένων). stdin, stdout, stderr data stream ως προς τα δεδομένα βάσει προσπέλασης

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

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

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

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

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

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1 Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής

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

Εργαστήριο 9: Αρχεία

Εργαστήριο 9: Αρχεία Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.

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

Αρχεία. Προγραμματισμός II 1

Αρχεία. Προγραμματισμός II 1 Αρχεία Προγραμματισμός II 1 ais@inf.uth.gr Μόνιμη αποθήκευση δεδομένων Οι μεταβλητές και δομές δεδομένων ενός προγράμματος υπάρχουν στην μνήμη του Η/Υ Χάνονται όταν τερματιστεί το πρόγραμμα ή σβήσει ο

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

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

Προγραμματισμός σε C. Αρχεία κειμένου (Text files)

Προγραμματισμός σε C. Αρχεία κειμένου (Text files) Προγραμματισμός σε C Αρχεία κειμένου (Text files) Εισαγωγή Στη C έχουμε ειδικές συναρτήσεις για να επεξεργαζόμαστε αρχεία κειμένου που αποθηκεύονται στο δίσκο Τα αρχεία είναι σημαντικά για μόνιμη αποθήκευση

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

Η γλώσσα προγραμματισμού C Χειρισμός αρχείων

Η γλώσσα προγραμματισμού C Χειρισμός αρχείων Η γλώσσα προγραμματισμού C Χειρισμός αρχείων Γιατί αρχεία; Τα δεδομένα που χρησιμοποιούνται σε ένα πρόγραμμα βρίσκονται στην κύρια μνήμη του υπολογιστή όσο εκτελείται το πρόγραμμα. Μετά τη εκτέλεση του

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

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 8η εβδομάδα. Κοζάνη, 26 Νοεμβρίου 2008. Οι ασκήσεις αυτής της σειράς βασίζονται σε παραδείγματα από το βιβλίο του Β. Σεφερίδη C για αρχάριους

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

Περιεχόµενα. Πρόλογος... 15

Περιεχόµενα. Πρόλογος... 15 Πρόλογος... 15 Κεφάλαιο 1: Εισαγωγή... 17 Πώς να διαβάσετε αυτό το βιβλίο...18 Η γλώσσα C Ιστορική αναδροµή...19 Τα χαρακτηριστικά της C...20 C Μια δοµηµένη γλώσσα...20 C Μια γλώσσα για προγραµµατιστές...21

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

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

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

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 7: Αρχεία Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

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

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος A. Συναρτήσεις ροής εξόδου stdout 1. Γενικά 2. Η συνάρτηση putchar() 3. Οι συναρτήσεις putc() και fputc()

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

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

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

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009 Προγραµµατισµός Ι (ΗΥ10) ιάλεξη : Πίνακες, Αλφαριθµητικά Πίνακες Ο πίνακας είναι µια ειδική δοµή για την αποθήκευση µιας σειράς από δεδοµένα του ίδιου τύπου. Η δήλωσηενός πίνακα γίνεται όπως για µια κανονική

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 13: Σύνθετοι Τύποι Δεδομένων (Δομές) Σύνθετοι τύποι δεδομένων Συχνά τα δεδομένα ενός προγράμματος δεν είναι απλά κάποιοι μεμονωμένοι αριθμοί ή χαρακτήρες. Χρειάζεται να

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

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files) ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files) Αρχείο είναι μια συλλογή δεδομένων του ίδιου τύπου. Ενα αρχείο αποθηκεύεται στην περιφερειακή μνήμη (σκληρό δίσκο, δισκέττα). Τα αρχεία είναι μόνιμα. Τα δεδομένα

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

Προγραµµατισµός Ι 1

Προγραµµατισµός Ι 1 υναµική µνήµη Προγραµµατισµός Ι lalis@inf.uth.gr 1 υναµική µνήµη προγράµµατος Πολλές φορές, δεν γνωρίζουµε εκ των προτέρων πόση µνήµη θα χρειαστεί το πρόγραµµα µας. Αν δεσµεύσουµε περισσότερη µνήµη από

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

Σύνθετοι Τύποι εδοµένων. Προγραµµατισµός Ι 1

Σύνθετοι Τύποι εδοµένων. Προγραµµατισµός Ι 1 Σύνθετοι Τύποι εδοµένων Προγραµµατισµός Ι lalis@inf.uth.gr 1 Σύνθετοι τύποι δεδοµένων Συχνά τα δεδοµένα ενός προγράµµατος δεν είναι απλά κάποιοι µεµονωµένοι αριθµοί ή χαρακτήρες. Χρειάζεται να οµαδοποιήσουµε

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

Προγραμματισμός σε C. Αρχεία κειμένου (Text files)

Προγραμματισμός σε C. Αρχεία κειμένου (Text files) Προγραμματισμός σε C Αρχεία κειμένου (Text files) Εισαγωγή Στη C έχουμε ειδικές συναρτήσεις για να επεξεργαζόμαστε αρχεία κειμένου που αποθηκεύονται στο δίσκο Τα αρχεία είναι σημαντικά για μόνιμη αποθήκευση

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Βασικοί τύποι της C 2 Όνομα Τύπος / Κωδικοποίηση Μέγεθος (bytes) char Χαρακτήρας 1 int Ακέραιος 2 ή 4 (*) float Πραγματικός

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

Συναρτήσεις πρότυπης βιβλιοθήκης 1. Μερικές συνήθεις συναρτήσεις βιβλιοθήκης int atoi(const char *p) int fclose(file *fp)

Συναρτήσεις πρότυπης βιβλιοθήκης 1. Μερικές συνήθεις συναρτήσεις βιβλιοθήκης int atoi(const char *p) int fclose(file *fp) Συναρτήσεις πρότυπης βιβλιοθήκης Στο πρώτο μέρος δίνονται, με αλφαβητική σειρά, μερικές από τις πιο συνηθισμένες συναρτήσεις βιβλιοθήκης που συνοδεύουν τους σύγχρονους μεταγλωττιστές της C. Κάτω από το

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 13 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

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

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

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών ΑΝΑΚΟΙΝΩΣΕΙΣ 2 Από την επόµενη εβδοµάδα αλλάζουν οι ώρες των εργαστηρίων. Οι νέες ώρες θα ανακοινωθούν σήµερα στη

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

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

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

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

Αρχές Προγραμματισμού

Αρχές Προγραμματισμού Αρχές Προγραμματισμού https://eclass.upatras.gr/courses/ee806/index.php Βασίλης Παλιουράς paliuras@ece.upatras.gr ΠΕΡΙΣΣΟΤΕΡΑ ΓΙΑ ΑΡΧΕΙΑ 1 int main ( ) { int i; int num; FILE *data ; if ((data = fopen

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

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

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

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

Ι Ανασκόπηση και εμβάθυνση Μερικά πιο προχωρημένα θέματα. ΙΙ Τα αρχεία δεδομένων στη C

Ι Ανασκόπηση και εμβάθυνση Μερικά πιο προχωρημένα θέματα. ΙΙ Τα αρχεία δεδομένων στη C Ι Ανασκόπηση και εμβάθυνση Μερικά πιο προχωρημένα θέματα ΙΙ Τα αρχεία δεδομένων στη C Τελεστές αύξησης/μείωσης (++, --) Λειτουργία βάσει θέσης: ++x διάφορο του x++!!! Παράδειγμα 1 (postfix): Ισοδυναμεί

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

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

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

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1

Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1 Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1 lalis@inf.uth.gr Κλείδωμα αρχείων Οι διεργασίες που προσπελάζουν ένα αρχείο μέσω ξεχωριστών περιγραφέων, μπορούν να γράψουν / διαβάσουν τα περιεχόμενα

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

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1 Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων Προγραμματισμός II 1 lalis@inf.uth.gr Βιβλιοθήκες Τμήματα λογισμικού ευρύτερης χρησιμότητας που έχουν σχεδιαστεί με σκοπό να διευκολύνουν την ανάπτυξη πολλών διαφορετικών

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

Προγραµµατισµός. Αρχεία

Προγραµµατισµός. Αρχεία Προγραµµατισµός Αρχεία Προγραµµατισµός Η Βιβλιοθήκη Εισόδου/Εξόδου Στο stdio.h ηλώνεται ο τύπος δεδοµένων FILE (µε typedef) µε όλες τις πληροφορίες που χρειάζονται για προσπέλαση του αρχείου από τις αντίστοιχες

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές

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

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τύποι αρχείων Ρεύματα Άνοιγμα ρευμάτων Εγγραφή και ανάγνωση δεδομένων προς/από ένα ρεύμα Διαχείριση και κλείσιμο ρευμάτων Παραδείγματα

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

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

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

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

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

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

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

Διαδικαστικός Προγραμματισμός

Διαδικαστικός Προγραμματισμός Ενότητα 11: Αρχεία κειμένου Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Βασικοί τύποι της C 2 Όνομα Τύπος / Κωδικοποίηση Μέγεθος (bytes) char Χαρακτήρας 1 int Ακέραιος 2 ή 4 (*) float Πραγματικός

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

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

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

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

ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C

ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C C Χατζηκυριάκου Γιώργος ΑΜ:1047 1 ΔΟΥΛΕΥΟΝΤΑΣ ΜΕ ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C Mερός Α Πρόλογος Το κείμενο αυτό θα ασχοληθεί με την εγγραφή,ανάγνωση καθώς και με την εκτύπωση αρχείων κειμένου

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 10 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

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

Προεπεξεργαστής C. Προγραμματισμός Ι 1

Προεπεξεργαστής C. Προγραμματισμός Ι 1 Προεπεξεργαστής C Προγραμματισμός Ι lalis@inf.uth.gr 1 Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί στον

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

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service) Socket *sopen(const int type, const int protocol, const char *host, const char *service) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Αρχεία. Προγραμματισμός II 1

Αρχεία. Προγραμματισμός II 1 Αρχεία Προγραμματισμός II 1 ais@inf.uth.gr Αποθήκευση δεδομένων Οι μεταβλητές και δομές δεδομένων ενός προγράμματος υπάρχουν στην μνήμη του Η/Υ Χάνονται όταν τερματιστεί το πρόγραμμα ή σβήσει ο Η/Υ (πιθανώς

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 7: Δομές Επανάληψης - Αναγνωσιμότητα 19/10/2015 Επανάληψη εκτέλεσης: while 2 while () lexpr true false body Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

4ο σετ σημειώσεων - Χειρισμός αρχείων και structs

4ο σετ σημειώσεων - Χειρισμός αρχείων και structs 4ο σετ σημειώσεων - Χειρισμός αρχείων και structs 5 Ιουνίου 2012 1 Αρχεία Η στάνταρ βιβλιοθήκη stdio.h της γλώσσας μας δίνει τη δυνατότητα να χειριστούμε αρχεία του λειτουργικού συστήματος. Οι συναρτήσεις

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

αρχεία Εξωτερικά αρχεία Ηµερολόγιο υπολογισµών (log-file) εδοµένα από αρχεία m Επιστροφή στο λειτουργικό σύστηµα Επιπρόσθετες εντολές εισόδου/εξόσου

αρχεία Εξωτερικά αρχεία Ηµερολόγιο υπολογισµών (log-file) εδοµένα από αρχεία m Επιστροφή στο λειτουργικό σύστηµα Επιπρόσθετες εντολές εισόδου/εξόσου Ηµερολόγιο υπολογισµών (log-file) εδοµένα από αρχεία m Επιστροφή στο λειτουργικό σύστηµα Εγγραφή δεδοµένων σε εξωτερικά αρχεία Ανταλλαγή δεδοµένων µε το Excel Επιπρόσθετες εντολές εισόδου/εξόσου εξόσου

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

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 Ευρετήριο Η γλώσσα C σε βάθος # #define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 A abs(), 625 AND, 64 ASCII πίνακας

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

Ενδεικτικές λύσεις και στατιστικά

Ενδεικτικές λύσεις και στατιστικά Προγραμματισμός 1 Σύντομο Quiz 25/9/9 Ενδεικτικές λύσεις και στατιστικά Ερώτηση 1: Γράψτε παρακάτω συνάρτηση η οποία δέχεται ως παραμέτρους ένα string και ένα χαρακτήρα και επιστρέφει τον αριθμό των εμφανίσεων

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή στη C Η γλώσσα προγραμματισμού C είναι υψηλού επιπέδου με δυνατότητες

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

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

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Χειρισμός Αρχείων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αρχεία Συλλογές δεδομένων. Αποθηκεύονται στην περιφερειακή μνήμη: π.χ.

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