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

Μέγεθος: 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: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Τύποι δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης

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

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

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

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

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία Τα δεδομένα που επεξεργαζόμαστε, καθώς και ο κώδικας που τρέχουμε, βρίσκονται αποθηκευμένα στη μνήμη RAM (Random Access Memory) του υπολογιστή. Τα δεδομένα

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

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

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

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

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

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 11 η : Αρχεία Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

Διαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Διαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 11 ο : Αρχεία κειμένου Στόχοι μαθήματος Να κατανοήσετε την έννοια του αρχείου κειμένου και τον τρόπο με τον οποίο αυτά τα

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

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( ) ΣΥΜΒΟΛΟΣΕΙΡΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Ο τύπος string Μετατροπή από και προς τον τύπο string Βασικές μέθοδοι Χρήση Ελληνικών Συναρτήσεις C εκτύπωσης και ανάγνωσης Τελευταία

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2015 2016 Ι. Ιωαννίδης Άσκηση 3: Αποθήκευση κατά στήλες Προθεσμία: 25 Ιανουαρίου 2016, 11:59μμ Ο σκοπός της εργασίας

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

Προγραμματισμός Δομές Δεδομένων

Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

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

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

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

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

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Εισαγωγή στον προγραμματισμό Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Δομή Προγράμματος Όλα τα προγράμματα που γράψαμε έχουν λίγο πολύ την ακόλουθη μορφή: Κάποιος κώδικας εδώ main( ) {

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Μονοδιάστατοι Πίνακες (tables) Μια συλλογή μεταβλητών ίδιου τύπου οι οποίες είναι αποθηκευμένες

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

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

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

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

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

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

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

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

Γλώσσες Προγραμματισμού

Γλώσσες Προγραμματισμού Γλώσσες Προγραμματισμού Διδάσκων: Ανδρέας Παπασαλούρος Ιστοσελίδα: http://www.samos.aegean.gr/math/andpapas/courses/pl/default.htm Πλατφόρμα ηλεκτρονικής μάθησης: http://myria.math.aegean.gr/moodle/ Πλατφόρμα

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

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Η C, όπως έχουμε αναφέρει, είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε για πρώτη φορά το 1972 από τον Dennis Ritchie στα AT&T Bell

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2013 2014 M. Χατζόπουλος Προθεσμία: 19/01/2015 Σκοπός της εργασίας είναι η κατανόηση της εσωτερικής λειτουργίας

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω

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

Εγχειρίδιο Συναρτήσεων. 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 που σχετίζεται με αυτή Σε

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

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

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

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

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

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams CONSTRUCTORS DESTRUCTORS Η κλάση mystring class mystring private: char s[100]; public: char *GetString(); void SetString(char

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

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

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

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

είκτες και Πίνακες (2)

είκτες και Πίνακες (2) είκτες και Πίνακες (2) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πολυδιάστατοι πίνακες Πέρασµα παραµέτρων σε προγράµµατα C ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1-1 Πίνακες εικτών Πίνακας δεικτών είναι

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

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 19η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Βασικές διαφορές της C από τη C++. Απλά παραδείγματα προγραμμάτων C.

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

Η γλώσσα C σε βάθος Κεφάλαιο 3: Προετοιµασία για αργότερα...61 Η C και η µνήµη...62 Ο τελεστής & Ο τελεστής sizeof Τρεις συναρτήσεις παρακ

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

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

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

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε

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

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

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

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

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

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

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

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μνήμη I CS100,

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