(Logic Gate Simulator)

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

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ #3 Στρώµα ικτύου:ip Πρωτόκολλο και Πρωτόκολλα ροµολόγησης

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ #2 Ethernet MAC Στρώµα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

CYGWIN Οδηγίες Χρήσης (Συγγραφέας: Γιώργος ούκας)

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

Alpha Web Banking Εργαλείο δηµιουργίας αρχείων. Οδηγίες χρήσεως

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΘΕΣΕΙΣ ΕΡΓΑΣΙΑΣ

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

XEROX - ΕΛΤΙΟ ΑΣΦΑΛΕΙΑΣ XRX05-004

ΣΥΝ ΕΣΗ Η/Υ ΣΤΟ LAN TOY ΙΟΝΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINXP(ΕΛΛΗΝΙΚΑ)

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


ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ ΑΣΦΑΛΕΙΑΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: NEWSLETTER

XEROX - ΕΛΤΙΟ ΑΣΦΑΛΕΙΑΣ XRX05-003

XEROX - ΕΛΤΙΟ ΑΣΦΑΛΕΙΑΣ XRX05-008

Σύνδεση σε τοπικό δίκτυο LAN μέσω πρίζας δικτύου

Συστηµάτων ΗΜΥ211. Στόχοι Εργαστηρίου. Πανεπιστήμιο Κύπρου. Πανεπιστήμιο Κύπρου. Εργαστήριο Ψηφιακών Συστηµάτων ΗΜΥ211 Χειµερινό 2013

Η εφαρµογή ClassWeb δίνει στους διδάσκοντες χρήστες του συστήµατος τη δυνατότητα πρόσβασης µέσω του ιαδικτύου σε ποικίλες υπηρεσίες, όπως:

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΣΥΧΝΕΣ ΕΡΩΤΗΣΕΙΣ

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ

Φύλλο Εργασίας Μαθητών

POWERPOINT Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

ΤΟΜΕΑΣ HΛΕΚΤΡΟΝΙΚΗΣ. Επαγγελματικό λογισμικό στην ΤΕΕ: Επιμόρφωση και Εφαρμογή ΣΕΜΙΝΑΡΙΟ 1

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΧΡΗΣΙΜΕΣ ΣΥΝ ΕΣΕΙΣ

ΣΧΕΔΙΑΣΗ ΥΛΟΠΟΙΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ «ΗΛΕΚΤΡΟΝΙΚΟΣ» ΓΙΑ ΤΙΣ ΑΝΑΓΚΕΣ ΤΗΣ ΤΕΧΝΙΚΗΣ ΕΠΑΓΓΕΛΜΑΤΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ.

ΕΡΓΟ: «ΑΝΑΠΤΥΞΗ ΜΕΤΑΠΤΥΧΙΑΚΟΥ ΕΚΠΑΙ ΕΥΤΙΚΟΥ ΥΛΙΚΟΥ ΓΙΑ ΕΠΙΜΟΡΦΩΤΕΣ ΤΕΧΝΟΛΟΓΙΩΝ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΤΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ (ΤΠΕ) ΣΤΗΝ ΤΕΧΝΙΚΗ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΙΑΦΗΜΙΣΕΙΣ

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση

ΡΥΘΜΙΣΕΙΣ ΟΙΚΙΑΚΟΥ ΔΙΚΤΥΟΥ ΣΤΑ WINDOWS 7

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Η σελίδα υποδοχής του blog

Α. Ερωτήσεις Ανάπτυξης

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

MICROSOFT OFFICE 2003 MICROSOFT WORD 2003

ΣΚΟΠΟΙ ΒΗΜΑ 1 Ο. Θα εμφανιστεί το λογότυπο του προγράμματος.. ..και μετά από λίγο ένα παράθυρο με τίτλο Προβολές CMap Tools. [1]

CARDISOFT. User Guide. ClassWeb VERSION 1.1. [February] [2007] Cardisoft Ανώνυµη Εταιρία Παραγωγής Λογισµικού

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΕΚ ΗΛΩΣΕΙΣ

XnetTrader: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ σε ΔΧΣ Τερματικό

ΑΣΚΗΣΗ 1 ΛΟΓΙΚΕΣ ΠΥΛΕΣ (Α)

o o o o o o L N

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Κεφάλαιο Τρία: Ψηφιακά Ηλεκτρονικά

IR-100 Προγραμματιζόμενο Τηλεχειριστήριο Οδηγίες Χρήσης

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: DOWNLOAD CENTER

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

ΔΙΑΧΕΙΡΙΣΗ ΕΡΓΑΣΙΩΝ ΔΙ.ΑΠ. ΕΠΕΚΤΑΣΗ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΡΓΩΝ & ΠΛΗΡΩΜΩΝ

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


ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: MEDIA CENTER

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

Κατασκευή µοντέλου και προσοµοίωσης: Μελέτη ελεύθερης πτώσης

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΚΑΤΑΛΟΓΟΣ ΠΡΟΪΟΝΤΩΝ

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

Εισαγωγή στο Εργαστήριο Υλικού

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0

13 ΗΛΕΚΤΡΙΚΑ ΟΡΓΑΝΑ ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ

Αλλαγή συστήματος ασφαλείας ενεργοποίησης εκτέλεσης DOS εφαρμογών Singular και των αντίστοιχων 32 bit

ΣΥΝΔΕΣΗ ΣΕ ΣΕΙΡΑ ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: 1 ΣΚΟΠΟΣ 1 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ 1 3 ΕΞΟΠΛΙΣΜΟΣ 7 4 ΕΞΑΡΤΗΜΑΤΑ 7

ΕΚΠΑΙ ΕΥΤΙΚΕΣ ΡΑΣΤΗΡΙΟΤΗΤΕΣ ΜΕ ΤΟ ΑΒΑΚΙΟ/E-SLATE

1.1 Θεωρητική εισαγωγή

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΓΛΩΣΣΑΡΙΟ

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΠΕΛΑΤΕΣ

Οδηγίες Χρήσης.

Εγκατάσταση Mozilla Firefox

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Κυκλωµάτων και Μετρήσεων

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΗΛΕΚΤΡΟΝΙΚΑ ΠΕΡΙΟ ΙΚΑ

Χρησιμοποιώντας διαδικασίες

6 Εισαγωγή στο Wordpress 3.x

ΑΣΚΗΣΗ 2 η N-MOS ΚΑΙ P-MOS TRANSISTOR ΩΣ ΔΙΑΚΟΠΤΗΣ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Οδηγός Εγκατάστασης

Κεφάλαιο Ι : Το περιβάλλον εργασίας και το πρώτο απλό πρόγραµµα σε Java.

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

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

ΑΝΑΠΑΡΑΓΩΓΗ ΜΑΘΗΣΙΑΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ ΦΩΤΟΔΕΝΤΡΟ ΜΑΘΗΣΙΑΚΑ ΑΝΤΙΚΕΙΜΕΝΑ. Οδηγίες για Java

Ενηµερώσεις λογισµικού Οδηγός χρήσης

Εργαστήριο Ψηφιακής Σχεδίασης

ΗΛΕΚΤΡΙΚΑ ΚΥΚΛΩΜΑΤΑ ΚΑΙ ΜΕΤΡΗΣΕΙΣ ΣΤΗΝ ΒΙΟΪΑΤΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ

Vodafone Business Connect

Ενηµερώσεις λογισµικού Οδηγός χρήσης

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

ΤΕΙ Πελοποννήσου Τμήμα Πληροφορικής. Οδηγίες Εγκατάστασης VPN Σύνδεσης στο ΤΕΙ Πελοποννήσου

Μαλούτα Θεανώ Σελίδα 1

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Αναζήτησης Συνεπιβατών)

Ο ΗΓΙΕΣ DOCUMENT DESIGNER


Προσοµοίωση λειτουργίας επιπέδων OSI

Φύλλο Εργασίας 4 Συνθετική εργασία

Transcript:

Περιγραφή Άσκηση 21 Εξοµοιωτής Κυκλωµάτων Λογικών Πυλών () Στα πλαίσια της άσκησης LogicGateSimulator 1 θα αναπτύξετε ένα πρόγραµµα σύµφωνα µε το οποίο το σύστηµα θα σας επιτρέπει: 1. να ορίζετε ένα κύκλωµα λογικών πυλών πάνω σε ένα breadboard, 2. να δίνετε τιµές στις εισόδους του κυκλώµατος, 3. να ζητάτε την εκτέλεση του κυκλώµατος και αυτό θα σας δίνει τις τιµές των εξόδων του. Επιπλέον θα έχετε τις παρακάτω δυνατότητες: 1. Αποθήκευση του κυκλώµατος σε αρχείο 2. Φόρτωση κυκλώµατος από αρχείο 3. ηµιουργία breadboar επιλεγµένου µεγέθους 4. Τροποποίηση κυκλώµατος 5. Αλλαγών στις εισόδους του κυκλώµατος 6. Χρησιµοποίησης probes. Η λειτουργία της τροποποίησης θα πρέπει να επιτρέπει στον χρήστη: 1. Προσθήκη νέας λογικής πύλης στο κύκλωµα 2. Αλλαγή θέσης και συνδεσµολογίας υπάρχουσας πύλης του κυκλώµατος 3. ιαγραφή υπάρχουσας πύλης του κυκλώµατος To σχήµα 1 εµφανίζει το breadboard ενώ το σχήµα 2 εµφανίζει ένα κύκλωµα λογικών πυλών τοποθετηµένο πάνω σε αυτό. Σχήµα 1. Η προτυπωµένη πλακέτα (breadboard) της άσκησης. 1 Η άσκηση αναπτύχθηκε στα πλαίσια του προγράµµατος ΕΠΕΑΕΚ Αναβάθµιση Προγράµµατος Σπουδών του τµήµατος ΗΜ&ΤΥ από τους Γ. ούκα και Κ. Θραµπουλίδη. Αντικειµενοστρεφής Προγραµµατισµός-Java 1/35

Σχήµα 2. Κύκλωµα λογικών πυλών τοποθετηµένο πάνω στο breadboard. Στόχος Στόχος της άσκησης είναι η εξοικείωση µε την διαδικασία ανάπτυξης εφαρµογής αξιοποιώντας την αντικειµενοστρεφή Τεχνολογία (Object Technology). Πιο συγκεκριµένα η εξοικείωση µε: 1. τη δόµηση προγράµµατος ως συνάθροιση αντικειµένων, 2. τη αξιοποίηση τεχνικών για την αναγνώριση των αντικειµένων που συνθέτουν την εφαρµογή 3. την αξιοποίηση τεχνικών για τον προσδιορισµό της συνεργασίας των αντικειµένων που συνθέτουν την εφαρµογή. 4. την αξιοποίηση του διαγράµµατος κλάσεων για την αναπαράσταση της δοµής της εφαρµογής. 5. την αξιοποίηση αντικειµένων που υποστηρίζουν την επικοινωνία µε τον χρήστη 6. την αξιοποίηση και ενσωµάτωση στην εφαρµογή σας κλάσης που σας δίνεται σε bytecodes. 7. να συγκρίνετε άµεσα το διαδικαστικό µε το αντικειµενοστρεφές παράδειγµα προγραµµατισµού ραστηριότητες Η άσκηση δίνεται ως ένα σύνολο από δραστηριότητες που πρέπει να εκτελέσετε µόνοι σας. Σε κάθε δραστηριότητα σας δίνονται οδηγίες και βοήθεια ώστε να ξεπεράσετε τα δύσκολα σηµεία. Στο τέλος της άσκησης σας δίνονται ενδεικτικές απαντήσεις τις οποίες σας συνιστώ να αξιοποιείται µόνο µετά από την δική σας προσπάθεια. Αντικειµενοστρεφής Προγραµµατισµός-Java 2/35

ραστηριότητα 1 Στόχος της δραστηριότητας είναι η αναγνώριση και καταγραφή των αντικειµένων που κατά την γνώµη σας πρέπει να απαρτίζουν το πρόγραµµα σας για να ικανοποιεί τις απαιτήσεις όπως αυτές περιγράφηκαν παραπάνω. Αξιοποιήστε την γνώσεις σας από την αντίστοιχη εφαρµογή που αναπτύξατε αξιοποιώντας τον διαδικαστικό προγραµµατισµό και την C και δώστε µια πρώτη λίστα µε τα αντικείµενα που εκτιµάτε πως πρέπει να συνθέτουν το πρόγραµµα σας. Παρατήρηση. Για να απλοποιηθεί η διαδικασία ανάπτυξης του προγράµµατος θα αναπτύξουµε την εφαρµογή σε δύο εκδόσεις: 1 η έκδοση ( ραστηριότητες 1-8). Η έκδοση αυτή δεν θα δίνει τη δυνατότητα στο χρήστη να ορίζει το κύκλωµα. Το κύκλωµα θα είναι hardcoded µέσα στον κώδικα. 2 η έκδοση ( ραστηριότητες 9-10). Στην δραστηριότητα 9 θα αντιµετωπίσουµε µια πιο γενική έκδοση που θα δίνει στο χρήστη και τη δυνατότητα ορισµού κυκλώµατος. ραστηριότητα 2 Περιγράψτε την δοµή και συµπεριφορά των αντικειµένων της λίστας που δηµιουργήσατε στα πλαίσια της παραπάνω δραστηριότητας. Χρησιµοποιήστε δοµηµένα Ελληνικά για να δώσετε την δοµή και συµπεριφορά επιλεγµένων αντικειµένων. ραστηριότητα 3 Στόχος της δραστηριότητας είναι η εξοικείωση µε ένα έτοιµο πρόγραµµα CircuitSimulator ώστε να αποκτήσετε την επιπλέον γνώση που είναι απαραίτητη για να αναπτύξετε τον δικό σας circuitsimulator. Οδηγίες Το πρόγραµµα CircuitSimulator σας δίνεται σε ένα.zip αρχείο το οποίο πρέπει να αποσυµπιέσετε και να εκτελέσετε χρησιµοποιώντας τον διερµηνευτή της Java (Java interpreter). Ο Java interpreter περιλαµβάνεται στην Java 2 Platform, Standard Edition (J2SE) http://java.sun.com/j2se/. Μπορείτε να κατεβάσετε την παραπάνω έκδοση της Java και να την εγκαταστήσετε επιλέγοντας το λειτουργικό σύστηµα του µηχανήµατος σας από την διεύθυνση http://java.sun.com/j2se/1.4.2/download.html. (Ο Java interpreter είναι εγκατεστηµένος στους σταθµούς εργασίας του ΥΚ). Στο αρχείο CircuitSimulator.zip περιλαµβάνονται και ορισµένα αρχεία.cs τα οποία περιέχουν περιγραφές διαφόρων κυκλωµάτων που µπορείτε να φορτώσετε στο πρόγραµµα µε την επιλογή LoadCircuit. Αντικειµενοστρεφής Προγραµµατισµός-Java 3/35

Το πρόγραµµα CircuitSimulator πρέπει να εκτελεστεί από την γραµµή διαταγών του Windows CMD prompt. Για την ρύθµιση των παραµέτρων του Windows CMD prompt µπορείτε να ανατρέξετε στο δικτυακό τόπο µε τίτλο «Setting Windows CMD prompt properties» στην διεύθυνση http://www.unixwiz.net/techtips/cmd-window.html Συγκεκριµένα για την εκτέλεση του προγράµµατος δώστε στην γραµµή διαταγών του Windows CMD prompt την εντολή: >java jar CircuitSimulator.jar αν το αρχείο CircuitSimulator είναι.jar ή >java CircuitSimulator αν το αρχείο CircuitSimulator είναι.class Στην οθόνη θα εµφανισθεί η γραφική διεπαφή του προγράµµατος που σας δίνεται (σχήµα 3). Σχήµα 3. Η γραφική διεπαφή του ενδεικτικού προγράµµατος εξοµοιωτή κυκλωµάτων λογικών πυλών. Χρησιµοποιείστε τo πρόγραµµα ώστε να κατανοήσετε πλήρως την λειτουργικότητα του. Επιλέξτε Load Circuit για να φορτώσετε ένα έτοιµο κύκλωµα. Από το παράθυρο επιλογής αρχείου επιλέξτε το αρχείο «Figure2Circuit.cs» που περιέχει την περιγραφή του κυκλώµατος του σχήµατος 2. Μια τέτοια περιγραφή µπορείτε να δηµιουργήσετε µε έναν editor της επιλογής σας ακολουθώντας τον τρόπο αναπαράστασης που έχουµε υιοθετήσει στα πλαίσια της άσκησης. Στην οθόνη θα Αντικειµενοστρεφής Προγραµµατισµός-Java 4/35

εµφανισθεί η εικόνα του σχήµατος 4. Εναλλακτικά µπορείτε να φορτώσετε το αρχείο «ExampleCircuit.cs». Ορίστε τις εισόδους πιέζοντας τους αντίστοιχους διακόπτες και επιλέξτε Run Circuit για να δείτε την έξοδο του κυκλώµατος σας. Το σχήµα 5 δίνει την περιγραφή του κυκλώµατος του σχήµατος 2 σύµφωνα µε την αναπαράσταση που υιοθετήσαµε. Στο τέλος της άσκησης µπορείτε να βρείτε επιπλέον οδηγίες για την δραστηριότητα αυτή. Σχήµα 4. Το κύκλωµα του σχήµατος 2 στον Circuit Simulator. Σχήµα 5. Το αρχείο Figure2Circuit.cs Αντικειµενοστρεφής Προγραµµατισµός-Java 5/35

Περιγραφή κυκλώµατος Για την περιγραφή του λογικού κυκλώµατος σε ένα αρχείο cs ακολουθήσαµε την παρακάτω σύµβαση. Κάθε γραµµή του αρχείου αντιστοιχεί σε ένα δοµικό στοιχείο του κυκλώµατος (BOARD, Gate (π.χ. AND, OR, NAND, κ.λ.π.), SWITCH, και LED). Περιορισµός: Η πρόταση BOARD θα πρέπει να είναι η πρώτη γραµµή στην περιγραφή µορφής κειµένου. H γραµµή που αντιστοιχεί σε µία πύλη του κυκλώµατος και έχει την παρακάτω µορφή: <είδος πύλης>, < στήλη στην οποία ανήκει>, < γραµµή στην οποία ανήκει>, <θέση εισόδου 1>, <θέση εισόδου 2>, <θέση εξόδου> Ως παράδειγµα θεωρείστε την πλακέτα του σχήµατος 4 και την ακόλουθη γραµµή AND,0,1,0,1,1 Η γραµµή αυτή δηλώνει ότι θα τοποθετηθεί µια πύλη AND στην δεύτερη θέση (γραµµή) της πρώτη στήλης της πλακέτας. Η µία είσοδος της πύλης θα βρίσκεται στην υποδοχή 0 της πρώτης στήλης της πλακέτας, η άλλη είσοδος θα βρίσκεται στην υποδοχή 1 της πρώτης στήλης της πλακέτας, ενώ η έξοδος θα βρίσκεται στην υποδοχή 1 της επόµενης στήλης, δηλαδή της δεύτερης στήλης της πλακέτας. ραστηριότητα 4 Στόχος της δραστηριότητας είναι η αναγνώριση και καταγραφή των αντικειµένων που πρέπει να απαρτίζουν ένα πρόγραµµα σαν και αυτό που χρησιµοποιήσατε στην παραπάνω δραστηριότητα. ραστηριότητα 5 Στη δραστηριότητα αυτή όπως και τις επόµενες θα παραβλέψουµε την γραφική διεπαφή και θα ασχοληθούµε µε την ανάπτυξη ενός προγράµµατος που δεν θα διαθέτει γραφική διεπαφή. Ενέργεια 5.1 Αναγνωρίσατε και ορίσατε τα αντικείµενα που αναπαριστούν τις βασικές πύλες που χρησιµοποιούµε για την δηµιουργία των κυκλωµάτων µας. Στη φάση αυτή δεν θα αξιοποιήσουµε τον µηχανισµό της κληρονοµικότητας. Αντικειµενοστρεφής Προγραµµατισµός-Java 6/35

Ενέργεια 5.2 Περιγράψτε δοµή και συµπεριφορά των αντικειµένων που αναπαριστούν τις βασικές πύλες. Υπάρχουν ορισµένα χαρακτηριστικά που προσδιορίζουν την συγκεκριµένη πύλη όπως ένας αριθµός που θα τις αποδίδουµε (identifier) για να την διακρίνουµε από τις υπόλοιπες πύλες, το όνοµα της πύλης και ο αριθµός των εισόδων της. Ένα άλλο σύνολο χαρακτηριστικών προσδιορίζει την θέση της πύλης σε σχέση µε το συγκεκριµένο κύκλωµα όπως οι υποδοχές στις οποίες συνδέονται οι είσοδοι και έξοδοι της πύλης. Τα χαρακτηριστικά αυτά θα µπορούσαν να αποτελέσουν χαρακτηριστικά µιας άλλης κλάσης π.χ. της GatePosition. Ενέργεια 5.3 Αξιοποιήστε τη σχέση γενίκευσης-εξειδίκευσης και καταγράψτε την κοινή δοµή και συµπεριφορά που έχουν οι κλάσεις που αναπαριστούν τις βασικές πύλες. Ορίστε µε τον τρόπο αυτό την κλάση που αποτελεί γενίκευση των κλάσεων που αναπαριστούν τις βασικές πύλες. Ενέργεια 5.4 Αξιοποιήστε τον µηχανισµό της κληρονοµικότητας και υλοποιήσετε τις σχέσεις γενίκευσης/εξειδίκευσης που καταγράψατε στην παραπάνω ενέργεια. ραστηριότητα 6 Ενέργεια 6.1 ώστε την δοµή της κλάσης που αναπαριστά το breadboard. Ενέργεια 6.2 ώστε την συµπεριφορά της κλάσης που αναπαριστά το breadboard θεωρώντας σαν δοµή την ενδεικτική που σας σώσαµε στα πλαίσια της παραπάνω ενέργειας. Ενέργεια 6.3 ώστε τον κώδικα του δηµιουργού της κλάσης BreadBoard όπως αυτή ορίσθηκε στην παραπάνω ενέργεια. Αντικειµενοστρεφής Προγραµµατισµός-Java 7/35

ραστηριότητα 7 Ενέργεια 7.1 ώστε την δοµή της κλάσης που αναπαριστά το κύκλωµα. Ενέργεια 7.2 ώστε την συµπεριφορά της κλάσης που αναπαριστά το κύκλωµα θεωρώντας ως δοµή αυτή που δώσατε στα πλαίσια της παραπάνω ενέργειας. Ενέργεια 7.3 ώστε τον κώδικα του δηµιουργού της κλάσης Circuit όπως αυτή ορίσθηκε στην παραπάνω ενέργεια. Ενέργεια 7.4 ώστε τον κώδικα της µεθόδου run της κλάσης Circuit όπως αυτή ορίσθηκε στην παραπάνω ενέργεια. Ενέργεια 7.5 Τροποποιήστε την εφαρµογή σας Logic Gates Simulator ώστε να δίνει τη δυνατότητα στο χρήστη να φορτώσει κύκλωµα λογικών κύκλωµα από αρχείο στο διαδίκτυο χρησιµοποιώντας το πρωτόκολλο http. Για να ελέγξετε τη λειτουργικότητα του προγράµµατος σας, δοκιµάστε να διαβάσετε τα αρχεία ExampleCircuit.cs και Figure2Circuit.cs που βρίσκονται στο ευρετήριο (directory) Courses/OT/ του internet web site µε όνοµα seg.ece.upatras.gr ραστηριότητα 8 Γράψτε ένα πρόγραµµα που αξιοποιεί τις κλάσεις που ορίσατε στις παραπάνω δραστηριότητες. Το πρόγραµµα σας θα πρέπει να ορίζει ένα κύκλωµα, στη συνέχεια να ορίζει τις εισόδους του και να το τρέχει και τέλος να σας εµφανίζει τις εξόδους του στην οθόνη. Αντικειµενοστρεφής Προγραµµατισµός-Java 8/35

ραστηριότητα 9 Στη συνέχεια θα πρέπει να δώσετε µια έκδοση του προγράµµατος που θα είναι πιο γενική. Θα επιτρέπει στον χρήστη να ορίσει και τρέξει το κύκλωµα της επιλογής του. Στην προσπάθεια αυτή θα αξιοποιήσετε µια έτοιµη γραφική διεπαφή, την CircuitSimGui η οποία σας δίνεται σε πρώτη φάση σε µορφή bytecodes και στη συνέχεια σε µορφή πηγαίου κώδικα. Ενέργεια 9.1 Σας δίνεται ο δηµιουργός της κλάσης που αναπαριστά την γραφική διεπαφή. public CircuitSimGui(Circuit circuit) Αναπτύξατε ένα πρόγραµµα που θα δηµιουργεί µια γραφική διεπαφή αξιοποιώντας την κλάση που σας δόθηκε. Ενέργεια 9.2 Περιγράψατε τον τρόπο λειτουργίας του προγράµµατος που αναπτύξατε. ραστηριότητα 10 Αναπτύξτε την δική σας γραφική διεπαφή. Για την κατασκευή του Gui µπορείτε να χρησιµοποιήσετε έναν Gui Builder όπως για παράδειγµα τον WindowBuilder Pro Αντικειµενοστρεφής Προγραµµατισµός-Java 9/35

Ενδεικτικές απαντήσεις των δραστηριοτήτων της άσκησης ραστηριότητα 3 Ενδεικτική απάντηση Πιο συγκεκριµένα έχετε τις παρακάτω δυνατότητες: 1. Να ορίσετε νέο breadboard ορίζοντας τον αριθµό των στηλών και τον αριθµό των υποδοχών ανά στήλη. 2. Να δηµιουργήσετε το δικό σας κύκλωµα, πάνω στο breadboard που δηµιουργήσατε ή στο προσχεδιασµένο, συνδέοντας και αποσυνδέοντας πύλες, διακόπτες και λαµπτήρες. 3. Να τοποθετήσετε στο breadboard την λογική πύλη της αρεσκείας. Για την προσθήκη λογικής πύλης στο κύκλωµα επιλέξτε το κατάλληλο εικονίδιο (δες σχήµα 1) και συµπληρώστε τις παραµέτρους του παραθύρου του σχήµατος 2 που προσδιορίζουν την θέση της πύλης πάνω στο breadboard. Η αρίθµηση στηλών κ.λ.π. αρχίζει από το 0. Μετά τον ορισµό των παραµέτρων η πύλη εµφανίζεται στο breadboard (δες σχήµα 3). Το ζεύγος (0,1) δίνει την θέση της πύλης στο breadboard. Σχήµα 1. Περιοχή επιλογής δοµικού στοιχείου κυκλώµατος. Σχήµα 2. Παράθυρο ορισµού παραµέτρων θέσης πύλης στο breadboard. Σχήµα 3. Η κάθε πύλη αναγράφει την θέση της στο breadboard. Αντικειµενοστρεφής Προγραµµατισµός-Java 10/35

4. Να τοποθετήσετε διακόπτες στις υποδοχές της πρώτης (0) στήλης υποδοχών. Επιλέξτε το εικονίδιο του διακόπτη και προσδιορίστε την υποδοχή στην οποία θέλετε να συνδεθεί. Το σχήµα 4 δείχνει τον διακόπτη στην δεύτερη υποδοχή. Πιέστε τον διακόπτη για την αλλαγή της κατάστασης του από ΟΝ σε OFF και αντίστροφα. Σχήµα 4. Αλλαγή κατάστασης διακόπτη τροφοδοσίας υποδοχής. 5. Να τοποθετήσετε λαµπτήρα στις υποδοχές της τελευταίας στήλης υποδοχών. Επιλέξτε το εικονίδιο του led και προσδιορίστε την υποδοχή στην οποία θέλετε να συνδεθεί. Το σχήµα 5 δείχνει τον ενδεικτικό λαµπτήρα στην δεύτερη υποδοχή. Σχήµα 5. Τοποθέτηση λαµπτήρα (led) στην δεύτερη (1) υποδοχή. 6. Να τοποθετήσετε probe σε συγκεκριµένη υποδοχή. Επιλέξτε το εικονίδιο του probe και προσδιορίστε την υποδοχή στην οποία θέλετε να συνδεθεί. Το σχήµα 6 δείχνει τον probe που τοποθετήθηκε στην 2 η υποδοχή της 2 ης στήλης. Αντικειµενοστρεφής Προγραµµατισµός-Java 11/35

Σχήµα 6. Τοποθέτηση probe στην 2 η υποδοχή της 2 ης στήλης. 7. Να προσδιορίσετε τις εισόδους του κυκλώµατος. 8. Να τρέχετε το κύκλωµα. 9. Να σώσετε το κύκλωµα σε αρχείο για µελλοντική χρήση. 10. Να φορτώσετε νέο κύκλωµα από αρχείο. Αντικειµενοστρεφής Προγραµµατισµός-Java 12/35