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



Σχετικά έγγραφα
Προγραμματισμό για ΗΜΥ

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

5 &6. Τύποι δεδομένων, τελεστές και

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

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

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

Περιεχόμενα. Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6) Τύποι Δεδομένων. Τελεστές. Αριθμητικές εκφράσεις

Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

ΠαράδειγµαΠρογραµµατισµού

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δεδομένα, τελεστές, είσοδος/έξοδος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός. Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος

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

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

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γεώργιος Δημητρίου Προσαρμογή Εισαγωγικού Μαθήματος από Prof. Stephen A. Edwards (Columbia University)

Transcript:

Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec. 1-21 & 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-1 Γλώσσα Προγραµµατισµού C Είναι µια από τις πιο διαδοµένες γλώσσες υψηλού επιπέδου Σχεδιάστηκε το 1972 από τον Dennis M. Ritchie στα εργαστήρια Bell της AT&T (εξέλιξη της γλώσσας Β) Χρησιµοποιήθηκε για την κατασκευή συστηµάτων, π.χτολειτουργικό σύστηµα UNIX Συνεχής εξέλιξη της γλώσσας µέχρι σήµερα ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 1

/* programma poy metatrepei euro se dolaria */ #include <stdio.h> int main() { float euro, timi; float dolaria; /* inputs*/ /* output*/ /* eisagwgh dedomenwn */ printf( Enter euro kai timi: ); scanf( %f%f,&euro, &timi); dolaria = euro * timi; /*exagwgh dedomenwn*/ printf( %.2f euro antistoixoun se %.2f dolaria\n, euro, dolaria); } return 0; 3-3 Γενικές Παρατηρήσεις για C Kατανοητή Αποτελείται από εντολες και δηλώσεις µεταβλητών Όλες οι εντολές και δηλώσεις τελειώνουν µε ; Χρήση συναρτήσεων stdio (printf, scanf) printfεκτυπώνει \n κινεί τον δροµέα (cursor) στην επόµενη γραµµή scanf διαβάζει από τον χρήστη ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-4 2

οµή προγράµµατος C Σχόλια παντού Οδηγίες στον προεπεξεργαστή Ορισµός συνάρτησης main δηλώσεις µεταβλητών εντολές (εκφράσεις, κλήσεις συναρτήσεων κτλ) ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-5 Σχόλια Σύνταξη: ξεκινούν µε /* και τελειώνουν µε */ Καµία σηµασία (ο µεταγλωττιστής αγνοεί τα σχόλια) αλλά πολύ σηµαντικό µέρος ενός προγράµµατος (τεκµηρίωση/επεξήγηση) /* auto einai ena syntaktika ortho sxolio*/ /* kai auto * einai * syntaktika * ortho */ ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-6 3

Σχόλια (συνέχεια) /* auto * ti* einai */ /***********auto??? ***************/ /* lathos sxolio */ giati */ */ einai lathos??? /* ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-7 #include Οδηγία στον προεπεξεργαστή για ενσωµάτωση βιβλιοθηκών Μια βιβλιοθήκη (library ή header file) είναι µια συλλογή χρήσιµων συναρτήσεων και σταθερών Σύνταξη: #include <header file> πχ: #include <stdio.h> ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-8 4

#include (συνέχεια) Ενσωµάτωση επιτρέπει την χρήση συναρτήσεων και σταθερών µιας βιβλιοθήκης πχ η βιβλιοθήκη stdio περιέχει, ανάµεσα σε άλλα, τις συναρτήσεις printf, για εκτύπωση πληροφοριών, και scanf, για εισδοχή πληροφοριών Άλλες διαταγές στον προεπεξεργαστή: define, ifdef, if, else, endif, undef ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-9 Ονόµατα στην C Για σταθερές, µεταβλητές, συναρτήσεις Η C είναι CASE SENSITIVE, κεφαλαία και µικρά γράµµατα είναι διαφορετικά foo και FOO είναι δυο διαφορετικά ονόµατα Να χρησιµοποιείτε αυτοεπεξηγηµατικά ονόµατα Ονόµατα δεν πρέπει να χρησιµοποιούν δεσµευµένες λέξεις ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-10 5

εσµευµένες Λέξεις (Reserved Words) Λέξεις µε ειδική σηµασία για την C. εν πρέπει να ορίζονται ξανά σαν ονόµατα auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-11 Σύνταξη Ονόµατος όνοµα L _ L N _ L: letters a-z A-Z N: numbers 0-9 _ : underscore πχ metavliti rectangle_area _index_123 1variable %super^ se tria meroi ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-12 6

Σηµασία Μεταβλητής (variable) Αποθήκευση και ανάγνωση τιµών Κάθε µεταβλητή έχει: τύπο βασικοί: int, char, float, double µέγεθος: 4Β, 1Β, 4Β, 8Β (κάθε κυψελίδα 1 Byte) (συµβολικό) όνοµα το όνοµα αντιστοιχεί σε συγκεκριµένη διεύθυνση στην µνήµη τιµή Εξαρτάται από το λειτουργικό σύστηµα ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-13 Σηµασία Μεταβλητής (συνέχεια) int count; τύπος όνοµα (διεύθυνση) τιµή count = 137; count = count + 142; &count; 0 98760060... ιεύθυνση του count 137 279... Τύπος διεύθυνσης ονοµάζεται δείκτης (pointer) πχ int *deikths; ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-14 7

ήλωση Μεταβλητής char ήλωση µεταβλητής µε βασικό τύπο int float double ονοµα, ; char $foo; char f; int count, sum; float area, double volume; int index; cost; double charge; float angle, income; ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-15 ΠΡΟΣΟΧΗ Μια µεταβλητή πρέπει να δηλωθεί πριν χρησιµοποιηθεί Εαν η µεταβλητή βρίσκεται στα αριστερά του τελεστή ανάθεσης ( = ) ητιµή του αποτελέσµατος της έκφρασης (expression) στα δεξιά του τελεστή ανάθεσης αποθηκεύεται στην διεύθυνση της µεταβλητής Αλλιώς χρησιµοποιείται η τιµήτηςµεταβλητής dolaria = euro * timi; ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-16 8

Σηµασία Σταθεράς (constant) Σταθερές έχουν: τιµή όνοµα όχι όµως διεύθυνση µεταγλωτιστής αντικαθιστά το όνοµα µετηντιµή ιευκολύνει: τροποποιήσεις διάβασµαενόςπρογράµµατος (PI ή 3.1453) Μια σταθερά πρέπει να δηλωθεί πριν χρησιµοποιηθεί εν µπορείνααλλάξειτιµή κατά την εκτέλεση του προγράµµατος ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-17 ήλωση Σταθεράς ήλωση σταθεράς #define όνοµα τιµή #define PI 3.1453 #define EURO_DOLLAR_RATE 0.452551 #define YES 1 #define NO 0 #define TRUE 1 #define PISQUARE PI*PI #define ERROR_SPACE_MESSAGE error:run out of space ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-18 9

Τύποι εδοµένων Ένας τύπος δεδοµένων είναι ένα σύνολο τιµών και ένα σύνολο πράξεων που µπορούν να εφαρµοστούν σε αυτές τις τιµές βασικοί (char, int, float, double) σύνθετοι (arrays, structs) ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-19 char (χαρακτήρας) Αναπαριστά ατοµικούς χαρακτήρες A-Z, a-z, 0-9,!@#$%^&, ειδικά σύµβολα \n, κτλ Μέγεθος 1 byte. Πόσες µοναδικές τιµές? Κυριολεκτικές τιµές εσωκλείονται σε αποστρόφους, π.χ. Α, a, 9,,, *, \n, \, κτλ Οι απόστροφοι δεν χρειάζονται όταν εισάγονται χαρακτήρες ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-20 10

int (ακέραιος) Αναπαριστά ακεραίους αριθµούς Μέγεθος 4 bytes, πεδίο τιµών -2 31.. +2 31-1 Παραδείγµατα κυριολεκτικών τιµών: -2189456 0 50 +24562 3245 13576313 Πράξεις: πρόσθεση (+), αφαίρεση (-), πολλαπλασιασµός (*), διαίρεση (/), υπόλοιπο (%). ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-21 float (κινητής υποδιαστολής µονής ακριβείας) Αναπαριστά τους πραγµατικούς αριθµούς Μέγεθος: 4 bytes, 1x10 37,1x10-37 Πράξεις: πρόσθεση (+), αφαίρεση (-), πολλαπλασιασµός (*), διαίρεση (/) Σηµειογραφία για κυριολεκτικές τιµές: 1.258 10 6 = 1258000.0 = 1.258e6 = 1.258E6 8.9 x 10-4 = 0.00089 = 8.9e-4 = 8.9E-4 ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-22 11

double (κινητής υποδιαστολής διπλής ακριβείας) Ίδιος τύπος µε float αλλά µε µεγαλύτερη ακρίβεια Μέγεθος 8 bytes ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-23 Tελεστής Ανάθεσης (assignment) Σύνταξη: µεταβλητή = έκφραση; area = PI * radius * radius; count = count + 1; new_number = old_number; average = total / count; Ητιµή της έκφρασης αποθηκεύεται στην µεταβλητή ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-24 12

Τελεστές (operators) Αριθµητικοί για int, char, float, double δυαδικοί (binary) + - * / % c=a+b; πρóσθεση c=a-b; αφαíρεση c=a*b; γινóµενο c=a/b; διαíρεση c=a%b; υπóλοιπο (για int και char µóνο) µοναδιαιoί (unary) -+(πρόσηµο) c=-a; ή c = -a + b; c=+a; ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-25 Τελεστής Υπολοίπου % (mod) Εαν x and y ειναι int ή char x y x/y x % y 4 2 2 0 4 3 1 1 35 8 ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-26 13

Αριθµητικές Εκφράσεις Σύνταξη: a τ b ή τ a τ είναι ο τελεστής (operator) a, b είναι τελεστέοι (operands) τελεστέοι µπορεί να είναι σταθερές µεταβλητές κλήση συνάρτησης που επιστρέφει αριθµό έκφραση (χρήση παρενθέσεων) ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-27 Κανόνας Προτεραιότητας Τελεστών Τελεστές στην ίδια έκφραση αποτιµούνται σύµφωνα µε τις προτεραιότητές τους. Οι προτεραιότητες των αριθµητικών τελεστών, σε φθίνουσα σειρά, είναι: µοναδιαίοι +, υψηλότερη προτεραιότητα *, /, % ενδιάµεση προτεραιότητα δυαδικοί +, χαµηλότερη προτεραιότητα ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-28 14

Κανόνας Εταιρικότητας Μοναδιαίοι τελεστέοι στην ίδια υποέκφραση και µε την ίδια προτεραιότητα αποτιµούνται από τα δεξιά προς τα αριστερά δεξιά εταιρικότητα υαδικοί τελεστέοι στην ίδια υποέκφραση και µετην ίδια προτεραιότητα αποτιµούνται από τα αριστερά προς τα δεξιά αριστερή εταιρικότητα ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-29 Κανόνας Παρενθέσεων Κάθε έκφραση σε παρένθεση αποτιµείται ξεχωριστά. Φωλιασµένες παρενθετικές εκφράσεις, ((..)), αποτιµούνται από τα µέσαπροςταέξω Όπου είσαστε αβέβαιοι χρησιµοποιείτε παρενθέσεις Μην το παρακάνετε όµως! ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-30 15

ΠαράδειγµαΑποτίµησης x = 5; y= 3; z = -4; Έκφραση (x-y)*z x- (y* z) x - y * z Τιµή -8 17 17 ψηλότερης προτεραιότητας ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-31 ΠαράδειγµαΑποτίµησης x = 5; y= 3; z = -4; Έκφραση (x-y)*-z x- (y* -z) x - y * -z Τιµή ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-32 16

ΠαράδειγµαΑποτίµησης x * y * z + a / b c * d (((x * y) * z) + (a / b)) (c * d) ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-33 Τύπος Έκφρασης Ορίζεται από τους τύπους των τελεστών char, int, float, double intτ int int 5/2 2 intτ double double 5/2.0 2.5 intτ char int 5+ a 102 intτ float float π.χ. int x=2; float y=3.0; y/x /* 3.0/2.0 */ Προσοχή στην περικοπή που προκύπτει στις πράξεις ακεραίων, κυρίως στην διαίρεση (µπορείναοδηγήσεισεδιαίρεσηµε τοµηδέν) π.χ. int x=2, y=3; 3.0/(x/y) /* διαίρεση µε µηδέν */ ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-34 17

Αυτόµατη και Ρητή Μετατροπή Σε ανάθεση (αυτόµατα) ητιµήδεξιατου = µετατρέπετε στον τύπο της µεταβλητής στα αριστερά του = int x = 3.14; /* 3 */ float x = 2/3; /* 0.0 */ Ρητή Μετατροπή (Casting) int x=2, y=3; float z = (float) x/y; /* 2.0/3, 2.0/3.0, 0.66666 */ float z = (float) (x/y); /* 0.0 */ ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-35 Μετατροπή Εκφράσεων σε C m 2 -n 2 ax 2 + bx + c. -b + 4ac 2ab c+d ((-a)b) + ((-c)d) m*m - n*n ή (m*m)-(n*n) a*x*x + b*x + c -b + 4 * a* c (2*a*b)/(c+d) -a*b + -c*d ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-36 18

Επιλογή Κατάλληλου Τύπου εδοµένων Aριθµός µαθητών σε ένα σχολείο Βάρος, Μάζα Εµβαδό, Όγκος Όνοµα Αριθµός Ταυτότητας int float, double float, double char (string) int ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-37 Περίληψη Σχόλια (/* */) Εντολή #include Ονόµατα στη C Μεταβλητές και Σταθερές Σηµασία, ήλωση, Χρήση Τύποι δεδοµένων char, int, float, double Τελεστές Ανάθεσης, αριθµητικοί τελεστές Αριθµητικές εκφράσεις Σύνταξη, κανόνες προτεραιότητας και εταιρικότητας τελεστών, κανόνας παρενθέσεων, τύπος εκφράσεων (προσοχή στην περικοπή), casting Επιλογή τύπου δεδοµένων ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-38 19