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

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

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

Transcript

1 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 13/03/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια

2 if statement if (CONDITION) { } STATEMENTS Συνθήκη Η έκφραση μπορεί να είναι είτε true είτε false if statement Αν μία συνθήκη είναι true, τότε το body της if statement εκτελείται Οι συνθήκες στα if statements σχηματίζονται με τελεστές ισότητας και σχεσιακούς τελεστές

3 Παράδειγμα public static void test(int x){ if (x > 5){ System.out.println(x + " is > 5"); } } public static void main(string[] arguments){ test(6); test(5); test(4); }

4 Τελεστές ισότητας και σχεσιακοί τελεστές Standard algebraic equality or relational operator Java equality or relational operator Sample Java condition Meaning of Java condition Equality operators == x == y x is equal to y!= x!= y x is not equal to y Relational operators > x > y x is greater than y < x < y x is less than y >= x >= y x is greater than or equal to y <= x <= y x is less than or equal to y

5 Τελεστές ισότητας ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ ΠΟΤΕ == σε doubles! double a = Math.cos (Math.PI / 2); double b = 0.0; a = E-17 a == b επιστρέφει FALSE!

6 1 // Fig. 2.15: Comparison.java 2 // Compare integers using if statements, relational operato 3 // and equality operators. 4 import java.util.scanner; // program uses class Scanner 5 Παράδειγμα 6 public class Comparison 7 { 8 // main method begins execution of Java application 9 public static void main( String args[] ) 10 { 11 // create Scanner to obtain input from command window 12 Scanner input = new Scanner( System.in ); int number1; // first number to compare 15 int number2; // second number to compare System.out.print( "Enter first integer: " ); // prompt 18 number1 = input.nextint(); // read first number from user System.out.print( "Enter second integer: " ); // prompt 21 number2 = input.nextint(); // read second number from user if ( number1 == number2 ) 24 System.out.printf( "%d == %d\n", number1, number2 ); if ( number1!= number2 ) 27 System.out.printf( "%d!= %d\n", number1, number2 ); if ( number1 < number2 ) 30 System.out.printf( "%d < %d\n", number1, number2 );

7 31 32 if ( number1 > number2 ) 33 System.out.printf( "%d > %d\n", number1, number2 ); Παράδειγμα if ( number1 <= number2 ) 36 System.out.printf( "%d <= %d\n", number1, number2 ); if ( number1 >= number2 ) 39 System.out.printf( "%d >= %d\n", number1, number2 ); } // end method main } // end class Comparison Enter first integer: 777 Enter second integer: == <= >= 777 Enter first integer: 1000 Enter second integer: != < <= 2000 Enter first integer: 2000 Enter second integer: != > >= 1000

8 Τελεστές ισότητας και Σχεσιακοί τελεστές Γραμμή 6: αρχίζει η δήλωση της class Comparison Γραμμή 12: ορίζει Scanner variable input και καταχωρεί μία Scanner που διαβάζει δεδομένα από standard input Γραμμές 14-15: δηλώνουν μεταβλητές int Γραμμές 17-18: ζητάνε από το χρήστη να εισάγει τον πρώτο ακέραιο και εισάγει την τιμή Γραμμές 20-21: ζητάνε από το χρήστη να εισάγει το δεύτερο ακέραιο και εισάγει την τιμή

9 Τελεστές ισότητας και Σχεσιακοί τελεστές 23 if ( number1 == number2 ) 24 System.out.printf( "%d == %d\n", number1, number2 ); if statement για τον έλεγχο ισότητας με (==) Αν οι μεταβλητές είναι ίσες (συνθήκη true) Εκτελείται η γραμμή 24 Αν οι μεταβλητές δεν είναι ίσες, τότε η εντολή παραλείπεται ΟΧΙ ; στο τέλος του if statement Άδειο statement Δεν εκτελείται καμία λειτουργία Γραμμές 26-27, 29-30, 32-33, και Ελέγχουν τα number1 και number2 με τους τελεστές!=, <, >, <= και >=, αντίστοιχα

10 Συχνό Προγραμματιστικό Λάθος Η σύγχυση του τελεστή ισότητας «==» με τον τελεστή ανάθεσης «=» μπορεί να προκαλέσει λογικό ή συντακτικό λάθος! Ο τελεστής ισότητας πρέπει να διαβάζεται ως ισούται με, και ο τελεστής ανάθεσης πρέπει να διαβάζεται and the assignment operator should be read as παίρνει ή παίρνει την τιμή. Μερικοί άνθρωποι διαβάζουν τον τελεστή ισότητας ως διπλό ίσον ή ίσον ίσον.

11 Συχνό Προγραμματιστικό Λάθος Είναι συντακτικό λάθος αν οι τελεστές ==,!=, >= και <= περιέχουν διαστήματα ανάμεσα στα σύμβολά τους, όπως στα = =,! =, > = και < =, αντιστοίχως. Η αναστροφή των τελεστών!=, >= και <=, όπως στα =!, => and =<, αποτελεί συντακτικό λάθος. Η τοποθέτηση ; αμέσως μετά τη δεξιά παρένθεση της συνθήκης σε μία πρόταση if είναι κανονικά λογικό σφάλμα.

12 Τελεστές boolean &&: logical AND : logical OR if (x > 6) { if ( x > 6 && x < 9) { if (x < 9) { } } }

13 else if (CONDITION) { STATEMENTS } else { STATEMENTS }

14 Παράδειγμα public static void test(int x){ } if (x > 5){ } else { } System.out.println(x + " is > 5"); System.out.println(x + " is not > 5"); } public static void main(string[] arguments){ test(6); test(5); test(4); }

15 else if if (CONDITION) { STATEMENTS } else if (CONDITION) { STATEMENTS } else if (CONDITION) { STATEMENTS } else { STATEMENTS }

16 Παράδειγμα public static void test(int x){ } if (x > 5){ System.out.println(x + " is > 5"); } else if (x == 5){ } else { } System.out.println(x + " equals 5"); System.out.println(x + " is < 5"); public static void main(string[] arguments){ test(6); test(5); test(4); }

17 Καλές προγραμματιστικές τεχνικές! Ο στόχος του καλού προγραμματιστικού στυλ είναι να είναι ο κώδικάς μας πιο ευανάγνωστος! Από εμάς και από τους άλλους!!!

18 Κανόνας #1: χρησιμοποείστε καλά (meaningful) ονόματα String a1; int a2; double b; // BAD!! String firstname; // GOOD String lastname; // GOOD int temperature; // GOOD

19 Κανόνας #2: Χρησιμοποιείστε indentation public static void main (String[] arguments) { int x = 5; x = x * x; if (x > 20) { } double y = 3.4; } System.out.println(x + is greater than 20. );

20 Κανόνας #3: Χρησιμοποιείστε κενούς χαρακτήρες Βάλετε κενούς χαρακτήρες σε πολύπλοκες εκφράσεις: // BAD!! double cel=fahr*42.0/( ); // GOOD double cel = fahr * 42.0 / ( );

21 Κανόνας #3: Χρησιμοποιείστε κενούς χαρακτήρες Βάλετε κενές γραμμές για βελτίωση αναγνωσιμότητας: public static void main (String[] arguments) { int x = 5; x = x * x; if (x > 20) { } System.out.println(x + is > 20. ); } double y = 3.4;

22 Κανόνας #4: Μην επαναλαμβάνετε ελέγχους if (basepay < 8.0) {... } else if (hours > 60) {... } else if (basepay >= 8.0 && hours <= 60) {... }

23 Κανόνας #4: Μην επαναλαμβάνετε ελέγχους if (basepay < 8.0) {... } else if (hours > 60) {... } else if (basepay >= 8.0 && hours <= 60) {... } BAD

24 Κανόνας #4: Μην επαναλαμβάνετε ελέγχους if (basepay < 8.0) {... } else if (hours > 60) {... } else {... }

25 Δομές ελέγχου Εντολές επανάληψης Γνωστές και ως εντολές βρόχου Επανειλημμένα εκτελούνται ενέργειες για όσο η συνθήκη συνέχισης του βρόχου παραμένει αληθής εντολή while Εκτελεί τις ενέργειες εντός του σώματός της 0 ή περισσότερες φορές εντολή do while Εκτελεί τις ενέργειες εντός του σώματός της 1 ή περισσότερες φορές εντολή for Εκτελεί τις ενέργειες εντός του σώματός της 0 ή περισσότερες φορές

26 Παραδείγματα Ακολουθούν παραδείγματα χρήσης των παραπάνω εντολών (ήδη γνωστών από τη C) σε JAVA

27 Παράδειγμα 1 Ψευδοκώδικας για την επίλυση του προβλήματος εύρεσης του μέσου όρου βαθμών σε μία τάξη 10 σπουδαστών με επανάληψη ελεγχόμενη από μετρητή (counter-controlled) 1 Set total to zero 2 Set grade counter to one 3 4 While grade counter is less than or equal to ten 5 Prompt the user to enter the next grade 6 Input the next grade 7 Add the grade into the total 8 Add one to the grade counter 9 10 Set the class average to the total divided by ten 11 Print the class average

28 1 // Fig. 4.6: GradeBook.java 2 // GradeBook class that solves class-average problem using 3 // counter-controlled repetition. 4 import java.util.scanner; // program uses class Scanner 5 6 public class GradeBook 7 { 8 private String coursename; // name of course this GradeBook represents 9 10 // constructor initializes coursename 11 public GradeBook(String name) 12 { 13 coursename = name; // initializes coursename 14 } // end constructor // method to set the course name 17 public void setcoursename(string name) 18 { 19 coursename = name; // store the course name 20 } // end method setcoursename // method to retrieve the course name 23 public String getcoursename() 24 { 25 return coursename; 26 } // end method getcoursename 27 Ανάθεση τιμής στη μεταβλητή coursename Δήλωση μεθόδου setcoursename Δήλωση μεθόδου getcoursename

29 28 // display a welcome message to the GradeBook user 29 public void displaymessage() Δήλωση μεθόδου 30 { displaymessage 31 // getcoursename gets the name of the course 32 System.out.printf( "Welcome to the grade book for\n%s!\n\n, 33 getcoursename() ); 34 } // end method displaymessage // determine class average based on 10 grades entered by user 37 public void determineclassaverage() 38 { Δήλωση μεθόδου 39 // create Scanner to obtain input from command window determinecla 40 Scanner input = new Scanner(System.in); ssaverage int total; // sum of grades entered by user Δήλωση και 43 int gradecounter; // number of the grade to be entered αρχικοποίηση next τη 44 int grade; // grade value entered by user μεταβλητή input 45 int average; // average of grades τύπου Scanner // initialization phase 48 total = 0; // initialize total 49 gradecounter = 1; // initialize loop counter 50 Δήλωση τοπικών μεταβλητών total, gradecounter, grade and average τύπου int

30 51 // processing phase 52 while (gradecounter<=10) // loop 10 times 53 { 54 System.out.print("Enter grade: "); // prompt 55 grade = input.nextint(); // input next gradε 56 total = total + grade; // add grade 57 gradecounter = gradecounter + 1; // increment 58 } // end while // termination phase 61 average = total / 10; // integer division // display total and average of grades Αύξηση της μεταβλητήςμετρητή gradecounter 64 System.out.printf("\nTotal of all 10 grades is %d\n", total); 65 System.out.printf("Class average is %d\n", average); 66 } // end method determineclassaverage } // end class GradeBook Εμφάνιση αποτελεσμάτων Υπολογισμός μέσου όρου βαθμών Ο βρόχος while επαναλαμβάνεται για όσο ισχύει ότι gradecounter <= 10

31 1 // Fig. 4.7: GradeBookTest.java 2 // Create GradeBook object and invoke its determineclassaverage method. 3 4 public class GradeBookTest 5 { 6 public static void main(string args[]) 7 { 8 // create GradeBook object mygradebook and 9 // pass course name to constructor 10 GradeBook mygradebook = new GradeBook( 11 "CS101 Introduction to Java Programming"); mygradebook.displaymessage(); // display welcome message 14 mygradebook.determineclassaverage(); // find average 15 } // end main } // end class GradeBookTest Δημιουργία νέου (new) αντικειμένου GradeBook Πέρασμα του ονόματος του μαθήματος στον κατασκευαστή GradeBook ως string Κλήση της determineclassaverage μεθόδου της GradeBook

32 Παρατηρήσεις Η εμπειρία έχει δείξει ότι το πιο δύσκολο κομμάτι επίλυσης προβλήματος σε έναν υπολογιστή είναι η επινόηση και ανάπτυξη του αλγόριθμου επίλυσης Εφόσον έχει καθοριστεί ένας σωστός αλγόριθμος, η διαδικασία παραγωγής ενός προγράμματος Java program (που να δουλεύει :-)) είναι απλά ρουτίνα

33 Αποφυγή λαθών Να αρχικοποιείτε κάθε μετρητή (counter) και μεταβλητή συνόλου (total), είτε στη δήλωσή της είτε με μια εντολή ανάθεσης Συνήθως οι μεταβλητές total αρχικοποιούνται στο 0. οι μετρητές αρχικοποιούνται στο 0 ή το 1.

34 Welcome to the grade book for CS101 Introduction to Java Programming! Enter grade: 67 Enter grade: 78 Enter grade: 89 Enter grade: 67 Enter grade: 87 Enter grade: 98 Enter grade: 93 Enter grade: 85 Enter grade: 82 Enter grade: 100 Total of all 10 grades is 846 Class average is 84

35 Συνηθισμένο λάθος Το να θεωρούμε ότι η ακέραιη διαίρεση στρογγυλοποιεί αντί να αποκόπτει μπορεί να οδηγήσει σε λανθασμένα αποτελέσματα. Για παράδειγμα,το 7 4, που φυσιολογικά ισούται με 1.75, αποκόπτεται σε 1 στην αριθμητική των ακεραίων, αντί να στρογγυλοποιείται στο 2.

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

37 Παράδειγμα 2 Ο Ψευδοκώδικας του προηγούμενου προβλήματος για επανάληψη ελεγχόμενη από τιμή σήματος/τιμή-φρουρό (sentinel ή flag) για την επίλυση του προβλήματος εύρεσης του μέσου όρου βαθμών σε μία τάξη 1 Initialize total to zero 2 Initialize counter to zero 3 4 Prompt the user to enter the first grade 5 Input the first grade (possibly the sentinel) (π.χ ) 6 7 While the user has not yet entered the sentinel 8 Add this grade into the running total 9 Add one to the grade counter 10 Prompt the user to enter the next grade 11 Input the next grade (possibly the sentinel) If the counter is not equal to zero 14 Set the average to the total divided by the counter 15 Print the average 16 else 17 Print No grades were entered

38 1 // Fig. 4.9: GradeBook.java 2 // GradeBook class that solves class-average program using 3 // sentinel-controlled repetition. 4 import java.util.scanner; // program uses class Scanner 5 6 public class GradeBook 7 { 8 private String coursename; // name of course this GradeBook represents 9 10 // constructor initializes coursename 11 public GradeBook(String name) 12 { 13 coursename = name; // initializes coursename 14 } // end constructor // method to set the course name 17 public void setcoursename(string name) 18 { 19 coursename = name; // store the course name 20 } // end method setcoursename // method to retrieve the course name 23 public String getcoursename() 24 { 25 return coursename; 26 } // end method getcoursename 27 Ανάθεση τιμής στη μεταβλητή coursename Δήλωση μεθόδου setcoursename Δήλωση μεθόδου getcoursename

39 28 // display a welcome message to the GradeBook user 29 public void displaymessage() 30 { 31 // getcoursename gets the name of the course 32 System.out.printf("Welcome to the grade book for\n%s!\n\n", 33 getcoursename()); 34 } // end method displaymessage // determine the average of an arbitrary number of grades 37 public void determineclassaverage() 38 { 39 // create Scanner to obtain input from command window 40 Scanner input = new Scanner(System.in); int total; // sum of grades 43 int gradecounter; // number of grades entered 44 int grade; // grade value 45 double average; // number with decimal point for average // initialization phase 48 total = 0; // initialize total 49 gradecounter = 0; // initialize loop counter // processing phase 52 // prompt for input and read grade from user 53 System.out.print("Enter grade or -1 to quit: "); 54 grade = input.nextint(); 55 Δήλωση μεθόδου displaymessage Δήλωση μεθόδου determineclassaverage Δήλωση και αρχικοποίηση τη μεταβλητή input τύπου Scanner Δήλωση τοπικών μεταβλητών total, gradecounter, grade and average τύπου int

40 56 // loop until sentinel value read from user 57 while (grade!= -1) 58 { 59 total = total + grade; // add grade to total 60 gradecounter = gradecounter + 1; // increment counter // prompt for input and read next grade from user 63 System.out.print("Enter grade or -1 to quit: "); 64 grade = input.nextint(); 65 } // end while // termination phase 68 // if user entered at least one grade if (gradecounter!= 0) 70 { 71 // calculate average of all grades entered 72 average = (double) total / gradecounter; // display total and average (with two digits of precision) 75 System.out.printf("\nTotal of the %d grades entered is %d\n", 76 gradecounter, total); 77 System.out.printf( "Class average is %.2f\n", average); 78 } // end if 79 else // no grades were entered, so output appropriate message 80 System.out.println("No grades were entered"); 81 } // end method determineclassaverage } // end class GradeBook Ο βρόχος while επαναλαμβάνεται για όσο ισχύει ότι grade!= -1 δηλαδή μέχρις ότου η τιμή «φρουρός» γίνει - 1 Υπολογισμός του μέσου όρου χρησιμοποιώντας τον τελεστή αλλαγής τύπου (double) για ευθεία μετατροπή του τύπου Εμφάνιση μέσου όρου Εμφάνιση μηνύματος No grades were entered

41 Τελεστής αλλαγής τύπου Ο τελεστής αλλαγής τύπου χρησιμοποιείται για τη μετατροπή μεταξύ πρωταρχικών αριθμητικών τύπων, όπως int και double, και μεταξύ σχετιζόμενων τύπων αναφοράς (Πολυμορφισμός). Τελεστής αλλαγής τύπου σε λάθος τύπο => compilation errors ή runtime errors.

42 Java μετατροπές τύπων Μερικές φορές είναι βολική η μετατροπή ενός τύπου σε άλλο Π.χ. Μετατροπή ενός integer σε double κατά τον υπολογισμό Ποιες είναι οι δυνατές μετατροπές? Μετατροπές δεδομένων μπορούν να γίνουν μεταξύ διαφορετικών τύπων όταν δεν χάνεται πληροφορία Δυνατές από less precise σε more precise τύπους 2 είδη μετατροπών δεδομένων Widening ασφαλέστερη από small data type σε larger : char, short -> int, long, float, double Narrowing μπορεί να χαθεί πληροφορία από large data type σε smaller : double, float, long, int -> char, short

43 Αριθμητική προώθηση Συμβαίνει αυτόματα όταν τελεστές σε εκφράσεις μετατρέπουν τους τελεσταίους Π.χ. Όταν ένας αριθμός integer και ένας floating-point number χρησιμοποιούνται ως τελεσταίοι σε μία απλή αριθμητική πράξη, το αποτέλεσμα είναι floating point

44 Κανόνες προώθησης

45 1 // Fig. 4.10: GradeBookTest.java 2 // Create GradeBook object and invoke its determineclassaverage method. 3 4 public class GradeBookTest 5 { 6 public static void main(string args[]) 7 { αντικειμένου GradeBook 8 // create GradeBook object mygradebook and 9 // pass course name to constructor 10 GradeBook mygradebook = new GradeBook( 11 "CS101 Introduction to Java Programming"); mygradebook.displaymessage(); // display welcome message 14 mygradebook.determineclassaverage(); // find average of grades 15 } // end main } // end class GradeBookTest Κλήση της determineclassaverage μεθόδου της GradeBook Δημιουργία νέου (new) Πέρασμα του ονόματος του μαθήματος στον κατασκευαστή GradeBook ως string

46 Welcome to the grade book for CS101 Introduction to Java Programming! Enter grade or -1 to quit: 97 Enter grade or -1 to quit: 88 Enter grade or -1 to quit: 72 Enter grade or -1 to quit: -1 Total of the 3 grades entered is 257 Class average is 85.67

47 Παράδειγμα 3 Ψευδοκώδικας για το πρόβλημα αποτελεσμάτων εξετάσεων 1 Initialize passes to zero 2 Initialize failures to zero 3 Initialize student counter to one 4 5 While student counter is less than or equal to 10 6 Prompt the user to enter the next exam result 7 Input the next exam result 8 9 If the student passed 10 Add one to passes 11 Else 12 Add one to failures Add one to student counter Print the number of passes 17 Print the number of failures If more than eight students passed 20 Print Raise tuition

48 1 // Fig. 4.12: Analysis.java 2 // Analysis of examination results. 3 import java.util.scanner; // class uses class Scanner 4 5 public class Analysis Δήλωση τοπικών μεταβλητών της 6 { processexamresults 7 public void processexamresults 8 { 9 // create Scanner to obtain input from command window 10 Scanner input = new Scanner(System.in); // initializing variables in declarations 13 int passes = 0; // number of passes 14 int failures = 0; // number of failures 15 int studentcounter = 1; // student counter 16 int result; // one exam result (obtains value from user) // process 10 students using counter-controlled loop 19 while (studentcounter <= 10) 20 { 21 // prompt user for input and obtain value from user 22 System.out.print("Enter result (1 = pass, 2 = fail): "); 23 result = input.nextint(); 24 Ο βρόχος while επαναλαμβάνεται για όσο ισχύει ότι studentcounter <= 10

49 25 // if...else nested in while 26 if (result == 1) // if result 1, 27 passes = passes + 1; // increment passes; 28 else // else result is not 1, so 29 failures = failures + 1; // increment failures // increment studentcounter so loop eventually terminates 32 studentcounter = studentcounter + 1; 33 } // end while // termination phase; prepare and display results 36 System.out.printf("Passed: %d\nfailed: %d\n", passes, failures); // determine whether more than 8 students passed 39 if (passes > 8) 40 System.out.println("Raise Tuition"); 41 } // end method processexamresults } // end class Analysis Έλεγχος για το αν ο φοιτητής πέρασε ή απέτυχε και αύξηση της αντίστοιχης μεταβλητής Έλεγχος αν περισσότεροι από 8 φοιτητές πέρασαν στην εξέταση

50 1 // Fig. 4.13: AnalysisTest.java 2 // Test program for class Analysis. 3 4 public class AnalysisTest 5 { 6 public static void main( String args[] ) 7 { 8 Analysis application = new Analysis(); // create Analysis object 9 application.processexamresults(); // call method to process results 10 } // end main } // end class AnalysisTest Δημιουργία ενός αντικειμένου Analysis

51 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 2 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Passed: 9 Failed: 1 Raise Tuition Περισσότεροι από 8 μαθητές πέρασαν την εξέταση Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 2 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 2 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 2 Enter result (1 = pass, 2 = fail): 2 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Enter result (1 = pass, 2 = fail): 1 Passed: 6 Failed: 4 ΑΣΚΗΣΗ: Τροποποιήστε την κλάση Analysis ώστε να επιτρέπει ως είσοδο μόνο 1 ή 2, ανάλογα με το αποτέλεσμα των εξετάσεων, και σε οποιαδήποτε άλλη είσοδο, να τυπώνει μήνυμα λάθους

52 Συνδυαστικοί Τελεστές Εκχώρησης Συνδυαστικοί τελεστές εκχώρησης Κάθε πρόταση της μορφής: μεταβλητή = μεταβλητή τελεστής έκφραση; Όπου τελεστής είναι ένας εκ των +, -, *, / ή % μπορεί να γραφεί στη μορφή: μεταβλητή τελεστής= έκφραση; Για παράδειγμα: η πρόταση c = c + 3; Μπορεί να γραφεί ως c += 3; Αυτή η πρόταση προσθέτει 3 στην τιμή της μεταβλητής c και αποθηκεύει το αποτέλεσμα στη μεταβλητή c

53 Αριθμητικοί Συνδυαστικοί Τελεστές Εκχώρησης Assignment operator Sample expression Explanation Assigns Assume: int c = 3, d = 5, e = 4, f = 6, g = 12; += c += 7 C = c to c -= d -= 4 d = d to d *= e *= 5 e = e * 5 20 to e /= f /= 3 f = f / 3 2 to f %= g %= 9 g = g % 9 3 to g

54 Τελεστές αύξησης και μείωσης Μοναδιαίοι τελεστές αύξησης και μείωσης Ο μοναδιαίος τελεστής αύξησης (++) προσθέτει ένα σε μία μεταβλητή Ο μοναδιαίος τελεστής μείωσης (--) αφαιρεί ένα από μία μεταβλητή Εκ των προτέρων τελεστής αύξησης (και μείωσης) Αλλάζει την τιμή της μεταβλητής, έπειτα χρησιμοποιεί τη νέα τιμή της μεταβλητής στην έκφραση όπου εμφανίζεται Εκ των υστέρων τελεστής αύξησης (και μείωσης) Χρησιμοποιεί την τρέχουσα τιμή της μεταβλητής στην έκφραση στην οποία εμφανίζεται, έπειτα αλλάζει την τιμή της μεταβλητής

55 Τελεστές αύξησης και μείωσης Operator Called prefix increment postfix increment prefix decrement postfix decrement Sample expression Explanation ++a a++ --b b-- Increment a by 1, then use the new value of a in the expression in which a resides. Use the current value of a in the expression in which a resides, then increment a by 1. Decrement b by 1, then use the new value of b in the expression in which b resides. Use the current value of b in the expression in which b resides, then decrement b by 1.

56 1 // Fig. Outline 4.16: Increment.java 2 // Prefix increment and postfix increment operators. 3 4 public class Increment 5 { 6 public static void main( String args[] ) 7 { 8 int c; 9 10 // demonstrate postfix increment operator 11 c = 5; // assign 5 to c 12 System.out.println( c ); 13 System.out.println( c++ ); 14 System.out.println( c ); System.out.println(); // skip a line // demonstrate prefix increment operator 19 c = 5; // assign 5 to c 20 System.out.println( c ); 21 System.out.println( ++c ); 22 System.out.println( c ); } // end main } // end class Increment Αύξησε εκ των υστέρων τη μεταβλητή c Αύξησε εκ των προτέρων τη μεταβλητή c

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

58 Παράδειγμα i = 0; count = 2 + i++; i count 1 2 i = 0; count = i; i count 1 3

59 Πρωταρχικοί τύποι Η Java αναφέρεται ως γλώσσα σθεναρών τύπων Όλες οι μεταβλητές έχουν έναν τύπο Σε αντίθεση με τη C και C++, οι πρωταρχικοί τύποι στη Java μπορούν να μεταφερθούν σε όλες τις πλατφόρμες που υποστηρίζουν Java Χάριν σε αυτό και πολλά άλλα χαρακτηριστικά δυνατοτήτων μεταφοράς της Java, ένας προγραμματιστής μπορεί να γράψει ένα πρόγραμμα μία φορά και να είναι σίγουρος ότι θα εκτελείται σε κάθε πλατφόρμα υπολογιστή που υποστηρίζει Java Αυτή η δυνατότητα αναφέρεται μερικές φορές ως WORA (Write Once, Run Anywhere Γράφετε μία φορά, εκτελείτε οπουδήποτε).

60 Ασκήσεις Γράψτε 4 διαφορετικές προτάσεις που καθεμία προσθέτει το 1 στη μεταβλητή x x = x+1; x += 1; ++x; x++; Ποια η τιμή των μεταβλητών στην ακόλουθη πρόταση? Υποθέστε ότι όταν αρχίζει η εκτέλεση της πρότασης, όλες οι μεταβλητές είναι τύπου int και έχουν την τιμή 5 product *= x++; product= 25; x=6;

61 Ασκήσεις Προσδιορίστε τα λάθη στον ακόλουθο κώδικα: while ( c<=5) { product *= c; ++c; if (gender == 1) System.out.println ( Woman ); else; System.out.println ( Man ); while ( z >= 0) sum += z;

62 Ασκήσεις class Test { public static void main(string[] args) { int result, val_1, val_2; result = (val_1 = 1) + (val_2 = 2); System.out.println("val_1 = "+val_1); System.out.println("val_2 = "+val_2); System.out.println("result = "+result); } } val_1 =? 1 val_2 =? 2 result =? 3

63 Ασκήσεις float result; int i,j; i=25; j=10; result = i/j; Result? 2.0!!! float result; int i,j; i=25; j=10; result = (float) i/j; Result? 2.5!!!

64 Άλλες γνωστές δομές ελέγχου for, do while, switch

65 Ακολουθεί παράδειγμα χρήσης της εντολής while

66 1 // Fig. 5.1: WhileCounter.java 2 // Counter-controlled repetition with the while repetition statement. 3 4 public class WhileCounter 5 { 6 public static void main( String args[] ) 7 { 8 int counter = 1; // declare and initialize control variable 9 10 while ( counter <= 10 ) // loop-continuation condition 11 { Condition tests for counter s 12 System.out.printf( "%d ", counter ); final value 13 ++counter; // increment control variable by 1 14 } // end while System.out.println(); // output a newline 17 } // end main 18 } // end class WhileCounter Increment for counter Control-variable name is counter Control-variable initial value is 1

67 Ακολουθούν παραδείγματα χρήσης της εντολής for

68 1 // Fig. 5.2: ForCounter.java 2 // Counter-controlled repetition with the for repetition statement. 3 4 public class ForCounter 5 { 6 public static void main( String args[] ) 7 { 8 // for statement header includes initialization, 9 // loop-continuation condition and increment 10 for ( int counter = 1; counter <= 10; counter++ ) 11 System.out.printf( "%d ", counter ); System.out.println(); // output a newline 14 } // end main 15 } // end class ForCounter Αύξηση μετρητή counter Το όνομα της μεταβλητής ελέγχου είναι counter Η αρχική της τιμή είναι 1 Έλεγχος συνθήκης για την τελική τιμή του counter

69 Παραδείγματα χρήσης for

70 Παραδείγματα χρήσης for for ( initialization; loopcontinuationcondition; increment ) statement; can usually be rewritten as: initialization; while ( loopcontinuationcondition ) { statement; increment; }

71 Παραδείγματα χρήσης for Μεταβλητές ελέγχου σε εντολές for Η μεταβλητή αλλάζει από 1 εως 100 με αυξήσεις κατά 1 for ( int i = 1; i <= 100; i++ ) Η μεταβλητή αλλάζει από 100 εως 1 με αυξήσεις κατά -1 for ( int i = 100; i >= 1; i-- ) Η μεταβλητή αλλάζει από 7 εως 77 με αυξήσεις κατά 7 for ( int i = 7; i <= 77; i += 7 ) Η μεταβλητή αλλάζει από 20 εως 2 με μειώσεις κατά 2 for ( int i = 20; i >= 2; i -= 2 ) Η μεταβλητή αλλάζει με βάση την ακολουθία : 2, 5, 8, 11, 14, 17, 20 for ( int i = 2; i <= 20; i += 3 ) Η μεταβλητή αλλάζει με βάση την ακολουθία : 99, 88, 77, 66, 55, 44, 33, 22, 11, 0 for ( int i = 99; i >= 0; i -= 11 )

72 1 // Fig. 5.5: Sum.java 2 // Summing integers with the for statement. 3 4 public class Sum 5 { 6 public static void main( String args[] ) 7 { increment number by 2 each iteration 8 int total = 0; // initialize total 9 10 // total even integers from 2 through for ( int number = 2; number <= 20; number += 2 ) 12 total += number; System.out.printf( "Sum is %d\n", total ); // display results 15 } // end main 16 } // end class Sum Sum is 110 Άθροισμα ζυγών αριθμών από το 2 μέχρι το 20. Αποθήκευση αποτελέσματος σε μεταβλητή int με το όνομα total

73 1 // Fig. 5.6: Interest.java 2 // Compound-interest calculations with for. 3 4 public class Interest 5 { 6 public static void main( String args[] ) 7 { 8 double amount; // amount on deposit at end of each year 9 double principal = ; // initial amount before interest 10 double rate = 0.05; // interest rate // display headers 13 System.out.printf( "%s%20s\n", "Year", "Amount on deposit" ); 14 Η Java μεταχειρίζεται τους αρ. κινητής υποδιαστολής σαν τύπους double Το δεύτερο string στοιχίζεται στα δεξιά και εμφανίζεται με ένα εύρος πεδίου 20

74 15 // calculate amount on deposit for each of ten years 16 for ( int year = 1; year <= 10; year++ ) 17 { 18 // calculate new amount for specified year Υπολογισμός του amount με εντολή for 19 ); amount = principal * Math.pow( rate, year // display the year and the amount 22 ); System.out.printf( "%4d%,20.2f\n", year, amount 23 } // end for 24 } // end main 25 } // end class Interest Χρήση του κόμματος (,) για εμφάνιση του amount με διαχωριστή χιλιάδων Οι κλάσεις παρέχουν μεθόδους που εκτελούν εργασίες σε αντικείμενα. Στην πραγματικότητα οι περισσότερες μέθοδοι καλούνται σε ένα συγκεκριμένο αντικείμενο. Πολλές κλάσεις παρέχουν μεθόδους που εκτελούν εργασίες και δεν απαιτούν αντικείμενα. Τέτοιες μέθοδοι ονομάζονται static μέθοδοι Η Java δεν περιλαμβάνει τελεστή ύψωσης σε δύναμη, συνεπώς οι σχεδιαστές της κλάσης Math όρισαν τη static μέθοδο pow για την ύψωση τιμής σε δύναμη

75 Year Amount on deposit 1 1, , , , , , , , , ,628.89

76 Ακολουθούν παραδείγματα χρήσης της εντολής do while Παρόμοιο με την εντολή while Ελέγχει τη συνθήκη συνέχισης του βρόχου, μετά την εκτέλεση του σώματος του βρόχου Άρα, το σώμα του βρόχου εκτελείται τουλάχιστον μία φορά

77 1 // Fig. 5.7: DoWhileTest.java 2 // do...while repetition statement. 3 4 public class DoWhileTest 5 { 6 public static void main( String args[] ) 7 { 8 int counter = 1; // initialize counter 9 10 do 11 { 12 System.out.printf( "%d ", counter ); 13 ++counter; 14 } while ( counter <= 10 ); // end do...while System.out.println(); // outputs a newline 17 } // end main 18 } // end class DoWhileTest Declares and initializes control variable counter Variable counter s value is displayed before testing counter s final value

78 Ακολουθούν παραδείγματα χρήσης της εντολής switch

79 1 // Fig. 5.9: GradeBook.java 2 // GradeBook class uses switch statement to count A, B, C, D and F grades. 3 import java.util.scanner; // program uses class Scanner 4 5 public class GradeBook 6 { 7 private String coursename; // name of course this GradeBook represents 8 private int total; // sum of grades 9 private int gradecounter; // number of grades entered 10 private int acount; // count of A grades 11 private int bcount; // count of B grades 12 private int ccount; // count of C grades 13 private int dcount; // count of D grades 14 private int fcount; // count of F grades // constructor initializes coursename; 17 // int instance variables are initialized to 0 by default 18 public GradeBook( String name ) 19 { 20 coursename = name; // initializes coursename 21 } // end constructor // method to set the course name 24 public void setcoursename( String name ) 25 { 26 coursename = name; // store the course name 27 } // end method setcoursename 28

80 29 // method to retrieve the course name 30 public String getcoursename() 31 { 32 return coursename; 33 } // end method getcoursename // display a welcome message to the GradeBook user 36 public void displaymessage() 37 { 38 // getcoursename gets the name of the course 39 System.out.printf( "Welcome to the grade book for\n%s!\n\n", 40 getcoursename() ); 41 } // end method displaymessage // input arbitrary number of grades from user 44 public void inputgrades() 45 { 46 Scanner input = new Scanner( System.in ); int grade; // grade entered by user System.out.printf( "%s\n%s\n %s\n %s\n", 51 "Enter the integer grades in the range ", 52 "Type the end-of-file indicator to terminate input:", 53 "On UNIX/Linux/Mac OS X type <ctrl> d then press Enter", 54 "On Windows type <ctrl> z then press Enter" ); 55

81 56 // loop until user enters the end-of-file indicator 57 while ( input.hasnext() ) 58 { 59 grade = input.nextint(); // read grade 60 total += grade; // add grade to total 61 ++gradecounter; // increment number of grades // call method to increment appropriate counter 64 incrementlettergradecounter( grade ); 65 } // end while 66 } // end method inputgrades // add 1 to appropriate counter for specified grade 69 public void incrementlettergradecounter( int numericgrade ) 70 { 71 // determine which grade was entered 72 switch ( grade / 10 ) 73 { 74 case 9: // grade was between case 10: // and acount; // increment acount 77 break; // necessary to exit switch case 8: // grade was between 80 and bcount; // increment bcount 81 break; // exit switch 82 Η (grade / 10 ) είναι έκφραση ελέγχου Η συνθήκη βρόχου χρησιμοποιεί τη μέθοδο hasnext για να προσδιορίσει να υπάρχουν άλλα δεδομένα εισόδου Η εντολή switch καθορίζει ποια ταμπέλα case θα εκτελεστεί, ανάλογα με την έκφραση ελέγχου

82 83 case 7: // grade was between 70 and ccount; // increment ccount 85 break; // exit switch case 6: // grade was between 60 and dcount; // increment dcount 89 break; // exit switch default: // grade was less than fcount; // increment fcount 93 break; // optional; will exit switch anyway 94 } // end switch 95 } // end method incrementlettergradecounter // display a report based on the grades entered by user 98 public void displaygradereport() 99 { 100 System.out.println( "\ngrade Report:" ); // if user entered at least one grade if ( gradecounter!= 0 ) 104 { 105 // calculate average of all grades entered 106 double average = (double) total / gradecounter; 107 Η προεπιλεγμένη περίπτωση default case είναι η grade μικρότερο του 60

83 108 // output summary of results 109 System.out.printf("Total of the %d grades entered is %d\n", 110 gradecounter, total ); 111 System.out.printf("Class average is %.2f\n", average); 112 System.out.printf("%s\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n", 113 "Number of students who received each grade:", 114 "A: ", acount, // display number of A grades 115 "B: ", bcount, // display number of B grades 116 "C: ", ccount, // display number of C grades 117 "D: ", dcount, // display number of D grades 118 "F: ", fcount ); // display number of F grades 119 } // end if 120 else // no grades were entered, so output appropriate message 121 System.out.println( "No grades were entered" ); 122 } // end method displaygradereport 123} // end class GradeBook

84 1 // Fig. 5.10: GradeBookTest.java 2 // Create GradeBook object, input grades and display grade report. 3 4 public class GradeBookTest 5 { 6 public static void main( String args[] ) 7 { 8 // create GradeBook object mygradebook and 9 // pass course name to constructor 10 GradeBook mygradebook = new GradeBook( 11 "CS101 Introduction to Java Programming" ); mygradebook.displaymessage(); // display welcome message 14 mygradebook.inputgrades(); // read grades from user 15 mygradebook.displaygradereport(); // display report based on grades 16 } // end main 17 } // end class GradeBookTest Κλήση των public μεθόδων της GradeBook για μέτρηση βαθμών

85 Welcome to the grade book for CS101 Introduction to Java Programming! Enter the integer grades in the range Type the end-of-file indicator to terminate input: On UNIX/Linux/Mac OS X type <ctrl> d then press Enter On Windows type <ctrl> z then press Enter ^Z Grade Report: Total of the 10 grades entered is 778 Class average is Number of students who received each grade: A: 4 B: 1 C: 2 D: 1 F: 2

86 Εντολές break και continue break/continue Αλλαγή ροής ελέγχου Εντολή break Προκαλεί άμεση έξοδο από τη δομή ελέγχου Χρησιμοποιείται με τις εντολές while, for, do while ή switch Εντολή continue Παραλείπει τις εναπομένουσες εντολές σε ένα σώμα βρόχου Προχωρά στην επόμενη επανάληψη Χρησιμοποιείται με τις εντολές while, for ή do while

87 1 // Fig. 5.12: BreakTest.java 2 // break statement exiting a for statement. 3 public class BreakTest 4 { 5 public static void main( String args[] ) 6 { 7 int count; // control variable also used after loop terminates 8 9 for ( count = 1; count <= 10; count++ ) // loop 10 times 10 { 11 if ( count == 5 ) // if count is 5, 12 break; // terminate loop System.out.printf( "%d ", count ); 15 } // end for System.out.printf( "\nbroke out of loop at count = %d\n", count ); 18 } // end main 19 } // end class BreakTest Broke out of loop at count = 5 Επανάληψη 10 φορές Έξοδος από την εντολή for (break) όταν η count γίνει 5

88 1 // Fig. 5.13: ContinueTest.java 2 // continue statement terminating an iteration of a for statement. 3 public class ContinueTest 4 { 5 public static void main( String args[] ) 6 { Επανάληψη 10 φορές 7 for ( int count = 1; count <= 10; count++ ) // loop 10 times 8 { 9 if ( count == 5 ) // if count is 5, 10 continue; // skip remaining code in loop System.out.printf( "%d ", count ); 13 } // end for System.out.println( "\nused continue to skip printing 5" ); 16 } // end main 17 } // end class ContinueTest Παραλείπεται η γραμμή 12 και συνεχίζουμε από τη γραμμή 7 όταν η count γίνει Used continue to skip printing 5

89 Παράδειγμα Ποια θα είναι η τιμή της μεταβλητής a μετά την εκτέλεση του παρακάτω κώδικα? public class test { } public static void main( String args[] ){ int a=3; switch (a) { default: } case 1: case 2: case 3: }; a=a+1; a=a+2; a=a+3; a=a+100;

90 Λογικοί Τελεστές Λογικοί τελεστές Επιτρέπουν το σχηματισμό πολύπλοκων συνθηκών Συνδυάζουν απλές συνθήκες Java λογικοί τελεστές && (conditional AND) & ^! (conditional OR) (boolean logical AND) (boolean logical inclusive OR) (boolean logical exclusive OR) (logical NOT)

91 Λογικοί Τελεστές Τελεστής συνθηκών AND (&&) Έστω το ακόλουθο if if ( gender == FEMALE && age >= 65 ) ++seniorfemales; Η συνδυαστική συνθήκη είναι true Αν και μόνο αν και οι δύο απλές συνθήκες είναι true Η συνδυαστική συνθήκη είναι false Αν και μόνο αν μία από τις δύο ή και οι δύο απλές συνθήκες είναι false

92 Πίνακας αλήθειας expression1 expression2 expression1 && expression2 false false False false true False true false False true true True

93 Λογικοί Τελεστές Τελεστής συνθηκών OR ( ) Έστω το ακόλουθο if if ( ( semesteraverage >= 90 ) ( finalexam >= 90 ) System.out.println( Student grade is A ); Η συνδυαστική συνθήκη είναι true Αν και μόνο αν μία από τις δύο ή και οι δύο απλές συνθήκες είναι true Η συνδυαστική συνθήκη είναι false Αν και μόνο αν και οι δύο απλές συνθήκες είναι false

94 Πίνακας αλήθειας expression1 expression2 expression1 expression2 false false false false true true true false true true true true

95 Λογικοί Τελεστές Εκτίμηση Short-Circuit πολύπλοκων συνθηκών Μέρη έκφρασης που περιέχουν τελεστές && ή εκτιμούνται μόνο μέχρι να είναι γνωστό αν η συνθήκη είναι true ή false Π.χ., ( gender == FEMALE ) && ( age >= 65 ) Σταματά αμέσως αν η gender δεν είναι ίση με FEMALE

96 Λογικοί Τελεστές Boolean Logical AND (&) Operator Όπως και && ΟΜΩΣ πάντοτε υπολογίζουν και τους δύο τελεστέους Boolean Logical OR ( ) Operator Όπως και ΟΜΩΣ πάντοτε υπολογίζουν και τους δύο τελεστέους

97 Λογικοί Τελεστές Boolean Logical Exclusive OR (^) Αν ένας από τους τελεστέους είναι true και ο άλλος είναι false Τότε true Αν και οι δύο τελεστέοι είναι true ή και οι δύο είναι false Τότε false Logical Negation (!) Operator Μοναδιαίος τελεστής

98 Πίνακας αλήθειας expression1 expression2 expression1 ^ expression2 false false false false true true true false true true true false

99 Πίνακας αλήθειας expression false true!expression true false

100 Ασκήσεις Προσδιορίστε τα λάθη στον ακόλουθο κώδικα: i=1; while ( i<=10); } ++i; Ο ακόλουθος κώδικας θα πρέπει να προβάλει τιμές 1-10: n=1; while ( n < 10) System.out.println ( n++ );

101 Πηγές/Acknowledgements H. M. Deitel, P. J. Deitel, Java Προγραμματισμός, 6η έκδοση, Μ. Γκιούρδας, 2006 D. Barnes, M. Kolling, Αντικειμενοστρεφής Προγραμματισμός σε Java, Κλειδάριθμος, 2008 Βασίλης Χριστοφίδης, Αντικειμενοστρεφής Προγραμματισμός, Πανεπιστήμιο Κρήτης Κ. Τσαγκάρης, Εισαγωγή στις εφαρμογές της Java, Πανεπιστήμιο Πειραιώς Jones, Evan, Adam Marcus, and Eugene Wu Introduction to Programming in Java,January IAP (Massachusetts Institute of Technology: MIT OpenCourseWare), (Accessed 10 Mar, 2013). License: Creative Commons BY-NC-SA

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 12/3/2018 Αναπλ. Καθ. Δρ. Ανδριάνα Πρέντζα Δρ. Βασιλική Κούφη Παράδειγμα 2 Ο Ψευδοκώδικας του προηγούμενου προβλήματος

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

Αριθμητικοί υπολογισμοί χρησιμοποιούνται σε όλα σχεδόν τα προγράμματα

Αριθμητικοί υπολογισμοί χρησιμοποιούνται σε όλα σχεδόν τα προγράμματα Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 28/03/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Αριθμητική Αριθμητικοί υπολογισμοί χρησιμοποιούνται

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

7. Δομές Ελέγχου (Control Statements)

7. Δομές Ελέγχου (Control Statements) 7. Δομές Ελέγχου (Control Statements) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Αλγόριθμοι, δομές ελέγχου και ψευδοκώδικας Δομές ελέγχου στη

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 5/3/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Εμφάνιση κειμένου με την printf System.out.printf

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 4/3/2019 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Βασικό λεξιλόγιο Μία ενότητα κώδικα, ένα πρόγραμμα

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Συλλογή απορριμμάτων Συλλογή απορριμμάτων (Garbage

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 23/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Υπερφόρτωση μεθόδων Υπερφόρτωση μεθόδων Πολλαπλές

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

4. Εισαγωγή στη Java

4. Εισαγωγή στη Java ΠΠΜ 401 - Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής 4. Εισαγωγή στη Java Χειμερινό εξάμηνο 2014 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Εισαγωγή στη γλώσσα προγραμματισμού

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

5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού

5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού 5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού Χειμερινό εξάμηνο 2013 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Αντικειμενοστραφής προγραμματισμός Τάξεις (classes)

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 18/4/216 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί

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

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

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

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

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/3/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Δημιουργία αντικειμένων μιας κλάσης Η σύνταξη

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

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

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

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

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

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

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

Δήλωση ακέραιων μεταβλητών. ροής με την στάνταρ είσοδο

Δήλωση ακέραιων μεταβλητών. ροής με την στάνταρ είσοδο Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Δομημένος Προγραμματισμός και Δομές Ελέγχου 1 Εισαγωγή Είσοδος/έξοδος Hello world: #include

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Χειρισμός Εξαιρέσεων Εξαίρεση (Exception) ένδειξη

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 27/3/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πίνακες στη Java Εισαγωγή Πίνακες Δομές δεδομένων

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

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

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

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

Πίνακες στη Java. Αντικειμενοστρεφής Προγραμματισμός 4/4/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Πίνακες στη Java. Αντικειμενοστρεφής Προγραμματισμός 4/4/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια. Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 4/4/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πίνακες στη Java 1 Εισαγωγή Πίνακες Δομές δεδομένων

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 III

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 03/04/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Static πεδία και μέθοδοι Τα περισσότερα δεδομένα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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

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

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης Προγραμματισμός Η/Υ Ενότητα 5: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής του προγράμματος

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 7 ομές Επαναλήψεις Ο βρόχος While ομές Έλεγχου

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

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

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

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

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

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

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

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

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

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

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους: Επαναλήψεις - Loops Οι επαναλήψεις σε ένα πρόγραμμα μας επιτρέπουν μια ομάδα εντολών να εκτελείται για όσες φορές επιθυμούμε Υπάρχουν τρεις τρόποι επανάληψης εντολών με τη χρήση: While loops For loops

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

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 26/3/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Εισαγωγή στις Κλάσεις και Αντικείμενα Java's "Building

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής Προγραμματισμός Η/Υ Ενότητα 4: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

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

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

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

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

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

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 12: Συνοπτική Παρουσίαση Ανάπτυξης Κώδικα με το Matlab Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

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

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

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

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

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

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

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

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

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

Κεφάλαιο 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 Λογικές παραστάσεις Σχεσιακοί

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

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 5.1-5.3: Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 9-1 οµές Έλεγχου Προγράµµατος Μέχρι τώρα είδαµε τις ακόλουθες δοµές έλεγχου (program control structure) ενός προγράµµατος

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 27/3/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Κλάσεις και Αντικείμενα Εισαγωγή Στατικότητα Κλάσης

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 2 η : Η Γλώσσα Προγραμματισμού VB.NET (1 ο Μέρος) Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο) Προγραμματισμός Η/Υ Ενότητα 2β: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας του Τελεστή

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

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

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

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

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

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 3: Εντολές ελέγχου επανάληψη Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Περιεχόµενα Τύποι εδοµένων int, char, float, double Τελεστές =,+,-,*,/,% Αριθµητικές εκφράσεις

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

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου 1 Διάλεξη 20: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Η έννοια της αναδρομής - Μη-αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων - Παραδείγματα Ανάδρομης - Αφαίρεση

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

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

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

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού

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

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

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

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

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

ιαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ιαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 2 ο : Εντολές ελέγχου > εντολές υπό συνθήκη Στόχοι μαθήματος Να κατανοήσετε τη σχέση μεταξύ εντολών και παραστάσεων. Να αναγνωρίζετε

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

Η εντολή 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 Μαθηματικές συναρτήσεις Λέξεις κλειδιά στη

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

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής Στόχοι και αντικείμενο ενότητας Βασικές κατασκευές Γλωσσών Προγραμματισμού (ΓΠ) Δομές ελέγχου ροής προγράμματος #4.. ντολές πιλογής Προτάσεις διακλάδωσης υπό συνθήκη ντολές if, if Φωλιασμένα (nested) if

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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