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

Σχετικά έγγραφα
Το forum του μαθήματος (στον ιστότοπο του myceid)

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

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

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

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

Προγραμματισμός Η/Υ. Ενότητα 2α: Εισαγωγή στη C (Μέρος Πρώτο)

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

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

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

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

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Κεφάλαιο : Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Στόχοι και αντικείμενο ενότητας. Συντακτικό Γλώσσας. Αλφάβητο. #2.. Εισαγωγή στη C (Μέρος Πρώτο)

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

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

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

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

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

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

3 &4. Εισαγωγήστη C Ιωάννης Κατάκης

Λειτουργικά Συστήματα

Διδάσκων: Δημήτριος Βαρσάμης

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

17. Πολυδιάςτατοι πίνακεσ

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

Οντοκεντρικός Προγραμματισμός

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

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

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

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

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

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

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

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Ηλεκτρονικοί Υπολογιστές

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

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

16. Πίνακεσ και Συναρτήςεισ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

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

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

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

Προγραμματισμός σε C++

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Δομζσ Δεδομζνων Πίνακεσ

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

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

Αλγόριθμοι. Χρυσόστομος Στύλιος. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής. Δομές Δεδομένων & Αλγόριθμοι 1

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

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

Οντοκεντρικόσ Προγραμματιςμόσ

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 1 Εισαγωγή στη C

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. Διαφάνειεσ: Βαςικζσ Αρχζσ Προγραμματιςμοφ Α.Π.Θ. Δθμιτρθσ Βράκασ

Δεδομένα, Τύποι και Τιμές

Βασικά Στοιχεία της Java

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

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Βαγγζλθσ Οικονόμου Διάλεξθ 7. Συναρτιςεισ Μζροσ 2ο

Εισαγωγή στην πληροφορική

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

Ενδεικτική Οργάνωςη Ενοτήτων. Α Σάξη. Διδ. 1 ΕΝΟΣΗΣΑ 1. 6 Ομαδοποίθςθ, Μοτίβα,

Εισαγωγή στην πληροφορική

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

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

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

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

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

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

Γομέρ Γεδομένων (Data Structures) Χαπμανδάπηρ Δςάγγελορ, Τμήμα Δθαπμοζμένων Μαθημαηικών, Δαπινό Δξάμηνο 2010/11. Διζαγωγή: Σύνηομη Δπιζκόπηζη ηηρ C++

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

Εισαγωγή στο προγραμματισμό Η/Υ C++ (Orwell Dev-C++)

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

1. Εισαγωγή βασικά στοιχεία προγράμματος

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

Βασικά Στοιχεία της Java

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10

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

Οντοκεντρικόσ Ρρογραμματιςμόσ

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

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

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

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

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΗΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Στοιχειώδης προγραμματισμός σε C++

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Transcript:

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

Σειρά Μαθημάτων 1. Βαςικζσ Ζννοιεσ 2. Σφποι δεδομζνων, Σελεςτζσ, και Παραςτάςεισ 3. Ροι Ελζγχου και Εντολζσ Επανάλθψθσ 4. υναρτιςεισ και Δομι του Προγράμματοσ (κατθγορίεσ μεταβλθτϊν) 5. Δείκτεσ και Πίνακεσ 6. Δομζσ και ενϊςεισ 7. Αρχεία 8. Προχωρθμζνα Θζματα ςτθ C 2

Βασικές Έννοιες

Ιστορία της C 1969-1973: AT&T Bell Labs από τον Dennis Ritchie ωσ ςυνζχεια των BCPL, B (ανάπτυξθ νζασ ζκδοςθσ UNIX). 1978: The C Programming Language K&R: Kernighan & Ritchie. 1983: φςταςθ ANSI Standardization Commitee X3J11. 1989-1990: Aποδοχι ΑNSI/ISO Standard (ANSI C) C89 Διάφορα standards 1990: ISO/IEC 9899:1990 Information Technology Programming Language C. 1995: ISO/IEC 9899 AM1 αποτελεί τροποποίθςθ του C πρωτοτφπου. 1995: ISO/IEC 9899 TCOR1 Technical Corrigendum 1. 1996: ISO/IEC 9899 TCOR2 Technical Corrigendum 2. 1999: C99 2011: C11 4

Γιατί C; Είναι ςχετικά μικρι και εφκολθ ςτθν εκμάκθςθ υποςτθρίηοντασ top down/modular ςχεδιαςμό και δομθμζνο προγραμματιςμό Τπάρχει μεγάλθ εγκατεςτθμζνθ βάςθ εφαρμογϊν που αναπτφχκθκαν με τθ γλϊςςα αυτι. Μπορεί να διαχειριςτεί: δυαδικά ψθφία (bits), ψθφιολζξεισ (bytes), ςυμβολοςειρζσ (words), δείκτεσ (pointers). Μπορεί να χρθςιμοποιθκεί για χαμθλοφ επιπζδου προγραμματιςμό επιτρζποντασ άμεςθ πρόςβαςθ ςτουσ πόρουσ του υπολογιςτι. υνεπϊσ είναι κατάλλθλθ γλϊςςα για ανάπτυξθ προγραμμάτων ςυςτιματοσ (systems programs) όπωσ είναι: λειτουργικά ςυςτιματα (operating systems), διερμθνευτζσ (interpreters), ςυντάκτεσ (editors), ςυμβολομεταφραςτζσ (assemblers), μεταγλωττιςτζσ (compilers), διαχειριςτζσ βάςεων δεδομζνων (database managers). Σου «ανοίγει τα μάτια» ςχετικά με το πωσ δουλεφει πραγματικά ο υπολογιςτήσ!! 5

Το πρώτο μου πρόγραμμα σε C Χριςθ Standard I/O library (για τθν printf) Ειδικόσ χαρακτιρασ new line (\n) Βαςικι ςυνάρτθςθ Αρχι προγράμματοσ Σζλοσ προγράμματοσ #include <stdio.h> int main() { printf( Hello World!\n ); } υνάρτθςθ εκτφπωςθσ Παράμετροσ ςυνάρτθςθσ (string) Σζλοσ εντολισ (;) 6

Compiling & Running! Ο κάκε υπολογιςτισ «τρζχει» αποκλειςτικά και μόνο προγράμματα ςε γλώςςα μηχανήσ. Ζνα πρόγραμμα C πρζπει να μεταγλωττιςτεί (compiled) ςε εκτελζςιμο (που είναι ςε γλϊςςα μθχανισ) Αυτό το επιτυγχάνουμε με τον compiler π.χ., gcc GNU C Compiler $ gcc helloworld.c o helloworld $ Και ςτθ ςυνζχεια μποροφμε να «τρζξουμε» το εκτελζςιμο. $./helloworld Hello World! 7

Σχόλια: Μια καλή συνήθεια! Σα ςχόλια κάνουν τον κϊδικά μασ πιο ευανάγνωςτο, κατανοητό ςε τρίτουσ, και εφκολο ςτθ ςυντήρηςη. #include <stdio.h> int main() { // This is a comment. // And this is another comment!! /* Comments are NOT compiled! */ } /* This is a multi-line comment. We can easily comment-out lines of code int x = 2+5; */ printf( Comment!.\n ); // this is a short comment // Let s print the desired output printf( This program demonstrates the use of comments.\n ); 8

Ένα δεύτερο πρόγραμμα σε C #include <stdio.h> Μεταβλθτζσ (variables) Σφποσ δεδομζνων (data type) Αρικμθτικι πράξθ int main() { } int x, y, area; x = 5; y = 4; area = x*y; printf( Το τετράγωνο με πλεσρές %i και %i\n, x, y); printf( έτει εμβαδόν %i.\n, area); return 0; Format specifier 9

Διαδικασία Μεταγλώττισης test.c Πθγαίοσ Κϊδικασ (source code) Compiler Object Κϊδικασ stdio.h Header Files test.o test Linker printf Library Εκτελζςιμοσ Κϊδικασ 10

Στοιχεία Γλώσσας Προγρ/μού Αλφάβητο Οι χαρακτιρεσ από τουσ οποίουσ ςχθματίηονται οι λζξεισ τθσ γλϊςςασ Λεξιλόγιο Οι λζξεισ που χρθςιμοποιεί θ γλϊςςα Συντακτικό Οι κανόνεσ ςφνταξθσ των προτάςεων τθσ γλϊςςασ Σημαςιολογία Οι κανόνεσ ερμθνείασ των προτάςεων τθσ γλϊςςασ 11

Αλφάβητο Αποτελείται από 96 χαρακτιρεσ Space (κενο) Tab (χαρακτιρασ ελζγχου οριηοντίου ςτθλοκζτθ) V-Tab (χαρακτιρασ ελζγχου κακζτου ςτθλοκζτθ) Form feed (χαρακτιρασ αλλαγισ ςελίδασ) New line (χαρακτιρασ νζασ γραμμισ) a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _ { } [ ] # ( ) < > % : ;.? * + - / ^ & ~ =!, \ 12

Λεξιλόγιο Κατηγορίες Λέξεων Reserved words (δεςμευμζνεσ λζξεισ) Keywords (int, for, if, ) Library functions (printf, scanf, isdigit, ) Preprocessor commands (#include, #define, ) Identifiers (αναγνωριςτζσ) Ονόματα μεταβλθτϊν, ςτακερϊν, ςυναρτιςεων, τφπων δεδομζνων, τα οποία δίνονται από τον προγραμματιςτι Operators (τελεςτζσ) Ειδικά ςφμβολα που παριςτάνουν μία ςυγκεκριμζνθ ςτοιχειϊδθ διεργαςία που εκτελείται ςε δεδομζνα (π.χ., +, -, *, /, &, &&,,,...) 13

C s Reserved Words Keywords auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Fig. 2.15 C s reserved keywords. 14

Identifiers (αναγνωριστές) Κανόνεσ ονομαςίασ αναγνωριςτϊν Αποτελοφνται από γράμματα, αρικμοφσ, και underscore _. Αρχίηουν πάντα από γράμμα ι _ Δεν μπορεί να είναι ίδια με κάποια δεςμευμζνθ λζξθ (C) Διάκριςθ μικρϊν και κεφαλαίων (case sensitive) Όριο μικουσ (π.χ., 31 για ANSI C) Ερώτηςη: Ποια από τα παρακάτω identifiers επιτρζπονται; 2class class1 Class-1 Class_1 Class#1 CLaSs1 15

Identifiers (αναγνωριστές) Αποφφγετε ονόματα ενόσ χαρακτιρα όπωσ i, j, x, y Χρθςιμοποιιςτε εκφραςτικά ονόματα Χρθςιμοποιιςτε μικρά γράμματα, για ονόματα μεταβλθτϊν Κατά κανόνα χρθςιμοποιοφμε κεφαλαία γράμματα για μακροεντολζσ Διατθριςτε ενιαίο κανόνα όςον αφορά το διαχωριςτικό για μεταβλθτζσ που αποτελοφνται από 2 ι περιςςότερεσ λζξεισ Π.χ., total_salary_increase, first_name, last_name, Ή: totalsalaryincrease, firstname, lastname, 16

Αναγνωσιμότητα Identifiers Αυτό εννοοφμε όταν λζμε χρηςιμοποιήςτε εκφραςτικά ονόματα! x = 20; if (x > y) function1(); else function2(); weight = 20; if (weight > maxweight) decreaseweight(); else increaseweight(); 17

Δεδομένα (Data) Είναι θ είςοδοσ, θ ακατζργαςτθ γνωςτι πλθροφορία, με τθν επεξεργαςία τθσ οποίασ κα παραχκοφν τα αποτελζςματα (θ λφςθ του προβλιματοσ) Δεδομζνα = τιμζσ ι πλειάδεσ τιμϊν που ςχετίηονται με τισ οντότθτεσ του προβλιματοσ. 18

Δεδομένα (Data) Είςοδοσ Επεξεργαςία Ζξοδοσ Ενδιάμεςα Αποτελζςματα Πρόγραμμα Μνιμθ 19

Μεταβλητές (Variables) [1/2] Οι μεταβλητζσ (variables) είναι υπολογιςτικζσ οντότθτεσ μζςω των οποίων χρθςιμοποιοφνται τα δεδομζνα. Σο περιεχόμενο (τιμι) μίασ μεταβλθτισ μπορεί να μεταβάλλεται κατά τθ διάρκεια εκτζλεςθσ ενόσ προγράμματοσ Η χριςθ των μεταβλθτϊν πθγάηει από τθν ανάγκθ για αποκικευςθ δεδομζνων ανάκτθςθ αποκθκευμζνων δεδομζνων 20

Μεταβλητές (Variables) [2/2] Οι μεταβλθτζσ αποτελοφν αναφορά ςε μία κζςθ μνιμθσ ςτο περιεχόμενο μίασ κζςθσ μνιμθσ Χαρακτθριςτικά μεταβλθτισ το όνομά τθσ θ τιμι τθσ Οι μεταβλθτζσ παριςτάνουν οντότθτεσ του προβλιματοσ που επιλφει το πρόγραμμα Π.χ. Πρόβλθμα υπολογιςμοφ τθσ επιφάνειασ ενόσ ορκογωνίου. Οντότθτεσ: μικοσ, πλάτοσ, εμβαδόν Μεταβλθτζσ: length, width, area Ή κατά το Ελλθνικότερον(!): mikos, platos, embadon...αλλά αποφφγετε τα Greeklish!!! 21

Σταθερές (Constants) Τιμές (Literals) Οι ςταθερζσ (constants) είναι υπολογιςτικζσ οντότθτεσ που ζχουν ςτακερι τιμι κατά τθν διάρκεια εκτζλεςθσ ενόσ προγράμματοσ π.χ., PI για το 3.14159265 Οι τιμζσ (lirerals) είναι δεδομζνα που δεν χρειάηονται αποκικευςθ, χρθςιμοποιοφνται όπωσ είναι π.χ., οι αρικμοί 2, 3.5 22

Δήλωση Σταθερών #define <όνομα> <τιμι> #define TRUE 1 #define FALSE 0 #define JANUARY 1 #define PI 3.14159265 23

Σταθερές Απαρίθμησης enum boolean {NO, YES}; enum boolean {TRUE, FALSE}; enum months {JAN=1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; 24

Τύποι Δεδομένων Σα δεδομζνα δεν ζχουν όλα τισ ίδιεσ ιδιότθτεσ, δεν είναι όλα του ίδιου τφπου Σφποσ δεδομζνων = πεδίο τιμϊν + τρόποι διαχείριςθσ = πεδίο τιμϊν + πράξεισ Σφποι δεδομζνων Primitive (πρωτογενείσ): int, float, double, char, pointers, Composite (ςφνκετοι): arrays, unions, structs, 25

Τύποι Δεδομένων Πρωτογενείσ Ακζραιοσ (short, int, long) Πραγματικόσ (float, double, long double) Χαρακτιρασ (char) Λογικόσ (θ C δεν διακζτει) ε τι ωφελεί ο διαχωριςμόσ ςε διαφορετικοφσ τφπουσ; τον τρόπο αποκικευςθσ οικονομία χϊρου λόγω διαφορετικισ αποκικευςθσ απαιτοφμενθ ακρίβεια ςτθν αναπαράςταςθ τθ χριςθ καλφτεροσ ζλεγχοσ κατά τθ μετάφραςθ και εκτζλεςθ του προγράμματοσ 26

Δήλωση Μεταβλητής <data type> <variables> float length, width, area; ι <data type> <variable>=<value> int i=1; Μεταβλθτζσ που δεν αλλάηουν τιμι (ςτακερζσ) const float pi=3.14; 27

Βασικές Πράξεις Σελεςτισ ανάκεςθσ x=3; Αρικμθτικοί τελεςτζσ (+, -, /, *, %) x=5+3; y=5*6; Διαφορά ςτθν ερμθνεία του τελεςτι διαίρεςθσ μεταξφ ακεραίων και πραγματικϊν. 28

Τύπος «ακέραιος» Αναπαράςταςθ ακεραίων, κετικϊν, ι αρνθτικϊν αρικμϊν Keyword: int Εφροσ: εξαρτάται από το μικοσ λζξθσ του Η/Τ π.χ., για λζξθ 16-bit: -32768 ζωσ 32767 ι 0 ζωσ 65535 Προςδιοριςτζσ short: μικοσ ==16 bit long: μικοσ ==32 bit Unsigned Ακζραιεσ τιμζσ τισ χειρίηεται ςαν ακζραιουσ αρικμοφσ ανάλογα με το μζγεκοσ, π.χ., τθν 125 τθν χειρίηεται ςαν int, ενϊ τθν 135840 ςαν long int μποροφμε όμωσ να επιβάλουμε τον τφπο χειριςμοφ, π.χ., 6524L 29

Τύπος «πραγματικός» Αναπαράςταςθ πραγματικϊν αρικμϊν τακερισ υποδιαςτολισ: 120.52, 0.035 Εκκετικισ ι επιςτθμονικισ μορφισ: 1.2052e+02, 3.5e-2 Keywords float: απλισ ακρίβειασ (6-7 δεκαδικά ψθφία) double: διπλισ ακρίβειασ (14-15 δεκαδ. ψθφία) Προςδιοριςτζσ: long για το double Πραγματικζσ τιμζσ: κεωροφνται ςαν double π.χ., 0.13, 56.48, 8e-3, 15e05, 0.004e-0.4 30

Τύπος «χαρακτήρας» Αναπαράςταςθ απλϊν χαρακτιρων του αλφαβιτου τθσ γλϊςςασ Keyword: char H C χειρίηεται τουσ χαρακτιρεσ ςαν ακζραιουσ. Κάκε χαρακτιρασ κεωρείται ςαν ακζραιοσ με τιμι τον αντίςτοιχο κωδικό ASCII. Οι τιμζσ ςε μία τζτοια μεταβλθτι αποδίδονται όταν ο χαρακτιρασ εμπεριζχεται ςε. Για παράδειγμα: a είναι ο χαρακτιρασ a b είναι ο χαρακτιρασ b c είναι ο χαρακτιρασ c 31

32

Βιβλιογραφία Brian Kernighan, Dennis Ritchie, H Γλϊςςα Προγραμματιςμοφ ANSI C, Κλειδάρικμοσ 1990. Herbert Schildt, Ο οδθγόσ τθσ C, εκδόςεισ Γκιοφρδασ Κλεάνκθσ Θραμπουλίδθσ, Διαδικαςτικόσ Προγραμματιςμόσ: Από τθ C ςτθ JAVA, Εκδόςεισ Σηιόλα, 2002 C How to Program, 5/E (Harvey & Paul) Deitel & Associates, Prentice Hall, 2007 N. Χατηθγιαννάκθσ, Η γλϊςςα C ςε βάκοσ, Κλειδάρικμοσ Γ. Σςελίκθσ, Ν. Σςελίκασ, C από τθ κεωρία ςτθν πράξθ http://software.hpclab.ceid.upatras.gr (εμπεριζχεται αναλυτικι βιβλιογραφία) 33