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

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

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

Transcript

1 Περιεχόµενα Πρόλογος...17 Κεφάλαιο 1: Εισαγωγή...19 Πώς να διαβάσετε αυτό το βιβλίο...20 Η γλώσσα C Ιστορική αναδροµή...22 Τα χαρακτηριστικά της C...22 C Μια δοµηµένη γλώσσα C Μια γλώσσα για προγραµµατιστές C Μια µεταφραστική γλώσσα Βασικές έννοιες του προγραµµατισµού...24 Μεταβλητές...24 Σταθερές...26 Εντολές...26 Αναγνωριστικά...27 Σχεδιασµός και ανάπτυξη προγραµµάτων...27 Λογικό διάγραµµα...28 Κεφάλαιο 2: Μια πρώτη µατιά στη C...37 Το πρώτο σας πρόγραµµα στη C...38 Η δοµή ενός προγράµµατος στη C...39 Σχόλια προγράµµατος ηλώσεις µεταβλητών Αρχικές τιµές µεταβλητών Μεταβλητές µόνο για ανάγνωση Προτάσεις Παραστάσεις Παραστάσεις µε µέλη διαφορετικού τύπου Λογικές παραστάσεις Παραδείγµατα κώδικα µε παραστάσεις Η C και οι αγκύλες της Σύνθετη πρόταση (compound statement) Ο προ-µεταγλωττιστής της C...54 Η οδηγία #include...54 Η οδηγία #define...54

2 Η γλώσσα C σε βάθος Κεφάλαιο 3: Προετοιµασία για αργότερα...61 Η C και η µνήµη...62 Ο τελεστής & Ο τελεστής sizeof Τρεις συναρτήσεις παρακαλώ...64 Η συνάρτηση printf() Η συνάρτηση scanf() Η συνάρτηση exit() Ολίγη if παρακαλώ...70 Κεφάλαιο 4: Ο τύπος δεδοµένων int...79 Σταθερές τύπου int...80 Μεταβλητές τύπου int...80 Ακέραιοι χωρίς πρόσηµο (unsigned) Αρχική τιµή µεταβλητής Αριθµητικοί τελεστές Χρήση συντµήσεων σε παραστάσεις Ο τελεστής υπολοίπου % υαδικοί αριθµοί...85 Μετατροπή δυαδικού σε δεκαδικό Μετατροπή δεκαδικού σε δυαδικό Οι δυαδικοί (bitwise) τελεστές Προτεραιότητα τελεστών...91 Κεφάλαιο 5: Ο τύπος δεδοµένων char...99 Σταθερές τύπου char Οι χαρακτήρες είναι αριθµοί!!! Χαρακτήρες διαφυγής Μεταβλητές τύπου char Τρεις συναρτήσεις χειρισµού χαρακτήρων H scanf() και τα µικρά της προβλήµατα! Συµβολοσειρές (character strings) Οι συµβολοσειρές έχουν τιµή; Πίνακας ASCII Κεφάλαιο 6: Ο τύπος δεδοµένων float Σταθερές τύπου float Μεταβλητές τύπου float

3 Περιεχόµενα Χρήση δεδοµένων τύπου κινητής υποδιαστολής Η χρήση της printf() µε δεδοµένα κινητής υποδιαστολής Χρήση της συνάρτησης scanf() µε δεδοµένα τύπου float Οι συναρτήσεις pow() και sqrt() Κεφάλαιο 7: Εντολές συνθήκης Η εντολή if H απλή πρόταση if Η πρόταση if-else Η πρόταση if - else if Η εντολή switch - case Ο τελεστής? Κεφάλαιο 8: Εντολές αλλαγής ροής και επανάληψης Η "επικίνδυνη" εντολή goto Ο βρόχος while O βρόχος do-while Ο βρόχος for Ένθετοι βρόχοι for Ο τελεστής "κόµµα" (,) Η εντολή break Η εντολή continue Καταµέτρηση και άθροιση σε επαναλαµβανόµενες διαδικασίες Υπολογισµός µέγιστου και ελάχιστου σε ένα σύνολο αριθµών Κεφάλαιο 9: Συναρτήσεις Oρισµός µιας συνάρτησης Συναρτήσεις χωρίς παραµέτρους Συναρτήσεις µε παραµέτρους Συναρτήσεις που επιστρέφουν τιµή Συναρτήσεις που δεν επιστρέφουν τιµή Η κλήση µιας συνάρτησης Παράµετροι συνάρτησης Ορίσµατα και µεταβίβαση παραµέτρων Χρήση συναρτήσεων βιβλιοθήκης Σύνταξη των συναρτήσεων βιβλιοθήκης Μετατροπή τύπου (type casting) Αυτόµατη µετατροπή τύπου

4 Η γλώσσα C σε βάθος Κεφάλαιο 10: Εµβέλεια µεταβλητών Τοπικές µεταβλητές (local variables) Καθολικές µεταβλητές (global variables) ήλωση τοπικών µεταβλητών σε σύνθετη πρόταση Στατικές τοπικές µεταβλητές (static local variables) Κεφάλαιο 11: είκτες Μεταβλητές δείκτη (Pointer variables) ήλωση µιας µεταβλητής δείκτη Οι τελεστές & και * Μέχρι τώρα µάθαµε ότι Αριθµητική των δεικτών είκτες τύπου Void είκτης NULL Εµφάνιση διευθύνσεων και περιεχόµενα δεικτών είκτες και συναρτήσεις Συναρτήσεις που επιστρέφουν δείκτη Παραστάσεις αριστερής τιµής (lvalues) Κεφάλαιο 12: Πίνακες (arrays) Πίνακες µίας διάστασης Οι πίνακες µίας διάστασης και οι δείκτες Προσοχή Προσοχή!!! Μεταβίβαση ενός πίνακα ως παραµέτρου µιας συνάρτησης Πίνακες χαρακτήρων Η χρήση της printf() και της scanf() µε πίνακες χαρακτήρων Χειρισµός συµβολοσειρών Συναρτήσεις που εφαρµόζονται σε συµβολοσειρές Αρχική τιµή ενός πίνακα µίας διάστασης Χειρισµός πινάκων µιας διάστασης Πίνακες πολλών διαστάσεων Πίνακες δύο διαστάσεων Πίνακες δύο διαστάσεων και δείκτες Πίνακες συµβολοσειρών Μεταβίβαση πινάκων πολλών διαστάσεων σε συναρτήσεις Απεικόνιση πινάκων πολλών διαστάσεων Περιπτώσεις επεξεργασίας πινάκων δύο διαστάσεων (2 )

5 Περιεχόµενα Γέµισµα πίνακα 2 µε τυχαίους αριθµούς Άθροισµα των στοιχείων ενός πίνακα Εύρεση της µεγαλύτερης και της µικρότερης τιµής σε έναν πίνακα Εύρεση ενός αριθµού σε έναν πίνακα Μορφοποιηµένη εµφάνιση ενός πίνακα Εµφάνιση του αθροίσµατος κάθε γραµµής ενός πίνακα Εµφάνιση της µέγιστης τιµής κάθε στήλης ενός πίνακα Ένα όλοκληρωµένο πρόγραµµα επεξεργασίας ενός πίνακα Κεφάλαιο 13: Tύποι δεδοµένων οριζόµενοι από το χρήστη (User-Defined data types) οµές (structures) Αναφορά στα πεδία µιας δοµής Πίνακες από δοµές Μεταβίβαση των πεδίων µιας δοµής σε µια συνάρτηση Μεταβίβαση ολόκληρης της δοµής σε συνάρτηση είκτες σε δοµές Πίνακες από δοµές και δείκτες οµές µέσα σε δοµές (ένθετες δοµές)) Και όµως γίνεται Πεδία εύρους ενός, ή περισσοτέρων, bits (bit fields) Ενώσεις (unions) Απαριθµήσεις (Enumerations) Η χρήση της typedef Κεφάλαιο 14: Κανάλια επικοινωνίας - Χειρισµός αρχείων Κανάλια (ρεύµατα) επικοινωνίας Προκαθορισµένα ρεύµατα Είδη ρευµάτων Χειρισµός αρχείων Αρχεία κειµένου και δυαδικά αρχεία Σειριακή και τυχαία προσπέλαση Άνοιγµα/κλείσιµο αρχείου fopen() fclose() ferror() fflush() fflushall()

6 Η γλώσσα C σε βάθος Αρχεία κειµένου (text files) fputc() fgetc() fprintf() fscanf() feof() fgets() fputs() υαδικά αρχεία (binary files) και τυχαία προσπέλαση fseek() rewind() fread() fwrite() Η λογική της τυχαίας προσπέλασης Κεφάλαιο 15: Προχωρηµένα θέµατα συναρτήσεων Αναδροµή Παράµετροι γραµµής εντολής είκτες σε συναρτήσεις!!! ήλωση δείκτη σε συνάρτηση Ανάθεση τιµής σε µεταβλητή δείκτη σε συνάρτηση Κλήση συνάρτησης µε τη χρήση ενός δείκτη σε συνάρτηση Έλεγχος των περιεχοµένων ενός δείκτη σε συνάρτηση είκτες σε συναρτήσεις ως παράµετροι Πίνακες δεικτών σε συναρτήσεις Εµβόλιµες συναρτήσεις (inline functions) Προγράµµατα µε πολλά πηγαία αρχεία Ο µεταγλωττιστής GCC Μεταγλώττιση και σύνδεση ξεχωριστών αρχείων ηµιουργία δικών µας βιβλιοθηκών Συνοψίζοντας Κεφάλαιο 16: Αναζήτηση και ταξινόµηση Σειριακή αναζήτηση υαδική αναζήτηση (binary search) Ταξινόµηση φυσαλίδας (bubble sort) Ταξινόµηση επιλογής (selection sort) Ταξινόµηση quick sort

7 Περιεχόµενα Ταξινόµηση πινάκων δύο διαστάσεων Ταξινόµηση πίνακα συµβολοσειρών Κεφάλαιο 17: υναµική διαχείριση µνήµης υναµική κατανοµή µνήµης Η συνάρτηση malloc() Η συνάρτηση calloc() Η συνάρτηση free() Η συνάρτηση realloc() Κεφάλαιο 18: υναµικές δοµές δεδοµένων Συνδεδεµένες λίστες Απλά συνδεδεµένη λίστα (simple linked list) Κυκλικά συνδεδεµένη λίστα (circularly linked list) ιπλά συνδεδεµένη λίστα (double linked list) Κυκλικά διπλά συνδεδεµένη λίστα Προσθήκη νέου κόµβου σε µια λίστα Προσθήκη νέου κόµβου σε απλά συνδεδεµένη λίστα Υλοποίηση συνδεδεµένης λίστας στη C ιατεταγµένη συνδεδεµένη λίστα Υλοποίηση της δοµής στοίβας Υλοποίηση της δοµής ουράς υαδικά δένδρα Χειρισµός ενός δυαδικού δένδρου Προσθήκη νέου κόµβου Αναζήτηση κόµβου ιάσχιση ενός δυαδικού δέντρου ιάσχιση κατά σειρά (in-order) ιάσχιση κατά προδιάταξη (pre-order) ιάσχιση κατά µεταδιάταξη (post-order) ιαγραφή κόµβου από το δυαδικό δένδρο ιαγραφή κόµβου χωρίς θυγατρικούς κόµβους ιαγραφή κόµβου µε ένα θυγατρικό κόµβο ιαγραφή κόµβου µε δύο θυγατρικούς κόµβους ιαγραφή του κόµβου ρίζας Υλοποίηση της δοµής δυαδικού δένδρου

8 Η γλώσσα C σε βάθος Κεφάλαιο 19: Από τη C, στη C C++, η κληρονοµιά από τη C C++, µια αντικειµενοστρεφής γλώσσα Αντικειµενοστρεφής προγραµµατισµός Κλάσεις και αντικείµενα (classes and objects) Ενθυλάκωση (Encapsulation) Κληρονοµικότητα (Inheritance) Πολυµορφισµός (Polymorphism) Το πρώτο µας πρόγραµµα σε C Παίζοντας µε αντικείµενα Το αντικείµενο cout Το αντικείµενο cin ιαφορές µεταξύ C και C Μερικά από τα νέα διαδικαστικά χαρακτηριστικά της C Τα αντικειµενοστρεφή χαρακτηριστικά της C Παράρτηµα Α: Συναρτήσεις βιβλιοθήκης της C Η τυπική βιβλιοθήκη της C <ctype.h> int islower(int c); int isupper(int c); int isprint(int c); int tolower(int c); int toupper(int c); <math.h> double exp(double x); double log(double x); double log10(double x); double pow(double x, double y); double sqrt(double x); double fabs(double x); int abs(int x); double sin(double x); double cos(double x); double tan(double x); <stdio.h> EOF FOPEN_MAX

9 Περιεχόµενα NULL SEEK_CUR SEEK_END SEEK_SET stdin stdout stderr FILE FILE *fopen(char *filename, char *mode); FILE *freopen(char *filename, char *mode, FILE *fp); int fflush(file *fp); int fclose(file *fp); int remove(char *filename); int rename(char *oldname, char *newname); int fprintf(file *fp, char *format, παράµετροι,...,...); int printf(char *format,...); int sprintf(char *s, char *format,...); int fscanf(file *fp, char *format, διευθύνσεις,...); int scanf(char *format,...); int sscanf(char *s, char *format,...); int fgetc(file *fp); char *fgets(char *s, int n, FILE *fp); int fputc(int c, FILE *fp); char *fputs(char *s, FILE *fp); int getc(file *fp); int getch(); char *gets(char *s); int putc(int c, FILE *fp); int putch(int c); int puts(char *s); int fread(void *ptr, int size, int num, FILE *fp); int fwrite(void* ptr, int size, int num, FILE *fp); int fseek(file *fp, int apostasi, int thesi); void rewind(file *fp); int feof(file *fp); <stdlib.h> NULL void *calloc(int num, int size); void *malloc(int size);

10 Η γλώσσα C σε βάθος void *realloc(void *p, int size); void free(void *p); void exit(int status); int system(char *s); int rand(); void srand(unsigned int seed); int atoi(char *str); double atof(char *str); <string.h> NULL char *strcpy(char *str1, char *str2); char *strncpy(char *str1, char *str2, n); char *strcat(char *str1, char *str2); char *strncat(char *str1, char *str2, n); int strcmp(char *str1, char *str2); int strncmp(char *str1, char *str2, n); char *strchr(char *str, int c); char *strrchr(char *str, int c); char *strstr(char *str1, char *str2); int strlen(char *str); Παράρτηµα Β: Το ολοκληρωµένο περιβάλλον του DEV C Εγκατάσταση του DEV C Οι βασικές λειτουργίες του DEV C ηµιουργία απλού προγράµµατος µε ένα πηγαίο αρχείο Αποθήκευση του αρχείου Σύνταξη του κώδικα Μεταγλώττιση και εκτέλεση του προγράµµατος ηµιουργία νέου έργου (µε περισσότερα πηγαία αρχεία) Επιλογή του είδους του έργου Προσθήκη πηγαίων αρχείων, µεταγλώττιση και εκτέλεση του έργου Παράθυρο αποτελεσµάτων Το DEV C++ και οι Ελληνικοί χαρακτήρες Βιβλιογραφία Βιβλιογραφικές πηγές Αναφορές στο διαδίκτυο Ευρετήριο

11 Η γλώσσα C σε βάθος Μια πρώτη µατιά στη C Στο κεφάλαιο αυτό ξεκινά µια µικρή "περιοδεία" στη γλώσσα C. Γίνεται µια πρώτη γνωριµία, ώστε να αποκτήσει ο αναγνώστης µια σφαιρική εικόνα της δοµής και των χαρακτηριστικών της γλώσσας. Τα περισσότερα από όσα αναφέρονται στο παρόν κεφάλαιο θα εξεταστούν ξανά και πιο αναλυτικά στα επόµενα κεφάλαια. Το πρώτο σας πρόγραµµα στη C Έφτασε η ώρα να γράψετε το πρώτο σας πρόγραµµα στη C, το οποίο δεν θα µπορούσε να είναι άλλο από το κλασικό "Hello world". #include <stdio.h> main() printf("hello world"); Το πρόγραµµα αποτελείται µόνο από µία συνάρτηση, τη main() και εµφανίζει στην οθόνη τη φράση Hello world. Παρακάτω επεξηγούνται µία-µία οι προτάσεις του προγράµµατος. #include <stdio.h> Η πρόταση αυτή αναγκάζει το µεταγλωττιστή της C να συµπεριλάβει το αρχείο stdio.h κατά τη διαδικασία της µεταγλώττισης. Το αρχείο αυτό περιέχει τις δηλώσεις των συναρτήσεων εισόδου/εξόδου της C. Για να µπορέσουµε να χρησιµοποιήσουµε οποιαδήποτε από αυτές τις λειτουργίες εισόδου/εξόδου στο πρόγραµµά µας (π.χ. τη συνάρτηση printf () που ακολουθεί), θα πρέπει οπωσδήποτε 3 να συµπεριληφθεί (#include) το συγκεκρι- µένο αρχείο. main() Η συνάρτηση main() είναι υποχρεωτική σε κάθε πρόγραµµα της C. Στην περίπτωση που το πρόγραµµά µας έχει µόνο µία συνάρτηση, αυτή πρέπει 3 Αρκετά ολοκληρωµένα περιβάλλοντα ανάπτυξης (IDE) συµπεριλαµβάνουν κατά τη διαδικασία της µεταγλώττισης συνηθισµένα αρχεία κεφαλίδας ακόµα και αν δεν έχουν ορισθεί ρητά στον κώδικα του προγράµµατος. Αυτό έχει σαν αποτέλεσµα να επιτρέπουν τη χρήση µερικών συναρτήσεων ακόµη και αν ο προγραµµατιστής δεν έχει συµπεριλάβει το αρχείο κεφαλίδας στο οποίο δηλώνονται. 38

12 Κεφάλαιο 2: Μια πρώτη µατιά στη C να είναι η main(). Αν το πρόγραµµά µας περιέχει περισσότερες από µία συναρτήσεις, η main() είναι η πρώτη που εκτελείται. Η αριστερή αγκύλη σηµατοδοτεί την αρχή των προτάσεων της συνάρτησης main(). printf("hello world"); Η συνάρτηση printf() χρησιµοποιείται για την έξοδο πληροφοριών στην οθόνη. Στη συγκεκριµένη περίπτωση θα εµφανίσει το κείµενο "Hello world". Η δεξιά αγκύλη σηµατοδοτεί το τέλος των προτάσεων της συνάρτησης main(). Στη συνέχεια του βιβλίου, σε πολλά παραδείγµατα, χάριν συντοµίας η πρόταση #include <stdio.h> µπορεί να παραλείπεται και να εµφανίζεται µόνο η συνάρτηση main(). Αν θέλουµε να χρησιµοποιήσουµε τον κώδικα στην πράξη, η πρόταση αυτή θα πρέπει να προστεθεί πριν από τη main(). Προσοχή, τα κενά διαστήµατα και οι αλλαγές γραµµής δεν λαµβάνονται υπόψη από τον µεταγλωττιστή της C. Εποµένως το παραπάνω πρόγραµµα θα µπορούσε, χωρίς κανένα πρόβληµα, να γραφεί ως εξής: #include <stdio.h> main() printf("hello world"); Η δοµή ενός προγράµµατος στη C Ένα απλό πρόγραµµα στη C αποτελείται συνήθως από 3 βασικά τµήµατα: Μία συνάρτηση µε όνοµα main(): Αυτή η συνάρτηση είναι αυτή που καλείται και εκτελείται πρώτη. Κάθε πρόγραµµα πρέπει να έχει µία και µόνο µία συνάρτηση main(). Η συνάρτηση main(), όπως και κάθε συνάρτηση της C, έχει την παρακάτω µορφή: main() 39

13 Η γλώσσα C σε βάθος δηλώσεις µεταβλητών; εκτελέσιµες προτάσεις; ηλώσεις µεταβλητών: Όλες οι µεταβλητές που χρησιµοποιούνται σε ένα πρόγραµµα της C πρέπει να έχουν προηγουµένως δηλωθεί. Μία δήλωση µεταβλητής περιλαµβάνει το όνοµα της µεταβλητής και τον τύπο της (µπορεί επίσης να περιλαµβάνει και την αρχική της τιµή). Έτσι, η πρόταση int a,b; δηλώνει δύο ακέραιες µεταβλητές µε ονόµατα a και b. Κάθε δηλωτική πρόταση, τερµατίζεται µε ελληνικό ερωτηµατικό (;). Εκτελέσιµες προτάσεις: Μετά από τις δηλώσεις µεταβλητών πρέπει να ακολουθούν οι εκτελέσιµες προτάσεις (εντολές ή παραστάσεις) του προγράµµατος. Κάθε εκτελέσιµη πρόταση τερµατίζεται µε ελληνικό ερωτηµατικό (;). Ένα πιο σύνθετο πρόγραµµα περιλαµβάνει περισσότερες συναρτήσεις πέρα από τη συνάρτηση main(): main() δηλώσεις µεταβλητών της συνάρτησης main(); εκτελέσιµες προτάσεις της συνάρτησης main(); function1() δηλώσεις µεταβλητών της συνάρτησης function1(); εκτελέσιµες προτάσεις της συνάρτησης function1(); function2() δηλώσεις µεταβλητών της συνάρτησης function2(); εκτελέσιµες προτάσεις της συνάρτησης function2(); 40

14 Κεφάλαιο 2: Μια πρώτη µατιά στη C Παρατηρούµε ότι µπορούµε να δηλώνουµε ξεχωριστές µεταβλητές σε κάθε συνάρτηση. Οι µεταβλητές αυτές καλούνται τοπικές µεταβλητές (local variables) και µπορούν να χρησιµοποιηθούν µόνο µέσα στις συναρτήσεις στις οποίες δηλώθηκαν. Στο Κεφάλαιο 10 αναλύονται σε βάθος η χρήση και οι ιδιότητες των τοπικών µεταβλητών. Σχόλια προγράµµατος Ο σωστός σχεδιασµός ενός προγράµµατος επιβάλει τη χρήση σχολίων µέσα στο ίδιο το πρόγραµµα µε σκοπό να το κάνει περισσότερο ευανάγνωστο και κατανοητό. Τα σχόλια µπορούν να περιλαµβάνουν οποιοδήποτε µήνυµα, αρχίζουν µε το ζεύγος των χαρακτήρων /* και τελειώνουν µε τους χαρακτήρες */. Ακολουθεί ένα παράδειγµα µιας συνάρτησης main() µε σχόλια. /* Το πρώτο µου πρόγραµµα στη C Μυτιλήνη 24/10/1983 */ main() /*η χρήση της συνάρτησης printf()*/ printf("hello world\n"); /*Εµφανίζει ένα σύνολο χαρακτήρων*/ Παρατηρούµε ότι σχόλια µπορούν να µπουν οπουδήποτε µέσα σε ένα πρόγραµµα της C: είτε στην αρχή, είτε ενδιάµεσα στον κώδικα. Αρκετοί µεταγλωττιστές της C και της C++, µεταξύ των οποίων και ο DEV C++, αναγνωρίζουν "σχόλια γραµµής" τα οποία ξεκινάνε µε δύο συνεχόµενες καθέτους (//). Για παράδειγµα: // Το πρώτο µου πρόγραµµα στη C // Μυτιλήνη // 24/10/1983 main() 41

15 Η γλώσσα C σε βάθος printf("hello world\n"); //Θα εµφανίσει το κείµενο Hello world Όταν ο µεταγλωττιστής (compiler) της C εντοπίσει το συνδυασµό /* αγνοεί οτιδήποτε βρει µέσα στο πρόγραµµα µέχρι το επόµενο */. Αρκετοί µεταγλωττιστές αγνοούν επίσης και οτιδήποτε υπάρχει µετά από διπλή κάθετο (//) µέχρι το τέλος της γραµµής. ηλώσεις µεταβλητών Πριν χρησιµοποιηθεί οποιαδήποτε µεταβλητή, πρέπει πρώτα να έχει δηλωθεί. Στην πρόταση της δήλωσης ενηµερώνουµε το µεταγλωττιστή της C για το όνο- µα και τον τύπο της µεταβλητής. Η σύνταξη µιας δηλωτικής πρότασης στη C έχει την παρακάτω µορφή: type όνοµα1,όνοµα2,... όνοµαν; όπου type ο τύπος δεδοµένων των µεταβλητών και όνοµα1, όνοµα2,... όνοµαν είναι ονόµατα µεταβλητών. Οι βασικοί τύποι µεταβλητών στη C είναι τρεις: int Ακέραια µεταβλητή. Περιέχει ακέραιο αριθµό char Μεταβλητή χαρακτήρα. Περιέχει ένα χαρακτήρα. float Πραγµατική µεταβλητή. Περιέχει πραγµατικό αριθµό κινητής υποδιαστολής (µε δεκαδικά ψηφία). Πέρα από τους παραπάνω τύπους, υπάρχουν και άλλοι τύποι µεταβλητών, που θα αναλυθούν αργότερα και οι οποίοι στηρίζονται σε αυτούς τους τρεις βασικούς τύπους. Τα ονόµατα των µεταβλητών, αλλά και άλλων οντοτήτων της C (π.χ. συναρτήσεις, δοµές) ακολουθούν τους παρακάτω κανόνες: Το όνοµα µιας µεταβλητής µπορεί να αποτελείται από χαρακτήρες, αριθµούς, και το χαρακτήρα υπογράµµισης "_". Ο πρώτος χαρακτήρας του ονόµατος πρέπει να είναι γράµµα. Το πλήθος των χαρακτήρων του ονόµατος θεωρητικά είναι απεριόριστο αλλά µπορεί να µεταβάλλεται από έκδοση σε έκδοση. 42

16 Κεφάλαιο 2: Μια πρώτη µατιά στη C Οι ίδιοι περιορισµοί ισχύουν και για όλα τα άλλα αναγνωριστικά που ορίζονται από το χρήστη, όπως ονόµατα συναρτήσεων, τύπων κ.λπ., τα οποία θα συναντήσουµε αργότερα. εν επιτρέπεται η χρήση Ελληνικών χαρακτήρων σε ονόµατα µεταβλητών. Έτσι, µπορούµε π.χ. να έχουµε µεταβλητές µε τα ονόµατα: a teliko_apotelesma a23 αλλά όχι µε τα ονόµατα: Τελικό_σύνολο 23a number of students Ελληνικοί χαρακτήρες Ξεκινάει από αριθµό Περιέχει κενά διαστήµατα Οι παρακάτω δηλωτικές προτάσεις αντιστοιχούν σε τέσσερις µεταβλητές διαφορετικών τύπων: int number_of _students, a2; Με την πρόταση αυτή δηλώνουµε δύο ακέραιες µεταβλητές µε ονόµατα number_of_students και a2. char apantisi; Με την πρόταση αυτή δηλώνουµε µία µεταβλητή χαρακτήρα µε όνοµα apantisi. float mesos_oros; Με την πρόταση αυτή δηλώνουµε µία πραγµατική µεταβλητή µε ό- νοµα mesos_oros. Στη C οι πεζοί και οι κεφαλαίοι χαρακτήρες είναι διακριτοί. Αυτό σηµαίνει ότι η µεταβλητή a είναι διαφορετική από την A. Επίσης, όλες οι εντολές και συναρτήσεις βιβλιοθήκης της C συντάσσονται µε πεζούς χαρακτήρες. 43

17 Η γλώσσα C σε βάθος Αρχικές τιµές µεταβλητών Στην πρόταση δήλωσης µιας µεταβλητής είναι δυνατόν ταυτόχρονα να της α- ναθέσουµε και µία τιµή. Για παράδειγµα: int a=4,b; float c=4.6,m; char ch='a'; Οι παραπάνω προτάσεις είναι δηλωτικές για τις µεταβλητές a, b, c, m και ch και ταυτόχρονα καταχωρίζουν στις µεταβλητές a, c και ch τις τιµές 4, 4.6, και 'Α' αντίστοιχα. Μεταβλητές µόνο για ανάγνωση Στη C µπορούµε να δηλώσουµε µεταβλητές στις οποίες να δώσουµε αρχική τι- µή χωρίς όµως στη συνέχεια να µπορούµε να µεταβάλλουµε το περιεχόµενό τους. Μια τέτοια µεταβλητή δηλώνεται όπως και οι υπόλοιπες, προσθέτοντας µπροστά από τον τύπο της το διακριτικό const. const int a=8; const float c=4.6; Οι παραπάνω προτάσεις δηλώνουν δύο µεταβλητές µόνο για ανάγνωση a και c, µε αρχικές τιµές 8 και 4.6 αντίστοιχα. Στις µεταβλητές αυτές δεν επιτρέπεται να αναθέσουµε αργότερα άλλες τιµές. Η χρήση τέτοιου είδους µεταβλητών είναι πολύ περιορισµένη. ΠΡΟΣΟΧΗ όταν δηλώνουµε µεταβλητές µόνο για ανάγνωση πρέπει απαραίτητα να τις δίνουµε αρχική τιµή. Προτάσεις Στη C µπορεί να έχουµε δύο ειδών προτάσεις: Tις προτάσεις δήλωσης Tις εκτελέσιµες προτάσεις (εντολές, παραστάσεις ή κλήσεις συναρτήσεων) Οι προτάσεις δήλωσης, πέρα από αυτές που δηλώνουν µεταβλητές, όπως αναφέραµε προηγουµένως, µπορεί να δηλώνουν συναρτήσεις ή µεταβλητές κά- 44

18 Κεφάλαιο 2: Μια πρώτη µατιά στη C ποιου σύνθετου τύπου. Προς το παρόν, µέχρι να φτάσουµε στο σηµείο να αναφερθούµε σε αυτές τις διαφορετικές προτάσεις δήλωσης, θα έχουµε υπόψη µόνο τις προτάσεις που δηλώνουν µεταβλητές των τριών βασικών τύπων (int, char, και float). Οι εκτελέσιµες προτάσεις είναι εντολές, παραστάσεις ή κλήσεις συναρτήσεων που εκτελούν κάποια συγκεκριµένη λειτουργία. Στο παρακάτω παράδειγµα, main() int x,y; ηλωτική πρόταση x=5; Εκτελέσιµη πρόταση y=x+4*20; Εκτελέσιµη πρόταση η πρώτη πρόταση είναι δηλωτική και οι δύο επόµενες εκτελέσιµες. Παρατηρούµε ότι στο συγκεκριµένο παράδειγµα οι εκτελέσιµες προτάσεις µπορεί να αποτελούνται από απλές παραστάσεις, οι οποίες συνθέτουν άλλες πιο πολύπλοκες παραστάσεις. Στην επόµενη παράγραφο αναλύεται η φιλοσοφία των παραστάσεων στη C. Παραστάσεις Μια παράσταση αποτελείται από σταθερές, µεταβλητές, και συναρτήσεις, συνήθως σε συνδυασµό µε αριθµητικούς (π.χ. +, -, /) ή λογικούς τελεστές (π.χ. <, <=, ==). Σταθερές (constants): Μια σταθερά µπορεί να είναι του τύπου int, char, ή float και συνήθως δεν αποτελεί από µόνη της µια πρόταση σε ένα πρόγραµµα της C (αν και συντακτικά αυτό είναι δυνατόν, όπως θα αναφέρουµε παρακάτω). Παραδείγµατα σταθερών είναι: 7 σταθερά τύπου int σταθερά τύπου float 'A' σταθερά τύπου char 45

19 Η γλώσσα C σε βάθος Όπως κάθε παράσταση, έτσι και οι σταθερές έχουν µία τιµή και έναν τύπο. Π.χ. η σταθερά έχει τιµή και τύπο float. Μεταβλητές (variables): Το όνοµα µιας µεταβλητής αποτελεί από µόνο του µια απλή παράσταση. Παραστάσεις µε µία µεταβλητή συνήθως δεν αποτελούν από µόνες τους µια πρόταση αλλά συνήθως συνδυάζονται µε άλλες παραστάσεις. Ακολουθούν παραδείγµατα χρήσης µεταβλητών σε παραστάσεις: Μεταβλητή ως απλή παράσταση: a; Μεταβλητή ως τµήµα µιας σύνθετης παράστασης: a + 6; Η τιµή της παραπάνω παράστασης υπολογίζεται ως το άθροισµα του περιεχο- µένου της µεταβλητής a και του 6. b = a + 6; Σε αυτή την περίπτωση, ο τελεστής ίσον (=) καταχωρίζει το αποτέλεσµα της παράστασης a + 6 στη µεταβλητή b. Στη C το ίσον (=) είναι ένας απλός τελεστής όπως και οι γνωστοί αριθµητικοί τελεστές (+,-...) και δεν αποτελεί µια εντολή ανάθεσης όπως σε άλλες γλώσσες προγραµµατισµού. Ο τελεστής ίσον (=) καταχωρίζει το αποτέλεσµα της παράστασης που βρίσκεται δεξιά του, στη µεταβλητή που εµφανίζεται στα αριστερά του. Αριστερά από έναν τελεστή ίσον (=) επιτρέπεται να εµφανίζεται µόνο το όνοµα µιας µεταβλητής 4. Μια παράσταση που περιέχει τον τελεστή ανάθεσης = έχει και αυτή µία τι- µή, όπως έχει και οποιαδήποτε άλλη παράσταση. Η τιµή µιας τέτοιας παράστασης είναι η τιµή που καταχωρίζεται στη µεταβλητή αριστερά του ίσον. Τα παρακάτω παραδείγµατα κάνουν σαφή τη χρήση του τελεστή =. Παραστάσεις που απαγορεύονται ρητά σε άλλες γλώσσες προγραµµατισµού, όχι µόνο επιτρέπονται, αλλά χρησιµοποιούνται ευρέως από τους προγραµµατιστές της C. 4 Για την ακρίβεια αριστερά του τελεστή =, εκτός από όνοµα µεταβλητής, επιτρέπεται οποιαδήποτε παράσταση αναφέρεται σε θέση µνήµης. Τέτοιου είδους παραστάσεις λέγονται lvalues και θα τις συναντήσουµε αργότερα (βλέπε σελίδα 234). 46

20 Κεφάλαιο 2: Μια πρώτη µατιά στη C a = 5; Ο τελεστής = καταχωρίζει το 5 στη µεταβλητή a και το αποτέλεσµα της παράστασης a = 5 είναι το 5. b = a = 5; Η παράσταση αυτή καταχωρίζει το 5 και στη µεταβλητή a, και στη µεταβλητή b. Αν σκεφτούµε αυτή την παράσταση ως b = (a = 5), η παράσταση a = 5 καταχωρίζει στην a το 5 και έχει αποτέλεσµα 5. Έτσι, δεξιά από το πρώτο = η τι- µή της παράστασης είναι 5, το οποίο καταχωρίζεται στην b. Το αποτέλεσµα όλης της παράστασης είναι πάλι το 5. ΠΡΟΣΟΧΗ πρέπει να δοθεί στο γεγονός ότι µια µεταβλητή στη C, πριν να της ανατεθεί κάποια τιµή, έχει απροσδιόριστο περιεχόµενο (και όχι 0 ή κενό όπως συµβαίνει σε άλλες γλώσσες). Για παράδειγµα, αν θεωρήσουµε τις παρακάτω προτάσεις: int a,b,c; a=5; c=a+b; η µεταβλητή c θα πάρει απροσδιόριστη τιµή διότι στη b δεν έχει πρηγουµένως ανατεθεί κάποια τιµή. Πιο σύνθετα παραδείγµατα θα αναφέρουµε σε επόµενες παραγράφους, όταν θα αναφερθούµε στους υπόλοιπους τελεστές της C και στην προτεραιότητα των πράξεων. Συναρτήσεις: Μια συνάρτηση µπορεί από µόνη της να αποτελέσει µια πρόταση ή να µετέχει σε µια παράσταση. Μια συνάρτηση καλείται χρησιµοποιώντας µόνο το όνοµά της. Μόλις εκτελεστεί ο κώδικας της συνάρτησης, ο έλεγχος του προγράµµατος ε- πιστρέφει αµέσως µετά το ση- µείο κλήσης της συνάρτησης. 47

21 Η γλώσσα C σε βάθος Κάθε συνάρτηση στη C επιστρέφει µία τιµή (εκτός αν έχει συγκεκριµένα δηλωθεί ότι δεν θα επιστρέψει τιµή). Μια συνάρτηση στη C µπορεί να είναι µια συνάρτηση βιβλιοθήκης, δηλαδή µια έ- τοιµη συνάρτηση µε προκαθορισµένη λειτουργία, ή να ορίζεται µέσα στο ίδιο το πρόγραµµα ως ξεχωριστό τµήµα προγράµµατος. Μια συνάρτηση παίρνει πληροφορίες από το πρόγραµµα που την καλεί (µέσω των παραµέτρων της), εκτελεί τη λειτουργία για την οποία σχεδιάστηκε, και τελικά επιστρέφει στο πρόγραµµα που την κάλεσε. Μια συνάρτηση εκτελεί οπωσδήποτε µια συγκεκριµένη λειτουργία, µπορεί όµως να µην έχει καµία παράµετρο και να µην επιστρέφει καµία τιµή (ή η τιµή που επιστρέφει να µη χρησιµοποιείται από το πρόγραµµα). Παραστάσεις µε µέλη διαφορετικού τύπου Σε µια παράσταση µπορούν να µετέχουν µέλη διαφορετικού τύπου. Το ερώτη- µα είναι τι τύπου θα είναι το αποτέλεσµα της παράστασης; Αν ιεραρχήσουµε τους τύπους δεδοµένων της C, η σειρά από τον ιεραρχικά χαµηλότερο προς τον υψηλότερο είναι: char, int, float, και double (πραγµατικός τύπος δεδοµένων αλλά µε περισσότερη ακρίβεια στα δεκαδικά ψηφία). Το αποτέλεσµα µιας παράστασης είναι του ίδιου τύπου δεδοµένων µε τον τύπο του ιεραρχικά υψηλότερου µέλους της παράστασης. int a,b; float c; a=10; b=5; c=(a+b)/2; // ήλωση δύο ακεραίων µεταβλητών a και b // ήλωση µιας πραγµατικής µεταβλητής c //Καταχώριση της τιµής 10 στη µεταβλητή a //Καταχώριση της τιµής 5 στη µεταβλητή b //Καταχώριση του αποτελέσµατος της παράστασης στη µεταβλητή c Στο παραπάνω παράδειγµα, ενώ περιµένουµε η τιµή του c να είναι 7.5 (15/2), θα είναι 7. Αυτό γίνεται διότι η παράσταση (a+b)/2 έχει αποτέλεσµα int, εφόσον όλα τα µέλη της είναι τύπου int και δεν επιστρέφει δεκαδικά ψηφία. Αν θέλουµε να έχουµε το σωστό αποτέλεσµα (το 7.5), θα πρέπει η παράσταση να γραφεί µε τον ακόλουθο τρόπο: c=(a+b)/2.0; 48

22 Κεφάλαιο 2: Μια πρώτη µατιά στη C Σε αυτή την περίπτωση, επειδή η σταθερά 2.0 είναι τύπου float, η παράσταση (a+b)/2.0 επιστρέφει τιµή float. Στην παράσταση αυτή ο τύπος float είναι ο ιεραρχικά υψηλότερος από τους τύπους των υπόλοιπων µελών της παράστασης. Λογικές παραστάσεις Μια λογική παράσταση απαρτίζεται από µία ή περισσότερες λογικές φράσεις οι οποίες συνδέονται µεταξύ τους µε συνδετικούς τελεστές. Μια λογική φράση, είναι µια σύγκριση µε χρήση συγκριτικών τελεστών. Μια λογική φράση και, επο- µένως, µια λογική παράσταση, µπορεί να έχει την τιµή Αλήθεια ή την τιµή Ψέµα. Για παράδειγµα, η παράσταση a>5 είναι µια λογική φράση που έχει αποτέλεσµα Αλήθεια στην περίπτωση που η τιµή της µεταβλητής a είναι µεγαλύτερη από 5 και Ψέµα σε διαφορετική περίπτωση. Στη C, κάθε λογική παράσταση έχει ως αποτέλεσµα µία αριθµητική τιµή: 1 για Αλήθεια και 0 για Ψέµα. Στον επόµενο πίνακα αναφέρονται οι συγκριτικοί και λογικοί τελεστές της C. Συγκριτικοί τελεστές Λογικοί τελεστές == ίσο && λογικό AND!= όχι ίσο (διάφορο) λογικό OR > µεγαλύτερο! λογικό NOT >= µεγαλύτερο ή ίσο < µικρότερο <= µικρότερο ή ίσο Παρατηρούµε ότι ο τελεστής της ισότητας είναι δύο ίσον (==) και διαφέρει από τον αριθµητικό τελεστή ανάθεσης, το µονό ίσον (=). Προσοχή γιατί αυτή η λεπτή διαφορά είναι αιτία για αρκετούς πονοκεφάλους. Οι λογικοί τελεστές && (AND) και (OR) συνδέουν δυο λογικές εκφράσεις δηµιουργώντας έτσι µία σύνθετη λογική παράσταση: Λογική-έκφραση-Α && Λογική-έκφραση- Β Έχει ως αποτέλεσµα Αλήθεια όταν και οι δυο εκφράσεις είναι αληθείς. 49

23 Η γλώσσα C σε βάθος Λογική-έκφραση-Α Λογική-έκφραση-Β Έχει ως αποτέλεσµα Αλήθεια όταν έστω µία από τις δύο εκφράσεις είναι αληθής. Το αποτέλεσµα των λογικών τελεστών AND (&&) και OR ( ) φαίνεται στους πίνακες αλήθειας που ακολουθούν. Πίνακας αλήθειας του λογικού τελεστή && (AND) Λογική φράση Α Λογική φράση Β Α && Β Αλήθεια Αλήθεια Αλήθεια Αλήθεια Ψέµα Ψέµα Ψέµα Αλήθεια Ψέµα Ψέµα Ψέµα Ψέµα Πίνακας αλήθειας του λογικού τελεστή (OR) Λογική φράση Α Λογική φράση Β Α Β Αλήθεια Αλήθεια Αλήθεια Αλήθεια Ψέµα Αλήθεια Ψέµα Αλήθεια Αλήθεια Ψέµα Ψέµα Ψέµα Ο τελεστής! (NOT) δεν συνδέει λογικές φράσεις µεταξύ Λογική έκφραση Α! Α Πίνακας αλήθειας του τελεστή! (NOT) τους αλλά εφαρµόζεται σε µία Αλήθεια Ψέµα µόνο λογική φράση (προς τα Ψέµα Αλήθεια δεξιά του) και αντιστρέφει τη λογική της. Όπως αναφέρθηκε και προηγουµένως, µια λογική παράσταση στη C επιστρέφει µία αριθµητική τιµή: 1 για Αλήθεια και 0 για Ψέµα. Εποµένως παραστάσεις όπως: a=3>2; είναι απολύτως αποδεκτές. Στη συγκεκριµένη περίπτωση η µεταβλητή a θα πάρει την τιµή 1 διότι η λογική παράσταση 3>2, ως αληθής, επιστρέφει τιµή 1. Θα διαπιστώσουµε αργότερα ότι αριθµητικές παραστάσεις και λογικές εκφράσεις µπορούν να συνυπάρχουν µέσα στην ίδια παράσταση. Όταν έχουµε πολλές συνδεδεµένες λογικές εκφράσεις, για να ορίσουµε την προτεραιότητα µε την οποία θα υπολογιστούν χρησιµοποιούµε παρενθέσεις. Για παράδειγµα στην παράσταση που ακολουθεί: 50

24 Κεφάλαιο 2: Μια πρώτη µατιά στη C (a>b && a==c) a<c Πρώτα θα υπολογιστεί η λογική παράσταση µέσα στις παρενθέσεις. Στην περίπτωση που δεν υπάρχουν παρενθέσεις, η προτεραιότητα των τελεστών είναι καθορισµένη και αναφέρεται στο κεφάλαιο 4 (σελίδα 91). Παραδείγµατα κώδικα µε παραστάσεις Στα παραδείγµατα που ακολουθούν θα χρησιµοποιήσουµε δύο συναρτήσεις βιβλιοθήκης της C: την printf() και την rand(). εδοµένου ότι η C δεν έχει ενσωµατωµένες εντολές για είσοδο και έξοδο πληροφοριών, τις λειτουργίες αυτές αναλαµβάνουν οι συναρτήσεις βιβλιοθήκης. Η printf() χρησιµοποιείται για την εµφάνιση πληροφοριών στην οθόνη. Θα χρησιµοποιήσουµε την πιο απλή µορφή της συνάρτησης, η οποία απλώς εµφανίζει ένα σύνολο χαρακτήρων στην οθόνη: printf("αυτό εµφανίζεται στην οθόνη"); Όταν καλούµε την παραπάνω συνάρτηση, στην οθόνη εµφανίζεται το κείµενο µέσα στα εισαγωγικά. Ίσως φανεί παράξενο, αλλά η printf() πέρα από τη λειτουργία που εκτελεί (την εµφάνιση των χαρακτήρων στην οθόνη), επιστρέφει και µία τιµή. Η τιµή αυτή είναι ο αριθµός των χαρακτήρων που εµφάνισε, δηλαδή στη συγκεκριµένη περίπτωση ο αριθµός 27 (αλφαβητικοί χαρακτήρες µαζί µε τα κενά διαστήµατα). Η συνάρτηση rand() δεν δέχεται παραµέτρους και επιστρέφει ως τιµή έναν τυχαίο ακέραιο αριθµό, από το 0 µέχρι το Το επόµενο πρόγραµµα υπολογίζει το µέσο όρο των περιεχοµένων των µεταβλητών k και l. main() int k,l; float c; k = rand(); Στη µεταβλητή k καταχωρίζεται ένας τυχαίος ακέραιος αριθµός l = 18; c = (k + l)/2.0; Στη µεταβλητή c καταχωρίζεται o µέσος όρος των k και l 51

25 Η γλώσσα C σε βάθος Οι δύο πρώτες προτάσεις είναι δηλωτικές και ενηµερώνουν το µεταγλωττιστή για την ύπαρξη των τριών µεταβλητών k, l και c. Στις µεταβλητές k και l µπορούν να καταχωριστούν ακέραιοι αριθµοί, ενώ η c µπορεί να αποθηκεύσει ένα δεκαδικό αριθµό. Οι τρεις εκτελέσιµες προτάσεις που ακολουθούν, σε άλλες γλώσσες προγραµ- µατισµού, µπορεί να θεωρηθούν εντολές ανάθεσης για τις µεταβλητές k, l και c αντίστοιχα. Στη C, καµία από αυτές δεν θεωρείται εντολή (µε την ακριβή έννοια του όρου) αλλά είναι παραστάσεις που απλώς περιέχουν τον τελεστή ανάθεσης ίσον (=). Αναφέρθηκε προηγουµένως ότι µια πρόταση σε ένα πρόγραµµα της C µπορεί να είναι δηλωτική πρόταση, εντολή, ή παράσταση. Είναι εποµένως συντακτικά σωστό το πρόγραµµα που ακολουθεί; main() int a,b; 5+3; a = 6; 8; Και όµως, είναι!!! Η δεύτερη πρόταση αποτελείται από την παράσταση 5+3, η οποία απλώς υπολογίζεται χωρίς το αποτέλεσµά της να χρησιµοποιείται και ούτε να καταχωρίζεται πουθενά. Η πρόταση αυτή δεν επηρεάζει τη λειτουργία του προγράµµατος, είναι εντελώς άχρηστη, αλλά συντακτικά σωστή, όπως και η τελευταία (το "σκέτο" 8). ουλεύοντας µε τη C πρέπει να ξεχάσουµε πολλούς από τους περιορισµούς άλλων γλωσσών και να µπούµε στη δικιά της ελεύθερη και γοητευτική φιλοσοφία. Η C και οι αγκύλες της Μέχρι τώρα, περιοριστήκαµε στη χρήση των αγκυλών για την ένδειξη της αρχής (µε την αριστερή αγκύλη) και του τέλους (µε τη δεξιά αγκύλη) του συνόλου των προτάσεων µιας συνάρτησης: 52

26 Κεφάλαιο 2: Μια πρώτη µατιά στη C main() Αρχή προτάσεων Τέλος προτάσεων Οι αγκύλες όµως δεν έχουν µόνο αυτή τη χρήση. Αντίθετα, αποτελούν ένα βασικό κοµµάτι της φιλοσοφίας της C για τη δηµιουργία δοµηµένων και "ευανάγνωστων" προγραµµάτων. Σύνθετη πρόταση (compound statement) Σύνθετη πρόταση είναι µια οµάδα από απλές προτάσεις που περιέχονται µέσα σε αγκύλες: a=4; b=8; printf("αυτή είναι µία σύνθετη πρόταση"); Μια σύνθετη πρόταση µπορεί να περιέχει οποιονδήποτε αριθµό απλών προτάσεων, αλλά και άλλες σύνθετες προτάσεις. a=4; m=8; printf("αυτή είναι µία ακόµη σύνθετη πρόταση"); printf("αυτή είναι µία σύνθετη πρόταση"); Οι απλές προτάσεις τελειώνουν πάντα µε ελληνικό ερωτηµατικό (;) ενώ οι σύνθετες όχι. Ο µεταγλωττιστής της C µεταχειρίζεται µια σύνθετη πρόταση όπως οποιαδήποτε απλή πρόταση. Έτσι, µε τον όρο "πρόταση" εννοείται είτε απλή είτε σύνθετη πρόταση ακόµα και καµία πρόταση. 53

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

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

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

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

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

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

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

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

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

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

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

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

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

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

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

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

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

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

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

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

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

Από την πρώτη στην τέταρτη έκδοση... Από την πρώτη στην τέταρτη έκδοση... Όταν το Φεβρουάριο του 2004 έστειλα την πρότασή μου στον ΚΛΕΙΔΑΡΙΘ- ΜΟ για την έκδοση ενός βιβλίου για τη γλώσσα C, δεν θα μπορούσα ποτέ να φανταστώ ότι οχτώ χρόνια

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

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

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

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

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

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

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

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

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

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

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

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

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

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

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

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

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

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

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

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

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

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

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. (Διάλεξη 15)

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Τι μάθαμε μέχρι τώρα Κάθε πρόγραμμα της c++ περιέχει υποχρεωτικά μια συνάρτηση main() η οποία είναι εκείνη που εκτελείται πρώτη. Κάθε

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

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

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

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

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

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

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

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

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29 5. ΣΥΝΑΡΤΗΣΕΙΣ 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή Η συνάρτηση είναι void, δεν επιστρέφει κάποια τιµή. //Oρισµός συνάρτησης χωρίς παραµέτρους // 12.

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

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

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C Εισαγωγή στη Γλώσσα C Η C είναι µια δοµηµένη (structured ) γλώσσα ηλαδή ένα C πρόγραµµα αποτελείται από υποπρογράµµατα τα οποία ονοµάζονται συναρτήσεις ( functions ), όπου η κάθε συνάρτηση εκτελεί µια

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

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

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Εργαστήριο 2. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Εργαστήριο 2. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C Εργαστήριο 2 Τµήµα Πληροφορικής και Τηλεπικοινωνιών οµή προγράµµατος Οδηγίες προεπεξεργαστή #include... # define... τµήµα δηλώσεων ηλωσεις και ορισµοί µεταβλητών. ηλωσεις συναρτήσεων

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

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

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

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

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

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