ΕΙΣΑΓΩΓΗ ΣΤΗΝ C. Dennis Ritchie (1970) UNIX 1989 Ansi C

Σχετικά έγγραφα
ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

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

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

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

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

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

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

Διαδικασία Ανάπτυξης Λογισμικού

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

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

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

Παραδείγματα. Γράψτε ένα πρόγραμμα που να τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

int abs( int x ), επιστρέφει την απόλυτη τιμή του ακεραίου x Πχ abs( 11) ισούται με 11, abs(34) ισούται με 34 double fb( fabs( double x ), επιστρέφει

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

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

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ 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. Πράξεις μεταξύ ακεραίων αριθμών

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

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

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

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

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

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

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

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

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

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

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Μεταβλητές τύπου χαρακτήρα

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

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

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

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

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

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

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

ΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

ΕΠΛ232: Εργαστήριο 2

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

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

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

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

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

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

Εργαστήριο 5. Εντολή if και παραλλαγές: if-else, πολλαπλές if, πολλαπλές if-else. Απλές και σύνθετες εντολές. Εντολή switch.

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

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

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

8. Συνθήκες ελέγχου, λογικοί τελεστές

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

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

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

Προγραμματισμός Ι. Θεματική ενότητα 8: Δημιουργία προγραμμάτων

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

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

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

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

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΗΝ C Dennis Ritchie (1970) UNIX 1989 Ansi C

ΔΟΜΗ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ C 1. Σχόλια 2. Οδηγίες προεπεξεργαστή 3. Ορισμοί τύπων 4. Δηλώσεις συναρτήσεων (πρωτότυπα) Τμήμα Δηλώσεων 5. Ορισμός της main 6. Ορισμοί συναρτήσεων

ΣΧΟΛΙΑ Παράδειγμα // Σχόλιο γραμμής /* Το παρόν πρόγραμμα υπολογίζει τη μέση τιμή τριών αριθμών */

ΟΔΗΓΙΕΣ ΠΡΟΕΠΕΞΕΡΓΑΣΤΗ Η οδηγία #include <stdio.h> ενσωματώνει το περιεχόμενο του αρχείου stdio.h, το οποίο αποτελείται από δηλώσεις των βασικών συναρτήσεων εισόδου-εξόδου της C, στο αρχείο του πηγαίου κώδικα.

ΟΔΗΓΙΕΣ ΠΡΟΕΠΕΞΕΡΓΑΣΤΗ Η οδηγία #include arxeio.h προκαλεί την ενσωμάτωση του περιεχομένου του αρχείου arxeio.h, που δημιούργησε ο προγραμματιστής και είναι αποθηκευμένο στον τρέχοντα κατάλογο (directory), στο πρόγραμμά μας.

ΔΟΜΗ ΚΑΤΑΛΟΓΩΝ (DIRECTORIES) \ grammata paixnidi ergasies aygoustos programata C:\ergasies\programata

ΤΜΗΜΑ ΔΗΛΩΣΕΩΝ Το τμήμα δηλώσεων περιέχει όλες τις δηλώσεις και ορισμούς για συμβολικά ονόματα που χρησιμοποιούνται στο πρόγραμμα.

τύπος int main ( void ) { Τμήμα Δηλώσεων εντολή_1 εντολή_2 εντολή_ν return 0; } ΟΡΙΣΜΟΣ ΤΗΣ main

Η ΣΥΝΑΡΤΗΣΗ main Κάθε πρόγραμμα σε C πρέπει να έχει μια συνάρτηση main. Το πρόγραμμα αρχίζει να εκτελείται με την συνάντηση της πρώτης εντολής της main και τερματίζεται με την συνάντηση της τελευταίας εντολής : return 0; ΟΡΙΣΜΟΙ ΣΥΝΑΡΤΗΣΕΩΝ Στο τμήμα ορισμοί συναρτήσεων γράφονται όλες οι συναρτήσεις που χρησιμοποιούνται από την main.

ΠΑΡΑΔΕΙΓΜΑ ΕΝΟΣ ΑΠΛΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ C Πρόβλημα Γράψτε ένα πρόγραμμα σε C που να υπολογίζει και τυπώνει το άθροισμα και τη μέση τιμή τριών αριθμών.

Πρόγραμμα /* Υπολογίζει τη μέση τιμή τριών αριθμών*/ #include <stdio.h> int main (void) { /* Τμήμα δηλώσεων*/ double x1, x2, x3, athroisma, mesi_timi; printf( \nδώστε τις τιμές των τριών αριθμών : ); scanf( %lf %lf %lf, &x1, &x2, &x3); printf( \nοι αριθμοί που δώσατε είναι οι: );

printf( %5.3f %5.3f %5.3f, x1, x2, x3); /* Υπολογισμός του αθροίσματος*/ athroisma = x1 + x2 + x3; /*Υπολογισμός της μέσης τιμής*/ mesi_timi = athroisma / 3.0; /*Eκτύπωση της μέσης τιμής*/ printf( \nη μέση τιμή είναι: %5.3f, mesi_timi); } return 0;

ΤΟ ΑΛΦΑΒΗΤΟ ΤΗΣ C Πεζά : a b c d... z Κεφαλαία : A B C D... Z Ψηφία : 0 1 2 3 4 5 6 7 8 9 Ειδικοί χαρακτήρες : =, ==,!=, &, &&, +, ++,/, -, -- *, +=, _=, *=, /=, %,, Δεσμευμένες λέξεις: auto, break, case, char, default, do, double, else, enum, extern, float, int, if, for, while, return, short, sizeof, struct, switch, void, typedef, union, static

ΟΝΟΜΑΤΑ Ενα όνομα στην C αποτελείται από μια ακολουθία γραμμάτων, ψηφίων και του ειδικού χαρακτήρα _. Ο πρώτος χαρακτήρας πρέπει να είναι γράμμα ή _. Παράδειγμα athroisma_1 xaraktiras x1 y1 Παράδειγμα ΣΥΜΒΟΛΟΣΕΙΡΕΣ Δώστε τα δεδομένα x + y

Ακέραιοι(integer) -9 +340 0 7550 Μη έγκυροι ακέραιοι 1,76 76.0 [MININT, MAXINT] MININT =-32.768 MAXINT=32.767 Πραγματικοί(floating point) (Ακέραιο τμήμα) (τελεία) (κλασματικό τμήμα) 123.6.456 13. 0.0 0. Επιστημονική μορφή 0.123 x 10 2 0.123Ε2 ή 0.123e2

ΧΑΡΑΚΤΗΡΕΣ ASCII EBCDIC 128 χαρακτήρες 256 χαρακτήρες Κάθε χαρακτήρας αποθηκεύεται σε ένα byte και έχει σαν τιμή τον ακέραιο αριθμό που του αντιστοιχεί. a 97 A 65 0 48 b 98 B 66 1 49 c 99 C 67 2 50

Χαρακτήρες διαφυγής (escape characters) Ονομα C τιμή μηδενικός(null) \0 0 νέα γραμμή(new line) \n 10 επιστροφή (Carriage Return) \r 13 διπλή απόστροφος \ 34 απλή απόστροφος \ 39 πλάγια γραμμή \\ 92

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

Ενας τύπος δεδομένων είναι ένα σύνολο τιμών και ένα σύνολο πράξεων σε αυτές τις τιμές. Οι τύποι δεδομένων χωρίζονται σε δύο κατηγορίες: 1.Ενσωματωμένοι(built-in) τύποι δεδομένων 2.Τύποι δεδομένων που ορίζονται από τον προγραμματιστή (π.χ δομές, απαριθμητοί τύποι) Οι ενσωματωμένοι τύποι χωρίζονται σε : 1. Βασικούς(fundamental) τύπους δεδομένων 2. Παραγόμενους(derived) τύπους δεδομένων

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΔΗΛΩΣΕΙΣ Integer Signed Short integer (short, short int, signed short, signed short int) 16 bits Integer (int, signed, signed int) λέξη μηχανής Long integer (long, long int, signed long, signed long int ) δύο λέξεις

Unsigned Short integer (unsigned short,unsigned short int) Integer (unsigned, unsigned int) Long integer (unsigned long, unsigned long int ) Floating point floating point (float) 32 double floating point (double) 64 long double floating point (long double)(96,128) Character(char) 8 bits

short int ή int [-2 15, 2 15-1]=[-32768, 32767] int (32 bits ) [-2 31, 2 31-1]=[-2.147.483.648, ] -L* * * * * ****-s 0 s**** * * * * * * * *L Οι ακέραιοι παριστάνονται ακριβώς στη μνήμη. Οι πραγματικοί προσεγγίζονται με τους αριθμούς μηχανής(στρογγύλευση)

ΔΗΛΩΣΗ ΣΤΑΘΕΡΩΝ 1) #define όνομα τιμή #define PI 3.1415927 #define MHDEN 1e-20 #define N 200 2) const τύπος όνομα-σταθεράς = τιμή; const double PI = 3.1415927; const float MHDEN = 1e-20; const int N=200;

τύπος δεδομένων ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ λίστα μεταβλητών; τύπος δεδομένων : int, float, double, char λίστα μεταβλητών : ονόματα μεταβλητών χωρισμένα με κόμματα. Παράδειγμα int i, j; char xar_1, xar_2; float max, x, y;

Αριθμητικές Παραστάσεις με ακέραιους αριθμούς Τελεστές Προσεταιριστικότητα Ιεραρχία - ++ -- από δεξιά προς αριστερά 1 * / % από αριστερά προς δεξιά 2 + - από αριστερά προς δεξιά 3 Πρώτα υπολογίζονται οι παραστάσεις εντός των παρενθέσεων Οι πράξεις εκτελούνται από τα αριστερά προς τα δεξιά

Παράδειγμα Η αριθμητική παράσταση y * y / 2 * z 1 / x υπολογίζεται ως εξής (υπογραμμίζονται οι ήδη εκτελεσμένες πράξεις): a. y * y b. y * y / 2 c. y * y / 2 * z d. 1 / x e. y * y / 2 * z 1 / x

Αλγεβρική Παράσταση Παράσταση στην C k k/l l z + (x mod y) z + x % y a + b (a + b)/(c + d) c + d a 2 4bc a*a 4 * b * c

Πράξη Τιμή 2 % 7 2 2 / 7 0 12 % 3 0 12 / 3 4 12 / 9 1 12 % 9 3 n % 2 1, αν n περιττός 0, αν n άρτιος

Παράδειγμα Η αριθμητική παράσταση z (a + b / 2) + w * y υπολογίζεται ως εξής: a. b / 2 b. a + b / 2 c. w * y d. z (a + b / 2) e. z (a + b / 2) + w * y

Για τους πραγματικούς ισχύουν τα ίδια όπως για τους ακέραιους αριθμούς εκτός από τον τελεστή /, ο οποίος επιστρέφει το πηλίκο της διαίρεσης. ΗΕΝΤΟΛΗ ΚΑΤΑΧΩΡΗΣΗΣ Εντολή καταχώρησης (απλή μορφή) Παράδειγμα μεταβλητή = παράσταση ; double x, y, mean, diff ; x = 1.0 ; y = 2.0 ;

mean = (x + y) / 2.0; diff = x y ; Εντολή καταχώρησης (σύνθετη μορφή) H μεταβλητή τελεστής= παράσταση ; είναι ισοδύναμη με μεταβλητή = μεταβλητή τελεστής παράσταση ;

Αν int x =8, y=15; τότε εντολή ισοδύναμη εντολή τιμή y += x ; y = y + x; 23 y -= x ; y = y - x; 7 y /= x; y = y / x; 1 y %= x ; y = y % x; 7 Προσοχή! H y *= x+5 ; ισοδύναμη με y = y * (x+5);

Οι τελεστές αύξησης και μείωσης Οι εντολές είναι ισοδύναμες με την ++i; και i++ ; i = i + 1; Αν η ++i χρησιμοποιηθεί εντός μιας παράστασης, η τιμή της ++i αυξάνεται πριν τον υπολογισμό της παράστασης. Ενώ η τιμή της i στην i++ αυξάνεται μετά τον υπολογισμό της παράστασης.

Παράδειγμα Αν protos =3; metritis = protos++; τότε η τιμή της metritis είναι 3 και της protos είναι 4. Αν protos = 3; metritis = ++protos; τότε η τιμή της metritis είναι 4 και της protos είναι 4.

Ο τύπος των αριθμητικών παραστάσεων Κάθε αριθμητική εντολή καταχώρησης έχει μία τιμή. Κανόνες 1. Αν ένας ή περισσότεροι όροι της παράστασης είναι double, τότε ο τύπος της τιμής της παράστασης είναι double. 2. Αν όλοι οι όροι είναι τύπου int, τότε ο τύπος της παράστασης είναι int. 3. Ο τύπος της τιμής της εντολής και ο τύπος της τιμής που αποθηκεύεται στη μεταβλητή είναι οι ίδιοι.

Παράδειγμα double x=3.2; int y = 5; Αν x = x + y ; τότε η τιμή της x είναι 8.2 (double) Αν y = x + y ; τότε η τιμή της y είναι 8 (int)

Κυρίαρχος(casting) τελεστής (τύπος) παράσταση Μετατρέπει τον τύπο της παράστασης στον τύπο που προσδιορίζει ο κυρίαρχος τελεστής. double protos = 3.8 ; int deyteros = 9 ; (int) (protos + deyteros); 12 protos=(int)protos + deyteros; 12.0 protos=(int)protos % deyteros; 3.0 protos=deyteros % (int)protos; 0.0

Αριθμητικές μετατροπές Αποφυγή της απώλειας δεδομένων. int, unsigned short, short<unsigned<long<unsigned long<float<double<long double double d; float f; int i; long double ld; short s; 5 * d - i double 5 * f - d double ld + d long double s + i int ή unsigned

Μετατροπές καταχώρησης Αν υπάρχει ασυμβατότητα τύπων, τότε γινεται αυτόματη μετατροπή της τιμής στον τύπο της μεταβλητής που τη δέχεται. Παράδειγμα double d; int i; float f; d = f; (δεν υπάρχει πρόβλημα) f= d; (δεν υπάρχει πρόβλημα, εφόσον η d χωράει) i=d; (αυτόματη μετατροπή!, αποκόπτεται το δεκαδικό τμήμα της d).

ΒΙΒΛΙΟΘΗΚΗ ΜΑΘΗΜΑΤΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ Οι συναρτήσεις που επιστρέφουν double βρίσκονται στο math.h, και οι υπόλοιπες(int) στο stdlib.h. Ονομα Τύπος x,y Υπολογισμός Τύπος αποτ/τος ceil(x) double x int floor double x int abs(x) int fabs x int double x double sqrt(x) double x (x 0) double pow(x,y) double x y double

Ονομα ΒΙΒΛΙΟΘΗΚΗ ΜΑΘΗΜΑΤΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ Τύπος x,y Υπολογισμός Τύπος αποτ/τος cos(x) double(radians) cos(x) double sin(x) double(radians) sin(x) double tan(x) double >> tan(x) double exp(x) double e x log(x) double lnx log10(x) double logx double double double

Κλήση Συνάρτησης Επιστρεφόμενη Τιμή log10(2) 0.30103 ceil(5.3) 6 floor(6.9) 6 abs(-8) 8 fabs(-7.3) 7.3 sqrt(4) 2.0 pow(3,2) 9.0 sin(30 * 3.141593/180) 0.5 exp(2.1) 8.16617 log(2) 0.693147

Παράδειγμα Να γραφτούν οι εντολές για τον υπολογισμό των δύο πραγματικών ριζών της δευτεροβάθμιας εξίσωσης : ax 2 + bx + c = 0 diakrinousa = b * b 4 * a * c; riza_1 = (-b + sqrt(diakrinousa)) / (2*a); riza_2 = (-b - sqrt(diakrinousa)) / (2*a); σειρά εκτέλεσης 2 3 1

ΛΟΓΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ Τελεστές συσχέτισης (relational operators) Αλγεβρικός τελεστής C Προσετ/τα Ιεραρχία < < αριστερή 1 <= αριστερή 1 > > αριστερή 1 >= αριστερή 1 = == αριστερή 2!= αριστερή 2

Ητιμή μιας λογικής παράστασης είναι : 1(αληθής) ή 0(ψευδής) Παράδειγμα a b a>b τιμή 2 1 αληθής 1 2 3 ψευδης 0 Λογικοί τελεστές στην C && (and) (or)! (not) Παράσταση_1 Λογ. Τελεστής Παρασταση_2!Παράσταση

Λογικοί τελεστές στην C O && επιστρέφει 1 αν και μόνον αν και οι δύο παραστάσεις έχουν μη μηδενική τιμή, διαφορετικά επιστρέφει 0(ψευδής) Ο επιστρέφει 0 αν και μόνον αν και οι δύο παραστάσεις έχουν τιμή 0(ψευδής), διαφορετικά επιστρέφει 1(αληθής) Ο! επιστρέφει 0(ψευδής) αν η παράσταση έχει μη μηδενική τιμή, διαφορετικά επιστρέφει 1(αληθής) Κανόνας Εκτελούνται πρώτα οι αριθμητικές πράξεις και μετά οι λογικές.

ΙΕΡΑΡΧΙΑ ΤΕΛΕΣΤΩΝ Τελεστές Σύμβολα Ιεραρχία ( ) 1! 2 * / % 3 + - 4 ==,!=, <, <=, >, >= 5 && 6 7

Παράδειγμα Οι παραστάσεις a) 0.0 <x < 3.5 b) x <= y <= z c) c < b < a σε C γράφονται a) 0.0 < x && x < 3.5 b) x <=y && y <= z c) c < b && b < a Αν logiki =1; τότε η τιμή της!logiki είναι 0

Κατηγόρημα Απλή μορφή!(a = = b) a!= b!(a! = b) a = = b!(a < b) a >= b!(a <= b) a > b!(a > b) a <= b!(a >= b) a < b!(λογ.παρ.1 && Λογ.παρ.2) (!Λογ.παρ.1) (!Λογ.παρ.2)!(Λογ.παρ.1 Λογ.παρ.2) (!Λογ.παρ.1) && (!Λογ.παρ.2)

ΜΕΤΑΒΛΗΤΕΣ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΧΑΡΑΚΤΗΡΩΝ char xar1, xar2; xar1 = 0 ; xar2 = 6 ; xar1 xar2 xar1 < xar2 0 6 1 0 b 1(ASCII) 0(EBCDIC) Η 4-0 ισούται με 4. Η Α + pezo - a επιστρέφει το αντίστοιχο κεφαλαίο γράμμα του pezo

ΣΥΝΑΡΤΗΣΕΙΣ ΧΑΡΑΚΤΗΡΩΝ Η getchar(); επιστρέφει τον αριθμό διάταξης του χαρακτήρα που διαβάζεται από το πληκτρολόγιο. char xar; xar = getchar(); /*διαβάζει ένα χαρακτήρα */ Η putchar(); δέχεται ένα ακέραιο τον μετατρέπει σε χαρακτήρα και τον τυπώνει.

ΣΥΝΑΡΤΗΣΕΙΣ ΒΙΒΛΙΟΘΗΚΗΣ ΧΑΡΑΚΤΗΡΩΝ Οι συναρτήσεις αυτές βρίσκονται στο ctype.h Συνάρτηση isdigit(c) isalpha(c) islower(c) isupper(c) isspace(c) Περιγραφή Επιστρέφει μη μηδενική τιμή αν η c είναι ένα ψηφίο, διαφορετικά επιστρέφει 0. Επιστρέφει μη μηδενική τιμή αν η c είναι ένα γράμμα, διαφορετικά επιστρέφει 0. Επιστρέφει μη μηδενική τιμή αν η c είναι ένα πεζό γράμμα, διαφορετικά επιστρέφει 0. Επιστρέφει μη μηδενική τιμή αν η c είναι κεφαλαίο γράμμα, διαφορετικά επιστρέφει 0. Επιστρέφει μη μηδενική τιμή αν η c είναι λευκός χαρακτήρας (whitespace), διαφορετικά επιστρέφει 0.

Συνάρτηση ispunct(c) tolower(c) toupper(c) Περιγραφή Επιστρέφει μη μηδενική τιμή αν η c είναι ένας χαρακτήρας στίξης, διαφορετικά επιστρέφει 0. Αν η c είναι κεφάλαιο γράμμα, επιστρέφει το αντίστοιχο πεζό, διαφορετικά επιστρέφει την c αμετάβλητη. Αν η c είναι πεζό γράμμα, επιστρέφει το αντίστοιχο κεφάλαιο, διαφορετικά επιστρέφει την c αμετάβλητη.

ΒΑΣΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ Ησυνάρτηση εισόδου scanf scanf( συμβολοσειρά ελέγχου μορφής, λίστα εισόδου); Τύπος Προσ/στής μορφής short %hd int %d long %ld unsigned short %u unsigned %u unsigned long %lu

float %f %e double %lf %le long double %Lf %Le char %c Παράδειγμα int akeraios; scanf( %d, &akeraios); Ρεύματα εισόδου: 20<Enter> _ 20 <Enter> 20 <Enter>

5e3 5000.0 double syndelestis; scanf( %3lf, &syndelestis); Εισαγόμενη τιμή Καταχωρούμενη τιμή 1345.6 134.0 3264.7e+1 326.0 2.5e-3 2.5 785694 785.0-567.8-56.0 5e+3 5.0

1)Αν char xaraktiras; τότε scanf( %c, &xaraktiras); 2)Αν int mikos; double platos; char xroma; και scanf( %d%c%lf, &mikos, &xroma, &platos); 2.1) Εισοδος από πληκ/γιο 50r1.3e3<Enter> τότε mikos=50, xroma=r, platos=1.3e3. 2.2) Εισοδος από πληκ/γιο 50 r 1.3e3<Enter> τότε mikos=50, xroma=, platos=0.000000

Παράδειγμα ΕΝΤΟΛΕΣ ΕΞΟΔΟΥ int arithmos = 15; char apantisi = n ; double riza = 4.32; Εντολή Τυπώνει printf( Δώστε τιμή για το x ); Δώστε τιμή για το x printf( %d, arithmos); 15 printf( %d, 25); 25 printf( %d, arithmos+10); 25 printf( %c, b ); b printf( %c, apantisi); n printf( %f, riza); 4.320000 printf( %lf, riza); 4.320000 printf( %f, 2.25); 2.250000 printf( %e, riza); 4.320000e+00

Παράδειγμα Αν arithmos=15, τότε η Θα δημιουργήσει την εκτύπωση printf( %5d, arithmos); 1 2 3 4 5 1 5 Η θα έχει ως αποτέλεσμα printf( % 5d, arithmos); 1 2 3 4 5 1 5 Ενώ η printf( %+5d, arithmos); 1 2 3 4 5 + 1 5

Παράδειγμα double arithmos = 65.4567 Εντολή Εκτύπωση printf( %10.4f, arithmos); 1 2 3 4 5 6 7 8 9 10 6 5. 4 5 6 7 printf( %10.3f, arithmos); 1 2 3 4 5 6 7 8 9 10 6 5. 4 5 7 printf( %10.3e, arithmos); 1 2 3 4 5 6 7 8 9 10 6. 5 4 6 e + 0 1

Παράδειγμα Αν platos = 10; dekadika = 4; τότε η printf( %*d, platos, arithmos); είναι ισοδύναμη με την printf( %10d, arithmos); και η printf( %*.*f, platos, dekadika, arithmos); είναι ισοδύναμη με την printf( %10.4f, arithmos);

ΑΠΛΑ ΠΡΟΓΡΑΜΜΑΤΑ ΣΕ C Πρόβλημα Γράψτε ένα πρόγραμμα σε C που να υπολογίζει και τυπώνει το άθροισμα και τη μέση τιμή τριών αριθμών.

ΑΛΓΟΡΙΘΜΟΣ 1. Διάβασε x1, x2, x3 και τύπωσε τις τιμές που διαβάστηκαν. 2. Υπολογισμός του athroisma =x1 + x2 + x3 3. Υπολογισμός της mesi_timi = athroisma / 3.0 ; 4. Εκτύπωση της mesi_timi

Πρόγραμμα /* Υπολογίζει τη μέση τιμή τριών αριθμών*/ #include <stdio.h> int main (void) { /* Τμήμα δηλώσεων*/ double x1, x2, x3, athroisma, mesi_timi; printf( \nδώστε τις τιμές των τριών αριθμών : ); scanf( %lf %lf %lf, &x1, &x2, &x3); printf( \nοι αριθμοί που δώσατε είναι οι: );

printf( %5.3f %5.3f %5.3f, x1, x2, x3); /* Υπολογισμός του αθροίσματος*/ athroisma = x1 + x2 + x3; /*Υπολογισμός της μέσης τιμής*/ mesi_timi = athroisma / 3.0; /*Eκτύπωση της μέσης τιμής*/ printf( \nη μέση τιμή είναι: %5.3f, mesi_timi); } return 0;

Πρόβλημα Γράψτε ένα πρόγραμμα σε C που να υπολογίζει και τυπώνει το εμβαδόν ενός ισόπλευρου τριγώνου όταν δίνεται η πλευρά του x.

ΑΛΓΟΡΙΘΜΟΣ Πρώτη μορφή 1. Διάβασε τη δεδομένη πλευρά x του τριγώνου 2. Υπολόγισε το ύψος h του τριγώνου 3. Υπολόγισε το εμβαδόν Ε του τριγώνου 4. Εκτύπωσε τις τιμές των x και E Δεύτερη μορφή 2. Υπολόγισε το ύψος από τον τύπο h=sqrt(3)/2*x 3. Υπολόγισε το εμβαδόν από τον τύπο e=0.5*x*h

Πρόγραμμα /* Υπολογίζει το εμβαδόν ενός ισόπλευρου τριγώνου, όταν δίνεται η πλευρά του*/ #include <stdio.h> #include <math.h> int main(void) { /*Τμήμα δηλώσεων*/ double x, h, e; printf( \nδώστε την πλευρά x του τριγώνου: ); scanf( %lf, &x);

} /*Υπολογισμός του ύψους*/ h = sqrt(3)/2.0 * x; /*Υπολογισμός του εμβαδού*/ e = 0.5 * x * h; /*Εκτύπωση αποτελεσμάτων*/ printf( \nto ισόπλευρο τρίγωνο πλευράς %f έχει εμβαδόν %f, h, e); return 0;