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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10-δικό δικό

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

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

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

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

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Αριθμητικά Συστήματα. Επιμέλεια Διαφανειών: Δ.

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

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

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

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

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

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

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

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

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

Η γλώσσα C. Προγραµµατισµός Ι 1

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

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

Ενδεικτικές λύσεις και στατιστικά

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

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

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

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

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

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

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

Αριθμητικά Συστήματα Η ανάγκη του ανθρώπου για μετρήσεις οδήγησε αρχικά στην επινόηση των αριθμών Κατόπιν, στην επινόηση συμβόλων για τη παράσταση

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

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

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

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

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

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

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

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

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

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

Αριθμητικά Συστήματα

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

Transcript:

Προγραμματισμός Ι (ΗΥ120) Διάλεξη 5: Κυριολεκτικά Συνδυασμοί / Μετατροπές Τύπων Αριθμητική Χαρακτήρων

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

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

Κωδικοποίηση 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 Μερικά χρήσιμα κόλπα: Οι αλφαβητικοί χαρακτήρες έχουν διαδοχικές τιμές, αν ερμηνευτούν ως ακέραιοι. Το ίδιο και οι χαρακτήρες των δεκαδικών ψηφίων 4

Κυριολεκτικά int 5 Αν η έκφραση αρχίζει με δεκαδικό ψηφίο διαφορετικό του 0, τότε ερμηνεύεται με το δεκαδικό σύστημα. Αν αρχίζει με 0 τότε ερμηνεύεται σύμφωνα με το οκταδικό σύστημα, Aν αρχίζει με 0x τότε ερμηνεύεται σύμφωνα με το δεκαεξαδικό σύστημα. Εκφράσεις με κατάληξη l ή L ερμηνεύονται ως long int Mε κατάληξη u ή U ως unsigned int Με κατάληξη ul ή UL ως unsigned long int Διαφορετικά ως int. Π.χ.: 0xFF 32768u 0123 τιμή 83 τιμή 255 (-1 ως char) τιμή 32768 (-32768 ως short)

Κυριολεκτικά float και double 6 Η έκφραση πρέπει να δίνεται σε συμβατική μορφή, δηλαδή σε δεκαδικό σύστημα. Προαιρετικά, μπορεί να δίνεται με δεκαδικά ψηφία ή/και με δεκαδικό εκθέτη που μπορεί να λαμβάνει και αρνητικό πρόσημο. Εκφράσεις με κατάληξη f ή F ερμηνεύονται ως float, ενώ με κατάληξη l ή L ως long double Διαφορετικά ως double.

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

Μερικά Παραδείγματα char c1= \xff ; unsigned char c2= \xff ; short i1; unsigned short i2; 8 i1 = i2 = c1; i1 = i2 = c2; /* i1,i2 γίνεται -1,65535(=2 16-1) */ /* i1,i2 γίνεται 255,255 */ double d1=10.0,d2; int i1=3,i2=10; d2 = d1 / i1; d2 = (double)i2 / i1 d2 = (double)(i2 / i1); /* d2 γίνεται 3.33 */ /* d2 είναι 3.33 */ /* d2 είναι 3.0 */ int i; char c; i = 256; c = i; i = c; /* i γίνεται 256 */ /* c γίνεται 0 */ /* i γίνεται 0 */

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

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