THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: vasilis94 on December 01, 2014, 20:07:42 pm



Title: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: vasilis94 on December 01, 2014, 20:07:42 pm
Άσκηση F

         Για την κατασκευή της ηλεκτρολογικής εγκατάστασης σε ένα κτήριο που τροφοδοτείται με μονοφασικό ρεύμα, για κάθε συσκευή που θα εγκατασταθεί, πρέπει να γνωρίζουμε την ανοχή της αντίστοιχης ασφάλειας που θα την προστατεύει, τη διατομή του καλωδίου που θα τη συνδέει με τον κεντρικό πίνακα καθώς και το μήκος αυτού του καλωδίου. Ως ανοχή για κάθε ασφάλεια δηλώνεται η μέγιστη ένταση του ρεύματος,  η υπέρβαση της οποίας προκαλεί τη διακοπή του κυκλώματος.
         Στην αγορά κυκλοφορούν ασφάλειες με ανοχή 10 Α, 16 Α, 20 Α και 25 Α. Αντίστοιχα οι διατομές των καλωδίων υπολογίζονται με βάση την μέγιστη ένταση που μπορεί να περάσει από αυτά. Έτσι αν η μέγιστη ένταση είναι 10 Α η διατομή ορίζεται σε 1.5mm2, για 16 Α σε 2.5mm2, για 20 Α σε 6mm2, και για 25 Α σε 10mm2.
         Η ένταση του ρεύματος που θα διαρρέει ένα καλώδιο ορίζεται από τη σχέση I=P/V όπου P η ονομαστική ισχύς της συσκευής που συνδέεται με αυτό και V η τάση τροφοδοσίας. Για την προστασία της συσκευής θα πρέπει να χρησιμοποιηθεί η ασφάλεια με τη μικρότερη ανοχή η τιμή της οποίας όμως να υπερβαίνει την μέγιστη ένταση του ρεύματος που θα διαρρέει την αντίστοιχη συσκευή. Αντίστοιχα, για λόγους οικονομίας, το καλώδιο που θα χρησιμοποιηθεί για την τροφοδοσία μιας συσκευής θα πρέπει να έχει τη μικρότερη δυνατή διατομή.
        Σε κτήρια που τροφοδοτούνται με μονοφασικό ρεύμα δεν επιτρέπεται να εγκατασταθούν συσκευές για τις οποίες η ένταση του ρεύματος θα ξεπερνά τα 25 Α.
        Να γραφεί το λογισμικό στο οποίο να ορίζεται η συνάρτηση get_total_P(…) η οποία να επεξεργάζεται έναν πίνακα με αντικείμενα το κάθε ένα από τα οποία να υλοποιεί και μία συσκευή. Η συνάρτηση να επιστρέφει τη συνολική ισχύ που θα απαιτήσει το κτήριο καθώς και ένα πίνακα στον οποίο να εμφανίζεται, για κάθε τύπο ασφάλειας που κυκλοφορεί στην αγορά, ο αριθμός των τεμαχίων που θα απαιτηθούν για την ολοκλήρωση της εγκατάστασης. Η συνάρτηση να επιστρέφει ακόμη και έναν πίνακα στον οποίο να εμφανίζεται, για κάθε διαθέσιμη διατομή, τα μέτρα του καλωδίου που θα απαιτηθούν για να γίνει η εγκατάσταση.
        Ως εφαρμογή να θεωρηθεί ότι πρόκειται να εγκατασταθούν δύο τύποι συσκευών για κάθε μια από τις οποίες είναι γνωστή η απόστασή της από τον κεντρικό πίνακα τροφοδοσίας. Ό πρώτος τύπος έχει μόνον ωμικές αντιστάσεις και για κάθε συσκευή γνωρίζουμε τη μέγιστη ισχύ λειτουργίας της. Ο δεύτερος τύπος συσκευών, εκτός από ωμικές αντιστάσεις για τις οποίες γνωρίζουμε τη συνολική απαιτούμενη ισχύ, έχει και έναν κινητήρα για τον οποίο γνωρίζουμε την ισχύ λειτουργίας του. Ο κινητήρας κατά την στιγμή της εκκίνησης του καταναλώνει μια επιπλέων ισχύ η οποία ισούται με το γινόμενο της ισχύος λειτουργίας του επί έναν συντελεστή c.
        Η συνάρτηση main() του προγράμματος να διαβάζει την τάση τροφοδοσίας, τον αριθμό των συσκευών του πρώτου τύπου, τον αριθμό των συσκευών του δεύτερου τύπου και να καλεί τη συνάρτηση get_total_P( ) για να υπολογίσει και στη συνέχεια να εκτυπώσει τη συνολική ισχύ που θα απαιτήσει το κτήριο. Το πρόγραμμα να εκτυπώνει ακόμη το μήκος των καλωδίων για κάθε διατομή και τον αριθμό των τεμαχίων για κάθε τύπο ασφάλειας που θα χρησιμοποιηθεί.
        Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών.


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


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: NaVi.Mitsos on December 04, 2014, 20:55:09 pm
Η virtual πρεπει να ειναι γνησια η οχι;η μπορει να λυθει ειτε ειναι γνησια η οχι; (Γενικη και ισως χαζη ερωτηση) ;Πρεπει πουθενα να χρησιμοποιησουμε τις (στατικ;)Τελος αρχικα μιλαει για αριθμο συσκευων και μετα για τεμαχια ειναι το ιδιο;Αν οχι ποια η διαφορα; Ευχαριστω εκ των προτερων


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Cern O' Bill on December 04, 2014, 22:22:01 pm
Η virtual πρεπει να ειναι γνησια η οχι;η μπορει να λυθει ειτε ειναι γνησια η οχι; (Γενικη και ισως χαζη ερωτηση) ;Πρεπει πουθενα να χρησιμοποιησουμε τις (στατικ;)Τελος αρχικα μιλαει για αριθμο συσκευων και μετα για τεμαχια ειναι το ιδιο;Αν οχι ποια η διαφορα; Ευχαριστω εκ των προτερων
ποια σκεφτεσαι να κανεις virtual;  οσο για τα τεμαχια εννοει τις ασφαλειες που θα χρησιμοποιησει απο καθε κατηγορια ασφαλειων...


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: K on December 04, 2014, 23:01:01 pm
Λίγο βοηθήστε αν μπορείτε σχετικά με το τί πάει να πει ανεξαρτησία της main και πως επιτυγχάνεται.


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: GiorgosOmegas on December 05, 2014, 01:06:07 am
Καμιά βοήθεια κανείς;;;  :( :(


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Cern O' Bill on December 05, 2014, 14:03:12 pm
εννοει να μπορει να βαλει κ αλλες κλασεις με αλλες συσκευες και να μην αλλαξει ουτε η main ουτε η συναρτηση


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: K on December 05, 2014, 15:02:04 pm
εννοει να μπορει να βαλει κ αλλες κλασεις με αλλες συσκευες και να μην αλλαξει ουτε η main ουτε η συναρτηση

και πρακτικά τί σημαίνει?


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: reservoir dog on December 05, 2014, 19:20:59 pm
Για το μονο που ειμαι σχετικα σιγουρος ειναι οτι θα υπαρχει μια κλαση που θα λεγεται device  ;D ;D :D :D


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: K on December 05, 2014, 21:26:35 pm
Λοιπόν ισχύει ότι θα υπάρχει μια device, μια device1 και μια device2?


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Ancient on December 05, 2014, 21:37:40 pm
Η main και η συνάρτηση θα πρέπει να είναι γραμμένες έτσι, ώστε αν προσθέσεις νέες συσκευές (=κλάσεις) το πρόγραμμα να δουλεύει και γι'αυτές χωρίς να χρειαστεί να αλλάξει ούτε η main και ούτε η product.

Για να είναι η συνάρτηση ανεξάρτητη θα χρειαστούν virtual συναρτήσεις. Για να είναι και η main ανεξάρτητη θα χρειαστούν και static μεταβλητές.


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: lady_of_winter on December 05, 2014, 21:38:43 pm
λογικά ναι, και οι δυο κλάσεις θα ναι παραγόμενες της device, Αν θες δες και τα παραδείγματα που έχει ανεβάσει ο συμεωνίδης, πιστεύω βοηθάνε αρκετά.


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: K on December 05, 2014, 22:03:31 pm
Η main και η συνάρτηση θα πρέπει να είναι γραμμένες έτσι, ώστε αν προσθέσεις νέες συσκευές (=κλάσεις) το πρόγραμμα να δουλεύει και γι'αυτές χωρίς να χρειαστεί να αλλάξει ούτε η main και ούτε η product.

Για να είναι η συνάρτηση ανεξάρτητη θα χρειαστούν virtual συναρτήσεις. Για να είναι και η main ανεξάρτητη θα χρειαστούν και static μεταβλητές.


Το προσθέτω νέες συσκευές δε σημαίνει προσθέτω νέες κλάσσεις. Το προσθέτω νέους τύπους συσκευών όμως ναι.

λογικά ναι, και οι δυο κλάσεις θα ναι παραγόμενες της device

Αυτό όμως δε συμβαδίζει με αυτό που λέει ο φίλος μας ο Αρχαίος παραπάνω.


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: lady_of_winter on December 05, 2014, 22:22:24 pm
Αυτό στην εκφώνηση με την εκκίνηση του κινητήρα θα μας επηρέασει στον υπολογισμό του ρεύματος ?


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Ancient on December 05, 2014, 22:39:28 pm
Η main και η συνάρτηση θα πρέπει να είναι γραμμένες έτσι, ώστε αν προσθέσεις νέες συσκευές (=κλάσεις) το πρόγραμμα να δουλεύει και γι'αυτές χωρίς να χρειαστεί να αλλάξει ούτε η main και ούτε η product.

Για να είναι η συνάρτηση ανεξάρτητη θα χρειαστούν virtual συναρτήσεις. Για να είναι και η main ανεξάρτητη θα χρειαστούν και static μεταβλητές.


Το προσθέτω νέες συσκευές δε σημαίνει προσθέτω νέες κλάσσεις. Το προσθέτω νέους τύπους συσκευών όμως ναι.

λογικά ναι, και οι δυο κλάσεις θα ναι παραγόμενες της device

Αυτό όμως δε συμβαδίζει με αυτό που λέει ο φίλος μας ο Αρχαίος παραπάνω.

Ναι αυτό εννοούσα. Και επίσης κάθε τύπος συσκευής (στην προκειμένη περίπτωση οι device1 και device2) θα είναι όντως παραγόμενος από την abstract device όπως ειπώθηκε.

Αυτό στην εκφώνηση με την εκκίνηση του κινητήρα θα μας επηρέασει στον υπολογισμό του ρεύματος ?


Ναι, διότι στην αρχή έχεις ένα παραπανήσιο ρεύμα για την εκκίνηση του κινητήρα και αν δεν το λάβεις υπόψη θα σου κάψει (πιθανώς) την ασφάλεια.


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: lady_of_winter on December 05, 2014, 22:44:40 pm
ευχαριστώ πολύ!! :)


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Kthulu on December 06, 2014, 19:44:16 pm
Στην circuit1b (Στην έκτη εβδομαδα) που εχει ανεβασει ο Συμεωνιδης δεσμευει χωρο για 1 αντικειμενο απο καθε κλαση. Εδω που θελουμε α αντικειμενα απο τη μια και β απο την αλλη κλαση πως θα διαφοροποιηθει ο κωδικας;


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Vlassis on December 06, 2014, 20:03:06 pm
Στην circuit1b (Στην έκτη εβδομαδα) που εχει ανεβασει ο Συμεωνιδης δεσμευει χωρο για 1 αντικειμενο απο καθε κλαση. Εδω που θελουμε α αντικειμενα απο τη μια και β απο την αλλη κλαση πως θα διαφοροποιηθει ο κωδικας;
Αν καταλαβα καλα αυτο που θελουμε το κανει στην circuit1a   :)


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: reservoir dog on December 06, 2014, 21:58:15 pm
Μπορει καποιος να μου πει ποιες μεταβλητες εχει δηλωσει ως static στην κλαση device και ποιες συναρτησεις ως virtual? Ευχαριστω


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Kthulu on December 06, 2014, 22:08:24 pm
Στην circuit1b (Στην έκτη εβδομαδα) που εχει ανεβασει ο Συμεωνιδης δεσμευει χωρο για 1 αντικειμενο απο καθε κλαση. Εδω που θελουμε α αντικειμενα απο τη μια και β απο την αλλη κλαση πως θα διαφοροποιηθει ο κωδικας;
Αν καταλαβα καλα αυτο που θελουμε το κανει στην circuit1a   :)
Ωραιος ευχαριστω!!
Code:
	for (int i=0;i<a;i++){
device1 temp1;
d1[i]=temp1;
P[i]=&d1[i];
}
Σε αυτο το σημειο το προγραμμα οταν τρεχει κρασαρει οταν εκχωρει το &d1 στο P.
Μπορει κανεις να μ πει που εχω κανει λαθος;


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Vlassis on December 07, 2014, 16:54:35 pm
Μπορει καποιος να μου πει ποιες μεταβλητες εχει δηλωσει ως static στην κλαση device και ποιες συναρτησεις ως virtual? Ευχαριστω
για static : device **d;  int n; για τις virtual ομως δεν εχω ιδεα..  :???:

@Kthulu το ιδιο αντικειμενο δεν θες να περασεις και στον d1 και στον P ; (αν καταλαβα σωστα οτι ο P ειναι device** και ο d1 ειναι device1** και αποθηκευεις τα αντικειμενα ΟΛΑ στον P και τα τυπου1 στον d1 ξεχωριστα .. )


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: ablaoublas on December 07, 2014, 17:00:53 pm
Λίγο βοηθήστε αν μπορείτε σχετικά με το τί πάει να πει ανεξαρτησία της main και πως επιτυγχάνεται.

Μήπως ζητάει αυτό ; Δεν πολυκατάλαβα τι γίνεται αλλά μάλλον αυτό θέλει και ο Κορτέσης , μοιάζει σωστό  !
Στο συννημένο, απο τα downloads το βρήκα ...


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: reservoir dog on December 07, 2014, 18:29:06 pm
Θα πρεπει να υπαρχει και μια κλαση για τους τυπους των συσκευων?


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Vlassis on December 07, 2014, 18:33:03 pm
Θα πρεπει να υπαρχει και μια κλαση για τους τυπους των συσκευων?
Μια βασικη για ολες τις συσκευες, και μια κλαση για καθε τυπο συσκευης !  ;)


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: GiorgosOmegas on December 08, 2014, 00:29:02 am
Έπεσε το ethmmy ή ιδέα μου είναι;; Με τις εργασίες τί γινεται; Τις στέλνουμε με μειλ στον Κορτέση;;


Title: Re: [C++] Άσκηση F - 2014/2015 - Προθεσμία 7/12/2014
Post by: Baratheon on December 08, 2014, 00:44:24 am
επεσε ναι...για τις εργασιες κανεις δεν ξερει  :(