Βασικά στοιχεία προγραµµατισµού στη JAVA

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Βασικά στοιχεία προγραµµατισµού στη JAVA"

Transcript

1 Βασικά στοιχεία προγραµµατισµού στη JAVA Τελεστές, Επαναλήψεις και Παραδείγµατα

2 2 Οι τελεστές της JAVA Η Java χρησιμοποιεί τους ίδιους τελεστές με την C και την C++, και κατά τον ίδιο γενικά τρόπο. Σχεδόν όλοι οι τελεστές εφαρμόζονται µόνο σε αρχέγονους τύπους. Εξαίρεση αποτελούν οι τελεστές: =, == και!=, οι οποίοι εφαρμόζονται και σε αντικείμενα. Επίσης, οι τελεστές + και += εφαρμόζονται και σε αντικείμενα της κλάσης String. Κανόνες προτεραιότητας (precedence): ο πολλαπλασιασμός και η διαίρεση έχουν προτεραιότητα έναντι της πρόσθεσης και της αφαίρεσης.

3 3 Ανάθεση Η ανάθεση σε μεταβλητές αρχέγονων τύπων είναι απλή και ακολουθεί γνωστούς κανόνες. Η ανάθεση ενός αντικειμένου Α σε ένα άλλο Β, σημαίνει την ανάθεση του χειριστηρίου α, του Α, στο χειριστήριο b του Β: b = a; Αποτέλεσμα της ανάθεσης αυτής είναι το b και το a να δείχνουν στο ίδιο αντικείμενο (Α), ενώ η πρόσβαση στο αντικείμενο Β έχει χαθεί. Το φαινόμενο αυτό λέγεται aliasing (ψευδωνυμία) και είναι αποτέλεσμα του πως η Java χειρίζεται τα αντικείμενα. Η ψευδωνυμία προκύπτει και όταν περνάμε αντικείμενα σαν παραμέτρους σε μια μέθοδο.

4 4 Ανάθεση και Ψευδωνυμία class Number { int i; } public class Assignment { public static void main(string[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i = 9; n2.i = 47; System.out.println( 1: n1.i: + n1.i +, n2.i: + n2.i); n1 = n2; System.out.println( 1: n1.i: + n1.i +, n2.i: + n2.i); n1.i = 27; System.out.println( 3: n1.i: + n1.i +, n2.i: + n2.i); } }

5 5 Κλήση Μεθόδων και Ψευδωνυμία class Letter { char c; } public class PassObject { static void f(letter y) { y.c = ʻzʼ; } public static void main(string[] args) { Letter x = new Letter(); x.c = ʻaʼ; System.out.println( 1: x.c: + x.c); f(x); System.out.println( 2: x.c: + x.c); }} Σε ορισμένες γλώσσες η μέθοδος f() θα έκανε ένα αντίγραφο της παραμέτρου Letter y, μέσα στο πεδίο ισχύος (scope) της. Στην Java όμως περνάμε το χειριστήριο σαν παράμετρο, κι έτσι μέσα στην f() αλλάζουμε το ίδιο το αντικείμενο.

6 6 Τελεστές Μαθηματικοί τελεστές: όπως στην C Συσχετιστικοί τελεστές-relational operators Δημιουργούν αποτελέσματα τύπου boolean. Δέχονται κατηγορήματα αρχέγονου τύπου. Οι τελεστές σύγκρισης (>,<,<=, >=) δεν δέχονται κατηγορήματα boolean.

7 Έλεγχος ισοδυναμίας αντικειμένων Για τον έλεγχο των περιεχομένων ενός αντικειμένου για ισοδυναμία με άλλο αντικείμενο, χρησιμοποιείται η μέθοδος equals, η οποία υπάρχει σε όλα τα αντικείμενα. Μ. Δικαιάκος 7

8 Έλεγχος ισοδυναμίας αντικειμένων public class EqualsMethod { public static void main(string[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1.equals(n2)); } } Επιστρέφει true class Value { int i; } public class EqualsMethod2 { public static void main(string[] args) { Value v1 = new Value(); Value v2 = new Value(); System.out.println(v1.equals(v2)); }} Μ. Δικαιάκος Επιστρέφει false 8

9 9 Λογικοί Τελεστές Όπως στην C: AND(&&), OR( ), NOT(!) Επιστρέφουν boolean τιμές. Δέχονται σαν κατηγορήματα μόνο boolean μεταβλητές. Δεν επιτρέπεται η χρήση ακέραιων κατηγορημάτων με λογικούς τελεστές (όπως π.χ. στην C): i && j Βραχυκύκλωµα (short circuiting): κατά την αποτίμηση μιας λογικής έκφρασης (δηλ. έκφρασης με λογικούς τελεστές), η αποτίμηση συνεχίζεται μέχρι να γίνει σαφής η αλήθεια ή το σφάλμα της έκφρασης. Π.χ.: if (test1(0) && test2(2) && test3(2))...

10 Τελεστές Δυαδικών Ψηφίων Μ. Δικαιάκος Επιτρέπουν την επεξεργασία των δυαδικών ψηφίων μεταβλητών αρχέγονου ακέραιου τύπου (int, long, short, byte, char). Εκτελούν πράξεις άλγεβρας bool στα αντίστοιχα bits των κατηγορημάτων τους και δίνουν το αποτέλεσμα. Τελεστές: AND(&), OR ( ), XOR(^), NOT(~). Επίσης: &=, =, ^= (δεν επιτρέπεται όμως το ~=) Οι τύποι boolean σε συνδυασμό με τους δυαδικούς τελεστές, αντιμετωπίζονται σαν τιμές ενός bit. Η Java προσφέρει επίσης τελεστές διολίσθησης (shift operators), που δέχονται μεταβλητές αρχέγονου ακέραιου τύπου (int, long, short, byte, char) Τριαδικός Τελεστής: boolean-exp?value0:value1 10

11 11 Μετατροπή Τύπων - casting H Java μετατρέπει ένα τύπο δεδομένων σε κάποιον άλλο αυτομάτως, όποτε αυτό χρειαστεί. Η μετατροπή τύπων (type casting) μας επιτρέπει να κάνουμε αυτόν τον μετασχηματισμό ρητά ή να τον εξαναγκάσουμε να γίνει, σε περιπτώσεις που δεν γίνεται αυτόματα. Π.χ.: void casts() { int i = 200; long l = (long) i; // γίνεται και αυτόματα long l2 = (long) 200; // γίνεται κ. αυτόματα } Narrowing conversion: δεν γίνεται αυτόματα, και όταν γίνει υπάρχει ο κίνδυνος να χαθεί πληροφορία. Η Java επιτρέπει την μετατροπή από και προς οποιονδήποτε αρχέγονο τύπο εκτός boolean. Μετατροπή τύπων από μιά κλάση σε κάποια άλλη δεν επιτρέπεται.

12 12 sizeof Στην C και στην C++, η συνάρτηση sizeof() μας επιστρέφει τον αριθμό των χαρακτήρων που έχουν δεσμευθεί για κάποιο δεδομένο. Ο κυριότερος λόγος χρήσης της sizeof() είναι η φορητότητα (portability). Διάφοροι τύποι δεδομένων μπορεί να έχουν διαφορετικό μέγεθος σε διαφορετικές μηχανές. Συνεπώς, ο προγραμματιστής πρέπει να μπορεί να βρει το ακριβές μέγεθος ενός τύπου. Στην Java δεν υπάρχει sizeof() διότι σε όλα τα μηχανήματα οι τύποι δεδομένων έχουν το ίδιο μέγεθος.

13 Έλεγχος εκτέλεσης Οι εντολές της Java είναι παρόμοιες με αυτές της C και της C++. if-else: if (boolean-expression) statement else statement return: χρησιμοποιείται για να καθορίσει την τιμή που επιστρέφει μια μέθοδος επιβάλλει την επιστροφή της τιμής αυτής αμέσως Μ. Δικαιάκος 13

14 14 Επαναλήψεις - Iterations while (boolean-expression) statement do statement while (Boolean-expression); for (initialization;boolean-expression; step) statement public class ListCharacters { public static void main(string[] args) { for (char c =0; c<128; c++) if (c!= 26) //ANSI clear screen System.out.println( value: + (int) c + character: + c); } }

15 15 Ο τελεστής «,» for (int i = 0, j = 1; i < 10 && j!= 11; i++, j++ ) /* body of the loop */ O τελεστής «,» μπορεί να χρησιμοποιηθεί μόνο σε εντολές αρχικοποίησης και βήματος τής εντολής for. Στην αρχικοποίηση τού for μπορούμε να ορίσουμε περισσότερες της μιας μεταβλητές, του ίδιου όμως τύπου.

16 break και continue public class BreakAndContinue { public static void main(string[] args) { for (int i=0; i<100; i++) { if (I==74) break; // out of loop if (I % 9!= 0) continue; // next iteration System.out.println(I); } int I = 0; while (true) { I++; int j = I * 27; if (j == 1296) break; // out of loop if (I % 10!= 0) continue; // top of loop System.out.println(I); }}} 16

17 goto και labels Μ. Δικαιάκος Το goto στην Java είναι δεσμευμένη λέξη αλλά δεν χρησιμοποιείται ως εντολή. Ωστόσο η Java χρησιμοποιεί labels, σε συνδυασμό με εντολές continue ή break για να επιτρέπει την έξοδο από φωλιασμένους βρόχους. label1: outer-iteration { inner-iteration { // Το μόνο σημείο στο οποίο έχει νόημα η χρήση label είναι ακριβώς πριν μια εντολή επανάληψης. break; //breaks out of inner iteration; end us in outer iteration // continue; //moves back to beginning of inner iteration // continue label1; //breaks all the way out to label1; reenters outer loop // break label1; //breaks all the way out to label1; does not reenter loop } } 17

18 18 switch switch (integral-expression) { case integral-value1: statement; break; case integral-value2: statement; break; case integral-value3: statement; break; case integral-value4: statement; break; // default: statement; } H χρήση του break. integral-expression: integer or char.

19 19 Μερικές Παρατηρήσεις

20 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a );

21 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a ); Math.random() επιστρέφει double.

22 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a ); Math.random() επιστρέφει double. Το 26 μετατρέπεται σε double για να γίνει ο πολλαπλασιασμός.

23 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a ); Math.random() επιστρέφει double. Το 26 μετατρέπεται σε double για να γίνει ο πολλαπλασιασμός. Το ʻaʼ μετατρέπεται σε double για να γίνει η πρόσθεση.

24 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a ); Math.random() επιστρέφει double. Το 26 μετατρέπεται σε double για να γίνει ο πολλαπλασιασμός. Το ʻaʼ μετατρέπεται σε double για να γίνει η πρόσθεση. Το αποτέλεσμα της πρόσθεσης μετασχηματίζεται σε char.

25 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a ); Math.random() επιστρέφει double. Το 26 μετατρέπεται σε double για να γίνει ο πολλαπλασιασμός. Το ʻaʼ μετατρέπεται σε double για να γίνει η πρόσθεση. Το αποτέλεσμα της πρόσθεσης μετασχηματίζεται σε char. Πώς;

26 19 Μερικές Παρατηρήσεις char c = (char) (Math.random() * 26 + a ); Math.random() επιστρέφει double. Το 26 μετατρέπεται σε double για να γίνει ο πολλαπλασιασμός. Το ʻaʼ μετατρέπεται σε double για να γίνει η πρόσθεση. Το αποτέλεσμα της πρόσθεσης μετασχηματίζεται σε char. Πώς; Με αποκοπή.

27 20 Μερικές Παρατηρήσεις

28 20 Μερικές Παρατηρήσεις public class CastingNumbers {

29 20 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) {

30 20 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4;

31 20 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above);

32 20 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below);

33 20 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above);

34 20 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below);

35 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); Μ. Δικαιάκος 20

36 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } Μ. Δικαιάκος 20

37 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } above: 0.7 Μ. Δικαιάκος 20

38 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } above: 0.7 below: 0.4 Μ. Δικαιάκος 20

39 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } above: 0.7 below: 0.4 (int) above:0 Μ. Δικαιάκος 20

40 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } above: 0.7 below: 0.4 (int) above:0 (int) below:0 Μ. Δικαιάκος 20

41 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } above: 0.7 below: 0.4 (int) above:0 (int) below:0 (char) (ʻaʼ + above): a Μ. Δικαιάκος 20

42 Μερικές Παρατηρήσεις public class CastingNumbers { public static void main(string[] args) { double above = 0.7, below = 0.4; System.out.println( above: + above); System.out.println( below: + below); System.out.println( (int) above: + (int) above); System.out.println( (int) below: + (int) below); System.out.println( (char) a + above: +(char) ( a + above)); System.out.println( (char) a + below: +(char) ( a + below)); } } above: 0.7 below: 0.4 (int) above:0 (int) below:0 (char) (ʻaʼ + above): a (char) (ʻaʼ + below): a Μ. Δικαιάκος 20

43 Πίνακες στη JAVA

44 22 Πίνακες στην JAVA Οι πίνακες στην JAVA έχουν σχεδιαστεί κατά τρόπον ώστε να ξεπερνιούνται οι δυσκολίες του προγραμματισμού πινάκων της C/C++. Ένας πίνακας JAVA είναι εξασφαλισμένο ότι θα αρχικοποιηθεί και ότι δεν θα γίνει πρόσβαση εκτός των ορίων του. Τα χαρακτηριστικά αυτά υλοποιούνται με κάποιο σχετικό κόστος μνήμης και χρόνου εκτέλεσης (κατά την εκτέλεση γίνεται έλεγχος κατά πόσον δεν γίνεται υπέρβαση των ορίων του πίνακα). Κατά τη δημιουργία ενός πίνακα, κατʼ ουσίαν δημιουργείται ένας πίνακας χειριστηρίων (Handles), τα οποία αρχικοποιούνται σε null. Είναι ευθύνη του προγραμματιστή να αρχικοποιήσει σωστά τα χειριστήρια, ώστε να παραπέμπουν σε αντικείμενα.

45 23 Πίνακες Πίνακες στη Java: ακολουθίες από αντικείμενα ή μεταβλητές αρχέγονου τύπου, οι οποίες ομαδοποιούνται κάτω από το ίδιο όνομα. Δήλωση πινάκων: int[] a ; int a[]; Παρατηρείστε ότι ο μεταφραστής δεν επιτρέπει στον προγραμματιστή να δηλώσει το μέγεθος του πίνακα. Κατ ʼ ουσίαν, στο σημείο της δήλωσης δημιουργείται μόνο το χειριστήριο του πίνακα. Για την κράτηση μνήμης για τον πίνακα, χρειάζεται να γράψουμε μια έκφραση αρχικοποίησης, η οποία μπορεί να βρίσκεται οπουδήποτε στον κώδικα (πριν το σημείο στο οποίο γίνεται χρήση του πίνακα).

46 24 Αρχικοποίηση Πινάκων (συνέχεια) Αρχικοποίηση ενός πίνακα μπορεί να γίνει και στο σημείο της δήλωσής του, ως εξής: int[] a = { 1, 2, 3, 4, 5 }; public class Arrays { public static void main(string[] args) { int[] a1 = { 1, 2, 3, 4, 5 }; int[] a2; a2 = a1; for(int i=0; i<a2.length; i++) a2[i]++; } } Το στοιχείο length υπάρχει σε όλους τους πίνακες και δίνει τον αριθμό των στοιχείων τους (δεν επιτρέπεται ανάθεση σε αυτό). Σε περίπτωση που προσπαθήσουμε να ξεπεράσουμε το μήκος ενός πίνακα, λαμβάνουμε εξαίρεση την στιγμή της εκτέλεσης (exception).

47 Αρχικοποίηση Πινάκων (συνέχεια) Μ. Δικαιάκος Εαν δεν γνωρίζουμε το μήκος ενός πίνακα πριν την εκτέλεση του προγράμματός μας, θα πρέπει να χρησιμοποιήσουμε τη new για την κράτηση τής μνήμης του πίνακα, κατά την εκτέλεση του προγράμματος: import java.util.*; public class ArrayNew { static Random rand=new Random(); static int prand(int mod) { return Math.abs(rand.nextInt())%mod+1; } public static void main(string[] args) { int[] a = new int[prand(20)]; for(int i=0;i<a.length; i++) System.out.println(a[i]); } } 25

48 26 Αρχικοποίηση Πινάκων (συνέχεια) Σε περίπτωση πινάκων με στοιχεία µή-αρχέγονου τύπου, πρέπει να χρησιμοποιείται η new για την αρχικοποίηση των στοιχείων του πίνακα. import java.util.*; public class ArrayClassObj { static Random rand = new Random(); static int prand(int mod) { return Math.abs(rand.nextInt()) % mod + 1; } public static void main(...) { int q, p = prand(20); Integer[] a=new Integer[p]; for(int i=0;i<a.length;i++){ q = prand(500); a[i] = new Integer(q); } }

49 27 Αρχικοποίηση Πινάκων (συνέχεια) public class ArrayInit { public static void main(string[] args) { Integer[] a = { new Integer(1), new Integer(2), new Integer(3), }; Integer[] b = new Integer[] { new Integer(1), new Integer(2), new Integer(3), }; }} Το τελικό ʻ,ʼ στην αρχικοποίηση των πινάκων είναι προαιρετικό. Η δεύτερη συντακτική μορφή αρχικοποίησης επιτρέπει την υλοποίηση και κλήση μεθόδων που δέχονται άγνωστο αριθμό παραμέτρων, αγνώστου τύπου (λειτουργικότητας αντίστοιχης με τα «variable argument lists» varargs - της C.) Π.χ.: f(new Object[] {new Integer(23), two, three, });

50 Παράδειγμα class A { int i; } public class VarArgs { static void print(object[] x) { for(int i = 0; i < x.length; i++) System.out.println(x[i]); } public static void main(string[] args) { print(new Object[] { new Integer(47), new VarArgs(), new Float(3.14), new Double(1.1)}); print(new Object[] {"one", "two", "three" }); print(new Object[] {new A(), new A(), new A()}); } } Μ. Δικαιάκος 28

51 Πολυδιάστατοι Πίνακες int[ ][ ] a1 = {{ 1, 2, 3, },{ 4, 5, 6, },}; // 3-D array with fixed length: int[ ][ ][ ] a2 =new int[2][2][4]; for(int i = 0; i<a2.length; i++) for(int j=0;j<a2[i].length;j++) for(int k=0;k<a2[i][j].length;k++) { } Μ. Δικαιάκος 29

52 30 Πολυδιάστατοι Πίνακες // 3-D array with varied-length // vectors: int[ ][ ][ ] a3 = new int[q][ ][ ]; for(int i = 0;i<a3.length; i++) { a3[i] = new int[p][]; for(int j=0;j<a3[i].length; j++) a3[i][j] = new int[r]; } Integer[ ][ ] a4 = { { new Integer(1),new Integer(2)}, { new Integer(3),new Integer(4)}, { new Integer(5),new Integer(6)}, };

53 Μερικά απλά υπολογιστικά προβλήματα 31

54 32 H καταστροφή του χαρτοπαίκτη Suppose a gambler makes a series of fair $1 bets, starting with $50, and continue to play until she either goes broke or has $250. What are the chances that she will go home with $250, and how many bets might she expect to make before winning or losing?

55 33 public class Gambler { public static void main(string[] args) { int stake = Integer.parseInt(args[0]); // gambler's stating bankroll int goal = Integer.parseInt(args[1]); // gambler's desired bankroll int N = Integer.parseInt(args[2]); // number of trials to perform int bets = 0; int wins = 0; // total number of bets made // total number of games won // repeat N times to take average for (int i = 0; i < N; i++) { } // do one gambler's ruin simulation int t = stake; while (t > 0 && t < goal) { bets++; if (Math.random() < 0.5) t++; // win $1 else t--; // lose $1 } if (t == goal) wins++; // did gambler go achieve desired goal? }} // print results System.out.println(wins + " wins of " + N); System.out.println("Percent of games won = " * wins / N); System.out.println("Avg # bets = " * bets / N);

56 34 Τυχαία σημεία εντός κύκλου Υπολογίστε ένα τυχαίο σημείο που βρίσκεται εντός κύκλου με ακτίνα ίση με τη μονάδα. (1,1) (0,0) (-1,-1)

57 34 Τυχαία σημεία εντός κύκλου Υπολογίστε ένα τυχαίο σημείο που βρίσκεται εντός κύκλου με ακτίνα ίση με τη μονάδα. (1,1) double x, y, r; do { x = 2.0 * Math.random() - 1.0; y = 2.0 * Math.random() - 1.0; r = x*x + y*y; } while (r > 1); (0,0) (-1,-1)

58 35 Μέθοδος των Newton/Raphson

59 35 Μέθοδος των Newton/Raphson Πώς υπολογίζουμε την τετραγωνική ρίζα αριθμών;

60 35 Μέθοδος των Newton/Raphson Πώς υπολογίζουμε την τετραγωνική ρίζα αριθμών; Παρατήρηση: βρίσκοντας τη λύση της εξίσωσης: f(x) = x 2 - c

61 35 Μέθοδος των Newton/Raphson Πώς υπολογίζουμε την τετραγωνική ρίζα αριθμών; Παρατήρηση: βρίσκοντας τη λύση της εξίσωσης: f(x) = x 2 - c Το πρόβλημα ανάγεται στον υπολογισμό των ριζών συναρτήσεων.

62 35 Μέθοδος των Newton/Raphson Πώς υπολογίζουμε την τετραγωνική ρίζα αριθμών; Παρατήρηση: βρίσκοντας τη λύση της εξίσωσης: f(x) = x 2 - c Το πρόβλημα ανάγεται στον υπολογισμό των ριζών συναρτήσεων. Με ποιόν αλγόριθμο υπολογίζουμε την ρίζα μιας συνάρτησης;

63 36 Μέθοδος των Newton/Raphson Ξεκινάμε από μια εκτίμηση της ρίζας της συνάρτησης: a Μια καλύτερη εκτίμηση της ρίζας είναι η τιμή: x = a - f(a)/fʼ(a)

64 public class Newton { // return the square root of c, computed using Newton's method public static double sqrt(double c) { if (c < 0) return Double.NaN; double EPS = 1E-15; double t = c; while (Math.abs(t - c/t) > EPS*t) t = (c/t + t) / 2.0; return t; } // test client public static void main(string[] args) { // parse command-line parameters double[] a = new double[args.length]; for (int i = 0; i < args.length; i++) { a[i] = Double.parseDouble(args[i]); } Μ. Δικαιάκος // compute square root for each command line parameter for (int i = 0; i < a.length; i++) { double x = sqrt(a[i]); StdOut.println(x); } } } 37

65 38 Εισαγωγή στην χαρτοπαιξία! Μια τράπουλα αποτελείται από: 52 χαρτιά Τέσσερεις οικογένειες χρώματα χαρτιών: σπαθί (clubs) καρρώ (diamonds) καρδιές (hearts) πίκα (spades) Σε κάθε οικογένεια, υπάρχουν 13 χαρτιά, με την ακόλουθη διαβάθμιση: 2, 3, 4, 5, 6, 7, 8, 9, 10, Αξιωματικός (Jack), Βασίλισσα (Queen), Βασιλιάς (King), Άσσος (Ace)

66 39 Η τράπουλα σε πίνακες.. String[] suit = { Clubs, Diamonds, Hearts, Spades }; String[] rank = { 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace }; String[] deck = new String[52]; for (int i = 0; i<13; i++) for (int j = 0; j<4; j++) deck[4*i+j] = rank[i] + of + suit[j];

67 40 Ανακάτεμα της τράπουλας int N = deck.length; for (int i=0; i<n; i++) { int r = i + (int) (Math.random() * (N-i)); String t = deck[i]; deck[i] = deck[r]; deck[r] = t; }

68 40 Ανακάτεμα της τράπουλας int N = deck.length; for (int i=0; i<n; i++) { int r = i + (int) (Math.random() * (N-i)); String t = deck[i]; deck[i] = deck[r]; deck[r] = t; επιστρέφει τυχαίο αριθµό } µεταξύ i και Ν

69 41 Δειγματοληψία χωρίς αντικατάσταση Θέλουμε να πάρουμε ένα τυχαίο δείγμα από ένα σύνολο αριθμών, έτσι ώστε κάθε στοιχείο του συνόλου να εμφανίζεται το πολύ μια φορά στο δείγμα. Π.χ.: Για το σύνολο: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Μια δειγματοληψία 5 αριθμών χωρίς αντικατάσταση, είναι η: 2, 5, 10, 4, 14 Γράψτε ένα πρόγραμμα που να διαβάζει δύο ακεραίους Μ και Ν από την είσοδο και επιστρέφει δημιουργεί τη μετάθεση ενός δείγματος μεγέθους M από το σύνολο των αριθμών 0..Ν-1

70 public class Sample { public static void main(string[] args) { int M = Integer.parseInt(args[0]); // choose this many elements int N = Integer.parseInt(args[1]); // from 0, 1,..., N-1 // create permutation 0, 1,..., N-1 int[] perm = new int[n]; for (int i = 0; i < N; i++) perm[i] = i; // create random sample in perm[0], perm[1],..., perm[m-1] for (int i = 0; i < M; i++) { // random integer between i and N-1 int r = i + (int) (Math.random() * (N-i)); } // swap elements at indices i and r int t = perm[r]; perm[r] = perm[i]; perm[i] = t; } } Μ. Δικαιάκος // print results for (int i = 0; i < M; i++) System.out.print(perm[i] + " "); System.out.println(); 42

71 43 Τυχαίος περίπατος αυτοαποφυγής Γράψτε ένα πρόγραμμα που: Δέχεται στην είσοδο δύο ακεραίους Ν και Τ Υπολογίζει Τ τυχαίους περίπατους αυτοαποφυγής (selfavoiding random walks) Εκτυπώνει το ποσοστό των τυχαίων περιπάτων που καταλήγουν σε αδιέξοδο Τι είναι τυχαίος περίπατος; Ξεκινάμε από ένα σημείο στο επίπεδο και κινούμαστε πάνω ή κάτω ή αριστερά ή δεξιά, ένα βήμα τη φορά Σε κάθε βήμα, η επιλογή της κατεύθυνσης είναι τυχαία Τ.Π. αυτοαποφυγής: Αποφεύγουμε σημεία που τα έχουμε ήδη επισκεφθεί (ο τυχαίος περίπατος δεν τέμνει τον εαυτό του)

72 44 Επεξεργασία Χρωμάτων Βιβλιoθήκη της JAVA η οποία περιλαμβάνει τον ορισμό της κλάσης Color: java.awt.color Οι τιμές των χρωμάτων αναπαριστώνται στο σύστημα RGB (red, green blue): Κάθε χρώμα ορίζεται από τρεις ακεραίους αριθμούς (μεταξύ 0 και 255), οι οποίοι αντιστοιχούν στην ένταση του κόκκινου, πράσινου και μπλε χρώματος Η Color διαθέτει κατασκευαστή ο οποίος δέχεται ως παραμέτρους τρεις ακεραίους (τιμές RGB): Color red = new Color(255,0,0);

73 45 Color API

74 46 Φωτεινότητα - luminance Η ποιότητα μιας ψηφιακής εικόνας που εμφανίζεται σε οθόνη εξαρτάται από την μονοχρωματική φωτεινότητα (monochromatic luminance). Η φωτεινότητα προκύπτει από την ευαισθησία του ματιού στα χρώματα R, G, B και υπολογίζεται από την ακόλουθη σχέση: Y = r g b, όπου r, g, b είναι η ένταση των χρωμάτων κόκκινο, πράσινο, μπλε Η φωτεινότητα προσδιορίζει και την συμβατότητα μεταξύ χρωμάτων προσκηνίου και παρασκηνίου: αν η διαφορά της φωτεινότητας προσκηνίου και παρασκηνίου είναι λιγότερη από 128, τότε θεωρείται ότι τα χρώματα είναι ασύμβατα μεταξύ τους

75 47 Φωτεινότητα Η τιμή της φωτεινότητας μπορεί να χρησιμοποιηθεί και για την μετατροπή μιας έγχρωμης φωτογραφίας σε ασπρόμαυρη με μετατροπή του χρώματος κάθε εικονοστοιχείου σε ένα χρώμα της κλίμακας του γκρι ίσου με τη φωτεινότητα του έγχρωμου εικονοστοιχείου

76 public class Luminance { // return the monochrome luminance of given color public static double lum(color color) { int r = color.getred(); int g = color.getgreen(); int b = color.getblue(); return.299*r +.587*g +.114*b; } // return a gray version of this Color public static Color togray(color color) { int y = (int) (Math.round(lum(color))); Color gray = new Color(y, y, y); return gray; } // are the two colors compatible? public static boolean compatible(color a, Color b) { return Math.abs(lum(a) - lum(b)) >= 128.0; } } 48

77 49 Turtle graphics Turtle graphics was originally developed by Seymour Papert at MIT in the 1960s as part of an educational programming language, Logo. Turtle graphics also has numerous commercial applications. For example, it is the basis for PostScript, a programming language for creating printed pages that is used for most newspapers, magazines, and books.

78 50 Ψηφιακή επεξεργασία εικόνων Ψηφιακή εικόνα: ένα ορθογώνιο πλέγμα εικονοστοιχείων (pixels) κάθε εικονοστοιχείου έχει το δικό του χρώμα αποθηκεύεται σαν ένας δυδιάστατος πίνακας τιμών αναφέρεται συνήθως σαν raster ή bitmapped image (σε αντίθεση με τις εικόνες που δημιουργούνται μέσω κώδικα όπως της StdDraw, οι οποίες αποκαλούνται vector images) Η σύμβαση λέει ότι το πάνω αριστερά εικονοστοιχείο μιας εικόνας είναι το (0,0)

79 API της κλάσης Picture: 51

80 import java.awt.color; 52 public class Grayscale { public static void main(string[] args) { Picture pic = new Picture(args[0]); int width = pic.width(); int height = pic.height(); } // convert to grayscale for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Color color = pic.get(i, j); Color gray = Luminance.toGray(color); pic.set(i, j, gray); } } pic.show(); }

81 53

Βασικά στοιχεία προγραµµατισµού στη JAVA

Βασικά στοιχεία προγραµµατισµού στη JAVA Οι τελεστές της JAVA! Η Java χρησιμοποιεί τους ίδιους τελεστές με την C και την C++, και κατά τον ίδιο γενικά τρόπο. Βασικά στοιχεία προγραµµατισµού στη JAVA Τελεστές, Επαναλήψεις, Πίνακες και Παραδείγµατα!

Διαβάστε περισσότερα

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

3. Εκφράσεις και έλεγχος ροής

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

Διαβάστε περισσότερα

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

Διαβάστε περισσότερα

Δομές ελέγχου ροής προγράμματος

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Βρόγχοι Το if-then Statement Στην Java το if-then statement έχει το εξής συντακτικό Η παρένθεση είναι απαραίτητη if (condition) if-code block

Διαβάστε περισσότερα

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Συνέχεια για το for: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Nested for-loops (for μέσα σε for): π.χ. int k; for (int i=0; i

Διαβάστε περισσότερα

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

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα

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

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

Διαβάστε περισσότερα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 Constructors (Κατασκευαστές) Ειδικός τύπος μεθόδων που δημιουργούν αντικείμενα μιας κλάσης και: Εκτελούνται κατά την αρχικοποίηση των αντικειμένων

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα

Διαβάστε περισσότερα

Πίνακες (Arrays) ΕΠΛ131 Ενότητα VI

Πίνακες (Arrays) ΕΠΛ131 Ενότητα VI Πίνακες (Arrays) VI-1 Πίνακες Οι πίνακες αποτελούν ένα σημαντικό δομημένο τύπο δεδομένων (structured data type) ή πιο απλά μία δομή δεδομένων (data structure) Οι απλοί τύποι δεδομένων, δηλαδή οι τύποι

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

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

Δεδομένα, τελεστές, είσοδος/έξοδος 2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008 Εκτέλεση μεθόδου του αντικειμένου μιας κλάσης: 1) Δημιουργία αντικειμένου (στιγμιότυπου) της κλάσης: = new ( ); 2) Κλήση μεθόδου της κλάσης (στην

Διαβάστε περισσότερα

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

Διαβάστε περισσότερα

Πίνακες (Arrays) ΕΠΛ131 Ενότητα VI

Πίνακες (Arrays) ΕΠΛ131 Ενότητα VI Πίνακες (Arrays) VI-1 Πίνακες Οι πίνακες αποτελούν ένα σημαντικό δομημένο τύπο δεδομένων (structured data type) ή πιο απλά μία δομή δεδομένων (data structure) Οι απλοί τύποι δεδομένων, δηλαδή οι τύποι

Διαβάστε περισσότερα

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;.. Επιλογή - Επανάληψη Η εντολή if-else Ο τελεστής παράστασης συνθήκης H εντολή switch Η εντολές for και while Η εντολή do-while Η εντολές break - continue - goto Μαθηματικές συναρτήσεις Λέξεις κλειδιά στη

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

Διαβάστε περισσότερα

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

Διαβάστε περισσότερα

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

Διαβάστε περισσότερα

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

Βασικά στοιχεία της Java Βασικά στοιχεία της Java προτάσεις, εκφράσεις, µεταβλητές, σταθερές, τελεστές Ορισµοί Πρόταση (statement) είναι µία απλή εντολή σε µία γλώσσα προγραµµατισµού. Γιαπαράδειγµα: int x=12; Έκφραση (expression)

Διαβάστε περισσότερα

Βασικάχαρακτηριστικάτηςγλώσσας. Πίνακες, Έλεγχος Ροής και Βρόχοι

Βασικάχαρακτηριστικάτηςγλώσσας. Πίνακες, Έλεγχος Ροής και Βρόχοι Βασικάχαρακτηριστικάτηςγλώσσας Πίνακες, Έλεγχος Ροής και Βρόχοι Πίνακες Τρόπος αποθήκευσης πολλών στοιχείων που έχουν τον ίδιο πρωταρχικό τύπο δεδοµένων ή κλάση. Τα στοιχεία µπορεί να έχουν οποιοδήποτε

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

Διαβάστε περισσότερα

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Πέμπτη (5 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Δοµικά στοιχεία Πίνακες Το κόσκινο του Ερατοσθένη Αντιγραφή πινάκων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

Διαβάστε περισσότερα

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

Διαβάστε περισσότερα

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

Διαβάστε περισσότερα

Δομές ελέγχου & επανάληψης

Δομές ελέγχου & επανάληψης 3 Δομές ελέγχου & επανάληψης Τι θα δούμε σε αυτό το μάθημα 1. δομές ελέγχου 1. η δομή if 2. η δομή switch 2. δομές επανάληψης 1. η δομή while 2. η δομή do...while 3. η δομή for 3. break και continue 4.

Διαβάστε περισσότερα

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

Διαβάστε περισσότερα

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 12η: Δείκτες, μέρος 2

Διάλεξη 12η: Δείκτες, μέρος 2 Διάλεξη 12η: Δείκτες, μέρος 2 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Pointers II CS100, 2016-2017

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

Διαβάστε περισσότερα