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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Εισαγωγή στη γλώσσα προγραμματισμού Java 69"

Transcript

1 Εισαγωγή στη γλώσσα προγραμματισμού Java Animation σε Java 9.1 Γενικά περί Animation Ένας από τους καλύτερους τρόπους για να γίνει ένα πρόγραμμα σε Java ή μια σελίδα που τρέχει Java applet πιο ελκυστική, είναι να εκτελεί animation. Η βασική ιδέα για να εκτελέσει ένα πρόγραμμα animation είναι να μπορεί να εμφανίζει διαφορετικά στιγμιότυπα κάποιας κίνησης το ένα μετά το άλλο με σχετικά μεγάλη ταχύτητα. Παρακάτω θα περιγράψουμε μεθοδολογίες για βέλτιστη εκτέλεση animation. Ας ξεκινήσουμε όμως παρουσιάζοντας τα βασικά είδη animation: 1. Στατική multi-frame animation. Πρόκειται για την περίπτωση κατά την οποία εμφανίζουμε διαδοχικά γραφικά ή εικόνες (frames) τη μία πάνω στην άλλη με σχετικά μεγάλη ταχύτητα (η animation που παράγεται από υπολογιστή μπορεί να επιτύχει frames το δευτερόλεπτο). Η τεχνική αυτή δε διαφέρει σε τίποτα από την παραδοσιακή τεχνική πού χρησιμοποιείται στον κινηματογράφο και στα κινούμενα σχέδια (cartoons). 2. Κινούμενες εικόνες. Πρόκειται για την περίπτωση κατά την οποία έχουμε μια μικρή εικόνα (συνήθως ονομάζεται sprite) την οποία μετακινούμε πάνω από μιά άλλη μεγαλύτερη εικόνα (background). Αυτή η τεχνική χρησιμοποιείται κατά κόρον στα παιχνίδια. Το αποτέλεσμα μπορεί να γίνει πολύ πιο εντυπωσιακό αν το κινούμενο sprite αποτελείται από πολλά frames, αλλάζει δηλαδή μορφή κατά την κίνησή του πάνω από το background. Επίσης, κατά προτίμηση, η κινούμενη εικόνα (sprite) θα πρέπει να έχει διαφανές (transparent) background έτσι ώστε να μην είναι απαραίτητο να έχει παραλληλόγραμμη μορφή. Αυτό μπορεί να επιτευχθεί με το format GIF 89 για εικόνες της Compuserve Το animation loop Όποιο είδος animation και να θέλετε να πραγματοποιήσετε στο πρόγραμμά σας, θα χρειαστείτε έναν βρόχο (animatin loop), ο οποίος θα αναλάβει να ζωγραφίζει σε τακτά χρονικά διαστήματα τα διαδοχικά στιγμιότυπα της κίνησης που θα υλοποιεί η animation. Στην Java θα πρέπει αυτός ο βρόχος να εκτελείται σε ένα δικό του ξεχωριστό thread. Δεν θα έπρεπε για παράδειγμα να μπει σε μεθόδους όπως η paint() ή η update() της κλάσης java.awt.component με τη δικαιολογία ότι περιέχει λειτουργίες γραφικών, γιατί αυτές οι μέθοδοι ανήκουν στο βασικό AWT thread το οποίο είναι υπεύθυνο για να το χειρισμό των βασικών λειτουργιών ζωγραφικής και χειρισμού γεγονότων (event handling) των αντικειμένων του προγράμματος. Το animation loop θα πρέπει να μπαίνει στη μέθοδο run() ενός thread που δημιουργούμε ειδικά για την εκτέλεση της animation. Στη μέθοδο paint() θα μπαίνουν οι εντολές οι οποίες ζωγραφίζουν μόνο ένα frame κάθε φορά (το τρέχον). Παρακάτω δίνουμε τη γενική μορφή που πρέπει να έχει το animation loop. Παρατηρήστε ότι χρησιμοποιούμε μια μεταβλητή framenumber, η οποία κρατάει τον αριθμό του frame που πρέπει να εμφανιστεί στην εκάστοτε επανάληψη του βρόχου (τρέχον frame) και μια μεταβλητή delay, στην οποία γράφουμε πόσα msec (χιλιοστά του δευτερολέπτου) θα παρεμβάλλονται ανάμεσα στην εμφάνιση των διαδοχικών frames. Προσέξτε ότι για να ζωγραφίσουμε το κάθε frame μέσα από το animation loop, καλούμε τη μέθοδο repaint() η οποία ανήκει στην κλάση java.awt.component. Η λειτουργία της είναι να καλεί την μέθοδο paint() και επομένως (αφού στην paint() βάζουμε τις εντολές για εμφάνιση του τρέχοντος frame) να ζωγραφίζει το τρέχον frame. public void run() { while (true) { //Αυξάνουμε το animation frame κατά ένα. framenumber++;

2 Εισαγωγή στη γλώσσα προγραμματισμού Java 70 //Το ζωγραφίζουμε. repaint(); //Περιμένουμε delay msec. try {Thread.sleep(delay); catch (InterruptedException e) { 9.3. Βασικό πρόγραμμα animation Θα παρουσιάσουμε τώρα ένα παράδειγμα μιας Applet που εκτελεί στατική multi-frame animation, χρησιμοποιώντας ένα animation loop όπως μας υπέδειξε η προηγούμενη παράγραφος. Το παράδειγμα αυτό είναι στοιχειώδες, με την έννοια ότι είναι το μικρότερο πρόγραμμα σε Java που μπορεί να εκτελέσει animation. Ελπίζουμε ότι τα σχόλια είναι επαρκή. import java.awt.*; import java.applet.applet; // Η applet υλοποιεί το Runnable interface προκειμένου να μπορέσει να // χρησιμοποίησει δικά της threads. public class AnimatorApplet extends Applet implements Runnable { int framenumber = -1; //Μετρητής των frames int delay; //Καθυστέρηση σε msec //Ορίζουμε το ξεχωριστό Thread για animation Thread animatorthread; public void init() { //Θα παρεμβάλλονται 100msec ανάμεσα στα frames delay=100; public void start() { // Αρχικοποίησε το Thread για animation if (animatorthread == null) { animatorthread = new Thread(this); // Ξεκίνα το Thread για animation animatorthread.start(); public void stop() { //Σταμάτα το Τhread για animation animatorthread = null; //Σε αυτή τη μέθοδο μπαίνει το animation loop. public void run() { //animation loop

3 Εισαγωγή στη γλώσσα προγραμματισμού Java 71 while (Thread.currentThread() == animatorthread) { //Αύξησε τον αριθμό του frame κατά ένα framenumber++; //Ζωγράφισε το τρέχον frame repaint(); //Περίμενε μερικά msec try {Thread.sleep(delay) catch (InterruptedException e) { break; //Στην paint() μπαίνουν οι εντολές για εμφάνιση του τρέχοντος frame. public void paint(graphics g) { // Ζωγράφισε ένα string που δείχνει // τον αριθμό του τρέχοντος frame g.drawstring("frame " + framenumber, 0, 30); // Πράγματι, πρόκειται για πολύ χαζό frame 9.4. Τεχνικές Βελτιστοποίησης Το παραπάνω παράδειγμα εκτελεί μια στοιχειώδη και φυσικά πολύ βαρετή animation: Εμφανίζει στην οθόνη τη συμβολοσειρά Frame i, όπου i ο αριθμός του τρέχοντος frame. Αν δοκιμάσετε να το τρέξετε εκτός από το ότι θα πλήξετε, μπορεί να διαπιστώσετε ότι έχει ένα μικρό πρόβλημα. Παρόλο που τυπώνεται μόλις ένα string κάθε φορά (η εκτύπωση ενός string είναι πολύ εύκολη υπολογιστικά υπόθεση - φανταστείτε να τυπώναμε εικόνες), μερικές φορές τα γράμματα μοιάζουν να αναβοσβήνουν. Το φαινόμενο αυτό λέγεται flashing ή flickering και είναι το κυριότερο πρόβλημα που πρέπει να επιλύσουμε προκειμένου να επιτύχουμε ομαλή (smooth, flicker free) animation. Ο λόγος που εμφανίζεται το screen flickering είναι ο εξής: κάθε φορά που καλούμε τη μέθοδο repaint() στο animation loop, προκειμένου να εμφανίσουμε ένα καινούργιο frame, σύμφωνα με την υπάρχουσα υλοποίηση της μεθόδου repaint(), καθαρίζεται το background και μετά καλείται η μέθοδος paint() για να ζωγραφίσει. Επιπλέον, ο χρόνος που απαιτείται για τον καθαρισμό του background και την εμφάνιση του νέου frame στην οθόνη είναι συνήθως μεγαλύτερος από τη συχνότητα σάρωσης (refresh rate) της οθόνης. Το αποτέλεσμα είναι ότι κάθε φορά που παρεμβάλλεται μια σάρωση ανάμεσα σε αυτές τις δύο λειτουργίες (καθαρισμός background και εμφάνιση νέου frame) βλέπουμε για λίγο χρόνο στην οθόνη μισοτελειωμένα γραφικά (μισοζωγραφισμένο το νέο frame ή, στη χειρότερη περίπτωση, εντελώς καθαρό background). Παρακάτω θα παρουσιάσουμε δύο πολύ χρήσιμες τεχνικές που πρέπει να χρησιμοποιούνται από κάθε σοβαρό πρόγραμμα animation για την εξάλειψη του φαινομένου του flickering και για επίτευξη ομαλής (smooth) animation. Επανακαθορισμός της υπάρχουσας μεθόδου update(). Το Abstract Windowing Toolkit (AWT) package της Java κάθε φορά που ένα αντικείμενό του (Applet, Canvas, Frame) ζητά να ξαναζωγραφίσει τον εαυτό του καλεί τη μέθοδο update()

4 Εισαγωγή στη γλώσσα προγραμματισμού Java 72 αυτού του αντικειμένου. Στη συνέχεια, η μέθοδος update() καλεί μια μέθοδο clearrect() για να καθαρίσει το background του αντικειμένου που την καλεί πριν καλέσει τη μέθοδο paint() για να ξαναζωγραφίσει το αντικείμενο. Η βασική ιδέα σε αυτή την τεχνική είναι ότι πρέπει να επανακαθορίσουμε τη μέθοδο update() ώστε να είναι πιο έξυπνη: να καθαρίζει το background μόνο όταν πραγματικά το χρειαζόμαστε. Έτσι μπορούμε να επιταχύνουμε αισθητά την εκτέλεση του animation loop και να ελαχιστοποιήσουμε το flickering. Για παράδειγμα στο πρόγραμμα που είδαμε παραπάνω είναι περιττό να σβήνουμε το background κάθε φορά που ζωγραφίζουμε ένα νέο frame. Μπορούμε επομένως να αντιγράψουμε στη μέθοδο update() αυτούσιο τον κώδικα που έχουμε στη μέθοδο paint() και μόνο αυτό (καμία εντολή για καθαρισμό background). Έτσι, κάθε φορά που θα καλείται η update για να εμφανιστεί ένα νέο frame, δεν θα σβήνεται το παλιό - απλά θα εμφανίζεται πάνω από το παλιό το καινούργιο frame. Χρησιμοποίηση buffer οθόνης Σύμφωνα με αυτή τη μέθοδο μπορούμε να εξοικονομήσουμε πολύ χρόνο κατά την εμφάνιση γραφικών στην περίπτωση που η εμφάνισή τους περιλαμβάνει πολύπλοκους υπολογισμούς. Η ιδέα είναι ότι χρησιμοποιούμε κατά κάποιον τρόπο μια ψεύτικη οθόνη (offscreen) στην οποία ζωγραφίζουμε το frame που θέλουμε να εμφανίσουμε χωρίς να τo βλέπει ο χρήστης στην πραγματική οθόνη. Την ώρα που κάνουμε τους υπολογισμούς για την εμφάνιση του frame στην ψεύτικη οθόνη, ο χρήστης βλέπει ακόμα το προηγούμενο frame και όχι ένα νέο frame να εμφανίζεται σιγά σιγά πάνω από το προηγούμενο. Μόλις τελειώσουμε τη σχεδίαση του frame στην ψεύτικη οθόνη, εμφανίζουμε την ψεύτικη οθόνη στην πραγματική. Έτσι, ο χρήστης βλέπει το νέο frame να εμφανίζεται πολύ γρήγορα στην οθόνη του. Στην Java, ο buffer οθόνης (offimage) που χρησιμοποιούμε είναι ένα πεδίο Image που δημιουργούμε χρησιμοποιώντας μια από τις μεθόδους createimage() της κλάσης java.awt.component. Για να ζωγραφίσουμε στην οθόνη αυτή, απλά χρησιμοποιούμε το Graphics αντικείμενό της (offgraphics) το οποίο μπορούμε να προσπελάσουμε με τη μέθοδο Image getgraphics(). Όπως θα δείτε στο παράδειγμα που παρουσιάζουμε πιο κάτω, όλες οι εντολές γραφικών μέσα στη μέθοδο update() ζωγραφίζουν σε αυτό το αντικείμενο δηλαδή στην ψεύτικη οθόνη αντί στην αληθινή. Η εμφάνιση του νέου frame στην πραγματική οθόνη γίνεται μονομιάς με την κλήση της μεθόδου drawimage() στο τέλος της update(). Το παράδειγμα παρουσιάζει μια Applet που χρησιμοποιεί και τις δύο τεχνικές που αναφέραμε παραπάνω για να επιτύχει smooth animation. Και πάλι ελπίζουμε ότι τα σχόλια είναι επαρκή: import java.awt.*; import java.applet.applet; public class ImageSequence extends Applet implements Runnable { int framenumber = -1; int delay; Thread animatorthread; boolean frozen = false; Dimension offdimension; Image offimage; Graphics offgraphics; Image[] images; public void init() { String str; int fps = 10; //Πόσα milliseconds ανάμεσα στα frames; str = getparameter("fps"); try {

5 Εισαγωγή στη γλώσσα προγραμματισμού Java 73 if (str!= null) { fps = Integer.parseInt(str); catch (Exception e) { delay = (fps > 0)? (1000 / fps) : 100; //Φόρτωσε όλες τις εικόνες. images = new Image[10]; for (int i = 1; i <= 10; i++) { // Τα ονόματα των αρχείων είναι ενδεικτικά images[i-1] = getimage(getcodebase(), "myimage"+i+".gif"); public void start() { if (frozen) { //Μην κάνεις τίποτα. Ο χρήστης ζήτησε διακοπή else { //Ξεκίνα την animation! if (animatorthread == null) { animatorthread = new Thread(this); animatorthread.start(); public void stop() { //Σταμάτα την animation animatorthread = null; //Απελευθέρωσε τα αντικείμενα που χρειάζονταν // για την ψεύτικη οθόνη offgraphics = null; offimage = null; public boolean mousedown(event e, int x, int y) { if (frozen) { frozen = false; start(); else { frozen = true; //Σταμάτα το animating thread. animatorthread = null; return true; public void run() { // Η παρακάτω μέθοδος απλά χαμηλώνει // την προτεραιότητα του animation thread // για λόγους ευγένειας προς τις άλλες διεργασίες // του συστήματος. Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

6 Εισαγωγή στη γλώσσα προγραμματισμού Java 74 //Κράτα την τρέχουσα ώρα long starttime = System.currentTimeMillis(); //animation loop. while (Thread.currentThread() == animatorthread) { framenumber++; repaint(); //Μην καθυστερείς καθόλου αν έχουμε αργήσει try { starttime += delay; Thread.sleep(Math.max(0, starttime-system.currenttimemillis())); catch (InterruptedException e) { break; public void paint(graphics g) { update(g); // Η update() έχει επανακαθορισετεί σύμφωνα με την // πρώτη από τις δύο τεχνικές που παρουσιάσαμε ώστε να // μην καθαρίζει το background της οθόνης χωρίς λόγο. // Αντίθετα καθαρίζει το backround στη ψεύτικη οθόνη // και σε αυτήν ζωγραφίζει το νέο frame. Στο τέλος // περνάει το αποτέλεσμα κατευθείαν στη πραγματική //οθόνη σύμφωνα με τη δεύτερη τεχνική public void update(graphics g) { Dimension d = size(); // Δημιούργησε την ψεύτικη οθόνη if ( (offgraphics == null) (d.width!= offdimension.width) (d.height!= offdimension.height) ) { offdimension = d; offimage = createimage(d.width, d.height); offgraphics = offimage.getgraphics(); //Σβήσε το παλιό frame, αλλά στη ψεύτικη οθοόνη offgraphics.setcolor(getbackground()); offgraphics.fillrect(0, 0, d.width, d.height); offgraphics.setcolor(color.black); // Ζωγράφισε το νέο frame offgraphics.drawimage(images[framenumber % 10], 0, 0, this); // Τώρα πέρνα την ψεύτικη οθόνη στην πραγματική g.drawimage(offimage, 0, 0, this);

7 Εισαγωγή στη γλώσσα προγραμματισμού Java 75

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest: Εισαγωγή στη γλώσσα προγραμματισμού Java 41 6. Threads Πολλές γλώσσες προγαμματισμού όπως και η Java διαθέτουν εργαλεία για την υλοποίηση threads στα προγράμματά τους. Αυτές οι γλώσσες καλούνται multithreading

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

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

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

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

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

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο

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

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

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

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

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

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 Γραφικά Γραφικά Τα γραφικά µπορούν να προσαρτηθούν τόσο σε προγράµµατα που υποστηρίζουν γραφικό περιβάλλον εργασίας: Σε µικροεφαρµογές Σε παραθυρικές εφαρµογές Και ΟΧΙ σε εφαρµογές

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

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

Γενικά (για τις γραπτές εξετάσεις)

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

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

6. Εξαιρέσεις στη γλώσσα Java

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

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

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

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

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΜΙΚΡΟΕΦΑΡΜΟΓΕΣ (APPLETS)

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΜΙΚΡΟΕΦΑΡΜΟΓΕΣ (APPLETS) Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΜΙΚΡΟΕΦΑΡΜΟΓΕΣ (APPLETS) ΕΙΣΑΓΩΓΗ ΣΤΑ APPLETS Ένα applet είναι ένα πρόγραμμα Java που τρέχει σε ένα πρόγραμμα περιήγησης στο Web (web browser). Ένα applet

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 5: Applets και Γραφικά Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

13. Νήματα. 13.1 Νήματα και χρήση νημάτων στη Java. 13.1.1. Τι είναι τα νήματα; 13.1.2. Τρία μέρη ενός νήματος

13. Νήματα. 13.1 Νήματα και χρήση νημάτων στη Java. 13.1.1. Τι είναι τα νήματα; 13.1.2. Τρία μέρη ενός νήματος 13. Νήματα Ολοκληρώνοντας αυτό το κεφάλαιο θα μπορείτε Να κατανοείτε την έννοια του νήματος (thread) Να δημιουργείτε διακριτά νήματα στη Java, που θα ελέγχουν τον κώδικα και τα δεδομένα που χρησιμοποιούνται

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

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

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

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

Γαβαλάς Δαμιανός dgavalas@aegean.gr

Γαβαλάς Δαμιανός dgavalas@aegean.gr Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #10 η : Ίνες και πολυνηματικός προγραμματισμός, Δυναμικές δομές δεδομένων στη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr 1 Νήματα Ένα νήμα (thread) από

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν

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

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

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

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

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

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

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

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

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

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

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Επαναληπτικός βρόχος καλείται το τμήμα του κώδικα μέσα σε ένα πρόγραμμα, το οποίο εκτελείται από την αρχή και επαναλαμβάνεται

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0 Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (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 Ανατομία ενός προγράμματος

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

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες

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

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

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

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

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

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

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

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

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

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

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

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

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

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

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

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

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

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

2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι 2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να χρησιμοποιείτε σχόλια σε ένα πηγαίο πρόγραμμα Java. Να διακρίνετε σωστούς από λάθος προσδιοριστές. Να αναγνωρίζετε

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

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Δοκιμή και Αποσφαλμάτωση Testing and Debugging Δοκιμή και Αποσφαλμάτωση Testing and Debugging XVI-1 Ο μεταγλωττιστής εντοπίζει τα συντακτικά λάθη ενός προγράμματος. Δεν είναι όμως σε θέση να εντοπίσει λάθη στη λογική του προγράμματος. δεδομένα πρόγραμμα

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 13/12/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 13/12/07 Ένα απλό παράδειγμα μιας κλάσης εφαρμογής με δύο μεθόδους (κλήση μεθόδου μέσα στην ίδια κλάση): import java.util.*; public class Example

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

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

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

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

Το πρόγραμμα 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 υποστηρίζει

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

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

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

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

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

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

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

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

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

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse

ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse ΕΡΓΑΣΤΗΡΙΟ 16 Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse 1. Δημιουργήστε ένα νέο project και ενσωματώστε το πρόγραμμα Fibonacci.java. 2. Βεβαιωθείτε ότι μεταγλωττίζει σωστά. Σχήμα 1: Adding

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

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

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

Week 10: Graphical User Interfaces

Week 10: Graphical User Interfaces Week 10: Graphical User Interfaces Έννοιες του προγραµµατισµού ΓΠΕ [GUI] Εβδοµάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα Επικοινωνίας [Graphical User Interfaces] Συστατικά [components] ιάταξη [layout] [event-driven

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

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

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

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

HY-252 Αντικειµενοστραφής Προγραµµατισµός. Χειµερινό Εξάµηνο 2010 ιδάσκων: Χριστοφίδης Βασίλης. Ηµεροµηνία Παράδοσης: 15/10/2010

HY-252 Αντικειµενοστραφής Προγραµµατισµός. Χειµερινό Εξάµηνο 2010 ιδάσκων: Χριστοφίδης Βασίλης. Ηµεροµηνία Παράδοσης: 15/10/2010 HY-252 Αντικειµενοστραφής Προγραµµατισµός Χειµερινό Εξάµηνο 2010 ιδάσκων: Χριστοφίδης Βασίλης 1 η Σειρά Ασκήσεων Ηµεροµηνία Παράδοσης: 15/10/2010 Άσκηση 1 Loops, IO (20%) Όνοµα αρχείου : Assign1_username.java

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 10/1/08 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 10/1/08 Συνέχεια Αναδρομής (recursion): Ο αλγόριθμος του Ευκλείδη για τον Μέγιστο Κοινό Διαιρέτη (ΜΚΔ) με αναδρομή: p, αν q=0 (βασική περίπτωση)

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ SWING Βασικά στοιχεία ενός GUI Ένα Graphical User Interface-GUI (στα ελληνικά Γραφική Διεπαφή με το Χρήστη) είναι το μέρος του

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

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Δομές Δεδομένων - Εργαστήριο 2. Λίστες Λίστες Λίστες (Lists) : Συλλογή δεδομένων σε δυναμικά δεσμευμένους κόμβους. Κάθε κόμβος περιέχει συνδέσεις προς άλλους κόμβους. Προσπέλαση -στού κόμβου διατρέχοντας όλους τους προηγούμενους. Πολλές παραλλαγές

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

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα ΕΝΤΟΛΕΣ χρησιμοποιηθούν παρακάτω στα παραδείγματα Βάζοντας την εντολή αυτή σε οποιοδήποτε αντικείμενο μπορούμε να αλλάζουμε

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

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

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

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

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

Μικροεφαρμογές (Applets)

Μικροεφαρμογές (Applets) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #9 η : Μικρο εφαρμογές (Applets), Γραφικά Γαβαλάς Δαμιανός dgavalas@aegean.gr Μικροεφαρμογές (Applets) Γενικά στην πληροφορική, ένα applet είναι μια

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 8/11/07 Συμπλήρωμα προηγούμενης εβδομάδας: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 8/11/07 Τι συμβαίνει όταν στην ίδια έκφραση υπάρχει πάνω από

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

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

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

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

Υποστηρικτικό υλικό Σημειώσεις

Υποστηρικτικό υλικό Σημειώσεις ΔΙΑΔΙΚΤΥA : Υπηρεσίες, Τεχνολογία, Εφαρμογές Τμήμα Πληροφορικής Α.Π.Θ. Υποστηρικτικό υλικό Σημειώσεις Διδάσκοντες : Α. Βακάλη Γ. Παπαδημητρίου Εαρινό εξάμηνο 2000 2001 ΜΕΡΟΣ ΙΙ J A V A ΔΙΑΔΙΚΤΥA : Υπηρεσίες,

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

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

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

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

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

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

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

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

Αρχικοποίηση Αντικειµένων & Κλάσεων στη Java Object Instantiation & Class Initialisation Κώστας Σαΐδης saiko@di.uoa.gr http://daemon.di.uoa.gr/daemon/issue4 Μάρτιος 2004 Η Αρχή είναι το ήµισυ του Παντός

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

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή 5. Εντολή while() Η εντολή while() είναι ίσως η πιο πολυχρησιμοποιούμενη εντολή κατά τη σύνταξη κώδικα σε γλώσσα προγραμματισμού C για μικροελεγκτές. Το κυρίως μέρος του προγράμματος κλείνεται σχεδόν πάντα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

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

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

MYY703: Δίκτυα Υπολογιστών I Εργαστήρια

MYY703: Δίκτυα Υπολογιστών I Εργαστήρια MYY703: Δίκτυα Υπολογιστών I Εργαστήρια Άσκηση 1 η Εισαγωγή στον Network Simulator (Ns-2) Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διδάσκων: Παπαπέτρου Ευάγγελος 2 1 Εισαγωγή Η άσκηση

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

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

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

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