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

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Πρόβλημα: Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας. Λύση: κατανομή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δημιουργία μιας εφαρμογής 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SPSS Statistical Package for the Social Sciences

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

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

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

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

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: 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. Αν δεν βλέπουμε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

public class ArrayQueue implements Queue {

public class ArrayQueue implements Queue { public class ArrayQueue implements Queue { // ΠΡΟΣΟΧΗ 2 δείκτες τώρα: // Ο ένας (index/last),ίδιος με πριν, δείχνει την θέση του νέου στοιχείου. // Ο άλλος (front) ΠΑΝΤΑ δείχνει την θέση του 1ου στοιχείου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

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

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

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

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

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

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014. Σωτήρης Γυφτόπουλος

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014. Σωτήρης Γυφτόπουλος Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014 Σωτήρης Γυφτόπουλος Κανόνες του Facility Game (1/4) Στο Facility Game υπάρχει ένα σύνολο κόμβων που συνδέονται «σειριακά» και κάθε κόμβος

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

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

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

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

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

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

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

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL 451 - Data Mining on the Web

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL 451 - Data Mining on the Web EPL 451 - Data Mining on the Web Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3 Prepared by Costantinos Costa Edited by George Nikolaides Semester Project Microsoft Malware Classification Challenge (BIG 2015) More info:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

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

Ανάλυση Αρχείων Καταγραφής σε Υπολογιστικά Νέφη. Log File Analysis in Cloud Computing

Ανάλυση Αρχείων Καταγραφής σε Υπολογιστικά Νέφη. Log File Analysis in Cloud Computing ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάλυση Αρχείων Καταγραφής σε Υπολογιστικά Νέφη Log File Analysis in Cloud Computing ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗ του Μαυρίδη

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

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ C Προγραμματιστικές Ασκήσεις, Φυλλάδιο Εκφώνηση: 9/3/0 Παράδοση: 5/4/0,.59 Άσκηση 0 η : Το πρόβλημα της βελόνας του Buffon Θέμα της εργασίας

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

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

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

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

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI Μανώλης Κιαγιάς, MSc Aiolos Project Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI Χανιά, 2015 2 (C) 2014 Μανώλης Κιαγιάς, manolis@freebsd.org Το παρόν έργο διατίθεται υπό τους όρους της Άδειας: Αναφορά

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

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

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

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

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

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

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

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

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

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

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

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Οδηγός Χρήσης Η-Βιβλίων EBSCO ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ

Οδηγός Χρήσης Η-Βιβλίων EBSCO ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ Οδηγός Χρήσης Απρίλιος, 2014 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΑ ΗΛΕΚΤΡΟΝΙΚΑ ΒΙΒΛΙΑ ΤΗΣ EBSCO... 3 1. ΑΠΑΙΤΗΣΕΙΣ ΣΥΣΤΗΜΑΤΟΣ... 3 ΕΓΚΑΤΑΣΤΑΣΗ ADOBE DIGITAL EDITIONS... 3 2. ΑΝΑΖΗΤΗΣΗ Η-ΒΙΒΛΙΩΝ... 4

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

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

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

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

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

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

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

Μάθημα 4ο. Προγράμματα

Μάθημα 4ο. Προγράμματα Μάθημα 4ο Προγράμματα Σελίδα 47 από 106 4.1 Εγκατάσταση προγραμμάτων Όπως έχουμε πει στο πρώτο μάθημα (Σημειώσεις 1ου Μαθήματος 1.3.3.Β σελ. 12) τα προγράμματα ή αλλιώς εφαρμογές αποτελούν μέρος του λογισμικού

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

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 για την παρακολούθηση των αγορών και την διαχείριση των χαρτοφυλακίων. Για

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

«Οδηγίες χρήσης εφαρμογής Ενιαίου Συστήματος Πληρωμών»

«Οδηγίες χρήσης εφαρμογής Ενιαίου Συστήματος Πληρωμών» «Οδηγίες χρήσης εφαρμογής Ενιαίου Συστήματος Πληρωμών» έκδοση v.1.2, 10/09/2014 Περιεχόμενα Είσοδος... 3 Οικονομικά Υπεύθυνος... 4 Αρχική Οθόνη... 4 Διαχείριση Χρηστών... 4 Αναζήτηση Χρήστη... 4 Δημιουργία

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

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική

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

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

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

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

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

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

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

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

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

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

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

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

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

Π.1.2.2.: Εγχειρίδια χρήσης της υπηρεσίας για τα κύρια υποστηριζόμενα Λειτουργικά

Π.1.2.2.: Εγχειρίδια χρήσης της υπηρεσίας για τα κύρια υποστηριζόμενα Λειτουργικά ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΚΕΝΤΡΟ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ Κωστακιοί Άρτας, ΑΡΤΑ 47100 - Tηλ.. 26810 50500 - Fax. 2681 76941 e-mail: noc@teiep.gr ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΔΙΚΤΥΟ ΤΟΥ Τ.Ε.Ι. ΗΠΕΙΡΟΥ

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

ΕΓΧΕΙΡΙΔΙΟ ΓΙΑ ΤΗΝ ΠΡΟΣΦΟΡΑ ΤΟΥ ΠΡΟΜΗΘΕΥΤΗ

ΕΓΧΕΙΡΙΔΙΟ ΓΙΑ ΤΗΝ ΠΡΟΣΦΟΡΑ ΤΟΥ ΠΡΟΜΗΘΕΥΤΗ ΕΓΧΕΙΡΙΔΙΟ ΓΙΑ ΤΗΝ ΠΡΟΣΦΟΡΑ ΤΟΥ ΠΡΟΜΗΘΕΥΤΗ ΠΕΡΙΕΧΟΜΕΝΑ ΓΕΝΙΚΑ ΓΙΑ ΤΗΝ ΠΡΟΣΦΟΡΑ ΠΡΟΜΗΘΕΥΤΗ...2 1. ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ...3 2. ΔΙΑΒΑΣΜΑ ΠΡΟΚΗΡΥΞΗΣ ΑΠΟ ΤΟ ΕΚΤΕΛΕΣΙΜΟ ΑΡΧΕΙΟ...4 3. Καρτέλα Γενικές Πληροφορίες...6

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου 3.1.1.1 Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου Ως επί το πλείστον δεν υπάρχουν διαφορές στη χρήση του Εγγράφου Κειμένου στα λειτουργικά Windows ή Linux. Η σημαντικότερη διαφορά παρουσιάζεται

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

Άσκηση 5 Firefox Αποθήκευση αρχείων

Άσκηση 5 Firefox Αποθήκευση αρχείων Άσκηση 5 Firefox Αποθήκευση αρχείων Παρουσίαση Γραμμών Εργαλείων Ανοίγουμε τον περιηγητή ιστού Firefox. Αποθήκευση εικόνων Ανοίγουμε την σελίδα www.google.gr Στην πάνω αριστερά γωνία κάνουμε αριστερό κλικ

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

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Κουμπί Κενή βάση δεδομένων Κουμπί του Office Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στο κουμπί «Κενή βάση δεδομένων»

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

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Σεμινάριο joomla! 3 Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Ξεκινώντας:Τι είναι τα CMS Η Joomla είναι λογισμικό κατασκευής

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

XAMPP Apache MySQL PHP javascript xampp

XAMPP Apache MySQL PHP javascript xampp XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα

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