ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ»

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

Download "ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ»"

Transcript

1 ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ Σάββατο 5 Ιουνίου 2010 Οδηγίες: Η διάρκεια της εξέτασης είναι τρεις και µισή (3 ½) ώρες. Ισχύουν όσα αναφέρονται στους Κανονισµούς Εξετάσεων του ΕΑΠ γενικότερα και της Θ.Ε ειδικότερα. Τα κριτήρια αξιολόγησης και το βάρος κάθε κριτηρίου αναγράφονται στο τέλος του κειµένου των θεµάτων. Το σύνολο των µορίων που αντιστοιχεί στο άριστα (10) είναι 200. Επιτυχόντες θεωρούνται όσοι/ες φοιτητές/τριες συγκεντρώσουν τουλάχιστον 100 µόρια, τα οποία αντιστοιχούν στον ελάχιστο προβιβάσιµο βαθµό (5). Θέµα 1: Αντικειµενοστρεφής ανάλυση Σχεδιάζουµε την υλοποίηση ενός συστήµατος υποβολής και αξιολόγησης επιστηµονικών εργασιών για ένα συνέδριο. Οι εργασίες είναι δύο ειδών: κανονικές και posters. Το σύστηµα επιτρέπει στους συγγραφείς των εργασιών να υποβάλλουν εργασίες, στους κριτές των εργασιών να δουν και να αξιολογήσουν τις εργασίες που τους έχουν ανατεθεί και στο προεδρείο του συνεδρίου να αναθέσει εργασίες σε αξιολογητές. Επιπλέον, το προεδρείο µπορεί να βλέπει τις αξιολογήσεις ανά εργασία και αξιολογητή, αλλά και τις αξιολογήσεις που λείπουν. Το προεδρείο αποφασίζει για την αποδοχή ή απόρριψη µιας εργασίας και µε βάση την απόφαση αυτή, το σύστηµα εµφανίζει καταλόγους εγκεκριµένων και απορριφθέντων εργασιών. Ένας συγγραφέας µπορεί να υποβάλλει το πολύ τρεις εργασίες. Το σύστηµα δεν επιτρέπει την υποβολή υπεράριθµων εργασιών, εκτός και αν ο συγγραφέας αποσύρει κάποια. Ανά πάσα στιγµή ο συγγραφέας µπορεί να ελέγξει εάν έχουν υποβληθεί όλες οι αναµενόµενες αξιολογήσεις για κάθε εργασία του (και µόνο), ποια είναι τα σχόλια των αξιολογητών και εάν η εργασία έχει γίνει δεκτή ή όχι. Ο αξιολογητής µπορεί να δει µόνο τον κατάλογο εργασιών που του έχουν ανατεθεί και για κάθε τέτοια εργασία να γράψει την αξιολόγηση απευθείας στην ειδική σελίδα του συστήµατος, ή να επισυνάψει σχετικό αρχείο µε σχόλια, ή και τα δύο. Σε κάθε αξιολογητή ανατίθενται το πολύ τέσσερις εργασίες προς αξιολόγηση. Μια κανονική εργασία µέτριας ποιότητας µπορεί να γίνει αποδεκτή ως poster. Μια εργασία που έχει εγκριθεί πρέπει να διορθωθεί σύµφωνα µε τις υποδείξεις των αξιολογητών και να υποβληθεί ξανά, ώστε να συµπεριληφθεί στο πρόγραµµα του συνεδρίου, µετά την τελική έγκριση του προεδρείου. Όταν µια εργασία γίνει τελικά αποδεκτή, κατανέµεται σε µια από τις συνεδρίες του συνεδρίου. Το συνέδριο περιλαµβάνει το πολύ 12 συνεδρίες, καθεµία από τις οποίες φιλοξενεί κανονικές εργασίες και posters. Κάθε εργασία περιγράφεται από τον τίτλο, τους συγγραφείς και την επιστηµονική συνεδρία του συνεδρίου όπου υποβάλλεται. Για τις κανονικές εργασίες τίθεται µέγιστο όριο σελίδων ίσο µε 6, ενώ για τα posters, το όριο είναι 4 σελίδες. Επιπλέον, τα posters πρέπει να πληρούν καθορισµένες διαστάσεις πλάτους και µήκους. Ερώτηµα 1 Να σχεδιάσετε ένα διάγραµµα περιπτώσεων χρήσης (use case diagram) για το σύστηµα λογισµικού. Ερώτηµα 1 απάντηση Το ζητούµενο διάγραµµα περιπτώσεων χρήσης (use case diagram) είναι το ακόλουθο: 1

2 Σýστηìα ΥποβολÞò και Αξιολüγησηò Επιστηìονικþν Εργασιþν Äιüρθωση ΣυγγραφÝαò <<include>> <<include>> ΥποβολÞ Ελεγχοò Αξιολüγησηò <<include>> Ελεγχοò ΑποδοχÞò ΧρÞστηò Εßσοδοò (Login) στο Σýστηìα Απüσυρση Αξιολüγηση ΕìφÜνιση Καταλüγου Εργασιþν προò Αξιολüγηση ΚριτÞò/ ΑξιολογητÞò Επισýναψη Αρχεßου Αξιολüγησηò Ελεγχοò ΑξιολογÞσεων Ελεγχοò ΑξιολογÞσεων ανü Εργασßα ΑνÜθεση για Αξιολüγηση Ελεγχοò ΑξιολογÞσεων ανü ΑξιολογητÞ Προεδρεßο ΑποδοχÞ ΑποδοχÞ ωò Poster ΕìφÜνιση Καταλüγου Εργασιþν ΑποδοχÞ ÄιορθωìÝνηò Απüρριψη <<include>> ΚατανοìÞ σε Συνεδρßα <<include>> Ερώτηµα 2 Να σχεδιάσετε το διάγραµµα καταστάσεων (state diagram) του αντικειµένου «Κανονική Εργασία». Ερώτηµα 2 απάντηση Το ζητούµενο διάγραµµα καταστάσεων (state diagram) είναι το ακόλουθο: 2

3 Ερώτηµα 3 Να σχεδιάσετε ένα διάγραµµα κλάσεων (class diagram) για το σύστηµα λογισµικού. Ερώτηµα 3 απάντηση Για τη σχεδίαση του ζητούµενου διαγράµµατος κλάσεων πραγµατοποιείται ανάλυση κειµένου στο κείµενο της εκφώνησης του θέµατος. Με τον τρόπο αυτό εντοπίζονται οι κλάσεις που θα χρησιµοποιηθούν, τα πεδία και οι µέθοδοι που περιέχουν, οι σχέσεις µεταξύ των κλάσεων και οι πολλαπλότητες που χαρακτηρίζουν αυτές τις σχέσεις. Αναφορικά µε τον προσδιορισµό των σχέσεων ανάµεσα στις κλάσεις, επισηµαίνεται ότι στην εκφώνηση του θέµατος αναφέρεται ότι υπάρχουν δύο είδη εργασιών, δηλαδή οι κανονικές εργασίες και τα posters. Εποµένως, θα χρησιµοποιηθούν τρεις κλάσεις: Μία για τις εργασίες στη γενική τους µορφή ( Εργασία ), µία για τις κανονικές εργασίες ( Κανονική Εργασία ) και µία για τα posters ( Poster ). Οι δύο τελευταίες κλάσεις θα συνδέονται µε σχέση κληρονοµικότητας µε την κλάση Εργασία. Σε αυτή την ιεραρχία κληρονοµικότητας, η κλάση Εργασία είναι η υπερκλάση (για το λόγο αυτό το τριγωνικό βέλος που χρησιµοποιείται για την απεικόνιση της κληρονοµικότητας δείχνει προς αυτή), ενώ οι κλάσεις Κανονική Εργασία και Poster είναι υποκλάσεις. Επιπρόσθετα, στην εκφώνηση του θέµατος αναφέρεται ότι το συνέδριο περιλαµβάνει το πολύ 12 συνεδρίες, υποδηλώνοντας την ανάγκη χρήσης δύο κλάσεων ( Συνέδριο και Συνεδρία ) για την απεικόνιση του συνεδρίου και των συνεδριών αντίστοιχα. Από τη στιγµή που το συνέδριο αποτελείται από 12 (το πολύ) συνεδρίες, ανάµεσα στην κλάση Συνέδριο και στην κλάση Συνεδρία υπάρχει µια σχέση σύνθεσης (composition), στα πλαίσια της οποίας η κλάση Συνέδριο είναι µια σύνθετη κλάση (για το λόγο αυτό το σύµβολο του διαµαντιού πρέπει να είναι προσαρτηµένο στην κλάση αυτή), η οποία περικλείει την απλούστερη (συνιστώσα) κλάση Συνεδρία. Επισηµαίνεται ότι δεν χρησιµοποιείται σχέση συναρµολόγησης (aggregation) γιατί θεωρείται ότι η απλούστερη κλάση έχει διάρκεια ζωής που συµπίπτει µε αυτή της σύνθετης κλάσης (καθώς µιας συνεδρία πραγµατοποιείται πάντοτε στα πλαίσια ενός συνεδρίου). Το ζητούµενο διάγραµµα κλάσεων (class diagram) είναι το ακόλουθο: 3

4 - Τßτλοò Συνεδρßα ΣυνÝδριο 1 προεδρεýει συììετýχει * ΣυγγραφÝαò - Ονοìατεπþνυìο - ΦορÝαò - + ΥπÝβαλε Εργασßα + ΑπÝσυρε Εργασßα + Ελεγξε Αξιολüγηση + Ελεγξε ΑποδοχÞ + Äιüρθωσε Εργασßα συγγρüφει 1..* Τßτλοò 1 + ΕìφÜνισε Καταλüγουò Εργασιþν + ΚατÝνειìε Εργασßα σε Συνεδρßα 1 * Εργασßα φιλοξενεß - Τßτλοò - ΣυγγραφÝαò [] - Ονοìα Συνεδρßαò - ΜÝγιστο Οριο Σελßδων + Επισýναψε Αρχεßο Σχολßων 0..4 διαθýτει 1 * αξιολογεß 1 διαχειρßζεται * 1 ΚριτÞò/ΑξιολογητÞò - Ονοìατεπþνυìο - ΦορÝαò - + ÄιÜβασε Εργασßα + Αξιολüγησε Εργασßα + ΕìφÜνισε ΚατÜλογο Εργασιþν ορßζει 1 Προεδρεßο - Ονοìατεπþνυìο - ΦορÝαò - + ΑνÝθεσε Εργασßα + Ελεγξε ΑξιολογÞσειò + ΚÜνε ÄεκτÞ Εργασßα + ΑπÝρριψε Εργασßα + ΚÜνε ÄεκτÞ ÄιορθωìÝνη Εργασßα * 1 + Ελεγξε Οριο Σελßδων Poster - ΠλÜτοò - ΜÞκοò + Ελεγξε Οριο Σελßδων Θέµα 2: Αποδιφοροποίηση γραµµατικής ίνεται η ακόλουθη γραµµατική: S S op1 S S op2 S A A a b Ερώτηµα 1 είξτε ότι η δοθείσα γραµµατική είναι διφορούµενη. 4

5 Ερώτηµα 1 απάντηση Για να δειχθεί ότι η δοθείσα γραµµατική είναι διφορούµενη αρκεί να διατυπώσουµε µια συµβολοσειρά για την οποία υπάρχουν δύο διαφορετικές αριστερές (ή εναλλακτικά δεξιές) παραγωγές. Αυτό είναι ισοδύναµο µε την απόδειξη ότι υπάρχουν περισσότερα από ένα δένδρα ανίχνευσης για τη συγκεκριµένη συµβολοσειρά. Θεωρούµε τη συµβολοσειρά: b op1 a op2 a και έχουµε τις εξής δύο αριστερές παραγωγές: S S op1 S ( κανόνας S S op1 S ) Α op1 S ( κανόνας S A ) b op1 S ( κανόνας A b ) b op1 S op2 S ( κανόνας S S op2 S ) b op1 A op2 S ( κανόνας S A ) b op1 a op2 S ( κανόνας A a ) b op1 a op2 A ( κανόνας S A ) b op1 a op2 a ( κανόνας A a ) S S op2 S ( κανόνας S S op2 S ) S op1 S op2 S ( κανόνας S S op1 S ) Α op1 S op2 S ( κανόνας S A ) b op1 S op2 S ( κανόνας A b ) b op1 A op2 S ( κανόνας S A ) b op1 a op2 S ( κανόνας A a ) b op1 a op2 A ( κανόνας S A ) b op1 a op2 a ( κανόνας A a ) Ερώτηµα 2 Μετασχηµατίστε τη δοθείσα γραµµατική σε µια ισοδύναµη, στην οποία ο τελεστής op1 θα έχει υψηλότερη προτεραιότητα από τον τελεστή op2. είξτε ότι η νέα γραµµατική δεν είναι διφορούµενη. Ερώτηµα 2 απάντηση Μια γραµµατική είναι ισοδύναµη µε τη δοθείσα γραµµατική αν παράγει τις ίδιες συµβολοσειρές µε αυτή. Θα πρέπει λοιπόν από τη ρίζα να παράγονται συµβολοσειρές που περιέχουν op1 και συµβολοσειρές που περιέχουν op2 µε µία ουσιώδη διαφορά µεταξύ των δύο αυτών περιπτώσεων. Ο τελεστής op1 θα πρέπει να έχει υψηλότερη προτεραιότητα και αυτό σηµαίνει ότι σε µία πρόταση όπως αυτή του παραδείγµατος η σωστή παραγωγή θα πρέπει να είναι η δεύτερη και όχι η πρώτη. Θα πρέπει δηλαδή το b op1 a να είναι το αποτέλεσµα που θα αποτελέσει τον αριστερό τελεστέο του op2 a. Με άλλα λόγια θα πρέπει το op2 να εµφανίζεται πιο κοντά στη ρίζα (αρχή της γραµµατικής) και το op1 να παράγεται έµµεσα (µέσω νέου µη τερµατικού συµβόλου) από αυτή. Η νέα γραµµατική που εκπληρώνει τις προαναφερόµενες προϋποθέσεις είναι η εξής: S T op2 S T Τ A op1 T A A a b Η µοναδική παραγωγή της συµβολοσειράς b op1 a op2 a είναι πλέον η εξής: S T op2 S A op1 T op2 S b op1 T op2 S b op1 A op2 S b op1 a op2 S b op1 a op2 T b op1 a op2 A b op1 a op2 a 5

6 Θέµα 3: Υλοποίηση εφαρµογής σε Java Το παρακάτω διάγραµµα κλάσεων αναπαριστά ένα εργοστάσιο (Factory) που διαθέτει διάσπαρτους αισθητήρες (Sensors) µετρήσεων των καιρικών συνθηκών. Υπάρχουν αισθητήρες θερµοκρασίας (Temperature) και υγρασίας (Humidity). Το εργοστάσιο διαθέτει κοινή δοµή δεδοµένων για τις µετρήσεις. Κάθε µέτρηση (SensedValue) χαρακτηρίζεται από τη χρονική στιγµή που πραγµατοποιήθηκε, τον αισθητήρα που την παρήγαγε και ένα πραγµατικό αριθµό που αντιστοιχεί στην µετρούµενη τιµή. Για τις ανάγκες της άσκησης, θεωρούµε ότι οι αισθητήρες διαθέτουν µέθοδο που να παράγει µία τυχαία τιµή µέτρησης στα αποδεκτά όρια τιµών τους. Τα διαστήµατα τιµών για την θερµοκρασία είναι [-10.0,40.0] και για την υγρασία [0.0,100.0]. Ερώτηµα 1 Να γραφεί ο κώδικας Java που υλοποιεί το σύστηµα. Η κάθε κλάση να διαθέτει όλα τα απαιτούµενα χαρακτηριστικά και µεθόδους, όπως περιγράφονται στο διάγραµµα κλάσεων. Ερώτηµα 1 απάντηση public class Factory{ private Sensor[] sensors; private Vector<SensedValue> data; private int simtime; public Factory(Sensor[] sensors) { this.sensors = sensors; data = new Vector<SensedValue>(); 6

7 public class SensedValue{ Date date; Sensor sensor; double value; public SensedValue(Date date, Sensor sensor, double value) { this.date = date; this.sensor = sensor; this.value = value; public Sensor getsensor() { return sensor; public double getvalue() { return value; public abstract class Sensor { public abstract SensedValue getsensedvalue(); public class HumiditySensor extends Sensor{ public SensedValue getsensedvalue() { double value = Math.random()*100.0; return new SensedValue(new Date(), this, value); public class TemperatureSensor extends Sensor{ public SensedValue getsensedvalue() { double value = Math.random()*50.0; return new SensedValue(new Date(), this, value); Ερώτηµα 2 Να γράψετε µέθοδο main(), η οποία θα υλοποιεί ένα εργοστάσιο µε ένα αισθητήρα υγρασίας και δύο αισθητήρες θερµοκρασίας και στη συνέχεια θα τυπώνει τις τιµές τους ανά λεπτό για µία ώρα. Ερώτηµα 2 απάντηση public class Main { public static void main(string[] args) { Sensor[] s = new Sensor[3]; s[0] = new HumiditySensor(); s[1] = new TemperatureSensor(); s[2] = new TemperatureSensor(); Factory f = new Factory(s); 7

8 for(int i=0;i<60;i++){ // 60 φορές System.out.println(("Sensor values at min "+i); for (Sensor s1: s) System.out.println(s1.getSensedValue()); Thread.sleep(60000); //60 * 1000 msec = 1 min Ερώτηµα 3 Αλλάξτε τον κώδικα της κλάσης Factory ώστε να λειτουργεί ως νήµα. Προσθέστε και τις µεθόδους: simulate(int simtimeinsec), η οποία παίρνει ως παράµετρο τον αριθµό των δευτερολέπτων που επιθυµούµε να πραγµατοποιηθεί εξοµοίωση λειτουργίας του εργοστασίου, εκκινεί το εργοστάσιο, πραγµατοποιεί την εξοµοίωση και στο τέλος της εξοµοίωσης τυπώνει τη µέση τιµή των καταγεγραµµένων θερµοκρασιών. Στα πλαίσια την εξοµοίωσης το εργοστάσιο ανά 10 δευτερόλεπτα ζητά από τους διαθέσιµους αισθητήρες (και καταγράφει στην κοινή δοµή δεδοµένων) τις µετρήσεις. printtemperratureavg(), η οποία υπολογίζει και τυπώνει τη µέση τιµή των καταγεγραµµένων θερµοκρασιών. Ερώτηµα 3 απάντηση Με πράσινο σηµειώνονται οι αλλαγές. Ακολουθεί ο κώδικας των δύο νέων µεθόδων και της µεθόδου run(): import java.util.date; import java.util.vector; //public class Factory implements Runnable{ //Εναλλακτική προσέγγιση public class Factory extends Thread{ public void simulate(int simtimeinsec){ simtime = simtimeinsec ; data.clear(); public void run(){ long stoptime = new Date().getTime()+simTime*1000; try{ while (stoptime > new Date().getTime()) { for (Sensor s : sensors) { data.add(s.getsensedvalue()); //10 sec Thread.sleep(10000); catch(interruptedexception x){ finally{printtemperatureavg(); 8

9 private void printtemperatureavg(){ double sum=0.0; int count=0; for(sensedvalue v:data){ if(v.getsensor().getclass().getname(). equals(temperaturesensor.class.getname())){ sum+=v.getvalue(); count++; System.out.println("Average temperature is" +(sum/count)); Ερώτηµα 4 Προσθέστε τον απαιτούµενο κώδικα στη µέθοδο main() ώστε να πραγµατοποιηθεί µια εξοµοίωση διάρκειας 5 λεπτών. Ερώτηµα 4 απάντηση Πρέπει να αφαιρεθούν οι εντολές που κάνουν την εκτύπωση των τιµών των αισθητήρων ανά λεπτό. Με πράσινο σηµειώνεται η εντολή που προστίθεται: public class Main { public static void main(string[] args) { Sensor[] s = new Sensor[3]; s[0] = new HumiditySensor(); s[1] = new TemperatureSensor(); s[2] = new TemperatureSensor(); Factory f = new Factory(s); f.simulate(5*60); Θέµα 4: Εκτίµηση κόστους έργου Θεωρήστε το ακόλουθο σύστηµα µηχανοργάνωσης πανεπιστηµιακής βιβλιοθήκης: Μια πανεπιστηµιακή βιβλιοθήκη αποθηκεύει βιβλία (Books) και AudioBooks (σε DVD), τα οποία είναι δυνατό να δανεισθούν, τόσο στο προσωπικό του πανεπιστηµίου (Personnel), όσο στους φοιτητές (Student). Κάθε χρήστης (User) της βιβλιοθήκης διαθέτει µοναδικό κωδικό και µπορεί να δανεισθεί ένα αντικείµενο για 10 ηµέρες το πολύ. Οι φοιτητές µπορούν να δανεισθούν έως 5 βιβλία και έως 2 DVD, ενώ οι υπάλληλοι µπορούν να δανεισθούν έως 8 βιβλία και έως 4 DVD. Κάθε χρήστης µπορεί να δεσµεύσει έως 3 βιβλία (δεν είναι δυνατή η δέσµευση DVD). Ο δανεισµός ή η δέσµευση µπορεί να γίνει είτε από ένα χρήστη, είτε µε τη βοήθεια του βιβλιοθηκάριου. Σε κάθε περίπτωση, όταν ένας χρήστης της βιβλιοθήκης δανείζεται ένα αντικείµενο, οι λεπτοµέρειες δανεισµού του ελέγχονται για να διασφαλιστεί, τόσο ότι δεν έχει δανεισθεί εκπρόθεσµα άλλα αντικείµενα, όσο και ότι δεν έχει ήδη δανεισθεί το µέγιστο επιτρεπόµενο αριθµό αντικειµένων. Αν για ένα συγκεκριµένο βιβλίο έχουν ήδη γίνει τρεις δεσµεύσεις, τότε σε περίπτωση που γίνει ακόµη µία δέσµευση, ο βιβλιοθηκάριος θα παραγγείλει ένα νέο αντίτυπο του συγκεκριµένου βιβλίου. Οι χρήστες της βιβλιοθήκης είναι δυνατό να ελέγξουν οι ίδιοι τις λεπτοµέρειες δανεισµού που τους αφορούν οποιαδήποτε 9

10 χρονική στιγµή. Οι βιβλιοθηκάριοι επιτρέπεται να ελέγχουν τις λεπτοµέρειες δανεισµού οποιουδήποτε χρήστη της βιβλιοθήκης. Το σύστηµα παράγει ηµερήσιες και µηνιαίες αναφορές για τους βιβλιοθηκάριους. Στις µηνιαίες αναφορές υπολογίζεται και το κόστος από τις καθυστερηµένες επιστροφές ή απώλειες. Παρακάτω δίνεται το µοντέλο των περιπτώσεων χρήσης. Ερώτηµα 1 Χρησιµοποιώντας τη µέθοδο Use Case Points να εκτιµήσετε τη συνολική προσπάθεια που απαιτείται για την κατασκευή αυτού του συστήµατος λογισµικού. Να χρησιµοποιήσετε αποκλειστικά τις περιπτώσεις χρήσης του σχήµατος. Επίσης να κάνετε όσες παραδοχές χρειάζονται, χωρίς όµως να παραβιάσετε καµία βασική αρχή καλής ανάπτυξης λογισµικού. Ερώτηµα 1 απάντηση Χρησιµοποιώντας το µοντέλο περιπτώσεων χρήσης του σχήµατος εκτελούµε τα εξής βήµατα για την εφαρµογή της µεθόδου Use Case Points: 1. Χαρακτηρισµός χειριστών. Χειριστές: User, Librarian Βάρος χειριστών UAW1, UAW2 = 3 (Υποθέτουµε ότι σε ένα σύστηµα αυτού του είδους οι Χειριστές επικοινωνούν µε το σύστηµα µέσω ενός GUI). 10

11 2. Χαρακτηρισµός περιπτώσεων χρήσης. Ο κύριος παράγοντας για τον καθορισµό του βάρους µίας Περίπτωσης Χρήσης (Π.Χ.) είναι ο αριθµός των βηµάτων της βασικής ροής της (βλ. άρθρο Clemmons). Η εκφώνηση αναφέρει περιορισµούς και ελέγχους, πράγµα που σηµαίνει ότι µία λογική επιλογή είναι να θεωρήσουµε µέση πολυπλοκότητα για όλες τις Π.Χ.: BorrowLibraryItem, UUCW1 = 10 BorrowJournal, UUCW2 = 10 BorrowBook, UUCW3 = 10 ReserveBook, UUCW4 = 10 CheckBorrowDetails, UUCW5 = 10 CheckUserDetails, UUCW6 = 10 OrderBookCopy, UUCW7 = Υπολογισµός συνολικού αριθµού αστάθµητων σηµείων περιπτώσεων χρήσης. Με βάση τα βήµατα 1 και 2 έχουµε ότι: UUCP = UAW1 + UAW2 + 7*UUCWi = 2*3 + 7*10 = Απόδοση τιµών σε παράγοντες τεχνικής πολυπλοκότητας και σε παράγοντες περιβάλλοντος. Τεχνικοί παράγοντες: Παράγοντας Βάρος Τιµή Τελική Τιµή Κατανεµηµένο σύστηµα Απαιτήσεις απόδοσης Αποδοτικότητα τελικών χρηστών Σύνθετη εσωτερική επεξεργασία Επαναχρησιµοποιήσιµος κώδικας Ευκολία εγκατάστασης 0,5 0 0 Ευχρηστία 0,5 1 0,5 Ευκολία αλλαγής Ταυτόχρονη λειτουργία Ασφάλεια Πρόσβαση σε τρίτους Εκπαίδευση χρηστών Σύνολο 8,5 Σχόλιο Υποθέτουµε ότι το σύστηµα είναι προσπελάσιµο από το Internet και υπάρχουν κάποιες σχετικές απαιτήσεις Έλεγχοι, ικανοποίηση κάποιων περιορισµών, στοιχειώδεις υπολογισµοί Υποτίθεται ότι θα πρέπει να υπάρχει µία στοιχειώδης ευχρηστία της εφαρµογής, π.χ. στην τοποθέτηση των επιλογών στις διάφορες φόρµες Υποτίθεται ότι ο κώδικάς µας πρέπει ούτως ή άλλως να διευκολύνει µελλοντικές αλλαγές Πρέπει να υπάρχει διασφάλιση της χρήσης και προστασία των δεδοµένων 11

12 Παράγοντες περιβάλλοντος: Υποθέτουµε µέσες τιµές για όλους τους παράγοντες, εκτός των σταθερών απαιτήσεων. Παράγοντας Βάρος Τιµή Τελική Τιµή Οικειότητα µε τη UML 2 2,5 5 Εργασία part time -1 2,5-2,5 Ικανότητα ανάλυσης 0,5 2,5 1,25 Εµπειρία εφαρµογής 0,5 2,5 1,25 Εµπειρία στην αντικειµενοστρέφεια 1 2,5 2,5 Κίνητρο 1 2,5 2,5 υσκολία γλώσσας προγραµµατισµού -1 2,5-2,5 Σταθερές απαιτήσεις 2 3,5 7 Σύνολο 14,5 Σχόλιο Σχετικά καλά ορισµένες απαιτήσεις (έχουν δοθεί λεπτοµερώς οι διάφοροι περιορισµοί) µε µικρή πιθανότητα να αλλάξουν, καθώς είναι γνωστή η διαδικασία λειτουργίας µίας δανειστικής βιβλιοθήκης 5. Υπολογισµός αθροίσµατος παραγόντων τεχνικής πολυπλοκότητας. Συνολικά Tfactor = 8,5 6. Υπολογισµός παράγοντα τεχνικής πολυπλοκότητας. TCF = 0,6 + 0,01 * 8,5 = 0, Υπολογισµός αθροίσµατος παραγόντων περιβάλλοντος. Συνολικά Efactor = 14,5 8. Υπολογισµός παράγοντα περιβάλλοντος. ΕCF = 1,4 (0,03 * 14,5) = 0, Υπολογισµός σταθµισµένων στοιχείων περιπτώσεων χρήσης. ΑUCP = UUCP * TCF * EF = 76 * 0,685 * 0,965 = 50,24 ~ 50 UCP 10. Υπολογισµός συνολικής απαιτούµενης προσπάθειας. Θεωρούµε ότι απαιτούνται 20 ώρες εργασίας ανά AUCP. Εποµένως, η συνολική απαιτούµενη προσπάθεια είναι: Effort = 20 * 50 = 1000 ώρες εργασίας 12

13 Θέµα 5: Αναδροµική κατάβαση ίνεται η ακόλουθη γραµµατική (S, L, K µη τερµατικά σύµβολα και (, ), ;, a, b, c τερµατικά σύµβολα): S S(L) a L L K;S SK K bl bcs Ερώτηµα 1 Είναι κατάλληλη για υλοποίηση µεταγλωττιστή µε αναδροµική κατάβαση; Αν όχι, ποια προβλήµατα εντοπίζετε; Ερώτηµα 1 απάντηση Η δοθείσα γραµµατική δεν είναι κατάλληλη για υλοποίηση µεταγλωττιστή µε αναδροµική κατάβαση. Τα προβλήµατα που υπάρχουν είναι τα ακόλουθα: Αριστερή αναδροµή στον S Έµµεση αριστερή αναδροµή στον S (µετά από αντικατάσταση L σε S) Κοινό πρόθεµα στον Κ Πρόβληµα Ν-1 στον L Ερώτηµα 2 Να κάνετε τους κατάλληλους µετασχηµατισµούς ώστε να γίνει κατάλληλη για υλοποίηση µεταγλωττιστή µε αναδροµική κατάβαση. Σε κάθε βήµα επεξεργασίας, να αναγράφετε τον αντίστοιχο µετασχηµατισµό. Ερώτηµα 2 απάντηση Αρχική γραµµατική: S S(L) a L L K;S SK K bl bcs Έµµεση αριστερή αναδροµή (αντικατάσταση L σε S): S S(K;S) S(SK) a K;S SK L K;S SK K bl bcs Απαλοιφή αριστερής αναδροµής σε S: S as K;SS S (K;S)S (SK)S KS e L K;S SK K bl bcs Κοινό πρόθεµα σε Κ παραγοντοποίηση: S as K;SS S (K;S)S (SK)S KS e L K;S SK K bk K L cs Πρόβληµα Ν-1 σε S και L αντικατάσταση Κ: S as K;SS S (bk ;S)S (SbK )S bk S e 13

14 L bk ;S SK K bk K L cs Κοινό πρόθεµα σε S παραγοντοποίηση: S as K;SS S (S bk S e S bk ;S)S SbK )S L bk ;S SK K bk K L cs (Προαιρετικά) Αντικατάσταση σε όλους τους κανόνες των Κ και L και απαλοιφή των δύο κανόνων: S as bk ;SS S (S bk S e S bk ;S)S SbK )S K bk ;S SbK cs Κριτήρια αξιολόγησης ΘΕΜΑ 1 (ΣΥΝΟΛΟ) 50 Ερώτηση 1 20 Ερώτηση 2 10 Ερώτηση 3 20 ΘΕΜΑ 2 (ΣΥΝΟΛΟ) 20 Ερώτηση 1 5 Ερώτηση 2 15 ΘΕΜΑ 3 (ΣΥΝΟΛΟ) 90 Ερώτηση 1 50 Ερώτηση 2 20 Ερώτηση 3 15 Ερώτηση 4 5 ΘΕΜΑ 4 20 ΘΕΜΑ 5 (ΣΥΝΟΛΟ) 20 Ερώτηση 1 5 Ερώτηση 2 15 ΣΥΝΟΛΟ 200 Καλή Επιτυχία! 14

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ»

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ» ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ Σάββατο 5 Ιουνίου 2010 Οδηγίες: Η διάρκεια της εξέτασης είναι τρεις και µισή (3 ½) ώρες. Ισχύουν όσα αναφέρονται στους Κανονισµούς Εξετάσεων του ΕΑΠ γενικότερα και της Θ.Ε. ειδικότερα. Τα

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

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

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

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

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

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

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

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

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

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

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

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

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

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

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

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

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

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships) ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships) Σκοπός Σκοπός των συσχετίσεων είναι να αναπαριστούν την αλληλεπίδραση μεταξύ των κλάσεων και των αντικειμένων. Απεικονίζονται διαγραμματικά με μία γραμμή μεταξύ

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

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

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

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Ανάλυση Πληροφοριακών Συστημάτων Εαρινό Εξάμηνο 2018-2019 Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Διαγράμματα Κλάσεων Τα βασικά στοιχεία Διαλέξεις παρουσιάσεις Το υλικό του μαθήματος στηρίζεται

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

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

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

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θεσσαλονίκη 17-12-2006 Αγαπητοί φοιτητές & φοιτήτριες, στη συνέχεια θα συνοψίσω το περιεχόµενο της δεύτερης φετινής ΟΣΣ, η οποία διεξήχθη την Κυριακή 10 εκεµβρίου µε παρόντες τους 23 από τους 32+2 φοιτητές

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

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

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

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

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams Μοντελοποίηση Συστημάτων Διαγράμματα Κλάσεων ClassDiagrams Διαγράμματα Κλάσεων Χρησιμοποιούνται στα βήματα: Ανάλυση απαιτήσεων Π.Σ. Σχεδιασμός Π.Σ. Είναι στατικά διαγράμματα που δείχνουν: Κλάσεις Ιδιότητες

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

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

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

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση

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

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

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

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

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

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις. Μέσω της κληρονομικότητας μπορούμε να δημιουργήσουμε µια νέα τάξη (θυγατρική)

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

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

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

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

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου Συμπίεση Η συμπίεση δεδομένων ελαττώνει το μέγεθος ενός αρχείου : Εξοικονόμηση αποθηκευτικού χώρου Εξοικονόμηση χρόνου μετάδοσης Τα περισσότερα αρχεία έχουν πλεονασμό στα δεδομένα τους Είναι σημαντική

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

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

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

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Βοηθητικές έννοιες (i) Σύνολα FIRST Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Αν a τότε a FIRST Αν τότε FIRST Νίκος Παπασπύρου,

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

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

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

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

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

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

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

Οι περιπτώσεις χρήσης

Οι περιπτώσεις χρήσης 1 Ελληνικό Ανοικτό Πανεπιστήµιο Οι περιπτώσεις χρήσης ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Το µοντέλο των περιπτώσεων χρήσης Τα διαγράµµατα των περιπτώσεων χρήσης Λεκτική περιγραφή των περιπτώσεων χρήσης Τρόπος

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

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2016-2017 ΕΡΓΑΣΙΑ 1 (JAVA) Παράδοση 26/4/2017 Στα πλαίσια της εργασίας θα υλοποιηθεί ένα απλοϊκό πρόγραμμα κρατήσεων Ξενοδοχείων. Για απλοποίηση θα περιοριστούμε

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ ΕΡΓΑΣΤΗΡΙΟ 2

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ ΕΡΓΑΣΤΗΡΙΟ 2 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ ΕΡΓΑΣΤΗΡΙΟ 2 Θέμα εργαστηρίου: Κλάσεις, μέθοδοι και δηλώσεις ανάθεσης Περιεχόμενο εργαστηρίου: Εισαγωγή στις κλάσεις, στα είδη μεθόδων και στα αντικείμενα Μαθηματικές εκφράσεις της Math

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

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

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

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

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

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

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

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

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

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

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

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

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

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

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

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

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

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1 Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή

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

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

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

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

Μοντελοποίηση Πεδίου

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

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

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

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

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

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

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

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

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

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

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

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

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

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

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική

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

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

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

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

Διάγραμμα Κλάσεων. Class Diagram

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

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

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

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

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

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

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

Απάντηση: (func endfunc)-([a-za-z])+

Απάντηση: (func endfunc)-([a-za-z])+ Γλώσσες Προγραμματισμού Μεταγλωττιστές Ασκήσεις Επανάληψης ) Περιγράψτε τις κανονικές εκφράσεις που υποστηρίζουν (i) συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

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

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

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω: 3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται

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

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

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

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

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

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

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας 1 ιαγράµµατα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειµένων µέσω µηνυµάτων Η ανάθεση αρµοδιοτήτων περιλαµβάνει µεγάλο

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12 Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding

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

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006) exercise 6new_10 12/5/2008 12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006) 12.6.1. Περιγραφή Θεωρήστε την γραφική διεπαφή της αριθµοµηχανής των MS Windows. Μια παρόµοια διεπαφή (δες

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

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

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

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

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

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

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

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

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

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Πολλαπλή κληρονομικότητα, Συσχετίσεις μεταξύ κλάσεων ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) (Απλή) Κληρονομικότητα Student + calctuition(): double GraduateStudent + calctuition():

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

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

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

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

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

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

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

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >=2 που

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

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

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

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

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

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

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων class Person { private String name; public Person(String name){ this.name = name; public String getname(){ return name; class Car { private

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

ΕΠΛ131 Αρχές Προγραμματισμού

ΕΠΛ131 Αρχές Προγραμματισμού ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ131 Αρχές Προγραμματισμού Ακαδημαϊκό Έτος 2016/17 Εαρινό Εξάμηνο ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ ΗΜΕΡΟΜΗΝΙΑ: 15 Μαρτίου 2017 ΔΙΑΡΚΕΙΑ: 4:00μμ 6:30μμ ΑΙΘΟΥΣΕΣ: Κτήριο ΧΩΔ01,

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

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

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

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 4 ο Συντακτική Ανάλυση Επαλήθευση της σύνταξης του προγράμματος Κατασκευή συντακτικού δέντρου Η κεντρική φάση της Μετάφρασης Οδηγούμενης από τη Σύνταξη Από εδώ ξεκινά η παραγωγή

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

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

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

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