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

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

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

Transcript

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

2 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα το πληκτρολόγιο και γράφαμε πάντα στην οθόνη. Η είσοδος και η έξοδος δεν είναι μέρος της γλώσσας C αλλά μέρος της βιβλιοθήκης της. Επειδή τα προγράμματα σχετίζονται με το περιβάλλον τους με πολύ πιο πολύπλοκους τρόπους από ότι έχουμε δει ως τώρα, θα μελετήσουμε λίγο την βιβλιοθήκη εισόδου/εξόδου. Χαροκόπειο Πανεπιστήμιο 2/41

3 Βιβλιοθήκη Το αρχείο που περιέχει τους ορισμούς των τύπων και των συναρτήσεων που είναι απαραίτητες για την συναναστροφή με το σύστημα εισόδου/εξόδου της C είναι το stdio.h. Το όνομα του αρχείου σημαίνει Standard Input Output. Μέσω του αρχείου stdio.h ένα πρόγραμμα μπορεί να έχει επαφή με την τυπική είσοδο (συνήθως πληκτρολόγιο) και την τυπική έξοδο (συνήθως οθόνη). Οι τυπικές είσοδοι/έξοδοι παρέχονται στην C μέσω του εκάστωτε λειτουργικού συστήματος. Χαροκόπειο Πανεπιστήμιο 3/41

4 Ιεραρχία Δεδομένων.1. bit η μικρότερη ποσότητα 0 ή 1.2. byte 8 bits αποθήκευση ενός χαρακτήρα (αριθμοί, γράμματα, σύμβολα,...).3. word - 4 bytes (ή 8 bytes) αποθήκευση αριθμού (int, long, float,...).4. Αρχείο - συλλογή πολλών bytes.5. Βάση δεδομένων συλλογή αρχείων (και όχι μόνο) Χαροκόπειο Πανεπιστήμιο 4/41

5 Αρχεία Θα θέλαμε μέσα από την C να έχουμε πρόσβαση σε αρχεία, τα οποία δεν είναι ήδη συνδεδεμένα με το πρόγραμμα μας (όπως η τυπική είσοδος και έξοδος). Για αυτό τον λόγο η βιβλιοθήκη της C μας παρέχει την συνάρτηση fopen() η οποία αναλαμβάνει την επικοινωνία με το λειτουργικό σύστημα. Το λειτουργικό σύστημα είναι υπεύθυνο για την οργάνωση των αρχείων. Χαροκόπειο Πανεπιστήμιο 5/41

6 Αρχεία Η συνάρτηση fopen() είναι της μορφής FILE *fopen ( char *name, char *mode ) ; Πέρνει δύο παραμέτρους.1. μια συμβολοσειρά με το όνομα του αρχείου.2. μια συμβολοσειρά με διάφορες επιλογές για τον τρόπο πρόσβασης στο αρχείο και επιστρέφει ένα δείκτη ενός τύπου FILE. Χαροκόπειο Πανεπιστήμιο 6/41

7 FILE Ο τύπος FILE ορίζεται μέσα στην βιβλιοθήκη της C μέσω ενός typedef. Οι λεπτομέρειες υλοποίησης δεν μας απασχολούν. Αρκεί να πούμε πως ένας δείκτης τύπου FILE δείχνει κάπου όπου το λειτουργικό σύστημα κρατάει πληροφορίες για το αρχείο που μας ενδιαφέρει. Χαροκόπειο Πανεπιστήμιο 7/41

8 Άνοιγμα Αρχείων και Ροές Μια κλήση στην fopen() έχει την εξής μορφή FILE *fp ; fp = fopen ( name, mode ) ; όπου name είναι το όνομα του αρχείου που θέλουμε να επεξεργαστούμε και mode είναι μια συμβολοσειρά που δηλώνει την χρήση του αρχείου. Με την συνάρτηση fopen() λέμε πως ανοίγουμε ένα αρχείο. Για να χρησιμοποιήσουμε ένα αρχείο στην C πρέπει πρώτα να το ανοίξουμε, δηλαδή να δημιουργήσουμε μια σύνδεση μεταξύ του πραγματικού αρχείου και της γλώσσας C. Την σύνδεση αυτή, που αποκαλούμε ροή την φροντίζει το λειτουργικό. Χαροκόπειο Πανεπιστήμιο 8/41

9 Τυπικές Ροές Όταν ξεκινήσει η εκτέλεση ενός προγράμματος ανοίγονται αυτόματα 3 ροές:.1. η τυπική είσοδος (συνήθως από το πληκτρολόγιο) με δείκτη stdin.2. η τυπική έξοδος (συνήθως η οθόνη) με δείκτη stdout.3. το τυπικό σφάλμα (συνήθως η οθόνη) με δείκτη stderr Προσέξτε πως στα περισσότερα λειτουργικά συστήματα μπορούμε να ανακατευθύνουμε τις τυπικές ροές. Χαροκόπειο Πανεπιστήμιο 9/41

10 Αρχεία και getchar() Η τυπική βιβλιοθήκη της C παρέχει πολλές συναρτήσεις για ανάγνωση δεδομένων από αρχεία και εγγραφή δεδομένων σε αρχεία. Για παράδειγμα η συνάρτηση int fgetc ( FILE *stream ) ; διαβάζει ένα χαρακτήρα από ένα αρχείο, όπως η getchar() διαβάζει από την τυπική είσοδο. Με άλλα λόγια η κλήση fgetc( stdin ) είναι ουσιαστικά ισοδύναμη με την κλήση της getchar(). Χαροκόπειο Πανεπιστήμιο 10/41

11 Αρχεία και putchar() Για να γράψουμε ένα χαρακτήρα σε ένα αρχείο η τυπική βιβλιοθήκη της C μας παρέχει την συνάρτηση int fputc ( int c, FILE *stream ) ; η οποία γράφει τον χαρακτήρα c στο αρχείο που συνδέεται μέσω της ροής stream. Είναι δηλαδή η αντίστοιχη της συνάρτησης putchar( int c ) η οποία μας επιτρέπει να γράφουμε στην τυπική έξοδο. Με άλλα λόγια η κλήση fputc( 'a', stdout ) είναι ουσιαστικά ισοδύναμη με την κλήση της putchar( 'a'). Χαροκόπειο Πανεπιστήμιο 11/41

12 Σειριακή ή Τυχαία Προσπέλαση Στην C μπορούμε να προσπελάσουμε ένα αρχείο με 2 τρόπους.1. σειριακή προσπέλαση διαβάζουμε ή γράφουμε σειριακά από την αρχή του αρχείου τα αρχεία αυτά είναι αρχεία κειμένου.2. τυχαία προσπέλαση διαβάζουμε ή γράφουμε σε τυχαία σημεία του αρχείου τα αρχεία αυτά είναι δυαδικά αρχεία Χαροκόπειο Πανεπιστήμιο 12/41

13 Δημιουργία Αρχείου Σειριακής Πρόσβασης Η C δεν επιβάλλει κάποια δομή σε ένα αρχείο. Είναι καθήκον του προγραμματιστή να δομήσει ένα αρχείο ώστε να ικανοποιήσει τις απαιτήσεις μιας εφαρμογής. Για να δημιουργήσουμε ένα αρχείο για γράψιμο καλούμε την συνάρτηση fopen() με τον παρακάτω τρόπο FILE *fd = fopen ( "filename", "w" ) ; Το "w" σημαίνει άνοιγμα του αρχείου για γράψιμο. Σε περίπτωση που το αρχείο υπάρχει ήδη, τα ήδη υπάρχοντα δεδομένα σβήνονται. Χαροκόπειο Πανεπιστήμιο 13/41

14 Δημιουργία Αρχείου Σειριακής Πρόσβασης Παράδειγμα 1 #include < s t d i o. h> 2 3 main ( ) 4 { 5 int AM ; 6 char name [ 3 0 ] ; 7 8 FILE *fd ; 9 if ( ( fd=fopen ( "students.dat", "w" ) ) == NULL ) 10 printf ( "File could not be opened\n" ) ; 11 else { 12 printf ( "Enter AM and name,\n" ) ; 13 printf ( "Enter EOF to end input.\n" ) ; 14 printf ( "? " ) ; 15 scanf ( "%d%s", &AM, name ) ; 16 while (! feof ( stdin ) ) { 17 fprintf ( fd, "%d %s\n", AM, name ) ; 18 printf ( "? " ) ; 19 scanf ( "%d%s", &AM, name ) ; 20 } 21 fclose ( fd ) ; 22 } 23 } Χαροκόπειο Πανεπιστήμιο 14/41

15 Τιμή Επιστροφής της fopen() Όταν ανοίγουμε ένα αρχείο πρέπει πάντα να κάνουμε έλεγχο της τιμής που μας επιστράφηκε. Εαν για κάποιο λόγο το αρχείο δεν ανοίχτηκε (π.χ δεν επιτρέπεται η πρόσβαση στον φάκελο που θέλουμε, δεν υπάρχει χώρος στον δίσκο, κ.τ.λ.) η συνάρτηση fopen() επιστρέφει NULL. FILE *fd ; if ( ( fd=fopen ( "students.dat", "w" ) ) == NULL ) printf ( "File could not be opened\n" ) ; Χαροκόπειο Πανεπιστήμιο 15/41

16 Έλεγχος Τέλος Αρχείου End-Of-File (EOF) Πολλές φορές θέλουμε να δούμε εαν ένα αρχείο έφτασε στο τέλος του. Για τον σκοπό αυτό η C μας παρέχει την συνάρτηση int feof ( FILE *stream ) ; η οποία πέρνει ένα ανοικτό αρχείο ως παράμετρο και επιστρέφει αλήθεια εαν το αρχείο έχει φτάσει στο τέλος του (EOF), διαφορετικά επιστρέφει ψέμματα. Με την κλήση feof(stdin) μπορούμε να ελέγξουμε για EOF στην τυπική είσοδο (CTRL-z στα windows, CTRL-d σε unix, κ.τ.λ.). Χαροκόπειο Πανεπιστήμιο 16/41

17 Γράψιμο σε Αρχείο fprintf() Η συνάρτηση int fprintf ( FILE *stream, const char *format,... ) ; λειτουργεί ακριβώς όπως η συνάρτηση printf() αλλά στέλνει την έξοδο στην ροή stream. Ουσιαστικά όταν γράφουμε printf ( "hello world\n" ) ; στην πραγματικότητα γράφουμε fprintf ( stdout, "hello world\n" ) ; Χαροκόπειο Πανεπιστήμιο 17/41

18 Κλείσιμο Αρχείου fclose() Όταν τελειώσει η χρήση ενός αρχείου, ο προγραμματιστής πρέπει να κλήσει αυτό το αρχείο. Κλείνοντας το αρχείο ουσιαστικά λέμε στο σύστημα πως δεν θέλουμε να χρησιμοποιήσουμε άλλο το αρχείο αυτό. Η ροή προς το αρχείο καταστρέφεται. int fclose ( FILE *fp ) ; Η fclose() φροντίζει ώστε να γραφούν ότι πληροφορίες δεν έχουν γραφεί (βρίσκονται σε κάποιον buffer). Χαροκόπειο Πανεπιστήμιο 18/41

19 Κλείσιμο Αρχείου fclose() Σε περίπτωση που ο προγραμματιστής ξεχάσει να κλήσει ένα αρχείο, τα σύγχρονα λειτουργικά συστήματα θα κλήσουν το αρχείο αυτόματα μετά το τέλος του προγράμματος. Είναι όμως σωστή προγραμματιστική τακτική να φροντίζουν τα προγράμματα μας να ελευθερώνουν οτιδήποτε πόρους του συστήματος χρησιμοποιούν. Χαροκόπειο Πανεπιστήμιο 19/41

20 Δημιουργία Αρχείου Σειριακής Πρόσβασης Παράδειγμα 24 #include < s t d i o. h> main ( ) 27 { 28 int AM ; 29 char name [ 3 0 ] ; FILE *fd ; 32 if ( ( fd=fopen ( "students.dat", "w" ) ) == NULL ) 33 printf ( "File could not be opened\n" ) ; 34 else { 35 printf ( "Enter AM and name,\n" ) ; 36 printf ( "Enter EOF to end input.\n" ) ; 37 printf ( "? " ) ; 38 scanf ( "%d%s", &AM, name ) ; 39 while (! feof ( stdin ) ) { 40 fprintf ( fd, "%d %s\n", AM, name ) ; 41 printf ( "? " ) ; 42 scanf ( "%d%s", &AM, name ) ; 43 } 44 fclose ( fd ) ; 45 } 46 } Χαροκόπειο Πανεπιστήμιο 20/41

21 Δημιουργία Αρχείου Σειριακής Πρόσβασης Παράδειγμα Εκτελώντας το προηγούμενο πρόγραμμα Enter AM and name, Enter EOF to end input.? 11 Kwstas? 12 Eleni? 13 Nikos? δημιουργείται το αρχείο με όνομα students.dat στον ίδιο φάκελο με το πρόγραμμα μας. Το αρχείο αυτό περιέχει: 11 Kwstas 12 Eleni 13 Nikos Χαροκόπειο Πανεπιστήμιο 21/41

22 Τρόποι Ανοίγματος Αρχείων Απλές Μορφές Απλές μορφές ανοίγματος "w" για δημιουργία αρχείου, ή για διαγραφή των δεδομένων πριν από την εγγραφή. "r" για διάβασμα υπαρκτού αρχείου, άνοιγμα για ανάγνωση. "a" για προσθήκη εγγραφών στο τέλος ενός υπαρκτού αρχείου, άνοιγμα για προσάρτηση. Χαροκόπειο Πανεπιστήμιο 22/41

23 Τρόποι Ανοίγματος Αρχείων Σύνθετες Μορφές Ενημέρωσης Σύνθετες μορφές ενημέρωσης (ταυτόχρονα ανάγνωση και εγγραφή) "r+" ανοίγει αρχείο για ανάγνωση και εγγραφή. "w+" δημιουργεί ένα αρχείο για ανάγνωση και εγγραφή. Εαν το αρχείο υπάρχει ήδη το αρχείο ανοίγεται και χάνονται τα τρέχοντα περιεχόμενα του. "a+" άνοιγμα για ανάγνωση και εγγραφή, η εγγραφή γίνεται στο τέλος του αρχείου. Εαν το αρχείο δεν υπάρχει, δημιουργείται. Χαροκόπειο Πανεπιστήμιο 22/41

24 Ανάγνωση Δεδομένων από Αρχείο Σειριακής Προσπέλασης Διάβασμα δεδομένων από αρχείο σειριακής προσπέλασης μπορεί να γίνει με την συνάρτηση int fscanf ( FILE *stream, const char *format,... ) ; Πρέπει απλά να ανοίξουμε το αρχείο στην κατάλληλη κατάσταση, π.χ "r". Χαροκόπειο Πανεπιστήμιο 23/41

25 Ανάγνωση Δεδομένων Αρχείο Σειριακής Προσπέλασης 1 #include < s t d i o. h> 2 3 main ( ) 4 { 5 int AM ; 6 char name [ 3 0 ] ; 7 8 FILE *fd ; 9 if ( ( fd=fopen ( "students.dat", "r" ) ) == NULL ) 10 printf ( "File could not be opened\n" ) ; 11 else { 12 printf ( "%-5s%-13s\n", "AM", "Name" ) ; 13 fscanf ( fd, "%d%s", &AM, name ) ; while (! feof ( fd ) ) { 16 printf ( "%-5d%-13s\n", AM, name ) ; 17 fscanf ( fd, "%d%s", &AM, name ) ; 18 } 19 fclose ( fd ) ; 20 } 21 } Χαροκόπειο Πανεπιστήμιο 24/41

26 Ανάγνωση Δεδομένων Αρχείο Σειριακής Προσπέλασης Εκτελώντας το πρόγραμμα στον ίδιο φάκελο με το αρχείο "students.dat" το προηγούμενο πρόγραμμα εκτυπώνει: AM Name 11 Kwstas 12 Eleni 13 Nikos Χαροκόπειο Πανεπιστήμιο 25/41

27 Δείκτης Θέσης Αρχείου Ο δείκτης θέσης αρχείου δείχνει στην επόμενη θέση αρχείου που θα χρησιμοποιηθεί για ανάγνωση ή εγγραφή. Για παράδειγμα όταν ανοίγουμε ένα αρχείο ο δείκτης θέσης αρχείου δείχνει στην θέση 0. Ο δείκτης θέση αρχείου είναι ένας αριθμός που δηλώνει τον αριθμό του επόμενου byte στο αρχείο για ανάγνωση ή εγγραφή. Χαροκόπειο Πανεπιστήμιο 26/41

28 Πολλαπλή Σειριακή Προσπέλαση Πολλές φορές θέλουμε να διαβάσουμε τα δεδομένα ενός αρχείου περισσότερες απο μια φορές. H C μας επιτρέπει να επανατοποθετήσουμε τον δείκτη θέσης αρχείου ενός προγράμματος στην αρχή του αρχείου. Η συνάρτηση λέγεται: void rewind ( FILE *stream ) ; Χαροκόπειο Πανεπιστήμιο 27/41

29 Προβλήματα Σειριακής Προσπέλασης Οι εγγραφές που χρησιμοποιήσαμε ως τώρα δεν έχουν σταθερό μέγεθος. Για αυτόν τον λόγο δεν μπορούμε εύκολα να ενημερώσουμε εγγραφές στην ίδια θέση ενός αρχείου. Για παράδειγμα δεν μπορούμε να ανανεώσουμε την εγγραφή 11 Kwstas με 11 Aleksandros αφού η καινούρια εγγραφή είναι μεγαλύτερη σε μέγεθος και θα επικαλύψει την επόμενη εγγραφή. Συνήθως επαναγράφουμε όλο το σειριακό αρχείο εαν θέλουμε να κάνουμε ενημερώσεις. Χαροκόπειο Πανεπιστήμιο 28/41

30 Αρχεία Τυχαίας Προσπέλασης Η C μας παρέχει την δυνατότητα να μετακινούμε τον δείκτη θέσης αρχείου. Αυτό μας επιτρέπει να προσπελάσουμε άμεσα και χωρίς καθυστέρηση συγκεκριμένα σημεία ενός αρχείου. Για ευκολία μπορούμε να οργανώσουμε το αρχείο μας με σταθερού μεγέθους εγγραφές και έτσι να έχουμε άμεση πρόσβαση σε κάθε εγγραφή. Χαροκόπειο Πανεπιστήμιο 29/41

31 Αρχεία Τυχαίας Προσπέλασης fwrite() Η συνάρτηση fwrite() μεταφέρει ένα συγκεκριμένο αριθμό bytes αρχίζοντας σε μια καθορισμένη θέση στην μνήμη, σε ένα αρχείο. size_t fwrite ( const void * ptr, size_t size, size_t nmemb, FILE *stream ) ; Πιο συγκεκριμένα γράφει nmemb στοιχεία, το καθένα με μήκος size bytes, στη ροή stream. Τα στοιχεία βρίσκονται στην θέση ptr της μνήμης. Η συνάρτηση επιστρέφει τον αριθμό των στοιχείων που γράφτηκαν. Εαν γίνει κάποιο λάθος τότε ο αριθμός είναι μικρότερος ή μηδέν. Χαροκόπειο Πανεπιστήμιο 30/41

32 Αρχεία Τυχαίας Προσπέλασης fread() Η συνάρτηση fread() μεταφέρει ένα συγκεκριμένο αριθμό bytes από ένα αρχείο σε μια καθορισμένη θέση στην μνήμη. size_t fread ( void * ptr, size_t size, size_t nmemb, FILE *stream ) ; Πιο συγκεκριμένα διαβάζει nmemb στοιχεία, το καθένα με μήκος size bytes, από τη ροή stream. Τα στοιχεία αποθηκεύονται στην θέση ptr της μνήμης. Η συνάρτηση επιστρέφει τον αριθμό των στοιχείων που διαβάστηκαν. Εαν γίνει κάποιο λάθος ή συμβεί EOF τότε ο αριθμός είναι μικρότερος ή μηδέν. Χαροκόπειο Πανεπιστήμιο 31/41

33 Διαφορές fprintf() και fwrite() Η συνάρτηση fwrite() χρησιμοποιεί σταθερό αριθμό από bytes ενώ η fprintf() όχι. int n = 99999; FILE *fd = fopen ( "test.dat", "w" ) ; fprintf ( fd, "%d", n ) ; Η fprintf() θα γράψει 5 bytes στην έξοδο. Με άλλα λόγια το μέγεθος της εξόδου εξαρτάται από τα ψηφία του αριθμού. Χαροκόπειο Πανεπιστήμιο 32/41

34 Διαφορές fprintf() και fwrite() Η συνάρτηση fwrite() χρησιμοποιεί σταθερό αριθμό από bytes ενώ η fprintf() όχι. int n = 99999; FILE *fd = fopen ( "test.dat", "w" ) ; fwrite ( &n, sizeof ( int ), 1, fd ) ; Η fwrite() γράφει οποιοδήποτε ακέραιο χρησιμοποιώντας 4 bytes. Χαροκόπειο Πανεπιστήμιο 33/41

35 Αρχεία Τυχαίας Προσπέλασης Συνήθως γράφουμε συγκεκριμένου μεγέθους εγγραφές στα αρχεία τυχαίας προσπέλασης, ώστε να μπορούμε άμεσα να προσπελάσουμε την i εγγραφή Χαροκόπειο Πανεπιστήμιο 34/41

36 Δημιουργία Αρχείου Τυχαίας Προσπέλασης Σειριακή Αρχικοποίηση 1 #include < s t d i o. h> 2 3 typedef struct { 4 int AM ; 5 char name [ 5 0 ] ; 6 } student ; 7 8 main ( ) { 9 int i ; 10 student blankstudent = { 0, "" } ; 11 FILE *fd ; if ( ( fd=fopen ( "random.dat", "w"))==null ) 14 fprintf ( stderr, "File could not be opened.\n" ) ; 15 else { 16 for ( i = 0; i < 100; i++ ) 17 fwrite ( &blankstudent, sizeof ( student ), 1, fd ) ; 18 fclose ( fd ) ; 19 } 20 } Χαροκόπειο Πανεπιστήμιο 35/41

37 Μετακίνηση Δείκτη Θέσης Αρχείου fseek() Η συνάρτηση int fseek ( FILE * stream, long offset, int whence ) ; θέτει τον δείκτη θέσης αρχείου. Η νέα θέση (σε bytes) προκύπτει προσθέτοντας offset στην θέση whence. Η θέση whence είναι είτε μια θέση σε bytes είτε μια από τις σταθερές SEEK_SET, SEEK_CUR και SEEK_END. Στην δεύτερη περίπτωση το offset είναι σχετικό με την αρχή του αρχείου, την τωρινή θέση και το τέλος του αρχείου αντίστοιχα. Μια επιτυχής κλήση της fseek() σβήνει την ένδειξη EOF. Χαροκόπειο Πανεπιστήμιο 36/41

38 Εύρεση Δείκτη Θέσης Αρχείου ftell() Η συνάρτηση long ftell ( FILE *stream ) ; επιστρέφει το δείκτη θέσης αρχείου (σε bytes). Χαροκόπειο Πανεπιστήμιο 37/41

39 Εγγραφή σε Αρχείο Τυχαίας Προσπέλασης 1 #include < s t d i o. h> 2 3 typedef struct { 4 int id ; 5 char name [ 5 0 ] ; 6 } student ; 7 8 main ( ) 9 { 10 FILE *fd ; 11 student s ; if ( ( fd=fopen ( "random.dat", "r+" ) ) == NULL ) 14 printf ( "File could not be opened\n" ) ; 15 else { Χαροκόπειο Πανεπιστήμιο 38/41

40 Εγγραφή σε Αρχείο Τυχαίας Προσπέλασης Συνέχεια 16 printf ( "Enter id and name,\n" ) ; 17 printf ( "Enter EOF to end input.\n" ) ; 18 printf ( "? " ) ; 19 scanf ( "%d%s", &s. id, s. name ) ; while (! feof ( stdin ) ) { 22 if ( s. id >= 0 && s. id < 100 ) { 23 fseek ( fd, s. id * sizeof ( student ), SEEK_SET ) ; 24 fwrite ( &s, sizeof ( student ), 1, fd ) ; 25 } 26 else 27 fprintf ( stderr, "0 <= id <= 99\n" ) ; 28 printf ( "? " ) ; 29 scanf ( "%d%s", &s. id, s. name ) ; 30 } 31 fclose ( fd ) ; 32 } 33 } Χαροκόπειο Πανεπιστήμιο 39/41

41 Ανάγνωση από Αρχείο Τυχαίας Προσπέλασης 1 #include < s t d i o. h> 2 3 typedef struct { 4 int id ; 5 char name [ 5 0 ] ; 6 } student ; 7 8 main ( ) 9 { 10 FILE *fd ; 11 student s ; 12 int id ; if ( ( fd=fopen ( "random.dat", "r" ) ) == NULL ) 15 printf ( "File could not be opened\n" ) ; 16 else { Χαροκόπειο Πανεπιστήμιο 40/41

42 Ανάγνωση από Αρχείο Τυχαίας Προσπέλασης Συνέχεια 17 printf ( "Enter id,\n" ) ; 18 printf ( "Enter EOF to end input.\n" ) ; 19 printf ( "? " ) ; 20 scanf ( "%d", &id ) ; while (! feof ( stdin ) ) { 23 if ( id >= 0 && id < 100 ) { 24 fseek ( fd, id * sizeof ( student ), SEEK_SET ) ; 25 fread ( &s, sizeof ( student ), 1, fd ) ; 26 printf ( "Student's name is %s\n", s. name ) ; 27 } 28 else 29 fprintf ( stderr, "0 <= id <= 99\n" ) ; 30 printf ( "? " ) ; 31 scanf ( "%d", &id ) ; 32 } 33 fclose ( fd ) ; 34 } 35 return 0; 36 } Χαροκόπειο Πανεπιστήμιο 41/41

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πξνγξακκαηηζκόο Ι. Δίζνδνο/Έμνδνο. Κσλζηαληίλνο Σζεξπέο. (βαζηζκέλν ζηηο δηαθάλεηεο ηνπ θ. Γεκήηξε Μηραήι)

Πξνγξακκαηηζκόο Ι. Δίζνδνο/Έμνδνο. Κσλζηαληίλνο Σζεξπέο. (βαζηζκέλν ζηηο δηαθάλεηεο ηνπ θ. Γεκήηξε Μηραήι) Πξνγξακκαηηζκόο Ι Δίζνδνο/Έμνδνο Κσλζηαληίλνο Σζεξπέο (βαζηζκέλν ζηηο δηαθάλεηεο ηνπ θ. Γεκήηξε Μηραήι) Σκήκα Πιεξνθνξηθήο θαη Σειεκαηηθήο Χαξνθόπεην Παλεπηζηήκην Δίζνδνο/Έμνδνο Μέρξη ηώξα όπνηε ζέιακε

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

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

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

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

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

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

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

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

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

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

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

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

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

#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 πίνακας

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

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) του Η/Υ κρατά δεδοµένα µόνο όσο της δίνεται µια ικανοποιητική παροχή ρεύµατος. Τα περιεχόµενα της µνήµης χάνονται (αµέσως)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

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

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

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

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

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

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

Διάλεξη 8η: Αλφαριθμητικά (strings)

Διάλεξη 8η: Αλφαριθμητικά (strings) Διάλεξη 8η: Αλφαριθμητικά (strings) Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) strings CS100, 2016-2017

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections) Προγραμματισμός συστημάτων UNIX/POSIX Ανακατευθύνσεις (redirections) Shell & ανακατεύθυνση εισόδου Κατά την εκτέλεση ενός προγράμματος, η είσοδος και η έξοδος ενός προγράμματος μπορούν να ανακατευθυνθούν

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

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

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

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

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

Αρχεία εδοµένων. Προγραµµατισµός Ι 1 Αρχεία εδοµένων Προγραµµατισµός Ι lalis@inf.uth.gr 1 Μόνιµη αποθήκευση δεδοµένων Η µνήµη (RAM) του Η/Υ κρατάδεδοµένα µόνο όσο της δίνεται µια ικανοποιητική παροχή ρεύµατος. Τα περιεχόµενα της µνήµης χάνονται

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

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

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

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος

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

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

Προγραμματισμός ΙI (E) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (E) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2015 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2015

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

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις

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

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

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

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

C: Από τη Θεωρία στην Εφαρμογή

C: Από τη Θεωρία στην Εφαρμογή Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 1: Συγχώνευση Εγγραφών Δυαδικών Αρχείων Προθεσμία: 2 Μαΐου 2011, 5:00μμ

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

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχεία

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχεία Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχεία Αρχεία Συλλογές δεδομένων. Αποθηκεύονται στην περιφερειακή μνήμη π.χ. σκληρός

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

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

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

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

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

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

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

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

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

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 4 Είσοδος/Έξοδος εδομένων Θέματα ιάλεξης Συνάρτηση εξόδου

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

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

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

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

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

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

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

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

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

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):

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

4 C Θεωρία και Πράξη. 6.8 Συναρτήσεις και στατικές μεταβλητές Αναδρομικές συναρτήσεις 119

4 C Θεωρία και Πράξη. 6.8 Συναρτήσεις και στατικές μεταβλητές Αναδρομικές συναρτήσεις 119 Προλεγόμενα 9 1 Εισαγωγή 15 1.1 Χαρακτηριστικά της γλώσσας 15 1.2 Διαδικασία προγραμματισμού υπό το Unix 17 1.3 Προγραμματίζοντας στην C 19 2 Υπολογιστική 23 2.1 Μεταβλητές και σταθερές 23 2.2 Τύποι δεδομένων

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

Προγραμματισμός II Τα κανάλια stdin, stdout, stderr κανάλι καθιερωμένης εισόδου stdin κανάλι καθιερωμένης εξόδου stdout κανάλι σφαλμάτων stderr

Προγραμματισμός II Τα κανάλια stdin, stdout, stderr κανάλι καθιερωμένης εισόδου stdin κανάλι καθιερωμένης εξόδου stdout κανάλι σφαλμάτων stderr Τα κανάλια stdin, stdout, stderr Kάθε φορά που ξεκινά η εκτέλεση ενός προγράμματος, ο υπολογιστής ανοίγει αυτόματα το κανάλι καθιερωμένης εισόδου stdin (standard input), το κανάλι καθιερωμένης εξόδου stdout

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11) Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I (Διάλεξη 11) 11-1 Μη-Δομημένος Προγραμματισμός Το πρόγραμμα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δομή). Όλη η λειτουργικότητα ορίζεται μέσα στην main. Το αποτέλεσμα

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

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

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

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

Streams Input / Output in C++ George Kastrinis

Streams Input / Output in C++ George Kastrinis Streams Input / Output in C++ George Kastrinis (gkastrinis@di.uoa.gr) Streams What? Η είσοδος και η έξοδος δεδομένων, στη C++ βασίζεται στην έννοια των ρευμάτων - streams Ένα ρεύμα είναι ουσιαστικά μια

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

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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