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

Σχετικά έγγραφα
Περιεχόμενα. Πρόλογος... 17

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

Περιεχόμενα. Πρόλογος... 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

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

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

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

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

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

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

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

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

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

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

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

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

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

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

Από την πρώτη στην τέταρτη έκδοση...

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

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

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

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

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

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

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

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

Συναρτήσεις διαχείρισης αλφαριθμητικών

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

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

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

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

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

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

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

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

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

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

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

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

Παράδειγµα (2) Πίνακες (Arrays) (2) Πίνακες (Arrays) (1) int num[5];

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Μια πρώτη ματιά στη C

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

ΕΝΔΕΙΚΤΙΚΕΣ ΣΕΛΙΔΕΣ. Περιεχόμενα. Πρόλογος... 21

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

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Μια πρώτη ματιά στη C

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

12. Συναρτήσεις (Μέρος ΙI)

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

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

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

Πλήρες. Εγχειρίδιο της

Προγραμματισμός Συστημάτων

ΠΙ Ν Α Κ Ε Σ (arrays)

Η γλώσσα C. Διαχείριση Συμβολοσειρών

Χpήσιµες Βιβλιοθήκες της γλώσσας C

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

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

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)

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

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

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

Transcript:

Πρόλογος... 15 Κεφάλαιο 1: Εισαγωγή... 17 Πώς να διαβάσετε αυτό το βιβλίο...18 Η γλώσσα C Ιστορική αναδροµή...19 Τα χαρακτηριστικά της C...20 C Μια δοµηµένη γλώσσα...20 C Μια γλώσσα για προγραµµατιστές...21 C Μια µεταφραστική γλώσσα...21 Βασικές έννοιες του προγραµµατισµού...22 Τύποι δεδοµένων...22 Μεταβλητές...23 Σταθερές...24 Εντολές...25 Αναγνωριστικά...25 Λογικό διάγραµµα...26 Κεφάλαιο 2: Μια πρώτη µατιά στη C... 35 Η δοµή ενός προγράµµατος στη C...36 Σχόλια προγράµµατος...37 ηλώσεις µεταβλητών...39 Αρχικές τιµές µεταβλητών...40 Μεταβλητές µόνο για ανάγνωση...41 Προτάσεις...41 Παραστάσεις...42 Παραστάσεις µε µέλη διαφορετικού τύπου...45 Λογικές παραστάσεις...45 Παραδείγµατα κώδικα µε παραστάσεις...47 Η C και οι αγκύλες της...49 Σύνθετη πρόταση (compound statement)...50

Η γλώσσα C σε βάθος Ο προ-µεταγλωττιστής της C...50 Η οδηγία #include...51 Η οδηγία #define...51 Κεφάλαιο 3: Προετοιµασία για αργότερα... 59 Η C και η µνήµη...60 Ο τελεστής &...61 Ο τελεστής sizeof...62 Τρεις συναρτήσεις παρακαλώ...62 Η συνάρτηση printf()...62 Η συνάρτηση scanf()...65 Η συνάρτηση exit()...67 Ολίγη if παρακαλώ...68 Κεφάλαιο 4: Ο τύπος δεδοµένων int... 75 Σταθερές τύπου int...76 Μεταβλητές τύπου int...76 Αρχική τιµή µεταβλητής...77 Αριθµητικοί τελεστές...78 Χρήση συντµήσεων σε παραστάσεις...80 Ο τελεστής υπολοίπου %...81 υαδικοί αριθµοί...81 Μετατροπή δυαδικού σε δεκαδικό...82 Μετατροπή δεκαδικού σε δυαδικό...82 Τελεστές bitwise...84 Προτεραιότητα τελεστών...87 Κεφάλαιο 5: Ο τύπος δεδοµένων char... 95 Σταθερές τύπου char...96 Οι χαρακτήρες είναι αριθµοί!!!...96 Χαρακτήρες διαφυγής...97 Μεταβλητές τύπου char...98 ύο συναρτήσεις χειρισµού χαρακτήρων...98 Συµβολοσειρές (character strings)...99 Οι συµβολοσειρές έχουν τιµή;...99 Πίνακας ASCII...101 6

Κεφάλαιο 6: Ο τύπος δεδοµένων float... 107 Σταθερές τύπου float...108 Μεταβλητές τύπου float...108 Χρήση δεδοµένων τύπου κινητής υποδιαστολής...109 Η χρήση της printf() µε δεδοµένα κινητής υποδιαστολής...109 Χρήση της συνάρτησης scanf() µε δεδοµένα τύπου float...110 Η συνάρτηση pow()...111 Κεφάλαιο 7: Εντολές συνθήκης... 115 Η εντολή if...116 H απλή πρόταση if...116 Η πρόταση if-else...117 Η πρόταση if - else if...118 Η εντολή switch - case...120 Ο τελεστής?...122 Κεφάλαιο 8: Εντολές αλλαγής ροής και επανάληψης... 131 Η "επικίνδυνη" εντολή goto...132 Ο βρόχος while...133 O βρόχος do-while...135 Ο βρόχος for...136 Ένθετοι βρόχοι for...139 Ο τελεστής "κόµµα" (,)...142 Η εντολή break...143 Η εντολή continue...145 Καταµέτρηση και άθροιση σε επαναλαµβανόµενες διαδικασίες...146 Κεφάλαιο 9: Συναρτήσεις... 155 Oρισµός µιας συνάρτησης...157 Συναρτήσεις που επιστρέφουν τιµή...158 Συναρτήσεις που δεν επιστρέφουν τιµή...159 Η κλήση µιας συνάρτησης...161 Παράµετροι συνάρτησης...163 Ορίσµατα και διαβίβαση παραµέτρων...163 Χρήση συναρτήσεων βιβλιοθήκης...165 Σύνταξη των συναρτήσεων βιβλιοθήκης...167 Μετατροπή τύπου (type casting)...167 7

Η γλώσσα C σε βάθος Κεφάλαιο 10: Εµβέλεια µεταβλητών... 175 Τοπικές µεταβλητές (local variables)...176 Καθολικές µεταβλητές (global variables)...180 ήλωση τοπικών µεταβλητών σε σύνθετη πρόταση...183 Στατικές τοπικές µεταβλητές (static local variables)...183 Κεφάλαιο 11: είκτες... 193 Μεταβλητές δείκτη (Pointer variables)...195 ήλωση µιας µεταβλητής δείκτη...195 Οι τελεστές & και *...197 Αριθµητική των δεικτών...200 είκτες τύπου Void...203 είκτης NULL...203 Κεφάλαιο 12: Πίνακες (arrays)... 211 Πίνακες µίας διάστασης...212 Οι πίνακες µίας διάστασης και οι δείκτες...214 Προσοχή Προσοχή!!!...215 Μεταβίβαση ενός πίνακα ως παραµέτρου µιας συνάρτησης...216 Πίνακες χαρακτήρων...218 Συναρτήσεις που επιστρέφουν ως τιµή ένα δείκτη...219 Συναρτήσεις που εφαρµόζονται σε συµβολοσειρές...220 gets()...220 puts()...221 strlen()...222 strcmp()...223 strcpy()...224 strcat()...225 strstr()...225 Αρχική τιµή ενός πίνακα µίας διάστασης...226 Χειρισµός πινάκων µίας διάστασης...227 Πίνακες πολλών διαστάσεων...229 Πίνακες δύο διαστάσεων...230 Πίνακες δύο διαστάσεων και δείκτες...231 Πίνακες δύο διαστάσεων για αποθήκευση σειρών χαρακτήρων...234 Μεταβίβαση πινάκων πολλών διαστάσεων σε συναρτήσεις...235 Απεικόνιση πινάκων πολλών διαστάσεων...237 8

Κεφάλαιο 13: Tύποι δεδοµένων οριζόµενοι από το χρήστη (User-Defined data types)... 253 οµές (structures)...254 Αναφορά στα πεδία µιας δοµής...258 Πίνακες από δοµές...259 Μεταβίβαση των πεδίων µιας δοµής σε µια συνάρτηση...260 Μεταβίβαση ολόκληρης της δοµής σε συνάρτηση...261 είκτες σε δοµές...265 Πίνακες από δοµές και δείκτες...267 οµές µέσα σε δοµές...267 Και όµως γίνεται...268 Πεδία εύρους ενός (ή περισσοτέρων) bit (bit fields)...269 Ενώσεις (unions)...271 Απαριθµήσεις (Enumerations)...272 Η χρήση της typedef...273 Κεφάλαιο 14: Χειρισµός αρχείων... 281 Άνοιγµα/κλείσιµο αρχείου...285 fopen()...285 fclose()...287 ferror()...288 fflush()...288 fflushall()...289 Σειριακή προσπέλαση αρχείων...289 fputc()...289 fgetc()...289 fprintf()...290 fscanf()...290 feof()...291 fgets()...292 fputs()...293 rewind()...294 Τυχαία προσπέλαση αρχείων...294 fseek()...294 fread()...295 9

Η γλώσσα C σε βάθος fwrite()...296 Η λογική της τυχαίας προσπέλασης...297 Κανάλια επικοινωνίας...300 Τυπικά κανάλια επικοινωνίας...301 Παράµετροι γραµµής εντολής...301 Κεφάλαιο 15: Αναδροµή... 311 Κεφάλαιο 16: Αναζήτηση και ταξινόµηση... 319 Σειριακή αναζήτηση...321 υαδική αναζήτηση (binary search)...323 Ταξινόµηση φυσαλίδας (bubble sort)...326 Ταξινόµηση επιλογής (selection sort)...329 Ταξινόµηση quick sort...331 Ταξινόµηση πινάκων δύο διαστάσεων...336 Ταξινόµηση πίνακα µε σειρές χαρακτήρων...338 Κεφάλαιο 17: υναµική διαχείριση µνήµης... 343 υναµική κατανοµή µνήµης...346 Η συνάρτηση malloc()...346 Η συνάρτηση calloc()...348 Η συνάρτηση free()...349 Η συνάρτηση realloc()...349 Κεφάλαιο 18: υναµικές δοµές δεδοµένων... 355 Συνδεδεµένες λίστες...357 Απλά συνδεδεµένη λίστα (simple linked list)...357 Κυκλικά συνδεδεµένη λίστα (circularly linked list)...358 ιπλά συνδεδεµένη λίστα (double linked list)...358 Κυκλικά διπλά συνδεδεµένη λίστα...359 Προσθήκη νέου κόµβου σε µια λίστα...359 Προσθήκη νέου κόµβου σε απλά συνδεδεµένη λίστα...359 Υλοποίηση συνδεδεµένης λίστας στη C...361 ιατεταγµένη συνδεδεµένη λίστα...365 Υλοποίηση της δοµής στοίβας...366 Υλοποίηση της δοµής ουράς...370 υαδικά δένδρα...374 10

Χειρισµός ενός δυαδικού δένδρου...376 Προσθήκη νέου κόµβου...377 Αναζήτηση κόµβου...379 Επίσκεψη ενός δυαδικού δέντρου...380 Επίσκεψη κατά σειρά (in-order)...380 Επίσκεψη κατά προδιάταξη (pre-order)...381 Επίσκεψη κατά µεταδιάταξη (post-order)...382 ιαγραφή κόµβου από το δυαδικό δέντρο...382 ιαγραφή κόµβου χωρίς θυγατρικούς κόµβους...383 ιαγραφή κόµβου µε ένα θυγατρικό κόµβο...383 ιαγραφή κόµβου µε δύο θυγατρικούς κόµβους...383 ιαγραφή του κόµβου ρίζας...384 Υλοποίηση της δοµής δυαδικού δένδρου...385 Παράρτηµα Α: Συναρτήσεις βιβλιοθήκης της C... 401 <ctype.h>...402 int islower(int c);...402 int isupper(int c);...402 int isprint(int c);...403 int tolower(int c);...403 int toupper(int c);...403 <math.h>...403 double exp(double x);...403 double log(double x);...404 double log10(double x);...404 double pow(double x, double y);...404 double sqrt(double x);...405 double fabs(double x);...405 int abs(int x);...405 double sin(double x);...405 double cos(double x);...406 double tan(double x);...406 <stdio.h>...406 EOF...406 FOPEN_MAX...406 11

Η γλώσσα C σε βάθος NULL...406 SEEK_CUR...407 SEEK_END...407 SEEK_SET...407 stdin...407 stdout...408 stderr...408 FILE...408 FILE *fopen(char *filename, char *mode);...408 FILE *freopen(char *filename, char *mode, FILE *fp);...408 int fflush(file *fp);...409 int fclose(file *fp);...409 int remove(char *filename);...409 int rename(char *oldname, char *newname);...410 int fprintf(file *fp, char *format, παράµετροι,...,...);...410 int printf(char *format,...);...410 int sprintf(char *s, char *format,...);...410 int fscanf(file *fp, char *format, διευθύνσεις,...);...410 int scanf(char *format,...);...411 int sscanf(char *s, char *format,...);...411 int fgetc(file *fp);...411 char *fgets(char *s, int n, FILE *fp);...411 int fputc(int c, FILE *fp);...411 char *fputs(char *s, FILE *fp);...412 int getc(file *fp);...412 int getch();...412 char *gets(char *s);...412 int putc(int c, FILE *fp);...412 int putch(int c);...412 int puts(char *s);...412 int fread(void *ptr, int size, int num, FILE *fp);...413 int fwrite(void* ptr, int size, int num, FILE *fp);...413 int fseek(file *fp, int apostasi, int thesi);...413 void rewind(file *fp);...413 int feof(file *fp);...413 12

<stdlib.h>...414 NULL...414 void *calloc(int num, int size);...414 void *malloc(int size);...414 void *realloc(void *p, int size);...414 void free(void *p);...415 void exit(int status);...415 int system(char *s);...415 int rand();...415 <string.h>...416 NULL...416 char *strcpy(char *str1, char *str2);...416 char *strncpy(char *str1, char *str2, n);...416 char *strcat(char *str1, char *str2);...416 char *strncat(char *str1, char *str2, n);...416 int strcmp(char *str1, char *str2);...417 int strncmp(char *str1, char *str2, n);...417 char *strchr(char *str, int c);...418 char *strrchr(char *str, int c);...418 char *strstr(char *str1, char *str2);...418 int strlen(char *str);...418 Παράρτηµα Β: Το ολοκληρωµένο περιβάλλον του DEV C/C++... 419 Οι βασικές λειτουργίες του DEV C/C++...420 ηµιουργία νέας εφαρµογής...420 Επιλογή του είδους της εφαρµογής...421 Σύνταξη του κώδικα...421 Εκτέλεση της εφαρµογής...422 Παράθυρο αποτελεσµάτων...422 Βιβλιογραφία... 423 Βιβλιογραφικές πηγές...424 Αναφορές στο διαδίκτυο...424 Ευρετήριο... 427 13