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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 22η: Επιπλέον στοιχεία της C

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

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

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

ιαφάνειες παρουσίασης #3

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

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

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

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

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

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

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

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ. Mε την εντολή αυτή μπορούμε να δημιουργήσουμε έναν καινούριον υποκατάλογο.

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

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

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

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

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

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

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

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

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

Επανάληψη. Εντολές while, for, do-while

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

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

ιαφάνειες παρουσίασης #4

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

Σημειώσεις όγδοης εβδομάδας

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

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

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

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

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

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

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

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

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

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

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

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

Transcript:

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

Ταξινοµηµένες λίστες (i) " Τύπος slist typedef ListNode * slist; " Άδεια λίστα const slist slistempty = NULL; " Εισαγωγή στοιχείου void slistinsert (slist * lp, int t) { ListNode * n = (ListNode *) malloc(sizeof(listnode)); if (n == NULL) { printf("out of memory\n"); exit(1); } 2

Ταξινοµηµένες λίστες (ii) " Εισαγωγή στοιχείου (συνέχεια) n->data = t; } while (*lp!= NULL && (*lp)->data < t) lp = &((*lp)->next); n->next = *lp; *lp = n; 3

Ταξινοµηµένες λίστες (iii) " Αφαίρεση στοιχείου void slistremove (slist * lp, int t) { ListNode * n; } while (*lp!= NULL && (*lp)->data < t) lp = &((*lp)->next); if (*lp == NULL) { printf( %d was not found\n, t); exit(1); } n = *lp; *lp = (*lp)->next; free(n); 4

Παράµετροι του προγράµµατος (i) " Επικεφαλίδα του προγράµµατος int main (int argc, char * argv[]); " Παράµετροι # argc ο αριθµός των παραµέτρων # argv[i] η i-οστή παράµετρος # argv[0] το όνοµα του προγράµµατος " Αποτέλεσµα # ακέραιος αριθµός που επιστρέφεται στο λειτουργικό σύστηµα # συνήθως 0 για επιτυχή τερµατισµό 5

Παράµετροι του προγράµµατος (ii) " Παράδειγµα int main (int argc, char * argv[]) { int i; } printf("program %s called with " "%d parameters:\n", argv[0], argc-1); for (i = 1; i < argc; i++) printf(" %s", argv[i]); printf("\nand will return 0\n"); return 0; 6

Συναρτήσεις εισόδου-εξόδου (i) " Βασικές συναρτήσεις εισόδου-εξόδου int printf (const char * format,...); int scanf (const char * format,...); " Ειδικοί χαρακτήρες στο format # Ακέραιοι αριθµοί %d στο δεκαδικό σύστηµα %u χωρίς πρόσηµο στο δεκαδικό σύστηµα %o χωρίς πρόσηµο στο οκταδικό σύστηµα %x χωρίς πρόσηµο στο δεκαεξαδικό σύστηµα 7

Συναρτήσεις εισόδου-εξόδου (ii) " Ειδικοί χαρακτήρες στο format # Αριθµοί κινητής υποδιαστολής %f σε µορφή: [-]ddd.dddddd %e σε µορφή: [-]ddd.dddddd e [+/-]ddd %g σε µορφή %f ή %e # Άλλοι τύποι %c χαρακτήρες %s συµβολοσειρές %p δείκτες 8

Συναρτήσεις εισόδου-εξόδου (iii) " Παραλλαγές στο format # Μέγεθος αριθµών %h αριθµοί short π.χ. %hd, %hx %l αριθµοί long ή double π.χ. %ld, %lf %L αριθµοί long double π.χ. %Lf # Μήκος αποτελέσµατος %8d αριθµός σε µήκος 8 χαρακτήρων %20s συµβολοσειρά σε µήκος 20 χαρακτήρων %+8d αριθµός σε µήκος 8 χαρακτήρων µε + %08d αριθµός σε µήκος 8 χαρακτήρων, τα πρώτα 0 %-8d όπως το %8d µε στοίχιση αριστερά 9

Συναρτήσεις εισόδου-εξόδου (iv) " Είσοδος-έξοδος χαρακτήρων int putchar (int c); int getchar (); " Είσοδος-έξοδος συµβολοσειρών int puts (const char * s); char * gets (char * s); " Έλεγχος τέλους δεδοµένων int eof (); # Η σταθερά EOF παριστάνει το τέλος των δεδοµένων και έχει τύπο int. 10

Παράδειγµα " Αντιγραφή δεδοµένων # οι χαρακτήρες που διαβάζονται εκτυπώνονται, µέχρι να παρουσιαστεί τέλος δεδοµένων void main () { int c; } while ((c = getchar())!= EOF) putchar(c); 11

Συναρτήσεις διαχείρισης αρχείων (i) " Τύπος αρχείου FILE * fp; " Άνοιγµα αρχείων FILE * fopen (const char * filename, const char * mode); # Παράµετρος mode r w a t b ανάγνωση (read) εγγραφή (write) προσθήκη (append) κείµενο (text) δυαδικά δεδοµένα (binary) 12

Συναρτήσεις διαχείρισης αρχείων (ii) " Κλείσιµο αρχείων int fclose (FILE * fp); " Είσοδος-έξοδος χαρακτήρων int fputc (int c, FILE * fp); int fgetc (FILE * fp); " Είσοδος-έξοδος συµβολοσειρών int fputs (const char * s, FILE * fp); char * fgets (char * s, int n, FILE * fp); 13

Συναρτήσεις διαχείρισης αρχείων (iii) " Βασικές συναρτήσεις εισόδου-εξόδου int fprintf (FILE * fp, const char * format,...); int fscanf (FILE * fp, const char * format,...); " Έλεγχος τέλους αρχείου int feof (FILE * fp); 14

Συναρτήσεις διαχείρισης αρχείων (iv) " Είσοδος-έξοδος πολλών δεδοµένων size_t fwrite (const void * p, size_t size, size_t num, FILE * fp); size_t fread (void * p, size_t size, size_t num, FILE * fp); # Ο ακέραιος τύπος size_t χρησιµοποιείται για τη µέτρηση χώρου µνήµης σε bytes. 15

Παράδειγµα (i) " Αντιγραφή δυαδικών αρχείων int main (int argc, char * argv[]) { FILE * fin, * fout; unsigned char buffer[1000]; size_t count; fin = fopen(argv[1], "rb"); if (fin == NULL) return 1; fout = fopen(argv[2], "wb"); if (fout == NULL) return 2; 16

Παράδειγµα (ii) " (συνεχίζεται) while (!feof(fin)) { count = fread(buffer, 1, 1000, fin); fwrite(buffer, 1, count, fout); } } fclose(fin); fclose(fout); return 0; 17