Θα εμφανίσει την τιμή 232 αντί της ακριβούς

Σχετικά έγγραφα
Τμήμα Μαθηματικών, ΕΚΠΑ. Ακαδ. έτος

ÈÖÓ Ö ÑÑ Ò ÑÓÖ Û ÈÖÓÔØÙÕ ÛÒ ËÔÓÙ ÛÒ ÌÑ Ñ ØÓ Å Ñ Ø ÛÒ È Ò Ô Ø Ñ Ó È ØÖÛÒ Å Ñ Û Ø Ò Ô Ø Ñ ØÛÒ ÍÔÓÐÓ ØôÒ

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

Δυαδικά Συστήματα. URL:

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

API: Applications Programming Interface

M 2. T = 1 + κ 1. p = 1 + κ 1 ] κ. ρ = 1 + κ 1 ] 1. 2 κ + 1

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

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

½ Τετραγωνίζω=κατασκευάζωκάτιίσουεμβαδούμεδοθέντετράγωνο. Δείτεκαιτην υποσημείωσηστηνπρότασηβ 14. ¾

Εισαγωγικά. URL:

Mεταβλητές (variables) και Σταθερές (constants)

Απλές εντολές: έκφραση + ;

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

Εισαγωγή στις Φυσικές Επιστήμες (ΦΥΕ14) Περίοδος ΕΡΓΑΣΙΑ 1 η. Τότε r r b c. και ( )

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

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

Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Επίδοση Υπολογιστικών Συστημάτων. Α.-Γ. Σταφυλοπάτης.

Τύποι δεδομένων, τελεστές, μεταβλητές

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

Προσομοίωση Δημιουργία τυχαίων αριθμών

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

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

Z L L L N b d g 5 * " # $ % $ ' $ % % % ) * + *, - %. / / + 3 / / / / + * 4 / / 1 " 5 % / 6, 7 # * $ 8 2. / / % 1 9 ; < ; = ; ; >? 8 3 " #

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

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

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

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

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

Οντοκεντρικός Προγραμματισμός


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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τεχνικές βασισμένες στα Δίκτυα Αναμονής Εισαγωγικά Επιχειρησιακοί νόμοι

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

v w = v = pr w v = v cos(v,w) = v w

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

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

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

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

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

p din,j = p tot,j p stat = ρ 2 v2 j,

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


S i L L I OUT. i IN =i S. i C. i D + V V OUT

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγικές έννοιες

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Πράξεις με δυαδικούς αριθμούς

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ØÖÓÒÓÑ ÈÖ Ø ÙÑ Ù Ò Ö Ò Ë Ð ØÛ ØØ Ö¹ ØÖÓÒÓÑ Íº Ù ÍÒ Ú Ö ØØ Ù ÙÖ ¹ Ò Ö ËÓÒÒ ÒÐ Ù Ñ Î ÖÐ Ù Ò Â Ö Ð ÙÒ ½ Û ÙÒ Ö ËÓÒÒ Ö Ò À ÑÑ Ð ÞÙ Ï ÒØ Ö Ò Ò Ö Ð Ò Ò Ò ÙÒ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

v[m/s] U[mV] 2,2 3,8 6,2 8,1 9,7 12,0 13,8 14,2 14,6 14,9

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

ÈÖÓ Ö ÑÑ Ò ÑÓÖ Û ÈÖÓÔØÙÕ ÛÒ ËÔÓÙ ÛÒ ÌÑ Ñ ØÓ Å Ñ Ø ÛÒ È Ò Ô Ø Ñ Ó È ØÖÛÒ Å Ñ Û Ø Ò Ô Ø Ñ ØÛÒ ÍÔÓÐÓ ØôÒ

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Morganναδώσειμίαεναλλακτικήμέθοδο,αποδεικνύονταςπρώταότιηευθείαπουδιχοτομεί κάθεταμίαχορδήπεριέχειτοκέντροτουκύκλου. Παρ όλααυτά,καιαυτήημέθοδοςέχει

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

Άλγεβρα Boole, λογικές συναρτήσεις και κυκλώματα. URL:

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

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

Ηυλοποίησ ητηςπαραπάνωκατηγορίαςβρίσ κεταισ τοναλγόριθμο º¾ºΗγραμμή

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

Στοκεφάλαιοαυτόθαμιλήσ ουμεγιατααρχείασ τηνγλώσ σ α ºΘαχρησ ιμοποιηθούνσ υναρτήσ ειςαπότηνκαθιερωμένηβιβλιοθήκηεισ όδου»εξόδου

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

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

Αλγόριθμοι Δικτύων και Πολυπλοκότητα Προσεγγιστικοί Αλγόριθμοι. Άρης Παγουρτζής

2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι

Προγραμματισ μόςσ ε» ΙωάννηςΓºΤσ ούλος

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Απλοποίηση λογικών συναρτήσεων. URL:

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Transcript:

Ì ÔÓ ÓÑ ÒÛÒ Ö Å Ø ØÖÓÔ ÑôÒ Fahrenheit ÑÓ Celsius Fahrenheit Celsius c = (5/9)(f 32) public class Fahr2Cels { public static void main(string args[]) { int f = 451; // Τι συμβαίνει στους 451F? int c; c = (f - 32)*5/9; System.out.println(c); } } Θα εμφανίσει την τιμή 232 αντί της ακριβούς 232.7777...

Ì ÔÓ ÓÑ ÒÛÒ (i) ένα σύνολο τιμών και (ii) ένα σύνολο τελεστών(πράξεων). Π.χ. για ακέραια(int) δεδομένα: σύνολο τιμών κάποιο υποσύνολο του Z και οι4βασικέςπράξεις + - * /. Η Javaδιαθέτει: 8 πρωτεύοντες τύπους δεδομένων: λογικά δεδομένα: boolean(1 byte) ακέραιοι: byte, short, int, long(1,2,4,8bytes) πραγματικοί: float, double(4, 8 bytes) χαρακτήρες: char(2 bytes). έτοιμους σύνθετους τύπους(π.χ. String), και δυνατότητα δημιουργίας νέων τύπων(αντικείμενα). ½ Ò Ô Ö Ø ÓÑ ÒÛÒ Ø ÑÒ Ñ ΜΝΗΜΗ 64ΚΒ = 65535 Bytes 0 1 2 3 ΑΚΕΡΑΙΟΣ 4Β ΠΡΑΓΜΑΤΙΚΟΣ 8Β 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 10 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 2.71 65533 65534 65535 1 Byte = 8 bits 1 word = 4 bytes 1 KB = 2E+10B = 1024 Bytes 1 MB =2E+20B = 1048576 Bytes

Å Ø Ð Ø Παραμετρική διατύπωση αλγορίθμων/προγραμμάτων. Αναφορά σε τιμές που μεταβάλλονται σ ένα πρόγραμμα, ή δεν είναι γνωστές πριν την εκτέλεση(αντ. σταθερές). Εχουν 3 χαρακτηριστικά: όνομα: μονοσήμαντη αναφορά σε διαφορετικά μεγέθη τιμή: αντιστοίχιση του ονόματος σε κάποιο δεδομένο τύπος: ο τύπος δεδομένου της τιμής τους. Οι μεταβλητές είναι στην ουσία θέσεις μνήμης Οι μεταβλητές στην Java, πρέπει να δηλώνονται. Η δήλωση: δεσμεύειέναόνομακαι το συσχετίζει με κάποιο τύπο δεδομένων, π.χ. int c; È Ö Ø Ö Κάθε μεταβλητή αποθηκεύεται κάπου στη μνήμη, επομένως έχει μια διεύθυνση. Η δήλωση μεταβλητής δεσμεύει μια διεύθυνση μνήμης για την μεταβλητή. Η διεύθυνση δεν αλλάζει στη διάρκεια εκτέλεσης του προγράμματος, αλλάζει μόνο το περιεχόμενο(η τιμή της). Το ποσότητα μνήμης που απαιτείται για την αποθήκευση μιας μεταβλητής εξαρτάται από τον τύπο της. Στη Java είναι ανεξάρτητη από τον τύπο του υπολογιστή(ενώ σε κάποιες άλλες γλώσσες όχι).

ÇÒ Ñ Ø Ñ Ø Ð ØôÒ Ø Java Επιτρεπτοί είναι συνδυασμοί γραμμάτων, αριθμών και των και $. Περιορισμοί: Ο πρώτος χαρακτήρας δεν μπορεί να είναι αριθμός! Κεφαλαία μικρά Οχι δεσμευμένα ονόματα(ονόματα εντολών της Java). Παραδείγματα ΝΑΙ: f myfootballteam r2d2 mesos oros ΟΧΙ: 456 int 3po mesos-oros Ç Ø ÔÓ int Προσημασμένοι ακέραιοι, 32-bit, συμπλήρωμα-2. Τιμές από-2147483648 έως +2147483647. Παραδείγματα τιμών: 42, -13, 0, +256 Πράξεις + - * / δίνουν πάντα ακέραιο αποτέλεσμα! 5/9 είναι 0. % ακέραιο υπόλοιπο(mod) 9%4 κάνει 1. Δήλωση μεταβλητών int: int n; int fahr, cels;

Ö Ö ÙÔ ÐÓ Ô Εστω χρόνος(int totalminutes) εκφρασμένος σε λεπτά. Να εκφραστεί σε ώρες(int hours) και λεπτά(int minutes). Παράδειγμα:359λεπτάείναι5ώρεςκαι59λεπτά. Λύση στη Java: hours = totalminutes / 60; minutes = totalminutes % 60; Ç Ø ÔÓ double Αριθμοί κινητής υποδιαστολής, 64-bit, IEEE 754 Τιμές [ 1.7 10 308, +1.7 10 308 ]με14/15σημαντικάψηφία. 0.0 +0.0 Inf x<0, x >=1 x<0, x <1 4.9E 324 x>0, x <1 +4.9E 324 x>0, x >=1 +Inf 1.7E308 NaN +1.7E308 Π.χ. 2.71-3.14159 0. 1.0.12 Εκθετική μορφή πραγματικών τιμών οαριθμός a 10 β γράφεται aeβή aeβ 1.7e-308-6.023E+23 9E-2 1.e10

Ö Ó ÔÖ Ñ Ø Ó? Γιατί ints?. Γιατί να μη χρησιμοποιούμε πάντα doubles? Μερικές φορές μόνο ακέραιοι έχουν νόημα: numberofstudents = 201.2??? Ο τύπος double μπορεί να είναι ανακριβής για ints Σταμαθηματικά 3 15 (1/3) = 15 Αλλα, 3.0 * 15.0 * (1.0/3.0) μπορεί να είναι 14.99997 Τελευταίο και λιγότερο σημαντικό: πράξεις με doubles πιο αργές σε ορισμένους υπολογιστές. ο τύπος double συχνά καταλαμβάνει περισσότερη μνήμη Ö Εχουν τιμές και συνήθως εκφράζουν κάποιο υπολογισμό. Μια μεταβλητή από μόνη της αποτελεί έκφραση: f. Μια σταθερά από μόνη της αποτελεί έκφραση: 3.14 Είναιγενικάσυνδυασμοίμεταβλητών,σταθερώνκαιτελεστών area = 3.14 * radius * radius; Μερικοί αριθμητικοί τελεστές: μονομελείς: π.χ. πρόσημα + και - διμελείς: πρόσθεση +, αφαίρεση -, πολ/σμός *, διαίρεση /, κ.α. Ð ÙÒ ÖØ ÛÒ ÔÛ Ó Ñ Ö Ø Ö º

ÍÔÓÐÓ Ñ Ö ÛÒ ¹ Ö ÙÔÓÐÓ ÑÓ Ακριβείς κανόνες καθορίζουν μονοσήμαντα τη τιμή μιας έκφρασης: Ηέκφραση a + b a b 4 + 3 * 4-3 ισούταιμε (a + b) (a b) (4 + 3) * (4-3) = 7 ήμε a + (b a) b?? 4 + (3*4) - 3 = 13 Η προτεραιότητα τελεστών καθορίζει τη σειρά εκτέλεσης: 1. πρώτα οι παρενθέσεις (), αρχίζοντας από τις πιο εσωτερικές 2. μετά οι πολλαπλασιασμοί : *, / 3. τέλος οι προσθέσεις : +, - ½ ÍÔÓÐÓ Ñ Ö ÛÒ ¹ Ù Õ Ø Ñ Ø Ð ØôÒ Η προτεραιότητα δεν ξεκαθαρίζει την κατάσταση όταν όλοι οι τελεστές είναι στο ίδιο επίπεδο προτεραιότητας. Ηέκφραση a/b cισούταιμε a/(b c)ήμε (a/b) c?? Οι κανόνες συσχετισμού καθορίζουν τη σειρά μεταξύ συνεχόμενων τελεστών της ίδιας προτεραιότητας. Υπάρχει διαφορά? 16/4 2 Κανόνες συσχετισμού: Οι περισσότεροι αριθμητικοί τελεστές στο Java, υπολογίζονται από αριστερά προς τα δεξιά, για το ίδιο επίπεδο προτεραιότητας: Ηέκφραση a/b cισούταιμε (a/b) c) Ηέκφραση a + b c + dισούταιμε ((a + b) c) + d

ÒØÓÐ Ò Οι μεταβλητές παίρνουν συνήθως τιμές με τις εντολές ανάθεσης μεταβλητή = έκφραση Η εκτέλεση μιας ανάθεσης υλοποιείται σε δυο διακριτά βήματα 1. Υπολογισμός της έκφρασης στο δεξί μέλος. 2. Αποθήκευση της τιμής της έκφρασης στη μεταβλητή που καθορίζεται αριστερά του τελεστή ανάθεσης =. Επομένως η x = x + 1; εντολή ανάθεσης στο Java, και όχι μια αλγεβρική εξίσωση! Μιαμεταβλητήμπορείναέχειμόνομίατιμή ότανημεταβλητή πάρει κάποια νέα τιμή με εντολή ανάθεσης, η προηγούμενη τιμή της χάνεται. À Ò Ø ÑÒ Ñ RAM { { ΕΣΜΕΥΜΕΝΗ ΜΝΗΜΗ (ΛΣ, ΑΛΛΑ ΠΡΟΓΡΑΜΜΑΤΑ) ΕΛΕΥΘΕΡΗ ΜΝΗΜΗ f 451 f = 451; f 451 c 232 c = (f - 32)*5/9; f c 452 232 f = f + 1;

ÙØ Ñ Ø Å Ø ØÖÓÔ Ì ÔÓÙ Ö Τι συμβαίνει όταν συνδυάζονται δεδομένα διαφορετικού τύπου? Για int n και double x n + 1 int. n + 1.5 double. 9/4 int. Αλλά: 9.0/4, 9/4.0, 9.0/4.0 double. x = 0ισοδ.μετηνανάθεση x = 0.0. n = 0.5 ΛΑΘΟΣ(runtime error). Κανόνας Μετατροπής Εξασφαλίζεται η ακρίβεια του αποτελέσματος: τα δεδομένα του λιγότερου ακριβούς τύπου αναβαθμίζονται σε τύπο μεγαλύτερης ακρίβειας μόνο για την εκτέλεση της συγκεκριμένης πράξης. Å Ø ØÖÓÔ ÑôÒ Fahrenheit ÑÓ Celsius Fahrenheit Celsius c = (5/9)(f 32) public class Fahr2Cels { public static void main(string args[]) { int f = 451; double c; c = (f - 32.0)*5/9; // c = (f - 32)*5/9; // c = 5/9*(f - 32); System.out.println(c); } } Θα εμφανίσει την τιμή 232.77777777777777(14 δεκαδικά ψηφία)

Ê Ø Å Ø ØÖÓÔ Ì ÔÓÙ Συχνά η αυτόματη μετατροπή τύπου δεν είναι επιθυμητή. Παράδειγμα Για int a, b και double x, x = a / b; // Ακέραια διαίρεση με πιθανή αποκοπή Χρησιμοποιείται ο τελεστής προσαρμογής(cast): x = a / (double) b; x = (double) a / b; Η παρακάτω χρήση του τελεστή προσαρμογής είναι λανθασμένη! x = (double) (a / b); Ο τελεστής προσαρμογής είναι μονομελής, και η σύνταξη του είναι: (όνομα τύπου) έκφραση Ç Ø ÔÓ String Είναι παραγώμενος(σύνθετος) τύπος, αλλά πολύ βασικός. Τιμές(σταθερές String): χαρακτήρες σε διπλά εισαγωγικά: "Hello, world" "42" "" // empty string Δήλωση και αρχικοποίηση μεταβλητών τύπου String String javacreator = "Gosling"; // String javacreator = new String(" Gosling");

Ì Ð Ø ÙÒ ÒÛ concatenationµ Ο τελεστής + λειτουργεί διαφορετικά με όρους τύπου String: String s1 = "Hello, "; String s2 = "world"; // prints: Hello, world System.out.println(s1 + s2); Πρόσθεση όρων String με άλλους τύπους δεδομένων: // The answer is 42 System.out.println("The answer is "+4+2); // The answer is 6 System.out.println("The answer is "+(4+2)); Ç Ø ÔÓ boolean Για δεδομένα με 2 μόνο καταστάσεις(αληθές/ψευδές). Τιμές στο σύνολο {true, false} Εσωτερικάπαριστάνονταιαπό1bit: true 1και false 0 Δήλωση μεταβλητών boolean boolean isfemale; boolean isswitchon, isansweryes;

ÄÓ booleanµ ÔÖ Ü Ø Ð Ø Ë Þ ÙÜ µ Ñ Ø Ð Ø && Ñ Ð µ Ò ÖÑÓ Ö Ò ØÛ ÔÓ 0 o C Ö Õ Ø Ø Õ ÓÒÞ º Þ ÙÜ µ Ñ Ø Ð Ø Ñ Ð µ Ò ÓÑ ÑÓÙ Ø ÖÑ Ø Ø ÔÖôØ ØÓÙ ÔÖÛØ Ð Ñ ØÓ Ø Ø ØÓ Ô ÐÐÓ Ø Ø ³ ÛÒ Ø ØÓÙ ÕÖ ÒÓÙ Ø Ò ÙÖôÔ º ³ ÖÒ Òµ Ñ Ø Ð Ø! ÑÓÒÓÑ Ð µ Ò Ò Ò Ë ØÓ ÃÙÖ Ø Ø Ò Ö Ñ Ñ Ö º p q!p p &&q p q ÈÒ Ð true true false true true true false false true false true true false true false false false false ½ ÄÓ booleanµ Ö Στην απλούστερη μορφή τους συγκρίσεις, που σχηματίζονται από: boolean μεταβλητές ή σταθερές, boolean τελεστές, αριθμητικές εκφράσεις, και τελεστές συσχέτισης: Στα μαθηματικά: < > = Στη Java: < <= > >= ==!= È Ö Ñ Ø airtemperature > 30. 0 f <= 212 divisor!= 0

Ä Ò Ñ Ò ÕÖ ØÛÒ ÐÓ ôò Ø Ð ØôÒ xδενισούταιμε2ή3 Λάθος: x!=2 x!=3 Είναι πάντα true. Σωστό:!(x==2 x==3)ήαπλούστερα: x!=2 && x!=3 Προκύπτει από το νόμο του de Morgan:!(p q) ισοδ.!p &&!q!(p && q) ισοδ.!p!q 0 x < 1στη Javaγράφεται: 0 <= x && x < 1 Εκφράσειςτηςμορφής α x β,όπου κάποιοςαπότους τελεστέςσυσχέτισηςγράφονταιπάντασαν: α x && x β Ã Ò Ò ÙÔÓÐÓ ÑÓ ÐÓ ôò Ö ÛÒ Ο υπολογισμός λογικών εκφράσεων σταματάει τη στιγμή που προσδιορίζεται η τιμή τους(lazy evaluation). έκφραση1 && έκφραση2 Αν η έκφραση1 είναι false τότε δέν υπολογίζεται η έκφραση2. έκφραση1 έκφραση2 Αν η έκφραση1 είναι true τότε δέν υπολογίζεται η έκφραση2. Πρώτα συντάσσεται η απλούστερη από τις 2 εκφράσεις (y > 1) && (2*x*x-3*x+1 >= k*x*(x-1)+4*y) ή η έκφραση που δεν δημιουργεί προβλήματα (x!= 0) && (y%x == 0)

È Ö Ñ Ö ØÛÒ ØôÒ Ενα έτος είναι δίσεκτο, άν: τοέτοςδιαιρείταιμετο4αλλάδενδιαιρείταιμετο100,ή τοέτοςδιαιρείταιμετο400. π.χ. 1900 δεν είναι δίσεκτο, 2000 είναι. Η αντίστοιχη boolean έκφραση της Java για int year: ((year%4 == 0) && (year%100!= 0)) (year%400 == 0) ή (year%400 == 0) ((year%4 == 0) && (year%100!= 0))