Δεδομένα, μεταβλητές, υπολογισμοί

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

Βασικές Έννοιες Προγραμματισμού
Τύποι δεδομένων και τελεστές,
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΘΕΩΡΙΑ ΔΙΑΛΕΞΗ 4 Αριθμητικές εκφράσεις και πράξεις Εντολές ανάθεσης
ΜΑΘ 3122 (106) Γλώσσα προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι πραγματικών αριθμών
Εισαγωγή στο MATLAB.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Τελεστές ανάθεσης (assignment)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΛΕΣΤΕΣ - ΕΚΦΡΑΣΕΙΣ ΜΑΘΗΜΑ 4.
Τι θα κάνουμε Στο υπάρχον σενάριο θα προστεθούν 3 λειτουργίες : Όταν το αυτοκίνητο βρίσκεται εκτός πίστας η μέγιστη δυνατή μονάδα μετατόπισής του θα μειώνεται.
ΜΕΤΑΒΛΗΤΕΣ - ΤΥΠΟΙ ΜΑΘΗΜΑ 3.
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
1 Ολυμπιάδα Πληροφορικής Μάθημα 2. 2 Στόχοι μαθήματος Αριθμητικοί– Λογικοί Τελεστές Η εντολή IF.
Microsoft Excel 4.4 Τύποι και Συναρτήσεις
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ενότητα Α.4. Δομημένος Προγραμματισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
Δηλαδή οι σημαντικοί δεν ασχολούνται με μικροπράγματα.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Κ. Χαλάτσης, Εισαγωγή στην Επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών 1 Παράσταση Πληροφοριών.
ΜΑΘ 3122/106 – Γλώσσα Προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ-3122/106 Γλώσσα Προγραμματισμού Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ.
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
Δεδομένα – Μεταβλητές – Υπολογισμοί στη Java Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών 1 Βελώνης Γεώργιος – Καθηγητής Πληροφορικής ΠΕ 20 Σχολ. Έτος.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Εισαγωγή στην Python.
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Πίνακες και αλφαριθμητικά
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι Μεταβλητών.
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Τεχνολογία και Προγραμματισμός Υπολογιστών
ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ
Οι διάφορες εκδοχές της
Η ΑΡΙΘΜΙΤΙΚΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Τελεστές και ή όχι Για την εκτέλεση αριθμητικών πράξεων
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
3.2 Μεταβλητές και τύποι δεδομένων
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Εντολές και δομές αλγορίθμου
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Χειμερινό εξάμηνο 2017 Στέλιος Πετράκης
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κυριάκου Νικόλαος Πληροφορικής ΠΕ-20
Τύποι δεδομένων και τελεστές,
Μεταγράφημα παρουσίασης:

Δεδομένα, μεταβλητές, υπολογισμοί Java – Βοηθητικό Υλικό

Μεταβλητές και δεδομένα Μεταβλητή: Ένα τμήμα της μνήμης στο οποίο έχουμε δώσει όνομα και χρησιμοποιείται για αποθήκευση δεδομένων Αποθηκεύονται δεδομένα μόνο ενός τύπου Ο μεταγλωττιστής ελέγχει όσα δεδομένα αποθηκεύονται σε αυτήν Είναι απαραίτητο να δηλωθεί το όνομα (identifier) και ο τύπος των δεδομένων int a, b, c;

Σχετικά με το όνομα της μεταβλητής Γίνεται διάκριση μεταξύ κεφαλαίων και πεζών Δεν υπάρχει περιορισμός στον αριθμό των χαρακτήρων Πρέπει να αρχίζει από γράμμα, δολάριο ($) ή χαρακτήρα υπογράμμισης (_) Δεν πρέπει: να έχει κενά Να αρχίζει με αριθμό Να είναι το ίδιο με κάποια από τις δεσμευμένες λέξεις της Java Να περιέχει κάποιον από τους επόμενους χαρακτήρες (+,-,*,/,%,@)

Εισαγωγή σχολίων Να περικλείσουμε τα σχόλια μεταξύ /* ……. */ Να περικλείσουμε τα σχόλια μεταξύ /* ……. */ Να τοποθετήσουμε μπροστά δύο καθέτους //

Παράδειγμα 1 Δώστε σε μια μεταβλητή το όνομά σας και τυπώστε το στη γραμμή εντολών class hello1 { public static void main (String args []) String name; name =“Lena”; System.out.println (“Hello” + name); } Μεταγλώττιση: javac name.java Εκτέλεση: java name

Ανάθεση τιμής σε μια μεταβλητή int m_phone; m_phone = 6939332330; ή int m_phone =6939332330;

Βασικές κατηγορίες μεταβλητών Μεταβλητές – μέλη των κλάσεων: Αν δεν δώσει ο χρήστης τιμή παίρνουν από το σύστημα Τοπικές μεταβλητές: Παίρνουν τιμή μόνο από το χρήστη αλλιώς εμφανίζεται μήνυμα λάθους

Ακέραιοι τύποι δεδομένων (1/2) Τύπος Μνήμη (bits) Εύρος τιμών Byte 8 -128 έως 127 Short 16 -32768 έως 32767 Int 32 -2147483648 έως 2147483647 Long 64 -9223372036854775808 έως 9223372036854775808

Ακέραιοι τύποι δεδομένων (2/2) Οι ακέραιοι μπορεί να είναι θετικοί ή αρνητικοί Η πλατφόρμα στην οποία εργαζόμαστε δεν επηρεάζουν τις τιμές που παίρνουν οι μεταβλητές Καλό είναι να χρησιμοποιούμε εκείνο τον τύπο στον οποίο μπορεί να αποθηκευτεί ο μεγαλύτερος αριθμός που θα χρησιμοποιηθεί στο πρόγραμμά μας. Με αυτό τον τρόπο επιτυγχάνουμε αύξηση της ταχύτητας εκτέλεσης του προγράμματός μας Συνήθως χρησιμοποιείται ο τύπος Int Οκταδική μορφή: 0 57 Δεκαεξαδική μορφή: ox 100

Αναδίπλωση Αν αυξηθεί ή μειωθεί μια μεταβλητή πέρα από τη μέγιστη ή την ελάχιστη η μεταβλητή θα αναδιπλωθεί Π.χ.: Αν αυξήσουμε κατά ένα μια ακέραια μεταβλητή τύπου Byte με τιμή 127 θα πάρει την τιμή -128 Αντίστροφα αν τη μειώσουμε κατά ένα από την ελάχιστη τιμή της, το -128 θα πάρει την τιμή 127

Αριθμοί κινητής υποδιαστολής Όσοι αριθμοί δεν είναι ακέραιοι αποθηκεύονται στο σύστημα, σαν αριθμοί κινητής υποδιαστολής. Περιλαμβάνουν ακέραιο και δεκαδικό μέρος και μπορεί να είναι θετικοί ή αρνητικοί. Ανάλογα με την ακρίβεια που παρέχουν χωρίζονται σε float και double. Η δήλωση γίνεται με τον ίδιο τρόπο όπως και για τους ακέραιους αριθμούς

Αριθμοί κινητής υποδιαστολής (2/2) Τύπος Δεσμευόμενη μνήμη σε bytes Εύρος τιμών Ακρίβεια Float 4 -3.4x1038 έως 3.4x1038 7 ψηφία double 8 -1.7x1038 έως 1.7x1038 18 ψηφία

Μοναδιαίοι τελεστές αύξησης και μείωσης Μεταβάλλουν την τιμή μιας μεταβλητής, προσθέτοντας ή αφαιρώντας από αυτήν μια μονάδα y=x++; // Η μεταβλητή y θα πάρει την αρχική του x, δηλαδή 10 ενώ στη συνέχεια η μεταβλητή x θα αυξήσει την τιμή της κατά 1 και θα γίνει 11 y=++x; // Η μεταβλητή x πρώτα θα αυξηθεί κατά 1 και στη συνέχεια θα δώσει την τιμή της στην y, επομένως και η y και η x θα έχουν την τιμή 11 Ανάλογα ισχύουν και για τον τελεστή «--» μείωσης

Παράδειγμα 2ο Ποιες είναι οι τιμές των χ και y σε κάθε εκτύπωση? Class showInDec { Public static void main(String args[]) int x=10; int y; y=++x; System.out.println (“x= ”+x); System.out.println (“y= ”+y); System.out.println (“----------”); y=x++; System.out.println (“x= ”+x); System.out.println (“y= ”+y); System.out.println (“----------”); y=--x; y=x--; }

Τελεστές αριθμητικών πράξεων Πρόσθεσης (+) Αφαίρεσης (-) Πολλαπλασιασμού (*) Διαίρεσης (/) Υπολοίπου (%) Πολλαπλασιαστικοί τελεστές : *,/,% Υψηλή προτεραιότητα Προσθετικοί τελεστές: +,- Χαμηλότερη προτεραιότητα

Προβλήματα κατά την εκτέλεση των πράξεων (1/2) Πρόσθεση: Αν προσθέσουμε μεταβλητές διαφορετικών τύπων: π.χ. Byte και Int το αποτέλεσμα θα είναι του ίδιου τύπου με αυτόν της «επικρατέστερης» Τύποι δεδομένων: Αν ο ένας από τους 2 προσθετέους είναι πραγματικός αριθμός (κινητής υποδιαστολής) τότε το αποτέλεσμα θα είναι και αυτό πραγματικός

Προβλήματα κατά την εκτέλεση των πράξεων (2/2) Πολλαπλασιασμός: Εάν πολλαπλασιάσουμε δύο μεταβλητές τύπου byte, όπου η μια έχει τιμή 64 και η άλλη τιμή 4, το αποτέλεσμα που προκύπτει είναι 256, τιμή έξω από το εύρος του ακέραιου αυτού τύπου Η μεταβλητή που κρατάει το αποτέλεσμα θα πάρει την τιμή 0 Διαίρεση: Εάν έχουμε ορίσει μια μεταβλητή τύπου Int να κρατάει το αποτέλεσμα της διαίρεσης 7/4 τότε θα έχουμε υπερχείλιση καθώς στην μεταβλητή θα αποθηκευτεί η τιμή 1 ενώ το κανονικό αποτέλεσμα είναι 1.75

Παράδειγμα 3 Class showArithmetic { Public static void main (String args[]) int i=1242; int j=256; int sum; int dif; long prod; long mod; double quot; sum =i+j; dif=i-j; prod =i*j; mod=i%j; quot=i/j; System.out.println (The sum is “+sum”); System.out.println (The difference is “+dif”); System.out.println (The product is “+prod”); System.out.println (The modulus is “+mod”); System.out.println (The quotient is “+quot”);

Προτεραιότητα πράξεων Πράξεις σε παρενθέσεις Πολλαπλασιασμοί, διαιρέσεις (Η εκτέλεση γίνεται από τα αριστερά προς τα δεξιά) Προσθέσεις, αφαιρέσεις Γίνεται ανάθεση της τιμής που βρίσκεται δεξιά από το σύμβολο (=) στη μεταβλητή που είναι αριστερά του

Παράδειγμα 4ο class showAssignments { public static void main (String args[]) { int x=10; int y=20; y+=x; System.out.println (“y= ”+y); System.out.println (“--------”); y-=x; System.out.println (“y= ”+y); System.out.println (“--------”); y*=x; y/=x;

Λογικές τιμές Εξετάζουμε εάν ισχύει ή όχι μια συνθήκη Χρησιμοποιούνται μεταβλητές οι οποίες παίρνουν λογικές τιμές (true ή false) boolean state; State = true; ή boolean state=true;

Τελεστές σύγκρισης Τελεστής Σημασία Παράδειγμα == Ίσον x==10 ! Διάφορο < Μικρότερο x<10 > Μεγαλύτερο x>10 <= Μικρότερο ή ίσο x<=10 >= Μεγαλύτερο ή ίσο x>=10

Λογικοί τελεστές (1/2) Μπορούμε να συνδυάσουμε δύο ή περισσότερες λογικές εκφράσεις και να δημιουργήσουμε μια πιο σύνθετη λογική πρόταση. Λογικός τελεστής Σύμβολο AND && OR || NOT ! XOR ^

Λογικοί τελεστές (2/2) AND: Συνδέει δύο ή περισσότερες λογικές εκφράσεις και η τελική πρόταση είναι αληθής όταν ισχύουν όλες οι επιμέρους. OR: Συνδέει δύο ή περισσότερες λογικές εκφράσεις και η τελική πρόταση είναι αληθής όταν ισχύει τουλάχιστον μια. ΝΟΤ: Αντιστρέφει μια λογική πρόταση. XOR: Συνδέει δύο λογικές προτάσεις και χρησιμοποιείται για να ελέγξει εάν η μια και μόνο η μια από τις δυο προτάσεις είναι αληθής.

Παράδειγμα 5ο class showBoolean { public static void main (String args[]) boolean a,b,c,d; a=(4==2+2)&&(3==1+2); System.out.println (“a=“+a); b=(4>5 ||4>7); System.out.println (“b=“+b); c=!b; System.out.println (“c=“+c); d=(4+2==6) ^(5+2==17); System.out.println (“d=“+d); }

Τελεστές δυαδικών ψηφίων (1/2) Τελεστές δυαδικών ψηφίων (1/2) Λογικές πράξεις μπορούν να γίνουν όχι μόνο μεταξύ λογικών πράξεων αλλά και μεταξύ ακέραιων αριθμών Η τελική τιμή προκύπτει από την ψηφίο προς ψηφίο πράξη μεταξύ των αριθμητικών ποσοτήτων

Τελεστές δυαδικών ψηφίων (2/2) Τελεστές δυαδικών ψηφίων (2/2) Τελεστής δυαδικών ψηφίων Σύμβολο Bitwise AND & Bitwise XOR ^ Bitwise OR | Συμπλήρωμα ~

char myCharacter=‘b’; Χαρακτήρες Περιλαμβάνει έναν οποιονδήποτε χαρακτήρα Ο χαρακτήρας πρέπει να περικλείεται σε απλά εισαγωγικά char myCharacter=‘b’; Ειδικοί χαρακτήρες Χρησιμοποιούμε ακολουθίες διαφυγής (ανάποδη κάθετος με έναν χαρακτήρα)

Ειδικοί χαρακτήρες Ακολουθία Σημασία \b Οπισθοδρόμηση \t Χαρακτήρας στηλοθέτη \n Αλλαγή γραμμής \f Αλλαγή σελίδας \r Χαρακτήρας επιστροφής \” Διπλά εισαγωγικά \’ Απλά εισαγωγικά \\ Ανάποδη κάθετος

Java και Unicode Χρησιμοποιεί 2 bytes για την παράσταση των χαρακτήρων (Δυνατότητα αποθήκευσης: 65536 χαρακτήρες) Για να αναφερθούμε σε ένα συγκεκριμένο χαρακτήρα Unicode χρησιμοποιούμε την ακολουθία διαφυγής \u ακολουθούμενη από ένα τετραψήφιο δεκαεξαδικό αριθμό char mychar=‘\u0058’;

Παράδειγμα 6ο class showChar { public static void main (String args[]) char c1, c2, c3, c4, c5; c1=‘H’; c2=‘i’; c3=‘\n’; c4=‘G’; c5=‘\u0058’; System.out.println (c1); System.out.println (c2); System.out.println (c3); System.out.println (c4); System.out.println (c5); }

Αλφαριθμητικά Στην java δεν είναι μόνο ένα σύνολο από χαρακτήρες αλλά κάτι περισσότερο Αποτελεί ένα αντικείμενο της κλάσης String Διαθέτει μεθόδους οι οποίες του δίνουν περισσότερες δυνατότητες Κάθε αλφαριθμητικό δεδομένο πρέπει να περικλείεται ανάμεσα σε διπλά εισαγωγικά

Αρχικές τιμές για τις μεταβλητές - μέλη Τύπος Αρχική τιμή Byte Int Float 0.0f Char \u0000 Αναφορά σε αντικείμενο null Short Long 0L Double 0.0d boolean false

Παράδειγμα 7ο class hello2 { public static void main (String args[]) string name; string greeting =“Hello”; name = “Lena”; System.out.println (greeting + name); }

Μετατροπή τύπου δεδομένων (casting) Αναφερόμαστε σε μια διαδικασία με την οποία μετατρέπουμε έναν τύπο δεδομένων σε ένα άλλο Η αλλαγή αυτή γίνεται τόσο για απλούς τύπους μεταβλητών (int, float, double) όσο και για τύπους κλάσεων Τοποθετούμε τον τύπο που θέλουμε να έχει η μεταβλητή σε παρένθεση, πριν από το όνομα της μεταβλητής