που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο

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

Download "που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο"

Transcript

1

2 Το παρόν εκπονήθηκε στο πλαίσιο του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ» της Πράξης «Επαγγελµατικό λογισµικό στην ΤΕΕ: επιµόρφωση και εφαρµογή» (Γ ΚΠΣ, ΕΠΕΑΕΚ, Μέτρο 2.3, Ενέργεια 2.3.2) που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο 2

3 ΕΙΣΑΓΩΓΗ ιαδικασία εκκίνησης της Java και το NetBeans IDE. Για να µπορέσουµε να γράψουµε προγράµµατα σε Java, χρειάζεται να διαθέτουµε το ειδικό πακέτο ανάπτυξης εφαρµογών ( Java development kit ή JDK). To JDK είναι µία γλώσσα προγραµµατισµού. Συγχρόνως περιέχει µεταγλωττιστή, διερµηνευτή, αποσφαλµατωτή (debugger), αποσυµβολοµεταφραστή (disassembler). Αρχικά θα πρέπει να κατεβάσουµε από τη σελίδα της Sun Microsystems το κατάλληλο JDK, το οποίο θα πρέπει να είναι έκδοσης JDK 1.5.5_0 ή µεταγενέστερο, γιατί το NetBeans το απαιτεί. Η διαδικασία που θα ακολουθηθεί είναι : Πηγαίνετε στη σελίδα της Sun µετά στη επιλογή downloads και από τη συγκεκριµένη σελίδα επιλέξτε να κατεβάσετε το JDK 6. Αφού ολοκληρωθεί το κατέβασµα, τότε εγκαταστήστε το JDK 6 στο υπολογιστή σας, ακολουθώντας βήµα - βήµα τη διαδικασία που προσδιορίζετε από τις οθόνες εγκατάστασης. Αφού ολοκληρωθεί η εγκατάσταση του JDK 6, το επόµενο βήµα είναι να εγκαταστήσετε το NetBeans IDE που σας παρέχεται. Το περιβάλλον του NetBeans IDE φαίνεται παρακάτω : 3

4 ηµιουργία µιας εφαρµογής Java Για να δηµιουργηθεί µια εφαρµογή Java πρέπει να ακολουθηθούν τα εξής βήµατα : Αρχικά πρέπει να δηµιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία (εφαρµογές) του project. Για τη δηµιουργία του project κάνετε τα εξής : File new project στη καρτέλα categories επιλέγεις Java στη καρτέλα projects επιλέγεις Java Applications κλικ Next. Στη επόµενη καρτέλα που ανοίγει επιλέγεις : Project Name, Project Location, Project Folder. Απενεργοποιείς τις επιλογές Create Main Class και Set as Main Project κλικ στο Finish. 4

5 Αµέσως µετά πρέπει να δηµιουργηθεί αρχείο της εφαρµογής µέσα στο project, το οποίο από µόνο του θα έχει προέκταση.java. Για να δηµιουργηθεί κάνεις τα εξής : File new File στη καρτέλα που ανοίγει, στο project επιλέγεις το project στο οποίο θα καταχωρηθεί το αρχείο, στη επιλογή categories επιλέγεις Java, και στη καρτέλα file types επιλέγεις Java main Class. κλικ Next. Στη επόµενη καρτέλα επιλέγεις όνοµα για τη κλάση και µετά κλικ στο Finish. Αφού ολοκληρωθεί επιτυχώς η παραπάνω διαδικασία, έχετε τη παρακάτω οθόνη : Βλέπετε αριστερά το project firstclass που δηµιουργήθηκε, καθώς και τη εφαρµογή First.java. 5

6 Βλέπετε αριστερά το αρχείο First.java, στο οποίο είµαστε έτοιµοι να πληκτρολογήσουµε τον κώδικα του προγράµµατος. Πληκτρολογούµε τη εντολή που ακολουθεί στο αρχείο First.java. System.out.println ( Hello World!!!!!!! ); Πρέπει να δώσουµε προσοχή στη πληκτρολόγηση γιατί στη Java έχουν διαφορά τα κεφαλαία από τα πεζά. Επίσης, κάθε εντολή στη Java ολοκληρώνεται µε το ερωτηµατικό (;). Οπότε το αρχείο First.java διαµορφώνεται ως εξής : 6

7 Στο σηµείο αυτό είναι απαραίτητο να εξηγήσουµε ότι βλέπουµε στο ορισµό του προγράµµατος. Class First Ορισµός της κλάσης First. Ο ορισµός περιλαµβάνει µόνο µία µέθοδο, τη main(). Οι αγκύλες πηγαίνουν ανά ζεύγη και περικλείουν αυτόνοµα κοµµάτια κώδικα. Public Η λέξη public δηλώνει ότι η µέθοδος είναι προσπελάσιµη από παντού. static Η λέξη static δηλώνει ότι η µέθοδος είναι προσπελάσιµη ακόµη και αν δεν έχουν δηµιουργηθεί αντικείµενα της κλάσης. Void σηµαίνει ότι δεν επιστρέφει καµιά τιµή. Main () Η βασική µέθοδος. Μέσα στη Main() υπάρχει η εντολή : System.out.println( Hello World!! ); System Είναι το όνοµα µίας βασικής κλάσης, η οποία περιλαµβάνει αντικείµενα και µεταβλητές, για υποστήριξη εισαγωγής δεδοµένων από το 7

8 πληκτρολόγιο. Επίσης χρησιµοποιείται και για την έξοδο χαρακτήρων στην οθόνη. out Το αντικείµενο out δηλώνει σαν τυπική έξοδο την οθόνη και είναι µέλος της κλάσης System. println () Είναι µέθοδος του αντικειµένου out και τυπώνει στην οθόνη την φράση που βρίσκεται µέσα στην παρένθεση. Προσοχή στο ερωτηµατικό (;), το οποίο πρέπει να είναι στο τέλος κάθε εντολής. Μεταγλώττιση ενός προγράµµατος Τρόπος Α Χρησιµοποιώντας το NetBeans µεταγλωττίζουµε ένα πρόγραµµα µε τη ακόλουθη διαδικασία : Στη γραµµή µενού κλικ στη επιλογή Build κλικ στη επιλογή Compile First.java. Αν η διαδικασία είναι επιτυχής, δηλαδή δεν υπάρχουν συντακτικά λάθη, τότε στη οθόνη του NetBeans στη περιοχή output, στο κάτω µέρος της οθόνης, παίρνεις το µήνυµα BUILD SUCCESSFUL. Αν υπάρχουν λάθη, τότε στη περιοχή του output εµφανίζεται ο συνολικός αριθµός των λαθών και συγχρόνως στη περιοχή του προγράµµατος υπογραµµίζονται µε κόκκινο χρώµα τα λάθη τα οποία εντοπίστηκαν. Η παραπάνω διαδικασία φαίνεται στις παρακάτω οθόνες : 8

9 ιαδικασία επιτυχούς µεταγλώττισης του προγράµµατος First.java. ιαδικασία µεταγλώττισης µε λάθη στο κώδικα του προγράµµατος 9

10 Αν η διαδικασία µεταγλώττισης είναι επιτυχής τότε δηµιουργείται το First.class αρχείο, που είναι ένα αρχείο που περιέχει κώδικα Byte. Που βρίσκονται τα αρχεία First.java και First.class ; Αν υποθέσουµε ότι σαν όνοµα project δώσαµε firstclass, και σαν project Location δώσαµε το δίσκο (c:), τότε µετά τη µεταγλώττιση στο c: δηµιουργήθηκε φάκελος µε το όνοµα του project δηλαδή firstclass. To First.java βρίσκεται στο path c:\firstclass\src. Το First.class βρίσκεται στο Path c:\firstclass\built\classes. Τρόπος Β Μπορούµε να τρέξουµε το πρόγραµµα µας από τη γραµµή εντολών του MS-DOS. Ανοίγουµε ένα τέτοιο παράθυρο µε το εξής τρόπο : Έναρξη Προγράµµατα βοηθήµατα Γραµµή Εντολών. Το αρχείο µας First.java πρέπει να έχει σωθεί στο φάκελο bin του JDK, δηλαδή στο path : c:\program files\java\jdk1.6.0_10\bin. Η εντολή µεταγλώττισης ενός προγράµµατος είναι : Javac First.java Αν δεν υπάρχουν συντακτικά λάθη τότε εµφανίζεται η παρακάτω οθόνη: 10

11 Αν υπάρχουν συντακτικά λάθη, τότε στη οθόνη της γραµµής εντολών εµφανίζονται τα λάθη όπως φαίνονται στη οθόνη που ακολουθεί : Εκτέλεση ενός προγράµµατος Τρόπος Α Για να εκτελέσετε ένα πρόγραµµα από το NetBeans πρέπει : Run Run File Run First.java. Παρακάτω φαίνεται η διαδικασία εκτέλεσης, και το αποτέλεσµα στη περιοχή του output. 11

12 Επιτυχής εκτέλεσης του προγράµµατος Τρόπος Β Από το περιβάλλον του MS-DOS, για να εκτελέσουµε το First.class αρχείο, γράφουµε στο σηµείο των εντολών την εξής εντολή : Java First ( εν χρειάζεται να γράψουµε τη προέκταση του αρχείου First.class). Το αποτέλεσµα φαίνεται στη οθόνη που ακολουθεί : 12

13 Εκτέλεση προγράµµατος όπου απαιτείται εισαγωγή στοιχείων από το πληκτρολόγιο. Ενδέχεται να χρειαστεί να εισάγουµε δεδοµένα από το πληκτρολόγιο, κατά το χρόνο εκτέλεσης ενός προγράµµατος. Αυτό γίνεται προσθέτοντας παραµέτρους στη εντολή του διερµηνευτή java, δηλαδή Java όνοµα προγράµµατος όρισµα1 όρισµα2 όρισµα3.. Η Java αποθηκεύει αυτά τα ορίσµατα σε ένα πίνακα µε το όνοµα args. Το πρώτο όρισµα αντιστοιχεί στο στοιχείο args[0], το δεύτερο στο στοιχείο args[1] κλπ. Αν ο κώδικας του προγράµµατος είναι ο παρακάτω, στη οθόνη που ακολουθεί, φαίνεται η διαδικασία µεταγλώττισης και εκτέλεσης. public class second public static void main (String [] args) int x1; double x2; x1= Integer.valueOf (args [0]).intValue (); x1 = x1* x1; 13

14 NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR x2= Double.valueOf (args[1]).doublevalue (); x2=math.pow(x2,2); System.out.println ("x1 * x1 = " + x1); System.out.println ("x2 * x2 = " + x2); 14

15 ΕΝΟΤΗΤΑ 1 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1) Να µπορέσουν οι µαθητές να διακρίνουν ποια θα είναι τα στοιχεία εισόδου, ποια η επεξεργασία και ποια η έξοδος ενός προγράµµατος. 2) Πως θα δηλώσουν µία µεταβλητή και τι τύπο θα ορίσουν για κάθε µεταβλητή µέσα στο πρόγραµµα τους. 3) Να καταλάβουν, ότι για να δηλώσουν µία µεταβλητή, πρέπει πρώτα να υπάρχει ο τύπος της µεταβλητής και µετά το όνοµα της. 4) Να συνειδητοποιήσουν, τι τύπο θα προσδιορίσουν για κάθε µεταβλητή, γιατί αφενός έχει σηµασία η ταχύτητα εκτέλεσης του προγράµµατος και αφετέρου να µη χάνονται σηµαντικά ψηφία (significant digits) κατά τη επεξεργασία. Πχ αν θα δηλώσουν int ή float µία µεταβλητή. 5) Να ορίζουν µία µεταβλητή σύµφωνα µε τους κανόνες που απαιτεί η Java και κυρίως να µη χρησιµοποιούν δεσµευµένες λέξεις. 6) Να καταλάβουν πότε θα χρησιµοποιούν τους τύπους δεδοµένων byte, short, int, long, float και double. 7) Να καταλάβουν τη διαφορά χαρακτήρα και αλφαριθµητικού, καθώς και τη χρήση της λογικής µεταβλητής boolean. ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Ποια από τις παρακάτω είναι µία έγκυρη τιµή για µια µεταβλητή boolean; A) false B) false C) 10 D) int number; 15

16 Άσκηση 2 Ποια από τις παρακάτω δεν είναι µια σύµβαση ονοµατοδοσίας µεταβλητών στη Java; A) Μετά από τη πρώτη λέξη στο όνοµα της µεταβλητής, κάθε επόµενη λέξη αρχίζει µε κεφαλαίο γράµµα. B) Το πρώτο γράµµα του ονόµατος της µεταβλητής είναι πεζό. C) Όλα τα γράµµατα είναι κεφαλαία. Άσκηση 3 Ποιος από τους παρακάτω τύπους δεδοµένων περιέχει τιµές από έως 32768; Α) char B) short C) byte D) float. Άσκηση 4 Ποια από τις παρακάτω µεταβλητές δεν είναι έγκυρη; Α) diameter B) _var C) $local D) 7var Άσκηση 5 Μετά από τις δηλώσεις των παρακάτω µεταβλητών, ποια θα είναι η τιµή της µεταβλητής num1; Int num, num1, num2 = 100; A) 0 B) 49 C) 50 D) δεν είναι ορισµένη. Άσκηση 6 Ποια η διαφορά των τύπων µεταβλητών byte και int; Ποια η διαφορά ενός χαρακτήρα και ενός αλφαριθµητικού; Για ποιο σκοπό χρησιµοποιούµε τη boolean δήλωση µεταβλητής; 16

17 ΕΝΟΤΗΤΑ 2 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1. ηλώνετε τις µεταβλητές του προγράµµατος και το κάθε τύπο. 2. Να χρησιµοποιείτε τους τελεστές αριθµητικών πράξεων. 3. Να χρησιµοποιείτε τους µοναδιαίους τελεστές αύξησης και µείωσης. 4. Να καταχωρείτε τιµή σε µεταβλητή. 5. Να χρησιµοποιείτε τους τελεστές σύγκρισης καθώς και τους λογικούς τελεστές. 6. Να καταλάβετε τη διαφορά µεταξύ ενός χαρακτήρα και ενός αλφαριθµητικού. 7. Να κάνετε µετατροπή από ένα τύπο δεδοµένων σε άλλο. 8. Να µετατρέπετε αλφαριθµητικά σε αριθµούς. 9. Να χρησιµοποιείτε τις συναρτήσεις της κλάσης Math. 10. Να εισάγετε δεδοµένα από το πληκτρολόγιο. 11. Να κατασκευάζετε τα δικά σας προγράµµατα. ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Ποια θα είναι η τιµή της µεταβλητής z µετά τη εκτέλεση του παρακάτω κώδικα; Int z=100; ++z; a) 100 b) 99 c) 101 d) αόριστη Άσκηση 2 Ποιο το αποτέλεσµα της πράξης : 14%5; a) 4 b) 2 c) 14 d) 0 Άσκηση 3 Ποιο το αποτέλεσµα των παρακάτω πράξεων ; a) (10 = = 6+4) && (5<7) b) (5<7) (10 = = 11) (3!=3) c) (4!=5) && ((5 = = 3+2) (5<5+2)); 17

18 Άσκηση 4 Να δηµιουργηθεί πρόγραµµα, που να δίνονται τιµές σε δύο ακέραιες µεταβλητές και στη συνέχεια να υπολογίζεται και να τυπώνεται το άθροισµα, η διαφορά, το γινόµενο, το ακέραιο πηλίκο και το πηλίκο. Για όλα τα αποτελέσµατα να χρησιµοποιηθούν ακέραιες µεταβλητές, ενώ για το πηλίκο µεταβλητές τύπου double. Άσκηση 5 Nα υπολογισθεί το εµβαδόν και το µήκος της περιφέρειας κύκλου, όταν δίνεται η ακτίνα του. Άσκηση 6 Να γραφεί πρόγραµµα το οποίο να δέχεται από το πληκτρολόγιο ένα ποσό µάζας m και να βρίσκει το ισοδύναµο ποσό ενέργειας Ε, µε βάση τον τύπο της φυσικής E = m c 2 όπου c η ταχύτητα του φωτός (c = km/sec). Άσκηση 7 Ο ολική αντίσταση Rολ δύο αντιστάσεων R1 & R2 που συνδέονται σε σειρά, είναι Rολ = R1 + R2. Να γράψετε πρόγραµµα το οποίο να δέχεται σαν εισόδους τις τιµές των R1 & R2 και να βρίσκει και να τυπώνει την συνολική αντίσταση Rολ. Άσκηση 8 Να φτιαχτεί πρόγραµµα που να υπολογίζει τις πραγµατικές ρίζες µίας εξίσωσης ευτέρου Βαθµού της µορφής : ax 2 + bx + c = 0 Άσκηση 9 Να δηµιουργηθεί πρόγραµµα που να δίνονται δύο αριθµοί από το πληκτρολόγιο και στην συνέχεια ο πρώτος να µετατρέπεται σε δεδοµένο τύπου int, ενώ ο δεύτερος σε double. Στην συνέχεια το πρόγραµµα να βρίσκει και να τυπώνει τα τετράγωνά τους 18

19 ΕΝΟΤΗΤΑ 3 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1. καταλάβετε τη χρήση της δοµής if else. 2. Χρησιµοποιείτε τα ένθετα (nested) if. 3. Να χρησιµοποιείτε το τελεστή? : 4. Χρησιµοποιείτε τη εντολή switch. 5. Να εξασκηθείτε επαρκώς στη υλοποίηση προγραµµάτων. ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Στο παρακάτω κοµµάτι προγράµµατος η µεταβλητή selection έχει τη τιµή 10. θα εκτελεστεί η δεύτερη γραµµή του προγράµµατος; If (selection = = 3) Number = selection; Άσκηση 2 Να ερµηνεύσετε τη λειτουργία του παρακάτω προγράµµατος : Switch (x) Case 1 : Case 2 : Y = 1; Break; Case 3 : Y = 2; Break; Default : Y = 5; Άσκηση 3 Να δηµιουργηθεί πρόγραµµα που να διαβάζει τρεις διαφορετικούς ακεραίους x,y,z. Να τοποθετηθούν σε φθίνουσα σειρά. 19

20 Άσκηση 4 Να γραφεί πρόγραµµα που να βρίσκει ένα τυχαίο αριθµό από το 1 µέχρι το 7 και ανάλογα να τυπώνει τη αντίστοιχη µέρα της εβδοµάδας. Άσκηση 5 ίνεται ότι: Public class cases Public static void main (String [] args) Float x = 9; Float y = 5; Int z = (int) (x / y); Switch (z) Case 1: X = x + 2; Case 2: X = x + 3; Default: X = x + 1; System.out.println ( value of x : + x ); Ποια θα είναι η τιµή της χ όταν εκτελεστεί το παραπάνω κοµµάτι προγράµµατος; Α) 9.0 Β) 11.0 Γ) 15.0 ) δεν θα µεταγλωττιστεί. Άσκηση 6 Να γραφεί πρόγραµµα το οποίο να διαβάζει από το πληκτρολόγιο ένα γράµµα. Αν ο χρήστης πάτησε το γράµµα Ε τότε το πρόγραµµα να υπολογίζει το εµβαδόν ενός κύκλου. Αν πάτησε οποιοδήποτε άλλο πλήκτρο τότε το πρόγραµµα να υπολογίζει τη περίµετρο του κύκλου. Άσκηση 7 Να διαβαστούν δύο αριθµοί και σε περίπτωση που ο πρώτος αριθµός, είναι µικρότερος του δεύτερου, να υπολογιστεί και να εκτυπωθεί το άθροισµά τους. ιαφορετικά να υπολογιστεί και να εκτυπωθεί, το γινόµενο τους. 20

21 Άσκηση 8 Να εισαχθεί ένας ακέραιος που αντιστοιχεί σε µία ηλικία και να βρεθεί σε ποια όρια, εντάσσεται η δεδοµένη ηλικία, εµφανίζοντας σχετικό µήνυµα. Άσκηση 9 Να διαβάζονται δύο αριθµοί που αντιστοιχούν στο ύψος και στο βάρος ενός άντρα. Να εκτυπώνεται ότι ό άντρας είναι «ελαφρύς» αν το βάρος του είναι κάτω από 80 κιλά, ή να εκτυπώνεται «βαρύς» στην αντίθετη περίπτωση. Επίσης να εκτυπώνεται «κοντός» αν το ύψος του είναι κάτω από 1,70, αλλιώς να εκτυπώνεται «ψηλός». Άσκηση 10 Στο λογαριασµό της ΕΗ η κατανάλωση υπολογίζεται από την διαφορά µεταξύ της προηγούµενης και της τελευταίας ένδειξης. Η αξία του λογαριασµού προκύπτει ως εξής : Υπάρχει πάγια χρέωση 15 ευρώ Για κατανάλωση µέχρι 800 KWH υπάρχει χρέωση 1,20 ευρώ/ kwh Για κατανάλωση από 801 khw έως khw, υπάρχει χρέωση 1,70 euro/khw. Για κατανάλωση από khw έως kwh, υπάρχει χρέωση 2,5 euro/khw. Για κατανάλωση πάνω από khw, υπάρχει χρέωση 3,00 euro/khw. Να γίνει πρόγραµµα που να ζητά την τελευταία και την προηγούµενη ένδειξη και να υπολογίζει την αξία του λογαριασµού. 21

22 ΕΝΟΤΗΤΑ 4 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1. Να καταλάβετε το σκοπό ύπαρξης των βρόχων. 2. Να δείτε πως δουλεύει ο βρόχος for, while, και do while. 3. Να συνειδητοποιήσετε πότε θα χρησιµοποιείτε το κάθε βρόχο. 4. Να µπορείτε να µετατρέπετε τη δοµή ενός προγράµµατος από τον ένα βρόχο στο άλλο βρόχο. 5. Να καταλάβετε τη βασική διαφορά ανάµεσα στους βρόχους while και do-while. 6. Να καταλάβετε γιατί χρησιµοποιούµε το ατέρµονο βρόχο. 7. Να µπορείτε να χρησιµοποιείτε τους ένθετους βρόχους. 8. Να χρησιµοποιείτε το continue και το continue µε label. 9. Να χρησιµοποιείτε το break και το break µε label. ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Πότε χρησιµοποιούµε το βρόγχο for και πότε while ή do-while; Ποια η διαφορά χρήσης του while και του do-while; Πότε ένας βρόχος while παύει να εκτελείται; Πότε συµβαίνει το ίδιο σε ένα βρόχο for; Άσκηση 2 Γράψτε ένα βρόχο while ο οποίος να εκτελείται 10 φορές. Πώς µπορούµε να γράψουµε τον ίδιο βρόχο χρησιµοποιώντας το for; Άσκηση 3 Πόσες φορές θα εκτελεστεί ο παρακάτω βρόχος : For (int i=3; i< 15; i += 3) ++count; 22

23 Άσκηση 4 Τι κάνει το παρακάτω κοµµάτι προγράµµατος : For (int i=1; i<10; i++) For (int j=1; j<10; j++) System.out.println ( * ); System.out.println (); Άσκηση 5 Να γραφεί πρόγραµµα το οποίο να τυπώνει πίνακα αντιστοιχιών θερµοκρασίας Κελσίου και Φαρενάιτ από 0 µέχρι 50 Φαρενάιτ. Ο τύπος µετατροπής είναι : C = 5 / 9 (F 32). Άσκηση 6 Να δηµιουργηθεί πρόγραµµα το οποίο να παράγει ένα τυχαίο αριθµό µεταξύ του 1 και του 100 και στη συνέχεια να εξετάζει αν ο αριθµός αυτός είναι περιττός ή άρτιος. Σε κάθε περίπτωση να τυπώνει και το αντίστοιχο µήνυµα. Άσκηση 7 Να δηµιουργηθεί πρόγραµµα που να διαβάζει τρεις διαφορετικούς ακεραίους x,y,z. Να τοποθετηθούν σε φθίνουσα σειρά. Άσκηση 8 Να γίνει πρόγραµµα στο οποίο να δίνεται ένας ακέραιος αριθµός και στη συνέχεια να υπολογίζεται το άθροισµα όλων των αριθµών. Να γίνει η συγκεκριµένη άσκηση και µε τους τρεις βρόχους. Άσκηση 9 Να δηµιουργηθεί πρόγραµµα το οποίο να δίνει σε µία µεταβλητή y τη τιµή τύπου float Στη συνέχεια η µεταβλητή αυτή να υποδιπλασιάζεται µέχρι να γίνει µικρότερη από τη τιµή

24 Άσκηση 10 Χρησιµοποιώντας ένθετους βρόχους, να γίνει πρόγραµµα που να κατασκευάζει τη προπαίδεια του 1,2,3,4,5,6,7,8,9,10. Άσκηση 11 Να γραφεί πρόγραµµα που να βρίσκει ένα τυχαίο αριθµό από το 1 µέχρι το 7 και ανάλογα να τυπώνει τη αντίστοιχη µέρα της εβδοµάδας Άσκηση 12 Να γραφεί πρόγραµµα που να υπολογίζει το άθροισµα των περιττών και των άρτιων αριθµών που είναι µικρότεροι από το 100. Άσκηση 13 Να γραφεί πρόγραµµα το οποίο να παράγει 50 τυχαίους αριθµούς από το 1 µέχρι το 100 και να υπολογίζει το άθροισµα και το µέσο όρος τους. Άσκηση 14 Στο λογαριασµό της ΕΗ η κατανάλωση υπολογίζεται από την διαφορά µεταξύ της προηγούµενης και της τελευταίας ένδειξης. Η αξία του λογαριασµού προκύπτει ως εξής : Υπάρχει πάγια χρέωση 15 ευρώ Για κατανάλωση µέχρι 800 KWH υπάρχει χρέωση 1,20 ευρώ/ kwh Για κατανάλωση από 801 khw έως khw, υπάρχει χρέωση 1,70 euro/khw. Για κατανάλωση από khw έως kwh, υπάρχει χρέωση 2,5 euro/khw. Για κατανάλωση πάνω από khw, υπάρχει χρέωση 3,00 euro/khw. Να γίνει πρόγραµµα που να ζητά την τελευταία και την προηγούµενη ένδειξη καθώς και το αριθµό µετρητή του ρολογιού της ΕΗ. Να υπολογίζει την αξία του λογαριασµού για Ν συνδροµητές και το πρόγραµµα να σταµατά τη εκτέλεση του, όταν σαν αριθµό µετρητή πατήσουµε το 0. 24

25 ΕΝΟΤΗΤΑ 5 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1) Να ορίσετε πίνακα µιας διάστασης, να καταχωρήσετε τιµές στο πίνακα και να τον επεξεργαστείτε. 2) Να καταλάβετε το λόγο ύπαρξης των πινάκων πολλαπλών διαστάσεων και την επεξεργασία τους. 3) Να κατανοήσετε τις δύο µορφές ταξινόµησης. Ασκήσεις µε λυµένα παραδείγµατα για εµπέδωση της ύλης Άσκηση 1 Το παράδειγµα που ακολουθεί είναι ένα παράδειγµα ενός βρόχου while που αντιγράφει τα στοιχεία ενός πίνακα ακεραίων σε ένα πίνακα αριθµών Float, αλλάζοντας τον τύπο κάθε στοιχείου σε Float. class Copying public static void main (String [] arguments) int [] array1 = 7, 4, 8, 1, 4, 1, 4 ; float [] array2 = new float [array1.length]; System.out.print ("array1: [ "); for (int i = 0; i < array1.length; i++) System.out.print (array1 [i] + " "); System.out.println ("]"); System.out.print ("array2: [ "); int count = 0; while (count < array1.length && array1 [count]!= 1) array2 [count] = (float) array1 [count]; System.out.print (array2 [count++] + " "); System.out.println("]"); 25

26 Άσκηση 2 Το παρακάτω πρόγραµµα δηµιουργεί, αρχικοποιεί, τροποποιεί και εξετάζει τα µέρη ενός πίνακα. class half public static void main (String [] arguments) int [] denver = , , ; int [] philadelphia = new int [denver.length]; int [] total = new int [denver.length]; int average; philadelphia [0] = ; philadelphia [1] = ; philadelphia [2] = ; total [0] = denver [0] + philadelphia [0]; total [1] = denver [1] + philadelphia [1]; total [2] = denver [2] + philadelphia [2]; average = (total [0] + total [1] + total [2]) / 3; System.out.println ("1993 production: " + total [0]); System.out.println ("1994 production: " + total [1]); System.out.println ("1995 production: " + total [2]); System.out.println ("Average production: "+ average); Άσκηση 3 Η παραπάνω άσκηση 2,τροποποιηµένη χρησιµοποιώντας βρόχους for, για να εξαλειφθεί ο επαναλαµβανόµενος κώδικας. class half public static void main (String [] arguments) int [] denver = , , ; int [] philadelphia = , , ; int [] total = new int [denver.length]; int sum = 0; for (int i = 0; i < denver.length; i++) total [i] = denver [i] + philadelphia [i]; System.out.println ((i ) + " production: " + total [i]); 26

27 sum += total [i]; System.out.println ("Average production: " + (sum / denver.length)); ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Με ποιο τρόπο δηλώνουµε ένα πίνακα 30 θέσεων; Πώς θα αναφερθούµε σε συγκεκριµένο στοιχεί του πίνακα; Ποια η µεγαλύτερη τιµή του δείκτη; Τι θα συµβεί αν προσπαθήσουµε να προσπελάσουµε ένα στοιχείο έξω από τα όρια του πίνακα; Άσκηση 2 ηλώστε ένα πίνακα δύο διαστάσεων µε 5 γραµµές και 4 στήλες. Γράψτε το διπλό for που απαιτείται για να ορίσετε τον πίνακα, να αλλάξετε τη τιµή κάποιου στοιχείου του και να τον εκτυπώσετε. Άσκηση 3 Να δηµιουργηθεί ένας πίνακας δέκα θέσεων και να καταχωρηθούν σε αυτόν τυχαίες τιµές. Να γίνει πρόγραµµα πού να σχηµατίζει το πίνακα και να υπολογισθούν : Α) το άθροισµα όλων των στοιχείων του πίνακα. Β) το µεγαλύτερο στοιχείο του πίνακα και σε ποια θέση εµφανίζεται. Γ) αν το µεγαλύτερο στοιχείο του πίνακα υπάρχει σε περισσότερες από µία θέσεις να αντικατασταθεί η τιµή αυτή µε το µηδέν. ) Να ταξινοµηθεί ο τροποποιηµένος πίνακας. Άσκηση 4 Να δηµιουργηθεί ένας πίνακας δύο διαστάσεων µε τρεις γραµµές και τρεις στήλες. Να γίνει πρόγραµµα που να σχηµατίζει το πίνακα αυτό και να υπολογίζει : Α) τον αντίστροφο του σε ένα άλλο πίνακα. Β) να δηµιουργηθούν δύο άλλοι πίνακες που θα προκύψουν από τη πρόσθεση και τη αφαίρεση του βασικού και του αντίστροφου. 27

28 Γ) για το βασικό πίνακα να βρίσκει το άθροισµα όλων των στοιχείων του. ) για το βασικό πίνακα να βρίσκει το άθροισµα της κάθε στήλης. Ε) για το βασικό πίνακα να βρίσκει το µεγαλύτερο της κάθε γραµµής. Ζ) για το αντίστροφο πίνακα να βρίσκει το άθροισµα της κυρίας διαγώνιου. 28

29 ΕΝΟΤΗΤΑ 6 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1. Να καταλάβετε τι είναι µέθοδος (function). 1. Να καταλάβετε πως δηλώνετε µία µέθοδος. 2. Να καταλάβετε πώς θα επιστρέψει τιµή µία µέθοδος. 3. Να δείτε το τρόπο πως θα καλέσετε µία µέθοδο. 4. Να καταλάβετε τη χρησιµότητα µιας αναδροµικής µεθόδου. Ασκήσεις µε λυµένα παραδείγµατα για εµπέδωση της ύλης Άσκηση 1 Το παρακάτω πρόγραµµα παίρνει δύο ορίσµατα, ένα µήνα και ένα έτος, και εµφανίζει τον αριθµό των ηµερών µέσα στο µήνα. class Day public static void main (String [] arguments) int yearin = 2002; int monthin = 12; if (arguments.length > 0) monthin = Integer.parseInt (arguments [0]); if (arguments.length > 1) yearin = Integer.parseInt (arguments [1]); System.out.println (monthin + "/" + yearin + " has " + countdays (monthin, yearin) + " days."); static int countdays (int month, int year) int count = -1; switch (month) case 1: case 3: case 5: case 7: case 8: case 10: 29

30 NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR case 12: count = 31; break; case 4: case 6: case 9: case 11: count = 30; break; case 2: if (year % 4 == 0) count = 29; else count = 28; if ((year % 100 == 0) & (year % 400!= 0)) count = 28; return count; Άσκηση 2 ηµιουργήστε µία εφαρµογή που εµφανίζει κάθε ηµεροµηνία µέσα σε ένα δεδοµένο έτος σε µία λίστα από την 1 Ιανουαρίου µέχρι τη 31 εκεµβρίου. class Year public static void main (String [] arguments) int year = 2000; if (arguments.length > 0) year = Integer.parseInt (arguments [0]); for (int month = 1; month < 13; month++) for (int day = 1; day <= countdays (month, year); day++) System.out.println (month + "/" + day + "/" + year); static int countdays (int month, int year) int count = -1; switch (month) case 1: case 3: case 5: 30

31 NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR case 7: case 8: case 10: case 12: count = 31; break; case 4: case 6: case 9: case 11: count = 30; break; case 2: if (year % 4 == 0) count = 29; else count = 28; if ((year % 100 == 0) & (year % 400!= 0)) count = 28; return count; ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Να δηµιουργηθεί πρόγραµµα και µέσα σε αυτό να δηµιουργηθεί η µέθοδος tetragon(), η οποία να βρίσκει το τετράγωνο ενός ακεραίου αριθµού. Το κυρίως πρόγραµµα να καλεί είκοσι φορές τη µέθοδο tetragon() για να βρίσκει και να τυπώνει τα τετράγωνα των αριθµών από 0 έως 19 Άσκηση 2 Να δηµιουργηθεί πίνακας 10 στοιχείων µε τυχαίους αριθµούς από το 0 µέχρι το 49. Να γίνει πρόγραµµα µε συναρτήσεις (µεθόδους) που να : Α) η συνάρτηση να επιστρέφει στο κυρίως πρόγραµµα το άθροισµα όλων των στοιχείων του πίνακα. Β) άλλη συνάρτηση να επιστρέφει στο κυρίως πρόγραµµα το µεγαλύτερο στοιχείο του πίνακα. 31

32 ΕΝΟΤΗΤΑ 7 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1. Μία µεταβλητή αλφαριθµητικού τύπου είναι ένα αντικείµενο της κλάσης String. Με τον όρο αλφαριθµητικά (string) εννοούµε µία σειρά από χαρακτήρες πχ ένα όνοµα 2. Για συνένωση δύο ή περισσοτέρων αλφαριθµητικών χρησιµοποιούµε τον τελεστή +. Για έλεγχο ισότητας δύο αλφαριθµητικών χρησιµοποιείται η µέθοδος equals. Η κλάση String περιέχει µεθόδους µε τις οποίες µπορούµε να µετατρέψουµε τα κεφαλαία γράµµατα σε πεζά και αντίστροφα. Αν θέλουµε να µη λαµβάνεται κατά τη σύγκριση υπ όψη το αν οι χαρακτήρες είναι κεφαλαίο ή πεζοί, τότε χρησιµοποιούµε τη µέθοδο equalsignorecase() αντί για τη equals. 3. Με τον όρο υπααλφαριθµητικό (substring) εννοούµε ένα αλφαριθµητικό, το οποίο βρίσκεται µέσα σε ένα αλφαριθµητικό µεγαλύτερο ή ίσο από αυτό. Για τη εξαγωγή ενός αλφαριθµητικού από ένα άλλο χρησιµοποιούµε τη µέθοδο substring(). Η σύνταξη της είναι : String substring (int αρχή, int τέλος) 3. Πολλές φορές χρειαζόµαστε να πάρουµε µεµονωµένους χαρακτήρες από ένα αλφαριθµητικό. Χρησιµοποιούµε µια µεταβλητή τύπου int για να προσδιορίσουµε τη θέση του χαρακτήρα σε συνδυασµό µε τη µέθοδο charat() 3. Η µέθοδος length(), µία χρήσιµη µέθοδος, για να µπορέσουµε να βρούµε το µήκος του αλφαριθµητικού. 3. Η µέθοδος replace() χρησιµοποιείται για να αντικατασταθούν κάποιοι χαρακτήρες ενός αλφαριθµητικού µε άλλους. Η µέθοδος replace() δέχεται δύο παραµέτρους. Ο πρώτος είναι ο χαρακτήρας που πρόκειται να αντικατασταθεί, και ο δεύτερος ο χαρακτήρας που θα πάρει τη θέση του. 3. Οι µέθοδοι indexof() και lastindexof() είναι δύο µέθοδοι που χρησιµοποιούνται για τον εντοπισµό χαρακτήρων µέσα σε ένα αλφαριθµητικό. 32

33 3. Στη Java έχουµε τη δυνατότητα να µετατρέψουµε διάφορους τύπους δεδοµένων σε αλφαριθµητικά µε τη µέθοδο valueof(). 3. Η µέθοδος parseint() διαβάζει το περιεχόµενο του αλφαριθµητικού, το µετατρέπει σε ακέραιο, και στη συνέχεια το καταχωρεί σε κάποια µεταβλητή. Ασκήσεις µε λυµένα παραδείγµατα για εµπέδωση της ύλης Παράδειγµα 1 Παράδειγµα ελέγχου ισότητας δύο αλφαριθµητικών public class b7 public static void main (String [] args) String string1 = "George"; String string2 = "george"; String string3 = "George"; System.out.println (string1 + "\n" + string2 + "\n" + string3); if (string1.equals (string3)) System.out.println ("string1 is equal to string3"); else System.out.println ("string1 is not equal to string3"); if (string2.equals (string3)) System.out.println ("string2 is equal to string3"); else System.out.println ("string2 is not equal to string3"); Παράδειγµα 2 Παράδειγµα ορισµού του υποαλφαριθµητικού (substring) public class b9 public static void main (String [] args) 33

34 String str1 = "Athens is the capital of Greece"; System.out.println (str1); String str2 = str1.substring (14,21); System.out.println (str2); String str3 = str1.substring (25,31); System.out.println (str3); NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR Παράδειγµα 3 Εύρεση του µήκους ενός αλφαριθµητικού και προσπέλαση µεµονωµένων χαρακτήρων. public class b10 public static void main (String [] args) String str1 = "Athens is the capital of Greece"; System.out.println ("the character at index 4 = " + str1.charat (4)); System.out.println ("the string contains = " + str1.length() + " characters"); Παράδειγµα 4 Παράδειγµα εντοπισµού χαρακτήρων µέσε σε ένα αλφαριθµητικό. public class b12 public static void main (String [] args) String str1 = "Athens is the Capital of Greece."; System.out.println (str1); int i = 0; int j = 0; int k = 0; i = str1.indexof ('e'); System.out.println ("the first index of 'e' = " + i); j = str1.indexof ('e', i+1); System.out.println ("the next index of 'e' = " + j); k = str1.lastindexof ('e'); 34

35 System.out.println ("the last index of 'e' = " + k); System.out.println (str1.substring (i)); Παράδειγµα 5 Παράδειγµα χρήσης της substring(). class Birthday public static void main (String [] arguments) String birthday = "08/23/2002"; String month = birthday.substring (0, 2); String day = birthday.substring (3, 5); String year = birthday.substring (6, 10); System.out.println ("Birthday: " + birthday); System.out.println ("Month: " + month); System.out.println ("Day: " + day); System.out.println ("Year: " + year); Παράδειγµα 6 Παράδειγµα χρήσης των µεθόδων length(), charat(), indexof() class CheckString public static void main (String [] arguments) String str = "Nobody ever went broke by buying IBM"; System.out.println ("The string is: " + str); System.out.println ("Length of this string: " + str.length ()); System.out.println ("The character at position 5: " + str.charat (5)); System.out.println ("The substring from 26 to 32: " + str.substring (26, 32)); System.out.println ("The index of the character v: " + str.indexof ('v')); System.out.println ("The index of the beginning of the " + "substring \"IBM\": " + str.indexof ("IBM")); System.out.println ("The string in upper case: " + str.touppercase ()); 35

36 Παράδειγµα 7 ηµιουργείστε µια κλάση µε µεταβλητές τα height, weight, depth, κάνοντας κάθε µεταβλητή ακέραιο. ηµιουργείστε µία εφαρµογή που χρησιµοποιεί τη παραπάνω κλάση, θέτει κάθε µια από τις τιµές σε ένα αντικείµενο και εµφανίζει τις τιµές. class Sample int height; int weight; int depth; class UseSample public static void main (String [] arguments) Sample thing = new Sample (); thing.height = 72; thing.weight = 1000; thing.depth = 420; System.out.println ("Height: " + thing.height); System.out.println ("Weight: " + thing.weight); System.out.println ("Depth: " + thing.depth); ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Σε ένα string, να µετρηθεί ο αριθµός των λέξεων «the» που υπάρχουν µέσα σε µια δεδοµένη φράση. Άσκηση 2 Γράψτε ένα πρόγραµµα το οποίο να δέχεται τη ηµεροµηνία σε µορφή «ηη/µµ/εε» και να τη µετατρέπει σε µορφή «ηη/µµ/20εε» δηλαδή την ηµεροµηνία 15/07/08 να την µετατρέψει σε 15/07/

37 Άσκηση 3 ηµιουργήστε ένα πρόγραµµα που δέχεται λέξεις για τους δέκα πρώτους αριθµούς (ένα έως δέκα) και να τις µετατρέπει σε ένα ακέραιο long. Χρησιµοποιείστε µια πρόταση switch για τη µετατροπή και ορίσµατα γραµµής εντολών για τις λέξεις. Άσκηση 4 ηµιουργείστε ένα πρόγραµµα που να ελέγχει αν δύο αντικείµενα τύπου String έχουν τις ίδιες τιµές. Άσκηση 5 Γράψτε πρόγραµµα που να µετατρέπει µία ηµεροµηνία γέννησης της µορφής ΜΜ/ΗΗ/ΕΕΕΕ σε τρία διαφορετικά strings. 37

38 ΕΝΟΤΗΤΑ 8 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1. Σε ένα αντικείµενο της κλάσης String δεν µπορούµε να αλλάξουµε ένα αλφαριθµητικό µέσα στο ίδιο το αντικείµενο. Η κλάση StringBuffer χρησιµοποιείται για αλφαριθµητικά που µεταβάλλονται. 2. Βασικές µέθοδοι της κλάσης StringBuffer είναι : Length () µας δίνει το χρησιµοποιούµενο µήκος Capacity () µας δίνει τη συνολική χωρητικότητα του String. Append () προσθέτουµε χαρακτήρες στο αντικείµενο 3. Οι µέθοδοι setcharat() και insert() χρησιµοποιούνται για να κάνουµε προσθήκες στο αλφαριθµητικό περιεχόµενο ενός αντικειµένου τύπου StringBuffer. 4. Eνδέχεται ένα αντικείµενο της κλάσης StringBuffer να θέλουµε να µετατραπεί σε αλφαριθµητικό, για αυτό χρησιµοποιούµε τη µέθοδο tostring (). 5. Η µέθοδος reverse() της κλάσης StringBuffer, χρησιµοποιείται για να γίνει αντιστροφή ενός αλφαριθµητικού τύπου StringBuffer. Ασκήσεις µε λυµένα παραδείγµατα για εµπέδωση της ύλης Παράδειγµα 1 Χρήση των συναρτήσεων append(), capacity(), length() σε ένα αντικείµενο της κλάσης StringBuffer. public class b16 public static void main (String [] args) StringBuffer sbf = new StringBuffer (40); System.out.println ("sbf = " + sbf); System.out.println ("sbf.lenght () = " + sbf.length ()); 38

39 System.out.println ("sbf.capacity () = " + sbf.capacity ()); sbf.append ("Athens is "); System.out.println (" "); System.out.println ("sbf = "+ sbf); System.out.println ("sbf.lenght () = " + sbf.length ()); System.out.println ("sbf.capacity () = " + sbf.capacity ()); sbf.append ("the capital of Greece "); System.out.println (" "); System.out.println ("sbf = " + sbf); System.out.println ("sbf.lenght () = " + sbf.length ()); System.out.println ("sbf.capacity () = " + sbf.capacity ()); Παράδειγµα 2 Μετατροπή αντικειµένου StringBuffer σε αλφαριθµητικό. public class b18 public static void main (String [] args) StringBuffer sbf = new StringBuffer ("my name is george"); System.out.println ("sbf = " + sbf); String str = sbf.tostring (); System.out.println ("str = " + sbf); ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Έχουµε το αλφαριθµητικό str1 = Athens is my favorite city. Ποιο τµήµα του επιστρέφεται µε την κλήση της µεθόδου str1.substring(3,6); Εάν δώσουµε str1.substring(4,12), πόσο είναι το µήκος του τµήµατος που επιστρέφεται; Άσκηση 2 Ποια η κυριότερη διαφορά µεταξύ της κλάσης String και StringBuffer; Με ποιες µεθόδους προσθέτουµε χαρακτήρες στο ήδη 39

40 υπάρχον αντικείµενο, βλέπουµε τη συνολική χωρητικότητα και τυπώνουµε το χρησιµοποιούµενο µήκος του αντικειµένου; Άσκηση 3 Να γίνει πρόγραµµα, όπου για ένα αντικείµενο της κλάσης StringBuffer, να αλλάξετε κάποιους χαρακτήρες του. Άσκηση 4 Να γίνει πρόγραµµα, όπου για ένα αντικείµενο της κλάσης StringBuffer που περιέχει ένα αλφαριθµητικό, να αντιστρέψετε τους χαρακτήρες του. 40

41 ΕΝΟΤΗΤΑ 9 Προσδοκώµενα αποτελέσµατα Μετά τη υλοποίηση των δραστηριοτήτων αυτής της ενότητας θα πρέπει να είστε σε θέση : 1) Τι είναι η κλάση και τι τα αντικείµενα. 2) Ποιος ο σκοπός ύπαρξης των µεταβλητών και των µεθόδων στο ορισµό της κλάσης. 3) Τι είναι οι µεταβλητές κλάσης και τι µεταβλητές στιγµιότυπου. 4) Τι είναι οι µέθοδοι κλάσης και τι οι µέθοδοι στιγµιότυπου. 5) Ποιος ο σκοπός ύπαρξης της µεταβλητής this. 6) Τι είναι οι κατασκευαστές, πως ορίζονται, και πως χρησιµοποιούνται για κατασκευάσουµε ένα αντικείµενο. 7) Πώς θα χρησιµοποιηθεί η κλάση που κατασκευάσαµε. 8) Γιατί υπάρχουν πολλοί κατασκευαστές. 9) Τι είναι τα πακέτα, πως χρησιµοποιούµε µία µέθοδο ή µία κλάση ενός πακέτου και ποια τα τυπικά πακέτα της Java. 10) Πως µπορούµε να δηµιουργήσουµε δικά µας πακέτα, ώστε να βάλουµε µέσα στα πακέτα τις δικές µας κλάσεις. 11) Τι είναι η ενθυλάκωση. 12) Τι σηµαίνει αν οι µεταβλητές και οι µέθοδοι µιας κλάσης δηλωθούν public, private, protected. 13) Τι είναι ο πολυµορφισµός και τι κληρονοµικότητα. Ασκήσεις µε λυµένα παραδείγµατα για εµπέδωση της ύλης Άσκηση 1 - ηµιουργία κλάσης και κατασκευαστή // κλάσεις και κατασκευαστές class circle static double pi = 3.14; static int count = 0; double radius; double x; double y; 41

42 // δηµιουργία του κατασκευαστή. circle (double r1, double x1, double y1) radius = r1; x = x1; y = y1; ++count; double area () return pi * radius * radius; Άσκηση 2 Πώς θα χρησιµοποιήσουµε τη παραπάνω κλάση που δηµιουργήσαµε και πως θα δηµιουργηθούν τα αντικείµενα; Αφού µεταγλωττίσουµε τη παραπάνω κλάση δηµιουργείται το circle.class αρχείο. Στη συνέχεια γράφουµε ένα άλλο πρόγραµµα, αυτό που ακολουθεί, µε το οποίο θα δηµιουργήσουµε τα αντικείµενα. public class test public static void main (String [] args) System.out.println ("number of objects = " + circle.count); // δηµιουργία αντικειµένου // circle = troxos; // troxos = new circle (5.0,1.0,1.0); // οι δύο παραπάνω εντολές µε τη επόµενη είναι ίδιες. // ηµιουργούν αντικείµενο circle troxos = new circle(5.0, 1.0, 1.0); System.out.println ("number of objects = " + troxos.count); circle roda = new circle (4.0, 5.0, 5.0); 42

43 System.out.println ("number of objects = " + roda.count); // εκτύπωση κάθε αντικειµένου System.out.println ("area of troxos = " + troxos.area ()); System.out.println ("area of roda = " + roda.area ()); Άσκηση 3 Άσκηση µε πολλαπλούς κατασκευαστές. Στο παρακάτω πρόγραµµα θα δηµιουργήσουµε δύο διαφορετικά αντικείµενα, ένα αντικείµενο µε το ένα κατασκευαστή και το άλλο αντικείµενο µε τον άλλο κατασκευαστή. Και οι δύο κατασκευαστές έχουν το ίδιο όνοµα µε τη κλάση αλλά διαφορετικές παραµέτρους. // κλάσεις και κατασκευαστές. // πολλαπλοί κατασκευαστές class circle1 static double pi = 3.14; static int count = 0; double radius; double x; double y; // δηµιουργία του constructor1 circle1 (double r1, double x1, double y1) radius = r1; x = x1; y = y1; ++count; // δηµιουργία του costructor2 circle1 (double r2) 43

44 x = 0.0; y = 0.0; radius = r2; ++count; double area() return pi * radius * radius; Ακολουθεί το πρόγραµµα που καλεί τη παραπάνω κλάση και η δηµιουργία των αντικειµένων µέσω πολλαπλών κατασκευαστών public class test public static void main (String [] args) System.out.println ("number of objects = " + circle1.count); // δηµιουργία του αντικειµένου // circle = troxos; // troxos = new circle (5.0, 1.0, 1.0); // οι δύο παραπάνω εντολές και η ακόλουθη είναι ίδιες // καλώντας το πρώτο κατασκευαστή. circle1 troxos = new circle1 (5.0, 1.0, 1.0); System.out.println ("number of objects = " + troxos.count); // καλώντας το δεύτερο constructor circle1 roda = new circle1 (4.0); System.out.println ("number of objects = " + roda.count); // εκτύπωση του εµβαδού για κάθε αντικείµενο που δηµιουργήθηκε System.out.println ("area of troxos = " + troxos.area ()); System.out.println ("area of roda = " + roda.area ()); 44

45 Άσκηση 4 Έστω οι παρακάτω εντολές : Circle kiklos1; Kiklos1 = new Circle (5.0, 4.0, 5.0); Οι παραπάνω δηλώσεις δηµιουργούν στη µνήµη ένα αντικείµενο τύπου Circle µε τα χαρακτηριστικά που αναφέρονται και ρυθµίζει τη µεταβλητή kiklos1 ώστε να δείχνει σε αυτό. Μπορούµε επίσης να δηµιουργήσουµε και µία άλλη µεταβλητή kiklos2 ως εξής : Circle kiklos2 = kiklos1; Tο ερώτηµα το οποίο τίθεται είναι το εξής: ηµιουργήσαµε νέο αντικείµενο; Όχι, δηµιουργήθηκε µία µεταβλητή που δείχνει ακριβώς στο ίδιο αντικείµενο. Εάν κάνουµε µία αλλαγή σε ένα αντικείµενο µέσω µιας µεταβλητής τότε οι αλλαγές περνάνε και στο άλλο αντικείµενο. Αυτό φαίνεται στο πρόγραµµα που ακολουθεί : public class test1 public static void main (String [] args) circle kyklos1, kyklos2; kyklos1 = new circle (5.0, 4.0, 5.0); kyklos2 = kyklos1; System.out.println ("kyklos 1 start--> radius = " + kyklos1.radius); System.out.println ("kyklos 2 start--> radius = " + kyklos2.radius); System.out.println (" "); kyklos2 = kyklos1; kyklos1.radius = 20.0; System.out.println ("kyklos 1 --> radius = " + kyklos1.radius); System.out.println ("kyklos 2 --> radius = " + kyklos2.radius); System.out.println (" "); kyklos2.radius = 50.0; System.out.println ("kyklos 2 --> radius = " + kyklos2.radius); System.out.println ("kyklos 1 --> radius = " + kyklos1.radius); 45

46 Άσκηση 5 Άσκηση δηµιουργίας πακέτου Να δηµιουργηθεί πακέτο history. Στο πακέτο αυτό να προστεθεί η κλάση circle. Στη συνέχεια να δηµιουργηθεί ένα πρόγραµµα το οποίο να κάνει χρήση της κλάσης circle και να εισάγει µέσα στο πρόγραµµα το πακέτο history. ηµιουργούµε τη public κλάση circle.java και στη κλάση αυτή προσθέτουµε στη αρχή τη λέξη package µαζί µε το όνοµα του πακέτου. package history; public class circle double pi = 3.14; double radius; double x; double y; // δηµιουργία του πρώτου κατασκευαστή. public circle (double r1, double x1, double y1) // <--- public radius = r1; x = x1; y = y1; // δηµιουργία του δεύτερου κατασκευαστή. public circle (double r2) x = 0.0; y = 0.0; radius = r2; public double area() return pi * radius * radius; // <---- public // <--- public 46

47 Στη java δηµιουργούµε ένα φάκελο πχ. "classes" κάτω από το φάκελο c:\jdk1.5.0\jre. Έπειτα µεταγλωττίζουµε το αρχείο circle.java, έτσι ώστε ο φάκελος history να δηµιουργηθεί κάτω από c:\jdk1.5.0\jre και στο history υπάρχει circle.class. Command :---> javac -d c:\jdk1.5.0\jre\classes circle.java; Έπειτα δηµιουργούµε το πρόγραµµα test.java, το οποίο καλεί τη κλάση circle, από το πακέτο history και δηµιουργεί τα αντικείµενα troxos και roda της circle Αφού έχουµε τελειώσει τη µεταγλώττιση καλούµε τη κλάση µε τη λέξη import. ηµιουργούµε µετά το πρόγραµµα το οποίο καλεί τη κλάση από το πακέτο history και δηµιουργεί τα αντικείµενα. import history.circle; public class test public static void main (String [] args) circle troxos = new circle (5.0, 1.0, 1.0); circle roda = new circle (8.0); // printing the area of each circle System.out.println ("area of troxos = " + troxos.area ()); System.out.println ("area of roda = " + roda.area ()); Άσκηση 6 Παράδειγµα που επεξηγεί τη κληρονοµικότητα των κλάσεων. public class point protected double x; protected double y; 47

48 // ο πρώτος κατασκευαστής public point (double xcor, double ycor) x = xcor; y = ycor; // ο δεύτερος κατασκευαστής public point () x = 0.0; y = 0.0; // ο τρίτος κατασκευαστής public point (point point1) x = point1.x; y = point1.y; // µέθοδος για τη συντεταγµένη x public double getx() return x; // µέθοδος για τη συντεταγµένη y public double gety() return y; NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR // µέθοδος για τη µετατροπή της συντεταγµένης του point σε string public String tostring () return "(" + x + ", " + y + ")"; 48

49 Μεταγλωττίζουµε τη παραπάνω κλάση. Στη συνέχεια δηµιουργούµε τη επόµενη κλάση cycle ως υποκλάση της παραπάνω κλάσης point. Η κλάση cycle καλεί τη υπερκλάση point για να δηµιουργήσει ένα σηµείο στο κέντρο του κύκλου και στη συνέχεια σχεδιάζει τη ακτίνα του. Προσοχή θα πρέπει δοθεί στη δήλωση extends καθώς και στη χρήση της εντολής super. public class cycle extends point protected double radius; static double pi = 3.14; // ο πρώτος κατασκευαστής public cycle (double x1, double y1, double r1) // η εντολή super καλεί τα µέλη της super class. // super () --> καλεί το κατασκευαστή της super class // super.f() --> καλεί τη συνάρτηση f(), η οποία έχει οριστεί στη super class super (x1, y1); // καλεί το κατασκευαστή point της super class cycle radius = (r1>=0? r1:0.0); // και περνάµε το x1, y1 για να δώσει αρχικές στις µεταβλητές χ και y // δεύτερος κατασκευαστής public cycle () radius = 0.0; public double area () return pi * radius *radius; public String tostring () return "x = " + x + ", " + " y = " + y + ", " + " r = " + radius; 49

50 ηµιουργούµε µία ακόµη υποκλάση της cycle : public class colorcycle extends cycle protected String color; NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR public colorcycle (double x2, double y2, double r2, String c) super (x2,y2, r2); color = c; public String getcolor () return color; public String tostring() return "x = " + x + ", " + " y = " + y + ", " + " r = " + radius + ", " + " color = " + color; Αποθηκεύουµε και µεταγλωττίζουµε το παραπάνω πρόγραµµα. Για να δοκιµάσουµε όλα τα παραπάνω δηµιουργούµε το παρακάτω πρόγραµµα. public class show public static void main (String [] args) point p1; cycle c1; colorcycle colorc1; p1 = new point (50.5, 70.5); c1 = new cycle (40.0, 50.0, 70.5); colorc1 = new colorcycle (30.0, 40.0, 20.0,"red"); // συντεταγµένες του point σε string System.out.println ("the point: " + p1.tostring ()); 50

51 // συντεταγµένες του circle c1 και της ακτίνας χωρίς tostring () System.out.println ("the cycle = " + c1.tostring ()); // εµβαδόν της cycle µε τη χρήση της area() System.out.println ("the cycle area = " + c1.area ()); // χωρίς tostring() τα στοιχεία της colorc1 System.out.println ("the colorcycle = " + colorc1.tostring ()); // εµβαδόν της colorc1 χρήση της area() από super class System.out.println ("the colorcycle.area = "+ colorc1.area ()); // Το χρώµα της cycle µε τη χρήση της getcolor System.out.println ("the colorcycle color = " + colorc1.getcolor ()); Άσκηση 7 Να γίνει µία κλάση που να ορίζει µία µέθοδο Make. Η µέθοδος να δέχεται δύο ακεραίους, ένα κάτω όριο και ένα άνω όριο, και να δηµιουργεί ένα πίνακα που περιέχει όλους τους ακεραίους ανάµεσα στα δύο αυτά όρια. public class Range int [] make(int lower, int upper) int arr [] = new int[ (upper - lower) + 1 ]; for (int i = 0; i < arr.length; i++) arr [i] = lower++; return arr; public static void main (String [] arguments) int thearray []; Range therange = new Range (); thearray = therange.make (1, 10); System.out.print ("The array: [ "); for (int i = 0; i < thearray.length; i++) 51

52 System.out.print (thearray[i] + " "); System.out.println("]"); Άσκηση 8 Παράδειγµα που δείχνει πώς περνάµε παραµέτρους σε µεθόδους. public class PassByReference int onetozero (int arg []) int count = 0; for (int i = 0; i < arg.length; i++) if (arg[i] == 1) count++; arg[i] = 0; return count; public static void main (String[] arguments) int arr [] = 1, 3, 4, 5, 1, 1, 7 ; PassByReference test = new PassByReference (); int numones; System.out.print ("Values of the array: [ "); for (int i = 0; i < arr.length; i++) System.out.print (arr[i] + " "); System.out.println ("]"); numones = test.onetozero (arr); System.out.println ("Number of Ones = " + numones); System.out.print ("New values of the array: [ "); for (int i = 0; i < arr.length; i++) System.out.print (arr[i] + " "); System.out.println ("]"); 52

53 Άσκηση 9 Το παρακάτω παράδειγµα χρησιµοποιεί υπερφόρτωση constructors για να κατασκευάσει τετράγωνα µε συντεταγµένες. import java.awt.point; class MyRect2 int x1 = 0; int y1 = 0; int x2 = 0; int y2 = 0; MyRect2 (int x1, int y1, int x2, int y2) this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; MyRect2 (Point topleft, Point bottomright) x1 = topleft.x; y1 = topleft.y; x2 = bottomright.x; y2 = bottomright.y; MyRect2 (Point topleft, int w, int h) x1 = topleft.x; y1 = topleft.y; x2 = (x1 + w); y2 = (y1 + h); void printrect () System.out.print ("MyRect: <" + x1 + ", " + y1); System.out.println (", " + x2 + ", " + y2 + ">"); public static void main (String [] arguments) MyRect2 rect; System.out.println ("Calling MyRect2 with coordinates 25,25 50,50:"); 53

54 rect = new MyRect2(25, 25, 50,50); rect.printrect (); System.out.println ("***"); NNEETTBBEEAANNSS JJAAVVAA CCRREEAATTOORR System.out.println ("Calling MyRect2 with points (10,10), (20,20):"); rect= new MyRect2 (new Point(10,10), new Point(20,20)); rect.printrect (); System.out.println ("***"); System.out.print ("Calling MyRect2 with 1 point (10,10)"); System.out.println (" width (50) and height (50):"); rect = new MyRect2 (new Point(10,10), 50, 50); rect.printrect (); System.out.println ("***"); ΡΑΣΤΗΡΙΟΤΗΤΕΣ Άσκηση 1 Συµπληρώστε τα κενά στις επόµενες προτάσεις : Α) Ένα αντικείµενο µιας κλάσης µπορεί να χρησιµοποιηθεί ως αντικείµενο της αντίστοιχης. Κλάσης Β) αν η κλάση Α κληρονοµεί από τη κλάση Β τότε η κλάση Α λέγεται και η κλάση Β λέγεται. Άσκηση 2 Τι είναι κληρονοµικότητα και ποια τα πλεονεκτήµατα της; Μπορεί µία κλάση να διαθέτει δύο µεθόδους µε το ίδιο όνοµα οι οποίες να επιστρέφουν διαφορετικούς τύπους δεδοµένων; Άσκηση 3 Τι είναι κλάση στη Java. Ποια είναι τα βασικά µέρη από τα οποία αποτελείται µία άδεια κλάση; Πως µπορούµε µε τη βοήθεια των κλάσεων να οργανώσουµε καλύτερα τα προγράµµατα µας ; 54

55 Άσκηση 4 Ποια είναι τα πλεονεκτήµατα του αντικειµενοστραφούς προγραµµατισµού; Με ποιόν τρόπο δηµιουργούµε ένα αντικείµενο µιας κλάσης; Πως δηµιουργούµε µια υποκλάση; Άσκηση 5 Οι κατασκευαστές µιας κλάσης ονοµάζονται Α) main β) extends γ) constructor d) object. Άσκηση 6 Ο τύπος δεδοµένων που επιστρέφει ο κατασκευαστής µιας κλάσης είναι : Α) τύπου float β) ίδιος µε τον τύπο της κλάσης γ) τύπου int δ) οι κατασκευαστές δεν επιστρέφουν κανένα τύπο. ηµιουργική Άσκηση Οι µαθητές, αφού χωριστούν σε οµάδες τριών ατόµων, να υλοποιήσουν την παρακάτω άσκηση που αφορά κλάσεις και κληρονοµικότητες. ηµιουργήστε µία κλάση µε το όνοµα Clock µε τα ακόλουθα χαρακτηριστικά : Ώρα Hour (ακέραιος από 1 12) Λεπτά Min (ακέραιος από 0 59) ευτ/τα Sec (ακέραιος από 0 59) Είναι Π.Μ. isam (Boolean) Η κλάση Clock υποστηρίζει τις παρακάτω µεθόδους : gethours() getminutes() getseconds() getlsam() Η κλάση θα έχει τους εξής κατασκευαστές : Έναν χωρίς καθόλου παραµέτρους, ο οποίος να θέτει το ρολόι στα µεσάνυκτα. Έναν µε παραµέτρους την ώρα και την ένδειξη ή όχι π.µ.. Έναν µε όλες τις παραµέτρους. Η κλάση Clock να υποστηρίζει επίσης µία µέθοδο settime(), η οποία να θέτει όλα τα χαρακτηριστικά σε προκαθορισµένες τιµές. 55

56 56

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ...4 εδοµένα, µεταβλητές, τύποι δεδοµένων...21 Τελεστές, εκχωρήσεις, µετατροπές δεδοµένων...23 οµές διακλάδωσης...

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ...4 εδοµένα, µεταβλητές, τύποι δεδοµένων...21 Τελεστές, εκχωρήσεις, µετατροπές δεδοµένων...23 οµές διακλάδωσης... ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ...4 Η Γλώσσα προγραµµατισµού JAVA...4 ιαδικασία εκκίνησης της Java και το NetBeans IDE...5 ηµιουργία µιας εφαρµογής Java...11 Μεταγλώττιση ενός προγράµµατος...14 Εκτέλεση ενός προγράµµατος...17

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

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

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

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

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

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

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ηµιουργική Εργασία µε Κλάσεις κι Αντικείµενα Τι Θα Μελετήσουµε οµή µιας κλάσης και των µεθόδων της Επιθεώρηση των κλάσεων και των µεθόδων τους Μέθοδοι και this Υπερφόρτωση µεθόδων

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

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου

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

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

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

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

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

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

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

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

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

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

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

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

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

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

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

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

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

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

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

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

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

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

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

που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο

που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο Το παρόν εκπονήθηκε στο πλαίσιο του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ» της Πράξης «Επαγγελµατικό λογισµικό στην ΤΕΕ: επιµόρφωση και εφαρµογή» (Γ ΚΠΣ, ΕΠΕΑΕΚ, Μέτρο 2.3, Ενέργεια 2.3.2) που συγχρηµατοδοτείται

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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 που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

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

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 8 ο Α. Ύλη εργαστηρίου 8.1 Αντικειμενοστραφής προγραμματισμός 8.2 Κλάσεις

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 (Κατασκευαστές) Ειδικός τύπος μεθόδων που δημιουργούν αντικείμενα μιας κλάσης και: Εκτελούνται κατά την αρχικοποίηση των αντικειμένων

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

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

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

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

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

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

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

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

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

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors). Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι

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

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

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

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

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

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

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

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

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

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

Βασικά της γλώσσας JAVA

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

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Αυτό-αξιολόγηση 1η: 08/02/2006 1

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

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

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

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

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

Mεταβλητές (variables) και Σταθερές (constants) Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε

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

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

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

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

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

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

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

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Προγραμματισμός 2 Σημειώσεις εργαστηρίου Προγραμματισμός 2 Σημειώσεις εργαστηρίου 02-Java, Τύποι Δεδομένων ως Αντικείμενα Νεβράντζας Βάιος-Γερμανός Λάρισα, Μάρτιος 2013 02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 1 Περίληψη

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

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

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

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

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

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

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

Εργαστήριο 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

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

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

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

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

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

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

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1 Αντικείμενα στη Java Παύλος Εφραιμίδης Java Αντικείμενα στη Java 1 Αντικείμενα (Objects) στην Java Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας

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

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

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

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

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε

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

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

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

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

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

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

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

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

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

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

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

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

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

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

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

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

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Λογικά λάθη public class ShowLogicErrors

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

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

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

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:

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

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

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

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

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

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

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

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Γαβαλάς Δαμιανός dgavalas@aegean.gr Λογικά

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

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

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

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

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

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

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

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

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

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

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Κλάσεις Τροποποιητές, ιασυνδέσεις, Πακέτα Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Υπάρχουν 4τροποποιητές: default, public, private, protected. Default: εν προηγείται τροποποιητής του ονόµατος

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

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

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

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

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

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

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

Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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