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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Προγραμματισμός Ι (HY120)

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (HY120)

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

Ενσωματωμένοι Τύποι Δεδομένων. ΕΠΛ131 Ενότητα III

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

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

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

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

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

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

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

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

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

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

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

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

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

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

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

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

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

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

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

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

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

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

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

3 η Διάλεξη C++ - Βασικοί τύποι δεδομένων. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

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

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

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

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

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

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

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

Transcript:

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 5 &6. Τύποι δεδομένων, τελεστές και αριθμητικές εκφράσεις Ιωάννης Κατάκης

Σήμερα o Τύποι δεδομένων int, char, float, double o Τελεστές = + - * / % o Αριθμητικές εκφράσεις a+b,

Τύποι δεδομένων Ένας τύπος δεδομένων είναι ένα σύνολο τιμών και ένα σύνολο λειτουργιών (πράξεων) που μπορούν να εφαρμοστούν σε αυτές τις τιμές o Βασικοί τύποι δεδομένων char, int, float, double o Σύνθετοι τύποι δεδομένων:(πίνακες, δομές) π.χ. struct time { }; inthours; intminutes; intseconds; 3

Ακέραιοι (Integers) o int o Χειρισμός ακέραιων αριθμών o Μέγεθος: 4bytes o Πεδίο τιμών: από 2 έως 2 1, δηλ. -2 δις έως +2 δις o Πράξεις Πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση, κτλ o Παραδείγματα τιμών -21844 0 50 +4234-3233 2432455

Κινητής υποδιαστολής(float) o float Κινητής υποδιαστολής απλής ακρίβειας o Πραγματικοί αριθμοί o Μέγεθος: 4bytes o Πράξεις Πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση o Παραδείγματα 3.01 110.8-0.01

Κινητής υποδιαστολής (double) o double o Κινητής υποδιαστολής διπλής ακρίβειας o Ίδιος τύπος μεfloat αλλά με μεγαλύτερη ακρίβεια (περιέχει δηλαδή διπλό αριθμό δεκαδικών ψηφίων απ ότι η μεταβλητή float) o Μέγεθος: 8 bytes o Παραδείγματα 1.04583934

Χαρακτήρες (char) o Χειρισμός χαρακτήρων ατομικών Α-Z, a-z, 0-9,!@$%&#, ειδικά σύμβολα \n Μέγεθος 1 byte Εσωκλείονται σε αποστρόφους Α, a, 9,,, *, \n, \, κτλ Κατά την είσοδο από το πληκτρολόγιο δε χρειάζονται απόστροφοι Παραδείγματα a είναι ο χαρακτήρας a b είναι ο χαρακτήρας b 9 είναι ο χαρακτήρας 9 * είναι ο χαρακτήρας *

Χαρακτήρες o Αντιστοιχούν σε ένα μοναδικό κωδικό o ΣτηCο κωδικός αναφέρεται στον πίνακα ASCII Αλφαβητικοί, ψηφιακοί, ειδικοί (\n, \t) 0 ascii:48, 1 ascii:49,.., 9 ascii:57 A ascii:65,, Z ascii:90 a ascii:97,, z ascii:122

Πίνακας ASCII

Οι τύποι δεδομένων περιληπτικά Τύπος Μέγεθος Πεδίο Τιµών char, 1byte a.. z A.. Z 0.. 9 int, 4 bytes -2 31..2 31-1 float, 4 bytes 10-37..10 38 double 8 bytes 10-307..10 308 *δείκτης 4 bytes διευθύνσεις (0..2 32-1) *Δεν θα μελετηθεί σε αυτό το μάθημα

Παράδειγμα

Παράδειγμα

Επιλογή του σωστού τύπου δεδομένων Μαθητές σε ένα σχολείο o int Βάρος, Μάζα o float / double Εμβαδό, Όγκος o float / double Όνομα o char (string) Αριθμός ταυτότητας o int

Αριθμητικές εκφράσεις Σύνταξη <τελεσταίος> <τελεστής> <τελεσταίος> ή <τελεστής><τελεσταίος> τελεστής (operator) τελεσταίος(operands) Τελεσταίοι o Σταθερές (KMS_PER_MILE * miles) o Μεταβλητές (c=a+b) o Κλήση συνάρτησης που επιστρέφει αριθμό (c=sum(a,b)+sum(b,a)) o Έκφραση (χρήση παρενθέσεων) (a+3)*(b/c)

Αριθμητικοί τελεστές Όνομα Τελεστής Παράδειγμα Πρόσθεση + num1 + num2 Αφαίρεση - initial - spent Πολλ/σμός * age * 6 Διαίρεση / sum / count Υπόλοιπο % m % n

Τελεστής ανάθεσης (=) o Assignment operator o Σύνταξη <μεταβλητή> = <έκφραση>; area = PI* radius * radius; count = count + 1; new_number = old_nmber; average = total / count Hτιμή της έκφρασης αποθηκεύεται στην μεταβλητή και ο τύπος της τιμής της έκφρασης μετατρέπεται στον τύπο της μεταβλητής

Τύπος έκφρασης o Προκύπτει από τους τύπους των τελεσταίων o char, int, float, double intτint =>int 5/2 2 double τ double=> double 5.0/2.0 2.5 int τ double => double 5/2.0 2.5 double τ int => double 5.0/2 2.5 int τ char => int 5+ a 102 Όπου τ οποιοσδήποτε τελεστής Τί παρατηρείτε; Υπάρχει κάποιος κανόνας;

Εκφράσεις στη C Παραστάσεις m 2 -n 2 ax 2 + bx+ c Στην γλώσσα C m*m -n*n ή (m*m)-(n*n) a*x*x + b*x + c -b + 4ac -b + 4 * a* c (2*a*b)/(c+d) ((-a)b)+((-c)d) -a*b + -c*d

Κανόνας προτεραιότητας τελεστών o Τελεστές στην ίδια έκφραση αποτιμούνται σύμφωνα με τις προτεραιότητές τους o Οι προτεραιότητες των αριθμητικών τελεστών, σε φθίνουσα σειρά περιγράφονται στην επόμενη διαφάνεια

Τελεστές και προτεραιότητα Τελεστές Προτεραιότητα () Εάν είναι φωλιασμένο,τότε προτεραιότητα δίνεται στον πιο εσωτερικό. Εάν υπάρχουν πολλοί στο ίδιο επίπεδο τότε η προτεραιότητα είναι από αριστερά προς τα δεξιά (x+(y+z)(x-y)*3) +- (Μοναδιαίοι) Εάνυπάρχουν πολλοί, η προτεραιότητα είναι από δεξιά προς αριστερά x=++y+--z; * / % Εάνυπάρχουν πολλοί, η προτεραιότητα είναι από αριστερά προς τα δεξιά 3*7*y/x + -(Δυαδικοί) Εάν υπάρχουν πολλοί,η προτεραιότητα είναι από αριστερά προς τα δεξιά 3+x-y = Εάν υπάρχουν πολλοί η προτεραιότητα είναι από δεξιά προς αριστερά x=y=3

Κανόνας παρενθέσεων o Κάθε έκφραση σε παρένθεση αποτιμάται ξεχωριστά. Φωλιασμένες παρενθετικές εκφράσεις, ((..)), αποτιμώνται από μέσα προς τα έξω o Όπου είσαστε αβέβαιοι χρησιμοποιείτε παρενθέσεις

Παράδειγμα αποτίμησης x*y*z+a/b c*d (((x*y)*z)+(a/b)) (c*d) Και τα δύο είναι σωστά Η δεύτερη έκφραση εκφράζει ξεκάθαρα τη σειρά εκτέλεσης

Παραδείγματα αποτίμησης εκφράσεων o x = 5; y= 3; z = -4; o (x-y)*z -8 o x-(y*z) 17 o x-y*z 17 -a*b=-(a*b) ή -a*b=(-a)*b???

Υπόλοιπο % o Η έκφραση m % n επιστρέφει το υπόλοιπο της διαίρεσης του m με το n o Tomodulo είναι ακέραιος τελεστής και οι δύο τελεσταίοι πρέπει να είναι ακέραιοι o Παραδείγματα 17 % 5 = 2 6 % 3 = 0 9 % 2 = 1 5 % 8 = 5

Ακέραια διαίρεση o Εάν και οι δύο τελεσταίοι είναι ακέραιοι τότε θα πάρετε ακέραιο ως απάντηση(ακέραιο πηλίκο). o Παραδείγματα 17 / 5 =3 4 / 3 = 1 35 / 9 = 3 o Εάν ένας εκ των δύοτελεσταίων είναι float (ή double)το αποτέλεσμα θα είναι float (ή double) 17 / 5.0 = 3.400000

Εξάσκηση στην αποτίμηση εκφράσεων Έστω οι ακέραιοa, b, c, d, όπουa = 1, b = 2, c = 3, d = 4 Τι προκύπτει από τις παρακάτω προτάσεις; o a+b-c+d =4 o a*b/c =0 o 1+a*b%c =3 o a+d%b-c =-2 o d+c/b-a =4

Διαίρεση με το 0 o Μαθηματικά δεν ορίζεται διαίρεση με το 0 o Αν επιτρέψετε διαίρεση με το 0 σε ένα πρόγραμμα θα προκληθεί σφάλμα o Η εκτέλεση του προγράμματος θα τερματίσει απότομα - runtime error o Θα μάθουμε πώς να αποφεύγουμε τη διαίρεση με το 0

Μετατροπή τύπων o Αυτόματη μετατροπή Σε ανάθεση, η τιμή στα δεξιά του = μετατρέπεται στον τύπο της μεταβλητής στα αριστερά του = intx = 3.14; //στοx τελικά καταχωρείται η τιμή 3 float x = (2/3);//στο xκαταχωρείται η τιμή 0.0000 o Ρητή μετατροπή (Casting) x1 = 2/3; x2 = (float)2/3; x3 = 2/(float)3; x4 = (float)(2/3); x1=0.0000 x2=0.6666 x3=0.6666 x4=0.0000

Εντολές printfκαι scanf o Παράδειγμα printf( That equals %f kilometers and %e meters.\n, kms, mtrs); o Παράδειγμα scanf scanf( %d%f,&arithmos1,&arithmos2); Τύπος δεδομένων printf scanf float %f %f double %f ή %e %lf int %d %d char %c %c

Παράδειγμα προγράμματος /* This program divides two integers and displays the quotient and the remainder */ /* Input: Two integers * Output: The quotient and the remainder */ #include <stdio.h> main() { /* Dilosimetablhtvn*/ intinput1,input2; /* Eisodoi*/ intquotient,remainder; /* Eksodoi*/ /* Eisagogidedomenon*/ printf("write two integers \n"); scanf("%d%d", &input1,&input2); /* Ipologismoi*/ quotient=input1/input2; /*Ipologismospilikou*/ remainder=input1%input2; /*Ipologismosipolipou*/ /*Ektiposiapotelesmatos*/ printf("the quotient is %d and the remainder %d\n",quotient, remainder); }

Τέλος διάλεξης