THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: AckermanMik on November 29, 2013, 12:52:56 pm



Title: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: AckermanMik on November 29, 2013, 12:52:56 pm
Εργασία E

Ένα ψηφιακό κύκλωμα αποτελείται από έναν αριθμό στοιχειωδών κυκλωμάτων συνδεδεμένων σε σειρά. Κάθε ένα από τα στοιχειώδη κυκλώματα διαθέτει δύο ακροδέκτες εισόδου a και b, και δύο ακροδέκτες εξόδου c και d οι οποίοι συνδέονται με τους ακροδέκτες εισόδου του επόμενου στοιχειώδους κυκλώματος έτσι ώστε να ολοκληρωθεί το ψηφιακό κύκλωμα. Στους ακροδέκτες του πρώτου στοιχειώδους κυκλώματος εφαρμόζονται τάσεις ενεργοποίησης  (0 ή 1) και ανιχνεύονται οι τιμές στους ακροδέκτες εξόδου c και d του τελευταίου στοιχειώδους κυκλώματος.  Τα στοιχειώδη κυκλώματα αποτελούνται από συνδυασμούς των πυλών AND, OR και NOT. Η ισχύς που καταναλώνεται από μια πύλη ΑΝD εξαρτάται από τις τάσεις ενεργοποίησης που εφαρμόζονται στους ακροδέκτες εισόδου της πύλης. Αν οι τάσεις ενεργοποίησης και στους δύο ακροδέκτες είναι 0 η ισχύς που καταναλώνεται είναι 0. Αν ένας από τους ακροδέκτες έχει την τιμή 1 η ισχύς που καταναλώνεται είναι 0.5 mwatt ενώ αν και στους δύο ακροδέκτες δοθεί η τιμή 1 η ισχύς που καταναλώνεται είναι 1 mwatt. Για την πύλη OR αντίστοιχα η ισχύς είναι 0 αν και στους δύο ακροδέκτες εισόδου δοθεί η τιμή 0. Αν μόνο ένας ακροδέκτης εισόδου έχει τιμή 1 η ισχύς που καταναλώνεται είναι 0.5 mwatt , ενώ αν και οι δύο ακροδέκτες εισόδου έχουν τιμή 1 η ισχύς που καταναλώνεται είναι 1 mwatt. Τέλος η πύλη NOT καταναλώνει 1 mwatt αν ως είσοδος δοθεί η τιμή 1 και 0 mwatt αν δοθεί η τιμή 0.

Να γραφεί το λογισμικό στο οποίο να ορίζεται η συνάρτηση calk_circuit που δέχεται τις τιμές που εφαρμόζονται στους ακροδέκτες εισόδου του πρώτου στοιχειώδους κυκλώματος και υπολογίζει τις τιμές που θα εμφανιστούν στους ακροδέκτες εξόδου του τελευταίου στοιχειώδους κυκλώματος. Η συνάρτηση να επιστρέφει την τιμή της ισχύος που καταναλώνει το κύκλωμα. Η συνάρτηση να είναι ανεξάρτητη από τον αριθμό και τον τύπο των στοιχειωδών κυκλωμάτων.

Ως εφαρμογή να θεωρηθεί ότι το ψηφιακό κύκλωμα αποτελείται από δύο τύπους στοιχειωδών κυκλωμάτων Α και Β όπως φαίνονται στο σχήμα                                   

Tα σχήματα δε φαίνονται οπότε πάντε εδώ.
http://alexander.ee.auth.gr:8083/eTHMMY/cms.labParams.data.do?method=jsplist&PRMID=146
 


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: απλυτος on December 01, 2013, 20:17:41 pm
Quote
Η συνάρτηση να είναι ανεξάρτητη από τον αριθμό και τον τύπο των στοιχειωδών κυκλωμάτων.

μου φαίνεται αδιανόητο. πως γίνεται αυτό;


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: Dealan on December 01, 2013, 21:34:35 pm
Θα δεις μία αντίστοιχη άσκηση λυμένη από τον Κορτέση (θα σας το κάνει στο μάθημα αν δεν το έχει ήδη κάνει, τα αρχεία υπάρχουν και στο ethmmy αν δεν κάνω λάθος). Γενικώς αυτό είναι αρκετά πολύπλοκο και δεν παίζει να το βρεις μόνος σου χωρίς βοήθεια.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: paul on December 04, 2013, 14:19:30 pm
Αφου δεν αναφερει πουθενα την λεξη ''Κλαση'' μπορουμε να γραψουμε το προγραμμα σε οτι γλωσσα θελουμε ετσι?  :P

Περα απο την πλακα παντως δεν βλεπω που μπορουν να χρησιμοποιηθουν οι κλασεις


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: Fcoriolis on December 04, 2013, 14:24:23 pm
Αφου δεν αναφερει πουθενα την λεξη ''Κλαση'' μπορουμε να γραψουμε το προγραμμα σε οτι γλωσσα θελουμε ετσι?  :P

Περα απο την πλακα παντως δεν βλεπω που μπορουν να χρησιμοποιηθουν οι κλασεις

Τα κυκλώματα δεν θα είναι σε κλάση;


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: paul on December 04, 2013, 14:39:55 pm
Εγω σκεφτηκα το εξης:

Δημιουργουμε στην main το συνολικο κυκλωμα οπως λεει η ασκηση(φτιαχνουμε εναν πινακα δηλαδη που θα εχει στην σειρα τα Α και τα Β).
Στελνουμε τον πινακα στην calk_circuit οπου ζηταμε απο τον χρηστη να μας δωσει τις αρχικες εισοδους.

Σαρωνουμε τον πινακα και αναλογως αν εχουμε το κυκλωμα Α ή Β καλουμε μια αντιστοιχη συναρτηση η οποια υλοποιει το κυκλωμα και εχει ως ορισματα δυο μεταβλητες οι οποιες ειναι pointer και ειναι αρχικα οι εισοδοι ενω οταν επιστρεφονται ειναι οι εξοδοι αυτου του κυκλωματος και αρα οι εισοδοι του επομενου.

Παραλληλα στην calk κραταμε και ενα αθροισμα.

Δεν ξερω αν ειναι σωστη αυτη η σκεψη(με μια πρωτη ματια μου φανηκε οκ) αλλα με αυτον τον τροπο τουλαχιστον δεν  χρειαζονται κλασεις


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: L on December 04, 2013, 15:06:21 pm
Σίγουρα θέλεις κλάσεις, αλλιώς τι αντικειμενοστραφή προγραμματισμό κάνουμε;  8))
Δες αυτό το σημείο:

Η συνάρτηση να είναι ανεξάρτητη από τον αριθμό και τον τύπο των στοιχειωδών κυκλωμάτων.

Ουσιαστικά τα Α, Β είναι μια εφαρμογή. Θα πρέπει, δηλαδή, να μπορεί να προσθέσει κάποιος τρίτος ένα κύκλωμα Γ και να δουλέψει χωρίς πρόβλημα το λογισμικό.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: paul on December 04, 2013, 23:02:20 pm
Σίγουρα θέλεις κλάσεις, αλλιώς τι αντικειμενοστραφή προγραμματισμό κάνουμε;  8))
Δες αυτό το σημείο:

Η συνάρτηση να είναι ανεξάρτητη από τον αριθμό και τον τύπο των στοιχειωδών κυκλωμάτων.

Ουσιαστικά τα Α, Β είναι μια εφαρμογή. Θα πρέπει, δηλαδή, να μπορεί να προσθέσει κάποιος τρίτος ένα κύκλωμα Γ και να δουλέψει χωρίς πρόβλημα το λογισμικό.


 :???:
υπαρχει καμια ιδεα για το πως θα γινει αυτο?


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: giorgos4934 on December 04, 2013, 23:40:35 pm
παδια η συναρτηση δεν ειναι ανεξαρτητη απο τον αριθμο στοιχειωδων κυκλωματων. θα μπει σαν ορισμα το n(οπου n ειναι ο αριθμος των κυκλωματων που συνθετουν το ολικο κυκλωμα). το ειπε σημερα στο μαθημα.ειναι ανεξαρτητη μονο απο τον τυπο των κυκλωματων και απο τη σειρα που θα μπουν.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: Fcoriolis on December 04, 2013, 23:47:21 pm
παδια η συναρτηση δεν ειναι ανεξαρτητη απο τον αριθμο στοιχειωδων κυκλωματων. θα μπει σαν ορισμα το n(οπου n ειναι ο αριθμος των κυκλωματων που συνθετουν το ολικο κυκλωμα). το ειπε σημερα στο μαθημα.ειναι ανεξαρτητη μονο απο τον τυπο των κυκλωματων και απο τη σειρα που θα μπουν.
Ανεξάρτητη σημαίνει ότι δίνεις ως όρισμα το n αλλιώς δεν γίνεται.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: giorgos4934 on December 05, 2013, 00:17:54 am
ε με αυτη τη λογικη ολες οι συναρτησεις ειναι ανεξαρτητες ειναι απο τα ορισματα τους. οποτε τζαμπα το ειπε. εντελως ατοπο κατ'εμε και δεν τα συνηθιζει αυτα ο κορτεσης.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: Fcoriolis on December 05, 2013, 01:08:47 am
ε με αυτη τη λογικη ολες οι συναρτησεις ειναι ανεξαρτητες ειναι απο τα ορισματα τους. οποτε τζαμπα το ειπε. εντελως ατοπο κατ'εμε και δεν τα συνηθιζει αυτα ο κορτεσης.
the irony?


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: 4emonas on December 05, 2013, 15:43:24 pm
Θα δεις μία αντίστοιχη άσκηση λυμένη από τον Κορτέση (θα σας το κάνει στο μάθημα αν δεν το έχει ήδη κάνει, τα αρχεία υπάρχουν και στο ethmmy αν δεν κάνω λάθος). Γενικώς αυτό είναι αρκετά πολύπλοκο και δεν παίζει να το βρεις μόνος σου χωρίς βοήθεια.

Δηλαδή υπάρχει κάπου στο ethmmy παρόμοιο παράδειγμα? αν ναι που??


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: Fcoriolis on December 05, 2013, 15:49:53 pm
Here it is


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: 4emonas on December 05, 2013, 19:15:21 pm
ναι εκανε ενα σχεδον ιδιο ο flag-ίδης σημερα...πιο απλο βεβαια απο αυτο...
thnx though  ;D


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: PureForm on December 05, 2013, 21:49:42 pm
το παραπανω παραδειγμα νμζ ειναι ενα σταδιο παραπανω απο αυτο που ζηταει η συγκεκριμενη ασκηση
δηλαδη νμζ μασ παρεχει ανεξαρτησια  λογισμικου απο τυπο ενω εμεισ θελουμε ανεξαρτησια συναρτησησ και μονο απο τυπο και αριθμο(να το πω καπως γενικα πιστευω οτι δεν χρειαζεται η χρηση των στατικ συναρτησεων)
δεν ξερω αν τα λεω καλα μια παραπανω επεξηγηση καποιου πιο εμπειρου καλο θα ηταν


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: vasilis1005 on December 05, 2013, 22:38:55 pm
Code:
class circuit{
  public:
    circuit(){};
    virtual float ret_power(float V)=0;
    virtual float ret_inten(float V)=0;
 };

επειδη νομιζω οτι κατι τετοιο θα χρειαστει στην εργασια

τι ειναι αυτο το virtual και γιατι βαζουμε τις συναρτησεις ισες με το 0; (μηπως τις αρχικοποιουμε; αν ναι γιατι χρειαζομαστε αρχικοποιηση;)


οποιος μπορει ας βοηθησει. :(



(ο κωδικας ειναι απο παραδειγμα του κορτεση στο ethmmy ;))


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: L on December 05, 2013, 23:00:14 pm
Το =0 σημαίνει ότι πρέπει υποχρεωτικά να οριστεί η συνάρτηση σε κάθε παραγόμενη.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: vasilis1005 on December 05, 2013, 23:39:47 pm
Το =0 σημαίνει ότι πρέπει υποχρεωτικά να οριστεί η συνάρτηση σε κάθε παραγόμενη.

και το virtual;
(γιατι οταν το εβαζα μονο =0 μου εβγαζε error (initializer specified for non-virtual method `void circuit::out(int, int, int&, int&)' ))


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: L on December 05, 2013, 23:45:25 pm
Δες τις παραγράφους 4.2 και 4.3 των σημειώσεων του Κορτεσίου.


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: vasilis1005 on December 06, 2013, 00:48:46 am
Δες τις παραγράφους 4.2 και 4.3 των σημειώσεων του Κορτεσίου.

θενξ ;)


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: molotov49 on December 06, 2013, 17:01:42 pm
η συναρτηση calc+circuit πρεπει να ειναι virtual??


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: vasilis1005 on December 06, 2013, 23:28:20 pm
η συναρτηση calc+circuit πρεπει να ειναι virtual??

μπα δε νομιζω


Title: Re: [C++] Άσκηση E - 2013/2014 - Προθεσμία 8/12
Post by: PureForm on December 07, 2013, 16:17:36 pm
εννοειται πως οχι