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

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

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

Transcript

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

2 Γιατί αρχεία; Τα δεδομένα που χρησιμοποιούνται σε ένα πρόγραμμα βρίσκονται στην κύρια μνήμη του υπολογιστή όσο εκτελείται το πρόγραμμα. Μετά τη εκτέλεση του προγράμματος τα δεδομένα αυτά χάνονται. Για να διατηρήσουμε δεδομένα και μετά τη εκτέλεση του προγράμματος θα πρέπει να μπορούμε να τα αποθηκεύσουμε σε περιφερειακή μνήμη του υπολογιστή. Ορισμένες συναρτήσεις εισόδου-εξόδου της C μας δίνουν την δυνατότητα να αποθηκεύουμε δεδομένα σε αρχεία και να τα ανακτούμε από αυτά. Αυτές οι συναρτήσεις ορίζονται στο αρχείο <stdio.h>. Συνεπώς, η C θεωρεί τα αρχεία σαν μονάδες εισόδου-εξόδου. 2

3 Streams (ροές δεδομένων) Μια ροή δεδομένων (steam) είναι μια «αφηρημένη» έννοια που συνδέει ένα C πρόγραμμα με τις περιφερειακές μονάδες του υπολογιστή (πληκτρολόγιο, οθόνη, δίσκοι κλπ). Παρεμβάλλεται μεταξύ του προγράμματος και της μονάδας/συσκευής. Πρόκειται για ένα εικονικό σύστημα προσπέλασης μονάδων. Με τις ροές δεδομένων η διαχείριση των μονάδων του υπολογιστή γίνεται με ομοιόμορφο τρόπο ανεξάρτητα αν η μονάδα είναι: αρχείο στο δίσκο, οθόνη (standard output, stdout), πληκτρολόγιο (standard in, stdin), σειριακή θύρα κλπ Κάθε C πρόγραμμα χρησιμοποιεί 3 προκαθορισμένες ροές: stdin (πληκτρολόγιο), stdout και stderr (οθόνη). 3

4 Οι ροές δεδομένων στη C stdin stdout stderr Προκαθορισμένες ροές Άλλες ροές (σε περιφερειακές συσκευές) Πρόγραμμα C 4

5 Ροές και αρχεία Ο χειρισμός αρχείου αφορά κυρίως 2 ενέργειες: ανάγνωση και εγγραφή bytes Υπάρχουν 2 ειδών ροές αρχείων: Ροές αρχείων κειμένου (text) Αναπαράσταση δεδομένων με χαρακτήρες (πχ με ASCII κωδικοποίηση). Ο χαρακτήρας νέας γραμμής μετατρέπεται από τη ροή διαφορετικά, ανάλογα με το λειτουργικό σύστημα που εκτελείται το πρόγραμμα (στα windows σαν \n\r, στο Linux σαν \n). Ροές δυαδικών (binary) αρχείων Αναπαράσταση κάθε τύπου δεδομένων. Ακολουθίες από bytes. Ένα δυαδικό αρχείο συνήθως δεν είναι αναγνώσιμο. Δεν υπάρχουν μετατροπές χαρακτήρων. Στα αρχεία κειμένου, το τέλος (μπορεί να) σηματοδοτείται με κάποιο ειδικό χαρακτήρα (στα windows είναι το <ctrl>z). 5

6 Αρχεία κειμένου δυαδικά / τρόπος αποθήκευσης Πως θα αποθηκευτεί ο ακέραιος 4561 σε αρχείο κειμένου; Αναπαραστάσεις των χαρακτήρων 4, 5, 6 και 1 (ascii, iso κλπ Πως θα αποθηκευτεί ο ίδιος ακέραιος σε δυαδικό αρχείο; Πρόκειται για τον αριθμό 4561 σε δυαδική μορφή! 6

7 Η προσπέλαση στα αρχεία Αρχείο: μια ακολουθία από bytes σε περιφερειακή μνήμη. Μια ροή: συσχετίζεται με κάποιο αρχείο με τη διαδικασία «ανοίγματος» του αρχείου συνάρτηση: fopen(). από-συσχετίζεται με τη διαδικασία «κλεισίματος» - συνάρτηση: fclose(). Στη C η προσπέλαση σε αρχείο μπορεί να χαρακτηριστεί ως: σειριακή προσπέλαση (για έχω προσπέλαση στο n-οστο byte θα πρέπει πρώτα να προσπελάσω τα προηγούμενα bytes), τυχαία προσπέλαση (μεταφορά απ ευθείας σε συγκεκριμένο byte). Τρέχουσα θέση: η θέση στο αρχείο όπου θα ξεκινήσει η επόμενη προσπέλαση. 7

8 Η δομή FILE Οι αναφορές στα αρχεία γίνονται με τη βοήθεια ενός δείκτη τύπου FILE. Ο τύπος FILE (βρίσκεται στο stdio.h) είναι μια δομή που περιγράφει ένα αρχείο και χρησιμοποιείται για τον χειρισμό των αρχείων. Ένας δείκτης τύπου FILE ορίζεται στη C ως εξής: FILE *fp; // δημιουργεί ένα δείκτη fp τύπου FILE Ένας τέτοιος δείκτης μας δίνει τη δυνατότητα να συσχετίσουμε ροές με συγκεκριμένα αρχεία και στη συνέχεια να τα χειριστούμε. Πριν εκτελέσουμε οποιαδήποτε λειτουργία σε κάποιο αρχείο, θα πρέπει πρώτα να το ανοίξουμε. Όταν τελειώσει η λειτουργία, πρέπει να κλείσουμε το αρχείο. 8

9 Άνοιγμα αρχείου: η συνάρτηση fopen() Το πρωτότυπο της συνάρτησης είναι ένας δείκτης τύπου FILE: FILE *fopen (char *fname, char *mode) Όπου: fname: το όνομα του αρχείου (απαιτείται η πλήρης διαδρομή του αρχείου, αν αυτό βρίσκεται σε διαφορετικό κατάλογο από αυτόν του προγράμματος που εκτελείται). mode: για ποιο λόγο ανοίγουμε το αρχείο (τι ενέργειες θέλουμε να κάνουμε). Η συνάρτηση fopen() επιστρέφει: ένα δείκτη δομής τύπου FILE, αν είναι επιτυχής εκτέλεση της, τη τιμή NULL (η NULL έχει μια σταθερή τιμή που ορίζεται στο stdio.h) σε περίπτωση αποτυχίας. Παράδειγμα χρήσης: Πρέπει πάντα να ελέγχουμε τη επιστροφή της fopen() fp=fopen("toarxeiomou.txt","r"); //ανοίγει για ανάγνωση 9

10 Επιτρεπτές ενέργειες -mode της fopen() Για αρχεία κειμένου: mode Επιτρεπτή ενέργεια r Άνοιγμα αρχείου κειμένου για ανάγνωση δεδομένων. Το αρχείο πρέπει να υπάρχει. Τρέχουσα θέση: αρχή. w Δημιουργία αρχείου κειμένου για εγγραφή. Αν το αρχείο υπάρχει τα δεδομένα διαγράφονται. Αν δεν υπάρχει, δημιουργείται. Τρέχουσα θέση: αρχή. a Προσθήκη δεδομένων σε αρχείο κειμένου. Αν το αρχείο δεν υπάρχει δημιουργείται. Τρέχουσα θέση: στο τέλος του αρχείου. r+ Άνοιγμα αρχείου κειμένου για ανάγνωση/εγγραφή δεδομένων. Το αρχείο πρέπει να υπάρχει. Τρέχουσα θέση: αρχή. w+ Δημιουργία αρχείου κειμένου για ανάγνωση/εγγραφή δεδομένων. Αν το αρχείο υπάρχει τα δεδομένα διαγράφονται. Αν δεν υπάρχει, δημιουργείται. Τρέχουσα θέση: αρχή. a+ Προσθήκη/ανάγνωση δεδομένων. Αν το αρχείο δεν υπάρχει, δημιουργείται. Τρέχουσα θέση: τέλος αρχείου. Για τα δυαδικά αρχεία προσθέτουμε τον χαρακτήρα b (π.χ. wb, rb+) 10

11 fopen() παραδείγματα χρήσης FILE *fptr;... fptr=fopen("students.txt", "r"); Άνοιγμα του αρχείου students.txt στον τρέχοντα κατάλογο για ανάγνωση (mode: r ). Άνοιγμα του αρχείου students.txt στον κατάλογο C:\course1 για εγγραφή (mode: w ). FILE *fptr; fptr=fopen("c:\\course1\\students.txt","w"); Σε compilers των MS-Windows ο χαρακτήρας \ δίδεται σαν \\: Δηλαδή, αντί για C:\course γράφουμε C:\\course. Αυτό διότι ο χαρακτήρας \ έχει ειδική σημασία στη C. 11

12 fopen() παραδείγματα χρήσης με έλεγχο επιτυχίας FILE *fptr; fptr=fopen("students.txt","w"); if(fptr==null){ printf("error!"); exit(1); // χρειάζεται η stdlib.h Άνοιγμα του αρχείου students.txt στον τρέχοντα κατάλογο για εγγραφή με έλεγχο επιτυχίας. Η κλήση της exit() υποδεικνύει στο λειτουργικό σύστημα ότι τελείωσε η εκτέλεση του προγράμματος. exit(0): επιτυχής τερματισμός exit (1) : ανεπιτυχής τερματισμός. Ακόμα καλύτερα! FILE *fptr; if ((fptr=fopen("students.txt","w"))==null){ printf("error!"); exit(1); 12

13 Η συνάρτηση fclose() Το πρωτότυπο της συνάρτησης στο <stdio.h>είναι: int fclose (FILE *fp); Παράδειγμα χρήσης: fclose (fptr ); Κλείνει το ανοικτό αρχείο που είναι συσχετισμένο με τον δείκτη fptr (ροή). Ο δείκτης του σχετικού αρχείου πρέπει να είναι έγκυρος. Δηλαδή το αρχείο να έχει ανοίξει επιτυχώς με την fopen(). Επιστρέφει: 0 αν το κλείσιμο του αρχείου είναι επιτυχές, την τιμή EOF (End Of File) αν το κλείσιμο είναι ανεπιτυχές. Η ειδική τιμή EOF ορίζεται στο <stdio.h> και χρησιμοποιείται σαν ένδειξη «τέλους του αρχείου» ή ότι έγινε κάποιο λάθος. Συνήθως έχει την τιμή

14 Οι συναρτήσεις fgetc()/getc() και fputc()/putc() Χρησιμοποιούνται για να διαβάσουμε ή να γράψουμε bytes σε αρχεία. Τα πρωτότυπα: int fgetc(file *fp) ; int fputc(int ch, FILE *fp); Τρόπος χρήσης: i=fgetc(fp); Οι getc() και putc() μπορούν να χρησιμοποιηθούν επίσης αντί για τις fgetc() και fputc() αντίστοιχα. Διαβάζει το επόμενο byte από το αρχείο της ροής fp σαν μη προσημασμένο ακέραιο και το επιστρέφει σαν ακέραιο, αν είναι επιτυχές το διάβασμα. Διαφορετικά επιστρέφει την τιμή EOF (σφάλμα ή τέλος αρχείου). fputc(chr, fp); Γράφει τον χαρακτήρα της ακεραίας μεταβλητής chr στο αρχείο που σχετίζεται με την ροή fp. Σε περίπτωση επιτυχίας επιστρέφει τον χαρακτήρα (σε ακέραια μεταβλητή), διαφορετικά EOF. 14

15 Πρόγραμμα με τη συνάρτηση fputc() #include <stdio.h> Γράφει n χαρακτήρες * στο αρχείο WriteStars.txt. #include <stdlib.h> main(){ FILE *fp; int i,n; fp=(fopen("writestars.txt","w")); //άνοιγμα αρχείου για εγγραφή if(fp==null){ printf("error opening file!"); exit(1); // χρειάζεται η stdlib.h printf("enter n: "); scanf("%d",&n); for(i=0;i<n;++i) Ο αριθμός των χαρακτήρων n δίνεται από τον χρήστη Και έτσι μπορεί να γίνει ο έλεγχος: fputc('*',fp); //γράφονται n * s στο αρχείο fclose(fp); if ((fp=fopen("writestars.txt","w"))==null){ printf("error opening file!"); exit(1); 15

16 Πρόγραμμα με τη συνάρτηση fgetc() #include <stdio.h> #include <stdlib.h> main() { FILE *fp; int i; if ((fp=fopen("writestars.txt", "r"))==null) { printf("error: cannot open the file!"); exit(1); for (;;) { i=fgetc(fp); //Διάβασμα ενός χαρακτήρα if (i==eof) break; //Αν τέλος, έξοδος από το βρόγχο putchar(i); //Εμφάνιση του χαρακτήρα στη οθόνη fclose(fp); Διαβάζει τους χαρακτήρες που υπάρχουν στο αρχείο WriteStars.txt. Ατέρμων βρόγχος. Τo ίδιο αποτέλεσμα και με while (1). 16

17 Πρόγραμμα με τις συναρτήσεις getc() και putc() if ((fp=fopen("w-r-stars.txt", "w")) ==NULL) { printf("error: can t create file!"); exit(1); printf("enter n: "); scanf("%d",&n); for(i=0;i<n;++i) putc('*',fp); //γράφονται n * στο αρχείο fclose(fp); //κλείσιμο του αρχείου if ((fp=fopen("w-r-stars.txt", "r"))==null) { printf("error: can t read the file!"); exit(1); while (1) { if ((i=getc(fp)) == EOF) break; putchar(i); fclose(fp); Γράφει n χαρακτήρες * στο αρχείο W-R-Stars.txt. Στη συνέχεια τους διαβάζει και τους εμφανίζει στη οθόνη. Θα μπορούσαμε να χρησιμοποιήσουμε τις fgetc() και fputc() αντί για τις getc() και putc() αντίστοιχα. Προσέξτε εδώ! Διαφορετικό διάβασμα. Δείτε και αυτό: while ((i=getc(fp))!=eof) putchar(i); Επίσης, θα μπορούσαμε να χρησιμοποιήσουμε τη συνάρτηση rewind(fp) και να μην ανοίξουμε και κλείσουμε το αρχείο 2 φορές (πως?). 17

18 Οι συναρτήσεις fputs() & fgets() για αρχεία κειμένου fputs() Πρωτότυπο: int fputs (char *str, FILE *fp); Εγγράφει τη συμβολοσειρά *str στο αρχείο με το οποίο συσχετίζεται ο δείκτης fp. Αν γίνει επιτυχής εγγραφή επιστρέφεται μια μη-αρνητική τιμή, διαφορετικά επιστρέφεται η τιμή EOF. Αντίθετα με την puts() δεν γράφει το χαρακτήρα νέας γραμμής. Παράδειγμα χρήσης: fputs(str,fp); fgets() Πρωτότυπο: char *fgets (char *str, int num, FILE *fp); Διαβάζει num-1 χαρακτήρες από το αρχείο με το οποίο συσχετίζεται ο δείκτης fp και τους καταχωρεί στη συμβολοσειρά str. Επιστρέφει τον δείκτη str αν είναι επιτυχής και τη τιμή NULL διαφορετικά. Αντίθετα με την gets() διατηρεί τον χαρακτήρα νέα γραμμής. Παράδειγμα χρήσης: fgets (str,80,fp); 18

19 Παραδείγματα χρήσης των fgets() και fputs() char s[100]; fgets(s, sizeof(s), stdin); Διαβάζει 100 bytes από τη προκαθορισμένη ροή standard input (stdin). Ίδιο με το gets(s); fp = fopen("datafile.dat", "r"); fgets(s, 100, fp); fclose(fp); Διαβάζει 100 bytes από τo αρχείο της ροής fp (datafile.dat). fp = fopen("datafile.dat", "w+"); while(fgets(s, sizeof(s), stdin)!= NULL) { fputs(s, fp); Διαβάζει, με έλεγχο, 100 bytes από τo stdin και τους γράφει στο αρχείο της ροής fp (datafile.dat) 19

20 Πρόγραμμα με τις συναρτήσεις fputs() & fgets() main () { FILE *fp; int c; char str[80]; if ((fp=fopen("result.txt ", "w+"))==null) { printf("error opening file!"); getchar(); exit(1); Η συμβολοσειρά fputs("hello! These are the result of my C program. See you later", fp); fclose(fp); if ((fp=fopen("result.txt", "r"))==null) { printf("error opening file!"); getchar(); exit(1); if( fgets (str, 23, fp)!=null ) puts(str); fclose(fp); Γράφει μια συμβολοσειρά στο αρχείο result.txt. Στη συνέχεια τους διαβάζει τους 23 πρώτους χαρακτήρες από το αρχείο. Διαβάζονται οι 23 πρώτοι χαρακτήρες. 20

21 Οι συναρτήσεις fprintf() & fscanf() για αρχεία κειμένου. fprintf() Πρωτότυπο: int fprintf(file *fp, char *format,...); Σύνταξη ίδια με αυτή της printf(). Η printf() στέλνει τα δεδομένα στη οθόνη (sdtout), ενώ η fprinf() τα γράφει στο αρχείο της ροής του δείκτη fp. Αν γίνει επιτυχής εγγραφή επιστρέφεται ο αριθμός των χαρακτήρων που γράφτηκαν, διαφορετικά επιστρέφεται μια αρνητική τιμή. Παράδειγμα χρήσης: fprintf(fp, "%d %f ", a,b); fscanf() Πρωτότυπο: int fscanf(file *fp, const char *format,...); Σύνταξη ίδια με αυτή της scanf(). Διαβάζει τα δεδομένα από αρχείο, αντί να τα διαβάζει από το πληκτρολόγιο (stdin). Επιστρέφει τον αριθμό των δεδομένων που διαβάστηκαν, ενώ σε περίπτωση σφάλματος επιστρέφει η τιμή EOF. Παράδειγμα χρήσης: fscanf(fp, "%d ", &a ); 21

22 Πρόγραμμα με τις συναρτήσεις fprintf() & fscanf() Διαβάζει τα ονόματα και τους βαθμούς φοιτητών από το stdin και τα αποθηκεύει στο αρχείο marks.txt char name[15]; int i,n; float mark; printf("enter number of students: "); scanf("%d",&n); FILE *fptr; if ((fptr=fopen("marks.txt", "w"))==null){ printf("error!"); getchar(); exit(1); for(i=0;i<n;++i){ printf("student%d\nenter name: ",i+1); scanf("%s",name); printf("enter mark: "); scanf("%f",&mark); fprintf(fptr,"%s %3.1f \n",name,mark); fclose(fptr); Διαβάζει τα ονόματα και τους βαθμούς φοιτητών από το αρχείο marks.txt και τα εμφανίζει στην οθόνη. if ((fptr=fopen("marks.txt", "r"))==null) { printf("error!"); getchar(); exit(1); for(i=0;i<n;++i){ fscanf(fptr,"%s %f ",&name,&mark); printf("%s has mark %3.1f\n",name, mark); fclose(fptr); Δεν ελέγχεται αν γίνεται σωστά το διάβασμα από την fscanf(). Πως θα το κάναμε? 22

23 Οι συναρτήσεις fwrite() & fread() δυαδικά αρχεία Συναρτήσεις για εγγραφή και διάβασμα δεδομένων σε/από ένα δυαδικό αρχείο. Πολλές φορές είναι επιθυμητό να χρησιμοποιούμε δυαδικά αρχεία αντί αρχείων κειμένου διότι: δεν γίνονται μετατροπές στα δεδομένα και έχουν μικρότερο μέγεθος. Τα πρωτότυπα των συναρτήσεων: int fread(void *buffer, size_t size, size_t num, FILE *fp); int fwrite(void *buffer, size_t size, size_t num, FILE *fp); Χρησιμοποιούν τον δείκτη buffer πού είναι τύπου void και άρα μπορεί να δείχνει σε οποιοδήποτε τύπο δεδομένων. Ο τύπος size_t ορίζεται στο stdio.h και είναι ισοδύναμος με τον τύπο unsigned long (διαφέρει από σύστημα σε σύστημα). 23

24 Οι συναρτήσεις fwrite() & fread() - περισσότερα int fread(void *buffer, size_t size, size_t num, FILE *fp); int fwrite(void *buffer, size_t size, size_t num, FILE *fp); Πρωτότυπα Στη μνήμη που δείχνει ο buffer αποθηκεύονται προσωρινά τα δεδομένα που θα διαβαστούν ή θα εγγραφούν από τις fread() & fwrite() αντίστοιχα. Η παράμετρος num προσδιορίζει το πλήθος των στοιχείων που θα διαβαστούν/αποθηκευτούν. Η παράμετρος size ορίζει το μέγεθος κάθε στοιχείου (που είναι πολύ πιθανό να είναι διαφορετικό από σύστημα σε σύστημα). Και εδώ η παράμετρος fp (δείκτης) τύπου FILE πρέπει να δείχνει στο σχετικό αρχείο. Οι συναρτήσεις fwrite() & fread() επιστρέφουν: το num (επιτυχία), κάποιον άλλο αριθμό (αποτυχία). Στο fread() η επιστροφή κάπου άλλου αριθμού ( num) μπορεί να σημαίνει και τέλος αρχείου. 24

25 Πρόγραμμα με τις συναρτήσεις fwrite() & fread() FILE *fp = NULL; int x[10] = {1,2,3,4,5,6,5,6,-10,11; int i,result[10]; if ((fp=fopen("tmp.b", "wb+"))!= NULL) { fwrite(x, sizeof(int), 10, fp); Χωρίς έλεγχο fclose(fp); if ((fp=fopen("tmp.b", "rb+")) == NULL) printf("error opening temp.b-2nd time"); else { fread(result, sizeof(int), 10, fp); printf("\nresult:\n"); for (i=0;i<10;i++) printf("%d\n",result[i]); else printf("error opening temp.b-1st time"); fclose(fp); Γράφει ένα πίνακα 10 ακεραίων σε αρχείο. Στη συνέχεια διαβάζει το αρχείο και δημιουργεί ένα νέο πινάκα που τον εμφανίζει στη οθόνη. Χωρίς έλεγχο Με έλεγχο Με έλεγχο 25

26 Το προηγούμενο προγραμμα με όλους τους ελέγχους FILE *fp = NULL; int i, x[10] = {1,2,3,4,5,6,5,6,-10,11, result[10]; if ((fp=fopen("tmp.b", "wb+"))!= NULL) if ((fwrite(x, sizeof(x), 1, fp))!= 1) printf ("Cannot open tmp.b for writing\n"); else { fclose(fp); if ((fp=fopen("tmp.b", "rb+")) == NULL) printf("error opening temp.b -2nd time\n"); else if (fread(result, sizeof(x), 1, fp)!=1) printf ("Cannot open tmp.b for reading\n"); else { printf("\nresult:\n"); for (i=0;i<10;i++) printf("%d\n",result[i]); else printf("error opening tmp.b-1st time\n"); fclose(fp); Γράφει ένα πίνακα 10 ακεραίων σε αρχείο. Στη συνέχεια διαβάζει το αρχείο και δημιουργεί ένα νέο πινάκα που τον εμφανίζει στη οθόνη. Οι έλεγχοι επιτυχίας για κάθε συνάρτηση διαχείρισης αρχείων γίνεται χωρίς την χρήση της συνάρτησης exit(). Τι διαφορά έχουν οι fwrite() και fread() από το προηγούμενο παράδειγμα? 26

27 Τυχαία προσπέλαση η συνάρτηση fseek() Στα παραδείγματα μέχρι τώρα η προσπέλαση των αρχείων γινόταν σειριακά. Με τη συνάρτηση fseek() μπορούμε να πάμε σε συγκεκριμένο σημείο του αρχείου για κάνουμε τις ενέργειες που θέλουμε. int fseek(file *fp, long int offset, int origin); Η παράμετρος offset καθορίζει την απόσταση από την αρχή ή το τέλος (αρνητική τιμή) σε bytes. Η παράμετρος origin καθορίζει το σημείο εκκίνησης και έχει τις τιμές (μακροεντολές): SEEK_SET (από τη αρχή του αρχείου), SEEK_CUR (από την τρέχουσα θέση) και SEEK_END (από το τέλος του αρχείου. Επιστρέφει την τιμή 0, αν έχουμε επιτυχή μετακίνηση του δείκτη, διαφορετικά επιστρέφει μια μη-μηδενική τιμή. 27

28 Παραδείγματα χρήσης fseek(fp, 0, SEEK_SET); Πάει στη αρχή του αρχείου. fseek(fp, 100, SEEK_SET); Πάει στο αρχή στο 100στό byte. fseek(fp, -30, SEEK_CUR); Πάει πίσω 30 bytes από τη τρέχουσα θέση. fseek(fp, -10, SEEK_END); Πάει πίσω 10 bytes από το τέλος. 28

29 Πρόγραμμα με τη συνάρτηση fseek() FILE *fp = NULL; float x[10] = {1.5,2.3,3.6,4.7,5.6,6.2,5.3,6.8,1.7,1.1, V; int i,l; if ((fp=fopen("tmpd.b", "wb+"))!= NULL) { fwrite(x, sizeof(x), 1, fp); fclose(fp); if ((fp=fopen("tmpd.b", "rb+")) == NULL){ printf("error opening tempd.b-2nd time"); exit(1); printf("which element? "); scanf("%d",&l); if (fseek(fp, (L-1)*sizeof(float), SEEK_SET)){ printf("error on seeking..."); exit(1); fread(&v, sizeof(float), 1, fp); printf("\n Element %d is %.2f", L, V); else printf("error opening tempd.b-1st time"); fclose(fp); Γράφει ένα πίνακα 10 float σε αρχείο. Στη συνέχεια διαβάζει και εμφανίζει στη οθόνη το στοιχείο που θέλει ο χρήστης. Η τρέχουσα θέση στην αρχή του L στοιχείου 29

30 H συνάρτηση feof() Όταν οι συναρτήσεις fgetc() και fscanf()επιστρέφουν τη τιμή EOF δεν γνωρίζουμε αν έχουμε κάποιο σφάλμα ή αν φτάσαμε στο τέλος του αρχείου. Το πρωτότυπο της συνάρτησης: if ((fptr=fopen("marks.txt", "r"))==null) { printf("error!"); getchar(); exit(1); printf("\n\nreadning from file: marks.txt:\n"); while (!feof(fptr)){ fscanf(fptr,"%s %f ",&name,&mark); printf("%s has mark %3.1f\n",name, mark); fclose(fptr); int feof (FILE *fp); Η συνάρτηση feof() επιστρέφει 0 αν δεν έχουμε φτάσει στο τέλος του αρχείου και μη μηδενική τιμή αν έχουμε φτάσει στο τέλος. 30

31 H συνάρτηση ferror() Χρησιμοποιείται για να διαπιστώσουμε αν υπάρχει κάποιο σφάλμα κατά τη λειτουργία μιας συνάρτησης που προσπαθεί να αποκτήσει πρόσβαση σε κάποιο αρχείο Το πρωτότυπο της συνάρτησης: if ((fptr=fopen("marks.txt", "r"))==null) { printf("error!"); getchar(); exit(1); while (!feof(fptr)) { fscanf(fptr,"%s %f ",&name,&mark); if (ferror(fptr)) { printf("\n***error: fscanf\n"); break; printf("%s has mark %3.1f\n",name, mark); int ferror (FILE *fp); Η συνάρτηση ferror() επιστρέφει μημηδενική τιμή αν υπάρχει σφάλμα, διαφορετικά επιστρέφει 0. 31

32 Άλλες χρήσιμες συναρτήσεις rewind() Πρωτότυπο: void rewind (FILE *fp); Ορίζει σαν τρέχουσα θέση την αρχή του αρχείου. Δεν επιστρέφει κάποια τιμή. Ίδιο αποτέλεσμα με το fseek(fp, 0, SEEK_SET); fflush() Πρωτότυπο: int fflush(file *fp); Χρήσιμη συνάρτηση που αδειάζει τον χώρο της προσωρινής αποθήκευσης (buffer) του αρχείου με το οποίο σχετίζεται ο δείκτης fp. Επιστρέφει 0 αν είναι επιτυχής και EOF σε περίπτωση αποτυχίας. fflush (NULL): αδειάζουν τα buffers όλων των αρχείων ftell() Πρωτότυπο: long int ftell(file *fp); Επιστρέφει τη τρέχουσα θέση του αρχείου στο οποίο δείχνει ο fp (επιτυχία). Σε περίπτωση αποτυχίας επιστρέφει -1. remove() remove (file_name): διαγράφει το αρχείο 32

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ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) ιαφάνειες παρουσίασης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Κεφάλαιο 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 Περιγραφή: Τύποι αρχείων Ρεύματα Άνοιγμα ρευμάτων Εγγραφή και ανάγνωση δεδομένων προς/από ένα ρεύμα Διαχείριση και κλείσιμο ρευμάτων Παραδείγματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματιστικές τεχνικές

Προγραμματιστικές τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ανασκόπηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Αρχεία Δεδομένων Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD ΑΡΧΕΙΑ Αρχείο είναι μία οργανωμένη συλλογή δεδομένων αποθηκευμένα στο

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

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

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

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

i M-1 1. ij f(i, j) N-1. (pixel) 2. M N (x, y) (x, y ) = 256. R(x, y), G(x, y), B(x, y)

i M-1 1. ij f(i, j) N-1. (pixel) 2. M N (x, y) (x, y ) = 256. R(x, y), G(x, y), B(x, y) D4 2 2. (pixel) 2 ( ) M N (x, y) (x, y ) ( )f(x, y) j N- i j i f(i, j) M-. ij f(i, j) 8 2 8 = 256, 2 2 f(x, y) 3,, R(x, y), G(x, y), B(x, y) 256 2 2.2 ( ) JPEG (Joint Photographic Experts Group), GIF (Graphics

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 15: Είσοδος/Έξοδος: Συναρτήσεις Εισόδου. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 15: Είσοδος/Έξοδος: Συναρτήσεις Εισόδου ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Ροές 1. Γενικά 2. Η ροή προκαθορισµένης εισόδου stdin 3. Η ροή προκαθορισµένης εξόδου stdout 4. Η ροή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι πίνακες στη C (μονοδιάστατοι -συμβολοσειρές) Γενικά για τους πίνακες Ο πίνακας είναι μια αρκετά διαδεδομένη δομή που προσφέρεται από σχεδόν κάθε γλώσσα προγραμματισμού. Πρόκειται

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

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

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

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

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

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

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