Πτυχιακή Εργασία. Θέμα: Υπολογισμός ερωτημάτων κορυφογραμμής 2 διαστάσεων σε κατανεμημένο περιβάλλον με τη βοήθεια της πλατφόρμας λογισμικού Hadoop.

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

Download "Πτυχιακή Εργασία. Θέμα: Υπολογισμός ερωτημάτων κορυφογραμμής 2 διαστάσεων σε κατανεμημένο περιβάλλον με τη βοήθεια της πλατφόρμας λογισμικού Hadoop."

Transcript

1 Πτυχιακή Εργασία Θέμα: Υπολογισμός ερωτημάτων κορυφογραμμής 2 διαστάσεων σε κατανεμημένο περιβάλλον με τη βοήθεια της πλατφόρμας λογισμικού Hadoop. Πλιάκης Ιωάννης Α.Ε.Μ.: 1137 Υπεύθυνος καθηγητής: Παπαδόπουλος Απόστολος Θεσσαλονίκη, Ιούλιος

2 Περιεχόμενα: 1. Σκοπός του έργου 2. Τι είναι η πλατφόρμα λογισμικού Hadoop 3. Κώδικας 4. Παράρτημα 5. Βιβλιογραφία 2

3 1) Σκοπός του έργου Η εφαρμογή έχει ως στόχο να βρίσκει σε κατανεμημένο περιβάλλον την ελάχιστη κορυφογραμμή από διάφορα σημεία στις 2 διαστάσεις. Ορίζεται δηλαδή ένας χώρος από 2 διαστάσεις στον οποίο ο χρήστης έχει επιλέξει να δώσει κάποια ορθογώνια όπου θα περιέχουν μέσα τυχαίους ακέραιους και θετικούς αριθμούς. Έπειτα ο χρήστης θα επιλέγει ένα ερώτημα σε μορφή ορθογωνίου κι αυτό. Το σύστημα θα ψάχνει να βρει το ερώτημα αυτό ποια από τα άλλα ορθογώνια ερωτήματα τέμνει, αν τέμνει κάποια. Στη συνέχεια θα υπολογίζονται τα σημεία που περικλείονται στην τομή του ερωτήματος και των διαφόρων άλλων ορθογωνίων και σε αυτά θα εφαρμόζεται το ερώτημα κορυφογραμμής για να επιστραφούν στο χρήστη τα καλύτερα σημεία με βάση το συγκεκριμένο αλγόριθμο. Στην ουσία, τα ερωτήματα κορυφογραμμής είναι ικανά να επιστρέψουν τα σημεία που μας ενδιαφέρουν από ένα τεράστιο χώρο σημείων με διάφορα κριτήρια. Η περισσότερη δουλειά που έχει γίνει με τα ερωτήματα κορυφογραμμής έχει να κάνει με κεντρικοποιημένη επεξεργασία των δεδομένων, όμως πρακτικά τα δεδομένα μπορεί πολύ συχνά να βρίσκονται κατανεμημένα σε διαφορετικά γεωγραφικά σημεία. Σε αυτήν την εργασία χειριζόμαστε ερωτήματα κορυφογραμμής σε μεγάλης κλίμακας κατανεμημένα περιβάλλοντα. Ένα παράδειγμα εφαρμογής αυτής της κατηγορίας προβλημάτων είναι το πρόβλημα του επενδυτή. Ένας επενδυτής είναι καλό να ξέρει ποιες μετοχές ανά τον κόσμο αξίζουν για να επενδύσει σε αυτές, βασιζόμενος σε στοιχεία προηγούμενης ημέρας. Για αυτό το λόγο είναι απαραίτητο να έχει πρόσβαση σε διαφορετικές βάσεις δεδομένων που περιέχουν στοιχεία για τις συγκεκριμένες μετοχές όπως στη Νέα Υόρκη, στο Λονδίνο, στο Τόκυο κτλ. Για κάθε μετοχή ο επενδυτής είναι καλό να λάβει υπ όψιν του διάφορα χαρακτηριστικά όπως η τελευταία τιμή πώλησης, το συνάλλαγμα, η τελευταία τιμή πριν κλείσει το χρηματιστήριο, εκτιμώμενη τιμή κτλ. Άρα ένα ερώτημα κορυφογραμμής μπορεί να βοηθήσει έναν τέτοιο επενδυτή για να βρει τις μετοχές που τον ενδιαφέρουν. Εύκολα καταλαβαίνει κανείς ότι για να γίνει κάτι τέτοιο σε περιβάλλον με ένα μόνο επεξεργαστή θέλει πάρα πολύ μεγάλο χρόνο, λόγω του ότι τα χαρακτηριστικά για μία μόνο μετοχή π.χ. μπορεί να είναι χιλιάδες και τα είδη των μετοχών εκατοντάδες. 3

4 Τα σημεία που ενδιαφέρουν ορίζονται ως εκείνα που δεν «κυριαρχούνται» από άλλα σημεία. Με τον όρο «κυριαρχούνται» εννοούμε ότι κάποιο σημείο αρκεί να είναι «καλύτερο» από ένα άλλο έστω σε μία μόνο διάσταση (χαρακτηριστικό). Στη συγκεκριμένη εργασία εδώ εννοούμε «καλύτερο» το μικρότερο στοιχείο. Επειδή η εφαρμογή αυτή έχει στηθεί για κατανεμημένο περιβάλλον κρίθηκε απαραίτητο να χρησιμοποιηθεί κάποιο κατάλληλο εργαλείο. Επιλέχθηκε το Hadoop που έχει τη δυνατότητα αυτή. Ο κώδικας είναι γραμμένος σε Java και το όλο περιβάλλον στήθηκε σε Ubuntu Linux έκδοση LTS. Ο κώδικας γράφτηκε στο περιβάλλον Eclipse όπου μέσα από αυτό έτρεχε και το Hadoop με τη βοήθεια κάποιων ρυθμίσεων. Περισσότερα θα αναφερθούν στο παράρτημα για το στήσιμο της πλατφόρμας αυτής. 4

5 2) Τι είναι η πλατφόρμα λογισμικού Hadoop Το Hadoop είναι μια πλατφόρμα λογισμικού η οποία μπορεί να χρησιμοποιηθεί για την ανάλυση και επεξεργασία μεγάλου αριθμού δεδομένων επιπέδου petabyte. Αυτό που κάνει το Hadoop είναι να κατανέμει τα δεδομένα και την διαδικασία ανάλυσής τους σε ομάδες υπολογιστών (Clusters) ώστε να επεξεργαστούν παράλληλα τα δεδομένα, επιταχύνοντας έτσι τις διαδικασίες. Το Hadoop χρησιμοποιεί το προγραμματιστικό μοντέλο MapΡeduce το οποίο αναπτύχθηκε πρώτα από την Google για την υποστήριξη του συστήματος της στην ανάλυση δεδομένων. Αυτό που κάνει αυτή η τεχνική είναι, να μεταβιβάσει τα δεδομένα και το πρόβλημα στον υπολογιστή master του cluster, και αυτός στη συνέχεια θα διασπάσει το πρόβλημα σε μικρότερα προβλήματα και κάθε μικρότερο πρόβλημα θα το προωθήσει σε κάθε ένα από τους υπόλοιπους υπολογιστές του Cluster. Ο κάθε υπολογιστής του cluster θα επιλύσει το δικό του υποπρόβλημα που του έχει ανατεθεί και θα επιστρέψει τη λύση στον master υπολογιστή ο οποίος θα συνδυάσει τις λύσεις των υποπροβλημάτων για να βρει τη λύση στο πρόβλημα που το δόθηκε. Το Hadoop βασίζεται στην παραπάνω τεχνική με επιπρόσθετα πλεονεκτήματα όπως το ότι καταφέρνει να ανακτήσει δεδομένα σε περίπτωση που ένας υπολογιστής του cluster πάθει ζημιά και να μεταβιβάσει το υποπρόβλημα σε άλλον υπολογιστή. Μία ευρεία ποικιλία επιχειρήσεων κι οργανώσεων χρησιμοποιούν το Hadoop για την έρευνα και την παραγωγή. Ήδη η Yahoo χρησιμοποιεί το Hadoop και πιο πρόσφατα το εγκατέστησε και το facebook. Το πρόγραμμα Apache Hadoop αναπτύσσει ένα ανοιχτού κώδικα λογισμικό για τον αξιόπιστο, εξελικτικό και κατανεμημένο υπολογισμό. Το Hadoop περιλαμβάνει τα παρακάτω υποπρογράμματα: 5

6 Hadoop Common: Τα κοινά εργαλεία που υποστηρίζουν τα άλλα υποπρογράμματα του Hadoop. Chukwa: Ένα σύστημα συλλογής δεδομένων για τη διαχείριση μεγάλων κατανεμημένων συστημάτων. HBase: Μία εξελικτική, κατανεμημένη βάση δεδομένων που υποστηρίζει τη δομημένη αποθήκευση στοιχείων για τους μεγάλους πίνακες. HDFS: Ένα κατανεμημένο σύστημα αρχείων που παρέχει υψηλής απόδοσης πρόσβαση στα στοιχεία εφαρμογής. Hive: Μία υποδομή αποθήκης δεδομένων που παρέχει την περιληπτική παρουσίαση της πληροφορίας. MapReduce: Ένα πλαίσιο λογισμικού για κατανεμημένη επεξεργασία των μεγάλων συνόλων στοιχείων σε συστάδες υπολογισμού. Η φιλοσοφία του είναι στην ουσία ο Map να αναθέσει τις λειτουργίες που έχει να αναθέσει στους επεξεργαστές κι ο Reduce να συλλέξει τα αποτελέσματα και να τα στείλει πίσω στο χρήστη. Πάντα τα δεδομένα χωρίζονται όμως σε συγκεκριμένα ζευγαράκια του στυλ (key, value). Αυτά μπορεί να είναι οτιδήποτε, αριθμοί, κείμενο ή ότι άλλο θέλουμε. Πάντα όμως η επικοινωνία θα γίνεται με βάση αυτά τα ζευγαράκια. Pig: Ένα υψηλού επιπέδου πλαίσιο ροής πληροφορίας γλώσσας κι εκτέλεσης για παράλληλο υπολογισμό. ZooKeeper: Μία υψηλής απόδοσης υπηρεσία συντονισμού για τις κατανεμημένες εφαρμογές. 6

7 3)Κώδικας Ο κώδικας είναι γραμμένος σε Java και στο περιβάλλον Eclipse. Στο παράρτημα αναφέρεται αναλυτικά πως θα στηθεί το Hadoop σε Linux κι έπειτα ποιες διαδικασίες χρειάζεται να γίνουν ώστε να λειτουργήσει ο κώδικας. Εδώ εισάγουμε κάποιες βιβλιοθήκες για να χρησιμοποιήσουμε κάποια στοιχεία από αυτές package org.apache.hadoop.examples; java.io.datainput; java.io.dataoutput; java.io.ioexception; java.util.stringtokenizer; java.util.random; org.apache.hadoop.conf.configuration; org.apache.hadoop.fs.path; org.apache.hadoop.io.intwritable; org.apache.hadoop.io.longwritable; org.apache.hadoop.io.text; org.apache.hadoop.io.writablecomparable; org.apache.hadoop.io.writablecomparator; org.apache.hadoop.mapreduce.lib.input.fileinputformat; org.apache.hadoop.mapreduce.lib.output.fileoutputformat; org.apache.hadoop.mapreduce.job; org.apache.hadoop.mapreduce.mapper; org.apache.hadoop.mapreduce.partitioner; org.apache.hadoop.mapreduce.reducer; org.apache.hadoop.util.genericoptionsparser; Η βασική κλάση του αρχείου public class Skyline public static public static public static public static { int int int int x1 y1 x2 y2 = = = = 3; 14; 10; 40; 7

8 Οι παραπάνω μεταβλητές είναι οι συντεταγμένες του ορθογώνιου ερωτήματος. (x1,y1) αντιστοιχούν στην κάτω αριστερή γωνία του ορθογωνίου και (x2,y2) στην πάνω δεξιά. Έχουμε βάλει κάποιες καθορισμένες τιμές για το ερώτημα. Μπορούμε να τις αλλάξουμε για να δούμε διαφορετικά αποτελέσματα Εδώ ορίζουμε μία βοηθητική κλάση για να μπορέσουμε να δώσουμε στο Map να διαβάσει τα νούμερα που θέλουμε public static class IntPair implements WritableComparable<IntPair> { private int first = 0; private int second = 0; private int third = 0; private int fourth = 0; Τα νούμερα που θέλουμε να διαβάσει από το αρχείο που θα δώσει ο χρήστης είναι κι αυτά ορθογώνια (σε 2 διαστάσεις πάντα) με συντεταγμένες της κάτω αριστερής και της πάνω δεξιάς γωνίας public void set(int left1, int right1, int left2, int right2) { first = left1; second = right1; third = left2; fourth = right2; public int getfirst() { return first; public int getsecond() { return second; public int getthird() { return third; public int getfourth() { return fourth; Εδώ διαβάζουμε τους ακεραίους υπερφορτώνοντας τη μέθοδο readfields της διεπαφής 8

9 public void readfields(datainput in) throws IOException { first = in.readint() + Integer.MIN_VALUE; second = in.readint() + Integer.MIN_VALUE; third = in.readint() + Integer.MIN_VALUE; fourth = in.readint() + Integer.MIN_VALUE; Εδώ γράφουμε τους ακεραίους υπερφορτώνοντας τη μέθοδο write της διεπαφής public void write(dataoutput out) throws IOException { out.writeint(first - Integer.MIN_VALUE); out.writeint(second - Integer.MIN_VALUE); out.writeint(third - Integer.MIN_VALUE); out.writeint(fourth - Integer.MIN_VALUE); Υπερφορτώνουμε τη συνάρτηση κατακερματισμού για να γίνει η ανάθεση των δεδομένων στους public int hashcode() { return first * second; Παρακάτω γίνεται υπερφόρτωση της μεθόδου equals για να γίνει έλεγχος στα αποτελέσματα έτσι ώστε να ταξινομηθούν παράλληλα και να τυπωθούν στην οθόνη κατά αύξουσα public boolean equals(object right) { if (right instanceof IntPair) { IntPair r = (IntPair) right; return r.first == first && r.second == second && r.third == third && r.fourth == fourth; else { return false; 9

10 Κλάση σύγκρισης έτσι ώστε να μπορέσει να γίνει σύγκριση μεταξύ αντικειμένων IntPair public static class Comparator extends WritableComparator { public Comparator() { super(intpair.class); public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) { return comparebytes(b1, s1, l1, b2, s2, l2); Αρχικοποίηση της παραπάνω κλάσης static { WritableComparator.define(IntPair.class, new Comparator()); Εδώ έχουμε τη δευτερεύουσα συνάρτηση σύγκρισης που την υπερφορτώνουμε έτσι ώστε να κάνει πρώτα τη σύγκριση του πρώτου στοιχείου από κάθε σειρά στο αρχείο κι αν βρει το πρώτο ίδιο προχωράει στα επόμενα στοιχεία. Αν τα βρει όλα ίδια επιστρέφει 0 public int compareto(intpair o) { if (first!= o.first) { return first < o.first? -1 : 1; else if (second!= o.second) { return second < o.second? -1 : 1; else if (third!= o.third) { return third < o.third? -1 :1; else if (fourth!= o.fourth) { return fourth < o.fourth? -1 :1; else return 0; Εδώ γίνεται διαμερισμός στους επεξεργαστές με βάση το πρώτο στοιχείο της 10

11 γραμμής public static class FirstPartitioner extends public int getpartition(intpair key, IntWritable value, int numpartitions) { return Math.abs(key.getFirst() * 127) % numpartitions; Κλάση Map που διαβάζει (LongWritable, Text) κι επιστρέφει (IntPair, IntWritable) public static class MapClass extends Mapper<LongWritable, Text, IntPair, IntWritable> { private final IntPair key = new IntPair(); private final IntWritable value = new IntWritable(); Υπερφορτώνουμε τη μέθοδο map έτσι ώστε να διαβάζει ένα ένα τα στοιχεία από την κάθε γραμμή στο αρχείο που έχει δώσει ο χρήστης με τους αριθμούς. Αμέσως αποθηκεύουμε τα νούμερα αυτά στους εξής πίνακες. Όλα τα x1 θα πάνε στον πίνακα left1, όλα τα y1 στον πίνακα right1, όλα τα x2 στον left2 κι όλα τα y2 στον πίνακα right2. Έπειτα θέτουμε ως key όλα τα στοιχεία της κάθε γραμμής κι ως value όποιο θέλουμε. Εδώ δηλώνουμε το y2 να είναι value. Δεν έχει όμως και πολύ σημασία αυτό μιας κι όλα τα στοιχεία θα πάνε σε διαφορετικούς επεξεργαστές μιας και δε μας ενδιαφέρει να ομαδοποιήσουμε τα δεδομένα μας. Εδώ το πρόβλημά μας είναι να βρούμε τα μικρότερα με βάση τον αλγόριθμο public void map(longwritable inkey, Text invalue, Context context) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(inValue.toString()); int left1 = 0; int right1 = 0; int left2 = 0; int right2 = 0; if (itr.hasmoretokens()) { left1 = Integer.parseInt(itr.nextToken()); if (itr.hasmoretokens()) { right1 = Integer.parseInt(itr.nextToken()); 11

12 if (itr.hasmoretokens()) { left2 = Integer.parseInt(itr.nextToken()); if (itr.hasmoretokens()) { right2 = Integer.parseInt(itr.nextToken()); key.set(left1, right1, left2, right2); value.set(right2); context.write(key, value); Κλάση Reduce. Εδώ θα γίνει σχεδόν όλη η δουλειά, αφού εδώ πέρα γράφεται ο κώδικας που θα εκτελεστεί σε κάθε μονάδα επεξεργασίας ταυτόχρονα. public static class Reduce extends Reducer<IntPair, IntWritable, IntWritable, IntWritable> { private final IntWritable first = new IntWritable(); private final IntWritable second = new IntWritable(); private final IntWritable third = new IntWritable(); private final IntWritable fourth = new IntWritable(); private final IntWritable xa = new IntWritable(); private final IntWritable ya = new IntWritable(); private final IntWritable xb = new IntWritable(); private final IntWritable yb = new IntWritable(); private final Random random = new Random(); private final IntWritable rn1 = new IntWritable(); private final IntWritable rn2 = new IntWritable(); Εδώ έχουμε μία συνάρτηση παραγωγής τυχαίων αριθμών μέσα σε συγκεκριμένο εύρος όμως. Αυτό που έχει ορίσει ο χρήστης στο αρχείο με τα δεδομένα ορθογώνια που θα δώσει private static int getrandominteger(int astart, int aend, Random arandom){ if ( astart > aend ) { throw new IllegalArgumentException("Start cannot exceed End."); long range = (long)aend - (long)astart + 1; long fraction = (long)(range * arandom.nextdouble()); int randomnumber = (int)(fraction + astart); return randomnumber; 12

13 Υπερφόρτωση συνάρτησης reduce. Αρχικά αναθέτουμε στους πίνακές μας τα στοιχεία που έχουμε πάρει από το Map και ταυτόχρονα αναθέτουμε και σε νέες μεταβλητές τα στοιχεία του public void reduce(intpair key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { first.set(key.getfirst()); second.set(key.getsecond()); third.set(key.getthird()); fourth.set(key.getfourth()); xa.set(x1); ya.set(y1); xb.set(x2); yb.set(y2); int[] a = new int[10]; int[] b = new int[10]; int[] c = new int[10]; int[] d = new int[10]; int[] e = new int[10]; int[] f = new int[10]; int oriox1 = 0; int orioy1 = 0; int oriox2 = 0; int orioy2 = 0; int q = 0; int w = 0; boolean dominated = false; Εδώ παράγουμε τους τυχαίους αριθμούς και γεμίζουμε τα ορθογώνια των δεδομένων που έχει δώσει ο χρήστης σε αρχείο for(int i=0;i<10;i++) { a[i] = getrandominteger(key.getfirst(), key.getthird(), random); b[i] = getrandominteger(key.getsecond(), key.getfourth(), random); Με τις συνθήκες ελέγχου αυτές βρίσκουμε την τομή του ορθογωνίου ερωτήματός μας με τα ορθογώνια των δεδομένων που τα διαβάζουμε από το αρχείο 13

14 if (((x1>=first.get() && x1<=third.get()) (x2<=third.get() && x2>=first.get())) && ((y1>=second.get() && y1<=fourth.get()) (y2<=fourth.get() && y2>=second.get()))) { if (x1>=first.get()) oriox1 = x1; else if (x1<first.get()) oriox1 = first.get(); if (y1>=second.get()) orioy1 = y1; else if (y1<second.get()) orioy1 = second.get(); if (x2<=third.get()) oriox2 = x2; else if (x2>third.get()) oriox2 = third.get(); if (y2<=fourth.get()) orioy2 = y2; else if (y2>fourth.get()) orioy2 = fourth.get(); Εδώ βρίσκουμε τα σημεία που περιέχονται στην τομή του ορθογωνίου του ερωτήματος και των ορθογωνίων των δεδομένων for(int j=0;j<10;j++) { if(a[j]>=oriox1 && a[j]<=oriox2 && b[j]>=orioy1 && b[j]<=orioy2) { c[q]=a[j]; d[q]=b[j]; q++; Εδώ στην ουσία βρίσκουμε την κορυφογραμμή. Είναι σημαντικό να αναφέρουμε ότι έχουμε ένα flag που μας δίνει την πληροφορία για το αν ένα σημείο κυριαρχείται από κάποιο άλλο. Στο τέλος μαζεύουμε μόνο εκείνα τα σημεία τα οποία δεν κυριαρχούνται από κανένα άλλο σημείο for(int i=0;i<q;i++) { for(int j=0;j<q;j++) { if( (c[i]>c[j] && d[i]>d[j]) ( (c[i]==c[j] && d[i]>d[j]) (c[i]>c[j] && d[i]==d[j])) { dominated = true; break; ) 14

15 if(dominated == true) { dominated = false; continue; else { e[w]=c[i]; f[w]=d[i]; w++; Εδώ μαζεύονται και τυπώνονται τα αποτελέσματα του ερωτήματος κορυφογραμμής σε μορφή (key,value) όπως έχουμε αναφέρει for(int i=0;i<w;i++) { rn1.set(e[i]); rn2.set(f[i]); context.write(rn1, rn2); Εδώ είναι κι η συνάρτηση main όπου καλούνται όλες οι υπόλοιπες συναρτήσεις για να λειτουργήσει το πρόγραμμα public static void main(string[] args) throws Exception { Configuration conf = new Configuration(); String[] otherargs = new GenericOptionsParser(conf, args).getremainingargs(); if (otherargs.length!= 2) { System.err.println("Mallon leipoun arguments!!!"); System.exit(2); Job job = new Job(conf, "Skyline"); job.setjarbyclass(skyline.class); job.setmapperclass(mapclass.class); job.setreducerclass(reduce.class); job.setpartitionerclass(firstpartitioner.class); job.setmapoutputkeyclass(intpair.class); job.setmapoutputvalueclass(intwritable.class); job.setoutputkeyclass(intwritable.class); job.setoutputvalueclass(intwritable.class); 15

16 FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true)? 0 : 1); 16

17 4)Παράρτημα Παρακάτω θα αναφερθούμε για το πως στήσαμε το Hadoop σε περιβάλλον Linux, πως κάνεις το Hadoop να δουλέψει και πως στήθηκε το Eclipse έτσι ώστε να δουλεύει εκεί πάνω το Hadoop. Τέλος θα δούμε και 2 παραδείγματα εκτέλεσης στο Hadoop. Το Hadoop το κατέβασα αρχικά από το site της Apache Έπειτα χρειάστηκε να κάνω κάποιες ρυθμίσεις. Άνοιξα ένα παράθυρο κονσόλας στα Linux και πληκτρολόγησα τις κατάλληλες εντολές: $ sudo apt-get install ssh $ sudo apt-get install rsync Μετά χρειάστηκε να ανοίξω ένα αρχείο, το conf/hadoop-env.sh για να ορίσω τη μεταβλητή JAVA_HOME να δείχνει στον κατάλογο που έχω εγκατεστημένη την Java. Μόλις τα έκανα αυτά για να το δοκιμάσω αν τρέχει έπρεπε με την εντολή $ bin/hadoop να μου εμφανίζει την τεκμηρίωση για το Hadoop. Τώρα, υπάρχουν 3 διαφορετικές λειτουργίες με τις οποίες μπορεί κανείς να λειτουργήσει το Hadoop. Local (Standalone) Mode Pseudo Distributed Mode Fully Distributed Mode Εξ' ορισμού το Hadoop είναι ρυθμισμένο να τρέχει σε μη κατανεμημένη μορφή, απλά ως μία Java διαδικασία. Αυτό είναι χρήσιμο για debugging. Επίσης μπορεί να τρέχει σε έναν υπολογιστή σε ψευδό κατανεμημένη μορφή όπου κάθε εργαλείο του Hadoop τρέχει σε ξεχωριστή Java διαδικασία. Τέλος μπορεί να τρέξει όντως σε πολλούς παράλληλα συνδεδεμένους επεξεργαστές ως πραγματικά κατανεμημένη εργασία. Εμείς επιλέξαμε για τη δουλειά μας τη δεύτερη επιλογή, το Pseudo Distributed Mode. 17

18 Οι ρυθμίσεις που χρειάστηκαν να γίνουν είναι οι εξής: Στο αρχείο conf/core-site.xml: <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> Στο αρχείο conf/hdfs-site.xml: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> Στο αρχείο conf/mapred-site.xml: <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> Έπειτα ελέγχουμε αν μπορούμε να έχουμε πρόσβαση στο localhost χωρίς passphrase με την εντολή $ ssh localhost. Αν δεν μπορούμε, τότε πληκτρολογούμε τις παρακάτω εντολές: $ ssh-keygen -t dsa -P ' ' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 18

19 Τώρα το Hadoop είναι έτοιμο να τρέξει. Πάντα κάθε φορά που ανοίγουμε τον υπολογιστή μας είναι απαραίτητο να γράφουμε την παρακάτω εντολή πριν τρέξουμε το Hadoop. $ bin/hadoop namenode -format. Έπειτα για να τρέξουμε το Hadoop πατάμε $ bin/start-all.sh. Το αρχείο log της εξόδου είναι αποθηκευμένο στον κατάλογο $ {HADOOP_LOG_DIR (εξ' ορισμού στο $ {HADOOP_HOME/logs). Μπορούμε να ανοίξουμε το διαδικτυακό περιβάλλον για το NameNode και το JobTracker που εξ' ορισμού βρίσκονται στα links του site που κατεβάσαμε το Hadoop. Εικόνα 1.NameNode 19

20 Εικόνα 2.JobTracker Όταν θέλουμε να κλείσουμε το Hadoop να μην ξεχνάμε ποτέ να τερματίζουμε όλες τις λειτουργίες του με την εντολή $ bin/stop-all.sh. Όσον αφορά τώρα το στήσιμο του Eclipse για να μπορούμε να γράψουμε κώδικα σε Java έτσι ώστε να έχουμε και τη βοήθεια του compiler ακολουθήθηκε η παρακάτω διαδικασία. Πηγαίνουμε στο φάκελο που έχουμε εγκαταστήσει το Hadoop με το όνομα contrib, μετά ανοίγουμε το φάκελο που λέγεται eclipse-plugin. Αυτό το φάκελο τον αντιγράφουμε μέσα στο φάκελο plugins μέσα στο 20

21 φάκελο που έχουμε κάνει εγκατάσταση το Eclipse. Ανοίγουμε το Eclipse και πατάμε Window Open Perspective Other Map/Reduce. Εικόνα 3.Open Perspective Κάτω στην κονσόλα υπάρχει μία επιλογή που λέει new Hadoop Location. Το ανοίγουμε με δεξί κλικ για να θέσουμε κάποιες συγκεκριμένες ρυθμίσεις. Στο Location name βάζουμε ότι όνομα θέλουμε. Στο Host βάζουμε localhost. Στο port βάζουμε Κάνουμε κλικ στην επιλογή που έχει Use M/R Master host και στο port βάζουμε Στο User name βάζουμε και πάλι ότι θέλουμε. 21

22 Εικόνα 4.Edit New Hadoop Location Τώρα για να τρέξουμε τον κώδικα που θέλουμε ανοίγουμε ένα αρχείο Java και γράφουμε τον κώδικά μας. Το αρχείο που θέλει ο χρήστης να δώσει στο πρόγραμμά μας θα πρέπει να το έχει δημιουργήσει και να λέγεται new.txt. Εκεί πέρα θα πρέπει να περιέχονται 4 αριθμοί σε κάθε σειρά με κενά ανάμεσά τους. Για να φορτώσουμε το αρχείο αυτό στο Hadoop αριστερά υπάρχει το DFS Locations κι αν το ανοίξουμε θα έχει το δικό μας που μόλις φτιάξαμε. Με δεξί κλικ θα κάνουμε upload files to DFS.. για να βάλουμε το αρχείο μας. Για να τρέξει το πρόγραμμα που 22

23 γράψαμε θα πατήσουμε Run Run Configurations.. Στο παράθυρο που θα ανοίξει χρειάζεται να γράψουμε από που θα διαβάσει τα input δεδομένα και που θα τα εκτυπώσει. Έτσι πάμε στην καρτέλα Arguments και γράφουμε: hdfs://localhost:9000/new hdfs://localhost:9000/output. Εικόνα 5.Arguments Έπειτα πατάμε Run και το πρόγραμμα αν δεν έχει κάποιο λάθος θα τρέξει κανονικά. Τώρα για να δούμε τα αποτελέσματα θα πάμε αριστερά εκεί που έχουμε το δικό μας DFS Location και θα κάνουμε δεξί κλικ και refresh. Θα εμφανιστεί ένας κατάλογος που θα λέγεται output κι εκεί μέσα θα βρίσκεται το αρχείο που είπαμε εμείς στα arguments ότι θέλουμε να μας τυπώσει τα αποτελέσματα. 23

24 Εικόνα 6.Σωστή εκτέλεση Τώρα θα δούμε ένα παράδειγμα εκτέλεσης στο Hadoop και τα αποτελέσματα που θα μας εμφανίσει. Στην αρχή θα τρέξουμε το πρόγραμμα για 1000 τυχαία σημεία σε κάθε ορθογώνιο με δεδομένα. Τα ορθογώνια με τα ερωτήματα είναι τα εξής: 24

25 Εικόνα 7.Ορθογώνια με δεδομένα Το ορθογώνιο ερώτημα είναι το εξής: (234,456,2345,567) πάντα σε μορφή (x1,y1,x2,y2). Παρακάτω βλέπουμε τα αποτελέσματα από την πρώτη εκτέλεση με 1000 σημεία σε κάθε ορθογώνιο. Στο κεντρικό αρχείο έχουμε τα αποτελέσματα από το ερώτημα κορυφογραμμής, ενώ στην 25

26 κονσόλα κάτω έχουμε κάποια στατιστικά. Για παράδειγμα εδώ διαβάστηκαν 180 HDFS Bytes και γράφτηκαν 81 HDFS Bytes. Εικόνα 8.Αποτελέσματα εκτέλεσης με 1000 σημεία Παρακάτω έχουμε το ίδιο παράδειγμα με 5000 σημεία σε κάθε ορθογώνιο αυτήν τη φορά. Εδώ παρατηρούμε ότι διαβάστηκαν 180 HDFS Bytes πάλι, όμως γράφτηκαν 130 HDFS Bytes. 26

27 Εικόνα 9.Αποτελέσματα εκτέλεσης με 5000 σημεία Είναι σημαντικό να πούμε ότι για να τρέξουμε ξανά αν θέλουμε το πρόγραμμά μας, χρειάζεται να πάμε αριστερά στο φάκελο output που δημιουργήθηκε με την εκτέλεση, να πατήσουμε δεξί κλικ και να το διαγράψουμε. Αυτό είναι απαραίτητο γιατί αν το ξανατρέξουμε θα προσπαθήσει να δημιουργήσει έναν κατάλογο που ήδη υπάρχει, οπότε θα βγάλει σφάλμα κάτω στην κονσόλα. 27

28 5)Βιβλιογραφία Parallel Distributed Processing of Constrained Skyline Queries by Filtering (Bin Cui, Hua Lu, Quanqing Xu, Lijiang Chen, Yafei Dai, Yongluan Zhou)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EPL 660: Lab 4 Introduction to Hadoop

EPL 660: Lab 4 Introduction to Hadoop EPL 660: Lab 4 Introduction to Hadoop Andreas Kamilaris Department of Computer Science MapReduce Πρόβλημα: Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας. Λύση: κατανομή

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

EPL660: Information Retrieval and Search Engines Lab 5

EPL660: Information Retrieval and Search Engines Lab 5 EPL660: Information Retrieval and Search Engines Lab 5 Παύλος Αντωνίου Γραφείο: B109, ΘΕΕ01 University of Cyprus Department of Computer Science Classes in Hadoop: InputFormat Fundamental class in Hadoop

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

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

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

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

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

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

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

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

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

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

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

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

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

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

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

SPSS Statistical Package for the Social Sciences

SPSS Statistical Package for the Social Sciences SPSS Statistical Package for the Social Sciences Ξεκινώντας την εφαρμογή Εισαγωγή εδομένων Ορισμός Μεταβλητών Εισαγωγή περίπτωσης και μεταβλητής ιαγραφή περιπτώσεων ή και μεταβλητών ΣΤΑΤΙΣΤΙΚΗ Αθανάσιος

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

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

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Τηλ/νιών Τομέας Προγ/σμού & Τεχνολογίας Λογισμικού Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Δρ. Νικόλαος Θ. Λιόλιος Καθηγητής Φεβρουάριος 2012 1. Εισαγωγή Το Visual

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

public class ArrayStack implements Stack {

public class ArrayStack implements Stack { public class ArrayStack implements Stack { private static final int DEF_STACK_SIZE=2; //Array of objects private Object[] S; private int index ; // index, top, last, position // Returns the last item of

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

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

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

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

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795 Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795 Περιεχόμενα Εισαγωγή Εγκατάσταση Δημιουργία νέου project Java Editor Perspectives Δημιουργία source folders Προσθήκη νέου αρχείου στο project Εισάγωντας

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

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

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

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

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

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

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

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

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

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

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

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

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/ 1) Εμφάνιση ιστοσελίδας Ανοίγουμε το πρόγραμμα πλοήγησης (Firefox, Chrome, Internet Explorer κτλ) και στη γραμμή διευθύνσεων πληκτρολογούμε τη διεύθυνση http://localhost ή http://127.0.0.1. Αν δεν βλέπουμε

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπερφόρτωση Αντικείμενα σαν ορίσματα ΥΠΕΡΦΟΡΤΩΣΗ H κλάση Car Μια κλάση που κρατάει την θέση ενός αυτοκινήτου. Μέθοδος move(): μετακινεί το αυτοκίνητο κατά μία

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

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

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

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Σκοπός της 1ης άσκησης είναι η εξοικείωση με τη γλώσσα προγραμματισμού Python, την οποία και θα χρησιμοποιήσουμε και στις υπόλοιπες εργαστηριακές ασκήσεις.

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

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

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

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

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

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

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

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

Βιοϊατρική τεχνολογία

Βιοϊατρική τεχνολογία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Βιοϊατρική τεχνολογία Ενότητα 5: Οξύμετρο (OxyPro Project) Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr ΕΕΔΙΠ Μπέλλου Σοφία e-mail: sbellou@uowm.gr

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

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

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

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

ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΕΤΕΡΟΑΝΑΦΟΡΩΝ

ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΕΤΕΡΟΑΝΑΦΟΡΩΝ ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΕΤΕΡΟΑΝΑΦΟΡΩΝ 1. Αρχικά, θα πρέπει να έχουμε συλλέξει τα scopus ID των ερευνητών του εργαστηρίου. Και μάλιστα όλα τα scopus ID των ερευνητών, καθώς κάποιος ερευνητής μπορεί να έχει

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

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

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

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

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

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

ZTrade Quick Start User Manual Version 2.2

ZTrade Quick Start User Manual Version 2.2 ZTrade Quick Start User Manual Version 2.2 1. Εισαγωγή Το κείμενο αυτό περιγράφει τις βασικές λειτουργίες της εφαρμογής ZΤrade για την παρακολούθηση των αγορών και την διαχείριση των χαρτοφυλακίων. Για

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

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

Σημειωματάριο Τετάρτης 25 Οκτ. 2017 Σημειωματάριο Τετάρτης 25 Οκτ. 2017 Ένα πρόγραμμα που παίζει κρεμάλα Σήμερα φτιάξαμε ένα πρόγραμμα που παίζει "κρεμάλα" με το χρήστη. Το πρόγραμμα hangman.py link (http://fourier.math.uoc.gr/~mk/prog1718/files/hangman.py))

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

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

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

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

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

EPL451: Data Mining on the Web Lab 3

EPL451: Data Mining on the Web Lab 3 EPL451: Data Mining on the Web Lab 3 Παύλος Αντωνίου Γραφείο: B109, ΘΕΕ01 University of Cyprus Department of Computer Science Classes in Hadoop: InputFormat Fundamental class in Hadoop Map-Reduce Defines

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

Hase οδηγίες χρήσης.

Hase οδηγίες χρήσης. Hase οδηγίες χρήσης. Το Hase είναι ένα πρόγραμμα προσομοίωσης που έχει αναπτυχθεί στο πανεπιστήμιο του Εδιμβούργου (http://www.icsa.inf.ed.ac.uk/research/groups/hase/) και μπορεί να χρησιμοποιηθεί για

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

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS lab7 Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 1244 1246 - Η συνθήκη του do/while είναι λάθος µε αποτέλεσµα να µπορεί ο χρήστης να βάζει στοιχεία περισσότερα του SIZE. - Στην συνθήκη

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

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

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

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

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

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

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

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

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

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

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

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

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

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

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

Από τη UML στον Κώδικα. Μέρος Α

Από τη UML στον Κώδικα. Μέρος Α Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing ΕΛΕΓΧΟΣ ΙΣΟΤΗΤΑΣ Έλεγχος ισότητας Έχουμε πει ότι όταν ελέγχουμε ισότητα μεταξύ αντικειμένων

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Ερωτήσεις επανάληψης

ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Ερωτήσεις επανάληψης ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 1. Τι είναι το λειτουργικό σύστημα; Λειτουργικό Σύστημα είναι ένα σύνολο προγραμμάτων που ελέγχει τη λειτουργία του υπολογιστή και προσφέρει υπηρεσίες στους χρήστες.

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

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

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

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

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

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

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

ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC

ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC Χρησιμοποιούμε την δωρεάν έκδοση του λογισμικού προσομοίωσης Anylogic. Για εκπαιδευτική χρήση μπορείτε να «κατεβάσετε» και να εγκαταστήσετε στον υπολογιστή σας την Personal

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

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ 2015-2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ.

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ 2015-2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών 5 Εξάμηνο ΤΗΜΜΥ Α.Π.Θ 2015-2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ DS Prximity Το παιχνίδι Το Prximity είναι ένα παιχνίδι στρατηγικής,

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

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α. Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων Διδάσκοντας: Α. Καραγεώργος 24-05-2016 Επαναληπτικές Ερωτήσεις 1. Πότε τα έπιπλα καλούνται

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

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

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

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

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

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

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

Οδηγίες για τη Χρήση του Google Drive

Οδηγίες για τη Χρήση του Google Drive Οδηγίες για τη Χρήση του Google Drive Χαρπαντίδου Ζαχαρούλα Επιμορφώτρια Β επιπέδου ΠΕ 19-20 Υπεύθυνη ΚΕ.ΠΛΗ.ΝΕ.Τ. Δράμας 2013 Περιεχόμενα Δημιουργία λογαριασμού στο Google Drive. 3 Διαχείριση του GoogleDrive..

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

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

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

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

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

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