Title: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: c0ndemn3d on December 07, 2012, 12:54:45 pm Συζήτηση και απορίες για την πέμπτη εργασία. Όπως πάντα, κρατήστε το τόπικ καθαρ
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Eragon on December 07, 2012, 20:40:36 pm Τι σημαινει αυτο?
Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Exomag on December 09, 2012, 12:46:10 pm Τι σημαινει αυτο? Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών. Πρακτικά, ότι αν πχ θελήσεις αργότερα να προσθέσεις ένα 3ο τύπο συσκευών, το μόνο που θα χρειαστεί να κάνεις είναι να προσθέσεις τον κώδικα μιας νέας κλάσης, και όχι να τροποποιήσεις με οποιονδήποτε τρόπο οποιοδήποτε άλλο κομμάτι του κώδικα που είχες γράψει στην get_total_P() ή στη main()... Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Infinite Loop on December 09, 2012, 13:27:51 pm Τι σημαινει αυτο? Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών. Πρακτικά, ότι αν πχ θελήσεις αργότερα να προσθέσεις ένα 3ο τύπο συσκευών, το μόνο που θα χρειαστεί να κάνεις είναι να προσθέσεις τον κώδικα μιας νέας κλάσης, και όχι να τροποποιήσεις με οποιονδήποτε τρόπο οποιοδήποτε άλλο κομμάτι του κώδικα που είχες γράψει στην get_total_P() ή στη main()... Πρακτικα, οτι ο stk θελει να χρησιμοποιησεις virtual συναρτησεις, απλα δεν στο λεει. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Eragon on December 09, 2012, 13:48:03 pm Τι σημαινει αυτο? Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών. Πρακτικά, ότι αν πχ θελήσεις αργότερα να προσθέσεις ένα 3ο τύπο συσκευών, το μόνο που θα χρειαστεί να κάνεις είναι να προσθέσεις τον κώδικα μιας νέας κλάσης, και όχι να τροποποιήσεις με οποιονδήποτε τρόπο οποιοδήποτε άλλο κομμάτι του κώδικα που είχες γράψει στην get_total_P() ή στη main()... Πρακτικα, οτι ο stk θελει να χρησιμοποιησεις virtual συναρτησεις, απλα δεν στο λεει. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: thanospr on December 14, 2012, 18:25:14 pm Μεσα στην construstor της κλασης με τις ωμικες αντιστασει τι πρεπει να κανουμε;Δεν καταλαβαινω πως θα κανω επαναληψη για να δημιουργησω αντικειμενα του ιδιου τυπου μεσα στην constructor.
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Gru on December 15, 2012, 17:37:28 pm Πως ζητάει η main να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών όταν λέει να διαβάζεις σε αυτή τον αριθμό των συσκευών? :(
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Infinite Loop on December 15, 2012, 18:33:50 pm Πως ζητάει η main να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών όταν λέει να διαβάζεις σε αυτή τον αριθμό των συσκευών? :( Δεν ειναι καθολου προφανες. Αυτο (http://alexander.ee.auth.gr:8083/eTHMMY/archive/146/downloadFile/2084/independent.cpp) ισως να σου δωσει μια ιδεα. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 15, 2012, 18:59:28 pm Πως ζητάει η main να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών όταν λέει να διαβάζεις σε αυτή τον αριθμό των συσκευών? :( Θέλει να πει πως ο χρήστης δίνει τον αριθμό και τον τύπο των συσκευών κατά την εκτέλεση του προγράμματος. πχ στη main δεν θα πρέπει να υπάρχει πουθενά device_type1 ή device_type2 αν έχεις ορίσει τις κλάσεις device ως βασική και device_type1,device_type2 ως παραγόμενες ούτε να ορίσεις ένα πίνακα από αντικείμενα τύπου device με σταθερό μέγεθος device d[10]; Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Gru on December 15, 2012, 19:04:08 pm Πως ζητάει η main να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών όταν λέει να διαβάζεις σε αυτή τον αριθμό των συσκευών? :( Δεν ειναι καθολου προφανες. Αυτο (http://alexander.ee.auth.gr:8083/eTHMMY/archive/146/downloadFile/2084/independent.cpp) ισως να σου δωσει μια ιδεα. Δηλαδή πρέπει να κάνω μία άλλη κλάση στην οποία να διαχειρίζομαι τον αριθμό των συσκευών? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Gru on December 15, 2012, 19:23:59 pm Πως ζητάει η main να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών όταν λέει να διαβάζεις σε αυτή τον αριθμό των συσκευών? :( Θέλει να πει πως ο χρήστης δίνει τον αριθμό και τον τύπο των συσκευών κατά την εκτέλεση του προγράμματος. πχ στη main δεν θα πρέπει να υπάρχει πουθενά device_type1 ή device_type2 αν έχεις ορίσει τις κλάσεις device ως βασική και device_type1,device_type2 ως παραγόμενες ούτε να ορίσεις ένα πίνακα από αντικείμενα τύπου device με σταθερό μέγεθος device d[10]; Nαι οκ αυτό το κατάλαβα..απλά δεν μπορώ να καταλάβω πως αφού τους αριθμούς των συσκευών θα τους δίνει ο χρήστης στν main θα τους περνάω στις 2 παραγόμενες κλάσεις.. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: asousos on December 15, 2012, 20:23:57 pm O compiler λέει:
[Linker error] undefined reference to `vtable for Siskeui' ld returned 1 exit status Έχει κανείς ιδέα τι μου λέει? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 15, 2012, 20:27:35 pm O compiler λέει: Σε τι γλώσσα το έχεις; :P[Linker error] undefined reference to `vtable for Siskeui' ld returned 1 exit status Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: kofski17 on December 15, 2012, 21:44:23 pm O compiler λέει: ++[Linker error] undefined reference to `vtable for Siskeui' ld returned 1 exit status Έχει κανείς ιδέα τι μου λέει? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Exomag on December 16, 2012, 00:02:55 am O compiler λέει: [Linker error] undefined reference to `vtable for Siskeui' ld returned 1 exit status Έχει κανείς ιδέα τι μου λέει? Μου το έβγαζε και εμένα αυτό το error ο compiler (στα σποραδικά compile που κάνω πριν τελειώσω τη συγγραφή του κώδικα, για να δω αν όλα είναι ok). Τελικά δεν βρήκα τι ακριβώ έφταιγε, αλλά αφού έγραψα τελείως τον κώδικα (γιατί το error το έβγαζε στον ημιτελές κώδικα), το error εξαφανίστηκε :???: Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Infinite Loop on December 16, 2012, 00:11:56 am O compiler λέει: [Linker error] undefined reference to `vtable for Siskeui' ld returned 1 exit status Έχει κανείς ιδέα τι μου λέει? Μου το έβγαζε και εμένα αυτό το error ο compiler (στα σποραδικά compile που κάνω πριν τελειώσω τη συγγραφή του κώδικα, για να δω αν όλα είναι ok). Τελικά δεν βρήκα τι ακριβώ έφταιγε, αλλά αφού έγραψα τελείως τον κώδικα (γιατί το error το έβγαζε στον ημιτελές κώδικα), το error εξαφανίστηκε :???: Αν θυμαμαι καλα, αυτο το σφαλμα εμφανιζεται οταν εχεις δηλωσει μια abstract συναρτηση, αλλα δεν εχεις ορισει καμια υλοποιηση της. Πραγμα που εξηγει αυτα που λες. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Exomag on December 16, 2012, 00:18:25 am O compiler λέει: [Linker error] undefined reference to `vtable for Siskeui' ld returned 1 exit status Έχει κανείς ιδέα τι μου λέει? Μου το έβγαζε και εμένα αυτό το error ο compiler (στα σποραδικά compile που κάνω πριν τελειώσω τη συγγραφή του κώδικα, για να δω αν όλα είναι ok). Τελικά δεν βρήκα τι ακριβώ έφταιγε, αλλά αφού έγραψα τελείως τον κώδικα (γιατί το error το έβγαζε στον ημιτελές κώδικα), το error εξαφανίστηκε :???: Αν θυμαμαι καλα, αυτο το σφαλμα εμφανιζεται οταν εχεις δηλωσει μια abstract συναρτηση, αλλα δεν εχεις ορισει καμια υλοποιηση της. Πραγμα που εξηγει αυτα που λες. Thx για τη διευκρίνιση!! Τώρα, τουλάχιστον, ξέρω τι έφταιγε ;) Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Ed on December 16, 2012, 13:02:41 pm πρέπει να κάνω ξεχωριστή κλάση για τις αντιστάσεις και τα καλώδια ή θα τα συμπεριλάβω στη συσκευή?
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Exomag on December 16, 2012, 13:07:38 pm πρέπει να κάνω ξεχωριστή κλάση για τις αντιστάσεις και τα καλώδια ή θα τα συμπεριλάβω στη συσκευή? Δε νομίζω πως χρειάζεται ξεχωριστή κλάση. Το μήκος του καλωδίου που συνδέει μια συσκευή με την πηγή μπορεί να είναι απλά μια private μεταβλητή. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Locke on December 16, 2012, 15:37:58 pm Επειδή ψιλοχάθηκα στην εργασία..
Όλες οι συσκευές που ανήκουν σε έναν τύπο έχουν την ίδια απόσταση απ'τον πίνακα; Και αφού ο χρήστης βάλει πόσες συσκευές θέλει για τον κάθε τύπο, βάζει για κάθε μία τη μέγιστη ισχύ λειτουργίας της ή αν ανήκει στον δεύτερο τύπο βάζει και την ίσχύ του κινητήρα και τον συντελεστή c; Ή όλες οι συσκευές που ανήκουν σε έναν τύπο έχουν ίδια ισχύ την οποία θα τη δώσει η χρήστης; Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Infinite Loop on December 16, 2012, 15:47:05 pm Επειδή ψιλοχάθηκα στην εργασία.. Όλες οι συσκευές που ανήκουν σε έναν τύπο έχουν την ίδια απόσταση απ'τον πίνακα; Και αφού ο χρήστης βάλει πόσες συσκευές θέλει για τον κάθε τύπο, βάζει για κάθε μία τη μέγιστη ισχύ λειτουργίας της ή αν ανήκει στον δεύτερο τύπο βάζει και την ίσχύ του κινητήρα και τον συντελεστή c; Ή όλες οι συσκευές που ανήκουν σε έναν τύπο έχουν ίδια ισχύ την οποία θα τη δώσει η χρήστης; Οχι, γενικα καθε συσκευη εχει δικη της ονομαστικη ισχυ και δικη της αποσταση απο τον πινακα. Εδω σου λεει οτι Quote Ως εφαρμογή να θεωρηθεί ότι πρόκειται να εγκατασταθούν δύο τύποι συσκευών για κάθε μια από τις οποίες είναι γνωστή η απόστασή της από τον κεντρικό πίνακα τροφοδοσίας. Οποτε για τον πρωτο τυπο συσκευων ζητας ονομαστικη ισχυ και αποσταση για καθε συσκευη ξεχωριστα, και για τον δευτερο τυπο ζητας τα ιδια και επιπλεον εναν συντελεστη. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: patoho on December 16, 2012, 16:10:15 pm να ρωτησω κι εγω,
εχει κανει static?? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: debbie1985 on December 16, 2012, 16:16:35 pm Παιδιά κάποιες διευκρίνεις.
Το μήκος των καλωδίων θα πρέπει να το επιστρέφει το πρόγραμμα ή να το δίνω εγώ σαν χρήστης? Αν πρέπει να επιστρέφεται απο το πρόγραμμα , πως γίνεται? Υπάρχει καποια σχέση η οποία μας δινει μήκος εάν έχουμε τη διατομή και την τάση πχ?? Επίσης στη συνολική ισχύ δεν θέλετε να λαβουμε υπόψην την ισχύ εκκίννησης του κινητήρα. Που λοιπόν μας χρησιμεύει η πληροφορία της αυξημένης ισχύος κατά την εκκίνηση? Θα παίξει ρόλο κάπου αλλού? Και μία τελευταία ερώτηση. Στη σημείωση λέτε "για κάθε συσκευή υπάρχει και μια ασφάλεια και ότι δε συνδέονται περισσότερες από μια συσκευές στο ίδιο καλώδιο." Οι συσκευές τύπου 2 όμως που έχουν ωμικές αντιστάσεις με κάποια ισχύ ΚΑΙ κινητήρα με κάποια ισχύ? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Exomag on December 16, 2012, 16:25:07 pm να ρωτησω κι εγω, Ναιεχει κανει static?? Παιδιά κάποιες διευκρίνεις. Εγώ έβαλα να διαβάζεται το μήκος των καλωδίων από τον χρήστη.Το μήκος των καλωδίων θα πρέπει να το επιστρέφει το πρόγραμμα ή να το δίνω εγώ σαν χρήστης? Αν πρέπει να επιστρέφεται απο το πρόγραμμα , πως γίνεται? Υπάρχει καποια σχέση η οποία μας δινει μήκος εάν έχουμε τη διατομή και την τάση πχ?? Επίσης στη συνολική ισχύ δεν θέλετε να λαβουμε υπόψην την ισχύ εκκίννησης του κινητήρα. Που λοιπόν μας χρησιμεύει η πληροφορία της αυξημένης ισχύος κατά την εκκίνηση? Θα παίξει ρόλο κάπου αλλού? Και μία τελευταία ερώτηση. Στη σημείωση λέτε "για κάθε συσκευή υπάρχει και μια ασφάλεια και ότι δε συνδέονται περισσότερες από μια συσκευές στο ίδιο καλώδιο." Οι συσκευές τύπου 2 όμως που έχουν ωμικές αντιστάσεις με κάποια ισχύ ΚΑΙ κινητήρα με κάποια ισχύ? Η ισχύς εκκίνησης του κινητήρα θα παίξει ρόλο στο να διαλέξεις τη σωστή ασφάλεια. Νομίζω πως για τις συσκευές τύπου 2, θα πάρεις την ισχύ των αντιστάσεων και την ισχύ του κινητήρα και θα τις αθροίσεις. Αυτή θα είναι η συνολική ισχύς του εξαρτήματος. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 16, 2012, 16:35:20 pm Παιδιά κάποιες διευκρίνεις. Το μήκος των καλωδίων θα πρέπει να το επιστρέφει το πρόγραμμα ή να το δίνω εγώ σαν χρήστης? Αν πρέπει να επιστρέφεται απο το πρόγραμμα , πως γίνεται? Υπάρχει καποια σχέση η οποία μας δινει μήκος εάν έχουμε τη διατομή και την τάση πχ?? Επίσης στη συνολική ισχύ δεν θέλετε να λαβουμε υπόψην την ισχύ εκκίννησης του κινητήρα. Που λοιπόν μας χρησιμεύει η πληροφορία της αυξημένης ισχύος κατά την εκκίνηση? Θα παίξει ρόλο κάπου αλλού? Και μία τελευταία ερώτηση. Στη σημείωση λέτε "για κάθε συσκευή υπάρχει και μια ασφάλεια και ότι δε συνδέονται περισσότερες από μια συσκευές στο ίδιο καλώδιο." Οι συσκευές τύπου 2 όμως που έχουν ωμικές αντιστάσεις με κάποια ισχύ ΚΑΙ κινητήρα με κάποια ισχύ? Για το μήκος των καλωδίων: Θα φτιάξεις 2 κλάσεις,1 για το κάθε αντικείμενο,και θα ορίσεις 2 private μεταβλητές όπου η μία θα είναι η float ισχύς και η άλλη θα είναι η float μήκος.Αυτές οι μεταβλητές θα υπάρχουν και στις 2 κλάσεις.Θα δίνεις τιμές σε αυτές μέσω της συνάρτησης αρχικών συνθηκών ( δλδ με cin >>μήκος; κλπ)... Η ισχύς του κινητήρα κατά την εκκίνηση είναι για να λάβεις τα μέτρα σου όταν διαλέγεις αντίσταση και μόνο εκεί χρησιμοποιείται. -δλδ (ισχύς_συνολικά+ισχύς_εκκίνησης)/V δεν πρέπει να ξεπερνά την τιμή της αντίστασης.- Η ισχύς που δηλώνεις ως private μεταβλητή πρέπει να έχει την τιμή της συνολικής ισχύς.Αυτό το ορίζεις από τη συνάρτηση αρχικών συνθηκών. float ισχύς_κινητήρα,ισχύς_αντιστάσεων; cin >>ισχύς_κινητήρα>>ισχύς_αντιστάσεων; ισχύς = ισχύς_κινητήρα+ισχύς_αντιστάσεων; Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: debbie1985 on December 16, 2012, 17:04:00 pm Μπραβο ρε παιδια...ευχαριστώ!!
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: heavy melon on December 16, 2012, 17:25:37 pm Επειδή δεν έχω πολυκαταλάβει πολλά πράγματα...
θα χρησιμοποιήσουμε κληρονομικότητα, έτσι? θα κάνουμε μια κλάση "μαμά" που θα περιέχει τις κοινές μεταβλητές/συναρτήσεις των δύο τύπων συσκευών και κλάσεις "παιδιά" που θα περιέχουν μόνο την έξτρα πληροφορία για τους κινητήρες? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: heavy melon on December 16, 2012, 18:34:05 pm Επίσης. εκφωνήσεις 10-11 μπορεί να ανεβάσει κάποιος?
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: TrueForce on December 16, 2012, 18:39:29 pm εμενα δε μου φανηκε πολυ δυσκολη. μου ετρεξε και το προγραμμα, ολα οκ. το σπαστικο ηταν οτι σου πετουσε λεπτομεριες αφοτου εκανες την κλαση και έπρεπε να διορθωσεις-επεκτεινεις τον κωδικα... (το ξερω, πρεπει πρωτα να το διαβασω ΟΛΟ και μετα να ξεκινησω να γραφω)
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Infinite Loop on December 16, 2012, 18:47:24 pm Επίσης. εκφωνήσεις 10-11 μπορεί να ανεβάσει κάποιος? Εφτασεεε (εκφωνησεις, ενδεικτικες λυσεις και μερικα παραδειγματα απο περσι) (edit: αυτα ειναι απο 11-12, αλλα δεν νομιζω να πειραζει) Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Thunderjohn on December 16, 2012, 19:17:19 pm Πώς γίνεται η get_total_P( ) να δέχεται μονό ένα πινάκα από αντικείμενα, ενώ έχουμε 2 τύπους αντικειμένων? Η μήπως πρέπει να κάνουμε μια malloc που να δεσμεύει και για τους δύο τύπους?(π.χ. malloc(n*sizeof(device_type1) + m*sizeof(device_type2)) )
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Infinite Loop on December 16, 2012, 19:20:16 pm Πώς γίνεται η get_total_P( ) να δέχεται μονό ένα πινάκα από αντικείμενα, ενώ έχουμε 2 τύπους αντικειμένων? Η μήπως πρέπει να κάνουμε μια malloc που να δεσμεύει και για τους δύο τύπους?(π.χ. malloc(n*sizeof(device_type1) + m*sizeof(device_type2)) ) Υποθετω πως εννοουσε πινακα απο pointers σε αντικειμενα (της βασικης κλασης μαλιστα), γιατι με αυτη την λογικη πρεπει να λυθει η ασκηση ("πολυμορφισμος" κι ετσ') Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 16, 2012, 19:21:35 pm Πώς γίνεται η get_total_P( ) να δέχεται μονό ένα πινάκα από αντικείμενα, ενώ έχουμε 2 τύπους αντικειμένων? Η μήπως πρέπει να κάνουμε μια malloc που να δεσμεύει και για τους δύο τύπους?(π.χ. malloc(n*sizeof(device_type1) + m*sizeof(device_type2)) ) Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: kofski17 on December 16, 2012, 19:23:04 pm η απόσταση απτον πίνακα που ξέρουμε για κάθε συσκευή ουσιαστικά είναι το μήκος του καλωδίου που θα χρησιμοποιθεί??
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Ed on December 16, 2012, 19:26:09 pm Την τάση τροφοδοσίας θα την βάλω σαν όρισμα στην ΣΑΣ των συσκευών?
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 16, 2012, 19:28:28 pm Ξεκίνα την υλοποίηση κάνοντας πρώτα την get_total_P ανεξάρτητη και αφού δεις ότι δουλεύει* συνέχισε με τη main.
*δοκίμασε με αυτή για main (με κατάλληλες τροποποιήσεις ανάλογα με τα ονόματα που χρησιμοποίησες) Code: int main() Την τάση τροφοδοσίας θα την βάλω σαν όρισμα στην ΣΑΣ των συσκευών? όχι ...cin>>V; από τη main.... Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: patoho on December 16, 2012, 19:32:39 pm ερωτηση..
πως γινεται η get_total_P(…) να επιστρεφει οοοοολα αυτα τα πραγματα που ζηταει?? ενα πραμα δεν επιστρεφουν οι συναρτησεις?? μηπως τα εκτυπωνουμε μεσα στην συναρτηση και δεν επιστρεφουμε τπτ?? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: pentium4 on December 16, 2012, 19:33:08 pm ερωτηση.. πως γινεται η get_total_P(…) να επιστρεφει οοοοολα αυτα τα πραγματα που ζηταει?? ενα πραμα δεν επιστρεφουν οι συναρτησεις?? μηπως τα εκτυπωνουμε μεσα στην συναρτηση και δεν επιστρεφουμε τπτ?? με pointers. Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: patoho on December 16, 2012, 19:33:52 pm θα σε φιλησω αλλη φορα!! :D thx!
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: manos on December 16, 2012, 19:43:44 pm Ορίζω τον constructor στην βασική κλάση device:
class device{ .... public: device(int V); }; device::device(int V){ ........ } και μετά ορίζω τον constructor στην παραγόμενη κλάση device_1: class device_1:public device{ public: device_1(int V); }; device_1::device_1(int V){ ............. } και μου βγάζει το εξής σφάλμα : no matching function for call to 'device::device()' candidates are: device::device(const device&) device::device(int) Ξέρει κανείς ποιο είναι το πρόβλημα? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 16, 2012, 19:49:10 pm Ορίζω τον constructor στην βασική κλάση device: υποθέτω κάπου δημιουργείς ένα αντικείμενο έτσιclass device{ .... public: device(int V); }; device::device(int V){ ........ } και μετά ορίζω τον constructor στην παραγόμενη κλάση device_1: class device_1:public device{ public: device_1(int V); }; device_1::device_1(int V){ ............. } και μου βγάζει το εξής σφάλμα : no matching function for call to 'device::device()' candidates are: device::device(const device&) device::device(int) Ξέρει κανείς ποιο είναι το πρόβλημα? Code: device d; Code: device d(123); Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Thunderjohn on December 16, 2012, 19:52:15 pm Υποθετω πως εννοουσε πινακα απο pointers σε αντικειμενα (της βασικης κλασης μαλιστα), γιατι με αυτη την λογικη πρεπει να λυθει η ασκηση ("πολυμορφισμος" κι ετσ') Δηλαδή λες ότι η get_total_P() πρέπει να είναι virtual της βασικής κλάσης? get_total_P(device **d,......) Μπορείς να το εξηγήσεις περισσότερο? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: manos on December 16, 2012, 19:53:44 pm Όχι. Όρισα ένα αντικείμενο device_1 a(200).
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Marco on December 16, 2012, 20:07:25 pm Λοιπόν, για να μην κουράζεστε με τη συνάρτηση σας γράφω εδώ τι ορίσματα έβαλα.
float get_total_P(device **d,int n,int *A,float *S,float V) float για να επιστρέφει το total_P float get_total_P(device **d,int n,int *A,float *S,float V) n αριθμός των συσκευών float get_total_P(device **d,int n,int *A,float *S,float V) *A πίνακας αντιστάσεων float get_total_P(device **d,int n,int *A,float *S,float V) *S πίνακας διατομών float get_total_P(device **d,int n,int *A,float *S,float V) V τάση βάζεις και 2 virtual στη βασική κλάση class device{ ... public: virtual float return_distance()=0; virtual float return_power()=0;} μετά πας στις 2 παραγόμενες class device1:public device{ float distance,power; ... public: ... float return_power(); float return_distance();} float device1::return_power() { return power; } float device1::return_distance() { return distance; } το ίδιο και για την device2 και κάνεις ότι ζητάει η εκφώνηση μέσα στη συνάρτηση. (για να καλέσεις τις virtual μέσα στη συνάρτηση και για το i αντικείμενο γράφεις d[ i ]->return_distance() ή d[ i ]->return_power() ) Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Thunderjohn on December 16, 2012, 20:20:22 pm Ξέρω πως γίνομαι κουραστικός, μπορείς όμως να εξηγήσεις τι παίζει με το **d?
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Dealan on December 16, 2012, 21:17:02 pm Αν δεν κάνω λάθος το **d του είναι ένας πίνακας με στοιχεία πίνακες τύπων συσκευών. Οπότε κάνοντας μία επανάληψη μέσα στον πίνακα χρησημοποιόντας δύο static μεταβλητές για μετρητές περνάς όλες τις συσκευές στην συνάρτηση.
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Ed on December 16, 2012, 22:11:21 pm Ξεκίνα την υλοποίηση κάνοντας πρώτα την get_total_P ανεξάρτητη και αφού δεις ότι δουλεύει* συνέχισε με τη main. *δοκίμασε με αυτή για main (με κατάλληλες τροποποιήσεις ανάλογα με τα ονόματα που χρησιμοποίησες) Code: int main() Με αυτό μια χαρά μου τρέχει, πώς θα γίνει ωστόσο η υλοποίηση για αριθμό συσκευών που θα δίνει ο χρηστης από το πληκτρολόγιο? Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Ed on December 16, 2012, 22:15:11 pm (Και άσχετο αλλά πώς βγαίνει το σχόλιο από το μπλε πλαίσιο?) :-[
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: LuckyLuke on December 16, 2012, 22:23:28 pm (Και άσχετο αλλά πώς βγαίνει το σχόλιο από το μπλε πλαίσιο?) :-[ με το κουμπάκι δεξιά quote ;)Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Ed on December 16, 2012, 22:25:57 pm αριγκάτο!
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Thunderjohn on December 16, 2012, 22:57:14 pm Είναι δυνατόν μέσα σε virtual συνάρτηση της παραγόμενης κλάσης να τρέξω την αντίστοιχη virtual της αρχικής? Γιατί ο παρακάτω κώδικας μου βγάζει σφάλμα.
Code: float device2::get_power(){ Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: c0ndemn3d on December 16, 2012, 23:00:28 pm Την αρχική δεν την έχεις pure virtual;
Title: Re: [C++] Άσκηση Ε - 2012/2013 - Προθεσμία 16/12 Post by: Thunderjohn on December 16, 2012, 23:20:02 pm Την έκανα τώρα και δεν άλλαξε κάτι. Μου πετάει: expected primary-expression before '.' token όπως και πριν.
|