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

Σχετικά έγγραφα
Προγραμματισμός Ι (ΗΥ120)

Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράστασης

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

Ψηφιακά Συστήματα. 2. Κώδικες

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

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

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

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

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

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

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

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

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

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

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

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

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

Προγραμματισμός Υπολογιστών με C++

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

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

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

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

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

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

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

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

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

If you can t make it, you don t know it.

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

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

10-δικό δικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

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

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

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

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

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

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

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

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

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Στο περιβάλλον επιφάνειας εργασίας μας ανοίγουμε μία κονσόλα και δίνουμε την εντολή:

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

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

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

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

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

Transcript:

Προγραμματισμός Ι (HY120) #4 κυριολεκτικά & μετατροπή τύπων 1 Σπύρος Λάλης

Κυριολεκτικά (literals) Συχνά θέλουμε να αρχικοποιήσουμε μεταβλητές του προγράμματος με μια συγκεκριμένη τιμή υπάρχει επίσης η περίπτωση να επιθυμούμε να χρησιμοποιήσουμε μια ειδική συγκεκριμένη τιμή σε εκφράσεις αποτίμηση, π.χ. σταθερές όπως το π ή το e Μια έκφραση που ορίζει μια τιμή χωρίς αναφορά σε κάποια μεταβλητή ονομάζεται κυριολεκτικό για κάθε τύπο δεδομένων ορίζονται διαφορετικές μορφές προσδιορισμού των αντίστοιχων κυριολεκτικών Η τιμή των κυριολεκτικών, καθώς και εκφράσεων που χρησιμοποιούν αποκλειστικά και μόνο κυριολεκτικά, είναι ήδη γνωστή πριν την εκτέλεση του κώδικα 2 Σπύρος Λάλης

Κυριολεκτικά int Έκφραση που αρχίζει με ένα δεκαδικό ψηφίο που δεν είναι 0: ερμηνεύεται με το δεκαδικό σύστημα Αρχίζει με 0x: ερμηνεύεται με το δεκαεξαδικό σύστημα Αρχίζει με 0: ερμηνεύεται με το οκταδικό σύστημα 97 ακέραια τιμή 97 0x61 ακέραια τιμή 97 0141 ακέραια τιμή 97 Με κατάληξη l ή L ερμηνεύονται ως long int κατάληξη u ή U: ερμηνεύονται ως unsigned int κατάληξη ul ή UL: ερμηνεύονται ως unsigned long int διαφορετικά ερμηνεύονται ως int 3 Σπύρος Λάλης

Κυριολεκτικά double Η έκφραση δίνεται σε δεκαδικό σύστημα Προαιρετικά, με (αρνητικό) εκθέτη μετά το e ή E 3.14-1.0.1e2 1E-1 Εκφράσεις με κατάληξη f ή F ερμηνεύονται ως float με κατάληξη l ή L ερμηνεύονται ως long double διαφορετικά ως double 4 Σπύρος Λάλης

Κυριολεκτικά char Η έκφραση της μορφής '<c>' συμβολίζει τον αντίστοιχο εκτυπώσιμο χαρακτήρα ASCII <c> Η έκφραση '\<c>' συμβολίζει τον αντίστοιχο ειδικό μη εκτυπώσιμο χαρακτήρα ASCII (βλέπε manual) Η έκφραση '\x<d1d2>' συμβολίζει τον χαρακτήρα ASCII με τον αντίστοιχο δεκαεξαδικό κωδικό d1d2 τα d1 και d2 είναι αριθμητικά ψηφία Η έκφραση '\<d1d2d3>' συμβολίζει τον χαρακτήρα ASCII με τον αντίστοιχο οκταδικό κωδικό d1d2d3 τα d1, d2 και d3 είναι αριθμητικά ψηφία Π.χ.: 'a','\x61','\141' χαρακτήρας a '\n','\x0a','\012'newline / linefeed 5 Σπύρος Λάλης

Ο πίνακας κωδικοποίησης ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2! " # $ % & ( ) * +, -. / 3 0 1 2 3 4 5 6 7 8 9 : ; < = >? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ DEL Οι αλφαβητικοί χαρακτήρες 'a','b','c', και 'Α','Β','C',... έχουν διαδοχικές τιμές, αν ερμηνευτούν ως ακέραιοι Το ίδιο και οι χαρακτήρες '0','1','2', των δεκαδικών ψηφίων 6 Σπύρος Λάλης

Αυτόματη μετατροπή/προαγωγή τύπων Γίνονται αυτόματα σε αποτιμήσεις και αναθέσεις char -> int, short -> int, float -> double Προσοχή στην μετατροπή char -> int γίνεται sign extension αν το char είναι signed Αν ένα από τα ορίσματα μιας πράξης είναι long double, double, float, long, unsigned, int τότε και το άλλο όρισμα «προάγεται» αντίστοιχα Όταν μια «μεγάλη» τιμή ανατίθεται σε «μικρότερη» μεταβλητή τότε χάνεται μέρος των δεδομένων μπορεί να χαθεί/διαστρεβλωθεί η πληροφορία 7 Σπύρος Λάλης

char c_s='\xff'; unsigned char c_u='\xff'; short i_s; unsigned short i_u; i_s = i_u = c_s; /* i_s,i_u γίνεται -1,65535(=2 16-1) i_s = i_u = c_u; /* i_s,i_u γίνεται 255,255 */ double d1=10.0,d2; int i1=3,i2=10; d2 = d1 / i1; /* d2 γίνεται 3.33 */ d2 = i2 / i1; /* d2 είναι 3.0 */ d2 = i2 / d2; /* d2 είναι 3.33 */ 8 Σπύρος Λάλης

int i; char c; i = 256; /* i γίνεται 256 */ c = i; /* c γίνεται 0 */ i = c; /* i γίνεται 0 */ double d=3.3333; char c; c = 100*d; /* c γίνεται 0x4D or 'M' */ 9 Σπύρος Λάλης

Αριθμητική με χαρακτήρες Η πιο χαρακτηριστική «εφαρμογή» της αυτόματης μετατροπής τύπων: αριθμητική με χαρακτήρες Μπορούμε να συνδυάσουμε ένα χαρακτήρα με ένα ακέραιο ή ένα χαρακτήρα με ένα χαρακτήρα 'a' + 1 /* 98,0x62,'b' */ 'b' 'a' /* 1 */ '5' '3' + '0' /* 50,0x32,'2' */ Μια συνάρτηση που δέχεται παράμετρο ένα ακέραιο, μπορεί να δεχτεί σαν παράμετρο έναν χαρακτήρα putchar(97); /* 'a' */ putchar('a'+2); /* 'c' */ 10 Σπύρος Λάλης

/* ανάγνωση δύο χαρακτήρων, υπολογισμός της διαφοράς τους και εκτύπωση της ως ακέραιος */ #include <stdio.h> int main(int argc, char *argv[]) { char c1,c2; int diff; printf("enter two chars: "); scanf(" %c %c", &c1, &c2); diff = c1-c2; printf("%c=%d %c=%d diff=%d\n", c1, c1, c2, c2, diff); } return(0); 11 Σπύρος Λάλης

Ρητή μετατροπή τύπων Ο προγραμματιστής μπορεί να προκαλέσει/εκβιάσει μια μετατροπή τύπου με type casting double d2; int i1=3,i2=10; d2 = (double)i2 / i1; /* d2 γίνεται 3.33 */ Το type casting μπορεί να χρησιμοποιηθεί (και) για να μετατρέψεις μπανάνες σε πορτοκάλια Χρειάζεται ιδιαίτερη προσοχή! ο προγραμματιστής πρέπει να ξέρει τι κάνει απαραίτητο σε κάποιες περιπτώσεις, βλέπε αργότερα 12 Σπύρος Λάλης