THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: teslaaaa on November 26, 2011, 03:13:18 am



Title: [C++] Εργασία Γ (2011-12)
Post by: teslaaaa on November 26, 2011, 03:13:18 am
Το στοιχειώδες κύκλωμα S αποτελείται από έναν αριθμό n ωμικών αντιστάσεων συνδεδεμένων σε σειρά. Για τις αντιστάσεις του κυκλώματος δίνεται η τιμή της κάθε μιας καθώς και η μέγιστη ένταση του ρεύματος που μπορεί να τη διαρρέει.
Για να ελεγχθούν οι ιδιότητες του κυκλώματος ζητείται να οριστεί η κλάση circuitS για την οποία να ορίζονται δύο περιπτώσεις δημιουργίας αντικειμένων ανάλογα με τη συνάρτηση αρχικών συνθηκών που θα κληθεί κατά τη δημιουργία τους. Στην πρώτη περίπτωση η συνάρτηση αρχικών συνθηκών να δέχεται, ως όρισμα, έναν ακέραιο ο οποίος να ορίζει τον αριθμό των αντιστάσεων του κυκλώματος. Η συνάρτηση, αφού δεσμεύσει δυναμικά μνήμη για την καταχώρηση των τιμών των αντιστάσεων και για την καταχώρηση των αντιστοίχων τιμών της μέγιστης επιτρεπόμενης έντασης για κάθε μια από αυτές, να διαβάζει από το πληκτρολόγιο αυτές τις τιμές. Στη δεύτερη περίπτωση η συνάρτηση αρχικών συνθηκών να δέχεται ως ορίσματα δύο ακεραίους αριθμούς. Ο πρώτος να δηλώνει το πλήθος των αντιστάσεων ενώ ο δεύτερος να χρησιμοποιείται ως σπόρος σε μια γεννήτρια παραγωγής τυχαίων αριθμών. Η συνάρτηση, αφού δεσμεύσει δυναμικά μνήμη για την καταχώρηση των τιμών των αντιστάσεων και για την καταχώρηση των αντιστοίχων τιμών για τις μέγιστες επιτρεπόμενες τιμές της έντασης, να χρησιμοποιεί τη γεννήτρια τυχαίων αριθμών για να παράγει τιμές για τις αντιστάσεις και τις αντίστοιχες τιμές της έντασης. Για τις τιμές αυτές να διαβάζονται από το πληκτρολόγιο ένα κατώτερο και ένα ανώτερο όριο.
Η κλάση να διαθέτει ακόμη τις συναρτήσεις float get_tres(),void chek(float V) και void out().  Η πρώτη να υπολογίζει και να επιστρέφει την ολική αντίσταση του κυκλώματος, Η δεύτερη για μία τιμή της τάσης V που θα εφαρμοστεί στο κύκλωμα να εκτυπώνει τις αντιστάσεις οι οποίες θα καταστραφούν αν η ένταση του ρεύματος που τις διαρρέει ξεπεράσει την μέγιστη ανεκτή που ορίστηκε για αυτές και η τρίτη να εκτυπώνει τα στοιχεία του κυκλώματος.
Το στοιχειώδες κύκλωμα P αποτελείται από έναν αριθμό m ωμικών αντιστάσεων συνδεδεμένων σε παράλληλη διάταξη. Για τις αντιστάσεις του κυκλώματος δίνεται η τιμή της κάθε μιας καθώς και η μέγιστη ένταση του ρεύματος που μπορεί να τη διαρρέει.
Για να ελεγχθούν οι ιδιότητες του κυκλώματος P ζητείται να οριστεί η κλάση circuitP η οποία να έχει τις ίδιες ακριβώς απαιτήσεις που ορίστηκαν και για την κλάση circuitS.
Ζητείται να γραφεί το λογισμικό στο οποίο να ορίζεται η κλάση circuit ως public παραγομένη από τις κλάσεις circuitS και circuitP. Η κλάση να ορίζει ένα σύνθετο κύκλωμα το οποίο να αποτελείται από ένα κύκλωμα S και ένα κύκλωμα P. Με τη δημιουργία αντικειμένων στον τύπο της κλάσης να δίνεται, ως όρισμα, στις συναρτήσεις αρχικών συνθηκών η τάση V η οποία θα εφαρμοστεί στο κύκλωμα. Στην κλάση να ορίζεται η συνάρτηση float set_tres(int k) η οποία, στην περίπτωση που ο αριθμός k είναι ίσος με το 0 να επιστρέφει την ολική αντίσταση που θα έχει το σύνθετο κύκλωμα αν τα δύο στοιχειώδη κυκλώματα συνδεθούν σε παράλληλη διάταξη, διαφορετικά να επιστρέφει την ολική αντίσταση του σύνθετου κυκλώματος αν τα δυο στοιχειώδη κυκλώματα συνδεθούν σε σειρά. Στην κλάση να οριστεί ακόμη και η συνάρτηση void chek(int k) η οποία, στην περίπτωση που ο k είναι ίσος με το 0, να εκτυπώνει τις αντιστάσεις των κυκλωμάτων S και P που θα καταστραφούν αν τα κυκλώματα συνδεθούν σε παράλληλη διάταξη διαφορετικά να τυπώνει τις αντιστάσεις που θα καταστραφούν αν τα κυκλώματα S και P συνδεθούν σε σειρά.
Η συνάρτηση main του προγράμματος, αφού διαβάσει την τάση V που θα εφαρμοστεί, να ορίζει, για κάθε δυνατή περίπτωση δημιουργίας αντικειμένων της κλάσης circuit, ένα αντικείμενο. Για το σύνθετο κύκλωμα που ορίζει αυτό το αντικείμενο, αφού τυπώσει τα στοιχεία των κυκλωμάτων S και P που το αποτελούν, να καλεί την συνάρτηση chek() που όρισε η κλάση για να εκτυπώσει τις αντιστάσεις που θα καταστραφούν αν τα στοιχειώδη κυκλώματα S και P συνδεθούν σε σειρά και αν συνδεθούν παράλληλα. 
Βοηθητικές παρατηρήσεις
Ως γεννήτρια τυχαίων αριθμών μπορείτε να χρησιμοποιήσετε τη συνάρτηση βιβλιοθήκης rand(). (πληροφορίες στο Help του μεταγλωττιστή που χρησιμοποιείτε)
Οι τιμές των αντιστάσεων και των αντίστοιχων εντάσεων να είναι ακέραιοι αριθμοί εφόσον οι τιμές που παράγει η rand() είναι ακέραιοι αριθμοί.
Τα ονόματα των συναρτήσεων να διατηρηθούν στις βασικές και στις παραγόμενες κλάσεις όπως έχουν δοθεί πιο πάνω. 


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: gr3gory on November 28, 2011, 02:29:11 am
Κάπως έτσι θα είναι και το ένα από τα δύο θέματα το Φεβρουάριο. Εννοώ θα το βλέπεις και στην αρχή θα μένεις έτσι  :-\

(Σόρρυ για το οφφ-τόπικ αλλά δεν άντεξα  :-X)


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Andre on November 28, 2011, 12:26:37 pm
Η συνάρτηση main του προγράμματος, αφού διαβάσει την τάση V που θα εφαρμοστεί, να ορίζει, για κάθε δυνατή περίπτωση δημιουργίας αντικειμένων της κλάσης circuit, ένα αντικείμενο.
...
Βοηθητικές παρατηρήσεις
Ως γεννήτρια τυχαίων αριθμών μπορείτε να χρησιμοποιήσετε τη συνάρτηση βιβλιοθήκης rand(). (πληροφορίες στο Help του μεταγλωττιστή που χρησιμοποιείτε)

Πόσες είναι οι δυνατές περιπτώσεις δημιουργίας αντικειμένων circuit; 4 ή 2;

EDIT: Επίσης, ο αριθμός των αντιστάσεων n και m θα διαβάζονται στην αρχή της main μαζί με την τάση V;


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: kmaniac on November 28, 2011, 16:24:52 pm
Εγώ πάντως πήρα 4 περιπτώσεις.
1)χειροκίνητα και στα 2
2)Αυτοματα και στα 2
3)Αυτόματα στο S και χειροκίνητα στο P
4) Αυτόματα στο P και χειροκίνητα στο S

Στην main διαβάζω τάση και αριθμό αντιστάσεων σε κάθε κύκλωμα.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Andre on November 29, 2011, 13:48:49 pm
Η float set_tres(int k) της κλάσης circuit βρίσκει την ολική αντίσταση των δύο επιμέρους κυκλωμάτων. Γίνεται η συνάρτηση αυτή να καλέσει τις float get_tres() των βασικών κλάσεων (οι οποίες επιστρέφουν το ολικό R καθενός κυκλώματος) τη στιγμή που αυτές έχουν το ίδιο όνομα;
Αν όχι, λογικά θα πρέπει να αποθηκεύσω ως protected τις αντιστάσεις που υπολογίζουν οι get_tres() των circuitS, circuitP και να τις χρησιμοποιήσω (τις protected) για την εύρεση του Rολ, σωστά;


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: kmaniac on November 29, 2011, 13:52:34 pm
Η float set_tres(int k) της κλάσης circuit βρίσκει την ολική αντίσταση των δύο επιμέρους κυκλωμάτων. Γίνεται η συνάρτηση αυτή να καλέσει τις float get_tres() των βασικών κλάσεων (οι οποίες επιστρέφουν το ολικό R καθενός κυκλώματος) τη στιγμή που αυτές έχουν το ίδιο όνομα;

Ναι γίνεται.
circuitS::get_tres();
circuitP::get_tres();


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Andre on November 29, 2011, 14:03:51 pm
Η float set_tres(int k) της κλάσης circuit βρίσκει την ολική αντίσταση των δύο επιμέρους κυκλωμάτων. Γίνεται η συνάρτηση αυτή να καλέσει τις float get_tres() των βασικών κλάσεων (οι οποίες επιστρέφουν το ολικό R καθενός κυκλώματος) τη στιγμή που αυτές έχουν το ίδιο όνομα;

Ναι γίνεται.
circuitS::get_tres();
circuitP::get_tres();

Το ίδιο ισχύει και για μεταβλητές που έχουν ίδιο όνομα στις δύο κλάσεις;
πχ circuitS::r[ i ];    //r ο πίνακας αντιστάσεων

Στις σημειώσεις του Κορτέση πού το έχει αυτό;


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δον on November 29, 2011, 19:13:11 pm
Ρε παιδιά. Ίσως χαζή ερώτηση. Γίνεται να δεσμεύσουμε δυναμικά μνήμη μέσα σε constructor????
ΠΩΣ????


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Ναταλία on November 29, 2011, 20:41:01 pm
δεν ξερω..δεν ειναι λογικο να γινεται?   :-\
μια συναρτηση της κλασης μπορει να καλεσει μια αλλη συναρτηση της κλασης απλα αναφεροντας το ονομα της?


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δον on November 29, 2011, 22:10:28 pm
Που θα κάνεις free όμως? Είναι χαζό. Τέλος.



μια συναρτηση της κλασης μπορει να καλεσει μια αλλη συναρτηση της κλασης απλα αναφεροντας το ονομα της?


Μπορεί αλλά γιατί να το κάνεις?


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: pepper ann on November 29, 2011, 22:11:34 pm
Που θα κάνεις free όμως? Είναι χαζό. Τέλος.



μια συναρτηση της κλασης μπορει να καλεσει μια αλλη συναρτηση της κλασης απλα αναφεροντας το ονομα της?


Μπορεί αλλά γιατί να το κάνεις?
δημήτρη
χαλαααρα.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Ναταλία on November 29, 2011, 23:09:52 pm
Που θα κάνεις free όμως? Είναι χαζό. Τέλος.



μια συναρτηση της κλασης μπορει να καλεσει μια αλλη συναρτηση της κλασης απλα αναφεροντας το ονομα της?


Μπορεί αλλά γιατί να το κάνεις?
δημήτρη
χαλαααρα.


ετσι μ'αρεσε :P
για το Rol το θελω (get_tres)
πχ  V/get_tres()>I μεσα στην chek..
ή κατι παρομοιο τεσπα..


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: zisis00 on November 30, 2011, 00:09:38 am
Που θα κάνεις free όμως? Είναι χαζό. Τέλος.

Αν απαντάς στον εαυτό σου

Ρε παιδιά. Ίσως χαζή ερώτηση. Γίνεται να δεσμεύσουμε δυναμικά μνήμη μέσα σε constructor????
ΠΩΣ????

free μπορεις να κάνεις στον destructor


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: pepper ann on November 30, 2011, 00:17:03 am
όταν καίγεται μία αντίσταση,μπορεί να περάσει ρεύμα από αυτήν;


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Andre on November 30, 2011, 00:38:14 am
όταν καίγεται μία αντίσταση,μπορεί να περάσει ρεύμα από αυτήν;

Διυλίζουμε τον κώνωπα!! Μην το εξετάζεις (γιατί δε χρειάζεται!).

edit Δηλαδή αν το ρεύμα που τη διαρρέει είναι μεγαλύτερο από αυτό που αντέχει, απλά εκτύπωσέ την.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: pepper ann on November 30, 2011, 00:53:06 am
όταν καίγεται μία αντίσταση,μπορεί να περάσει ρεύμα από αυτήν;

Διυλίζουμε τον κώνωπα!! Μην το εξετάζεις (γιατί δε χρειάζεται!).

edit Δηλαδή αν το ρεύμα που τη διαρρέει είναι μεγαλύτερο από αυτό που αντέχει, απλά εκτύπωσέ την.
ε,όχι ακριβώς...
γιατί αν με τον όρο 'καιγεται η αντίσταση' εννοούμε ότι κόβεται το καλώδιο,τότε προφανώς το ρεύμα δεν περνάει από αυτήν,και αν οι αντιστάσεις μας είναι συνδεδεμένες σε σειρά,δεν θα περάσει ούτε από τις επόμενες αντιστάσεις.
Οπότε,θέλουν δε θέλουν,δεν θα καούν.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δον on November 30, 2011, 06:35:40 am
Cool με τη Ναταλία κάνουμε πλάκαααααα  :D


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Ναταλία on November 30, 2011, 11:07:51 am
Cool με τη Ναταλία κάνουμε πλάκαααααα  :D

 ^filarakia^


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Davvol on November 30, 2011, 19:03:12 pm
Για να καλύψουμε όλες τις "δυνατές περιπτώσεις δημιουργίας αντικειμένων της κλάσης circuit" θα δημιουργήσουμε μπόλικους (4) constructor?

Εάν ναι, τότε στην περίπτωση που ένα απο τα δύο κυκλώματα παίρνει τιμές χειροκίνητα και το άλλο μέσω rand(), πώς ξεχωρίζουμε ποιό είναι ποιο?

Έχω δημιουργήσει τους constuctor της  circuit με 2(both χειροκίνητα)  , 4(both random) , 3(1 random 1 χειροκίνητα).


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on November 30, 2011, 19:55:25 pm
εγω εχω μια αλλη απορια! Τι εννοει με τον σπορο?  :D


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δον on November 30, 2011, 20:26:50 pm
εγω εχω μια αλλη απορια! Τι εννοει με τον σπορο?  :D

Σπόρος είναι ένας integer τον οποίο τον στέλνεις με την srand στο σύστημα και η rand σου επιστρέφει αριθμό βασισμένο στην srand. Η rand δεν παράγει στην πραγματικότητα τυχαίους αριθμούς αλλά ψευδοτυχαίους. Να το ξες αυτό. Και τα πρότυπα και των 2 βρίσκονται στην cstdlib . Αυτάαααα...

Αααα πρέπει να ορίσεις και τα όρια της rand . Δες στο www.learncpp.com .Τα γράφει πολύ καλά αν θυμάμαι καλά στο κεφάλαιο 5.9


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Kaelthas on November 30, 2011, 22:00:21 pm
Ερώτηση για την class circuitP.
Κάνουμε copy/paste την class circuitS και στη συνέχεια αλλάζουμε το "n" σε "m" και αλλάζουμε λίγο την συνάρτηση υπολογισμού της ολικής αντίστασης αφού τωρα είναι παράλληλα;;;;


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on November 30, 2011, 22:03:12 pm
ακριβως!


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Kaelthas on November 30, 2011, 22:05:27 pm
Ευχαριστώ για την άμεση ανταπόκριση. Απ ότι φαίνεται θα πιάσει μπόλικες σειρές η εργασία...


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Ναταλία on November 30, 2011, 22:11:08 pm
Ερώτηση για την class circuitP.
Κάνουμε copy/paste την class circuitS και στη συνέχεια αλλάζουμε το "n" σε "m" και αλλάζουμε λίγο την συνάρτηση υπολογισμού της ολικής αντίστασης αφού τωρα είναι παράλληλα;;;;

αχα και αλλαζουμε και ποιες αντιστασεις θα καταστραφουν!


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on November 30, 2011, 22:16:51 pm
Για να καλύψουμε όλες τις "δυνατές περιπτώσεις δημιουργίας αντικειμένων της κλάσης circuit" θα δημιουργήσουμε μπόλικους (4) constructor?

Εάν ναι, τότε στην περίπτωση που ένα απο τα δύο κυκλώματα παίρνει τιμές χειροκίνητα και το άλλο μέσω rand(), πώς ξεχωρίζουμε ποιό είναι ποιο?



+1 Ξερει κανεις τι γινεται?


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Ναταλία on November 30, 2011, 23:08:33 pm
Για να καλύψουμε όλες τις "δυνατές περιπτώσεις δημιουργίας αντικειμένων της κλάσης circuit" θα δημιουργήσουμε μπόλικους (4) constructor?

Εάν ναι, τότε στην περίπτωση που ένα απο τα δύο κυκλώματα παίρνει τιμές χειροκίνητα και το άλλο μέσω rand(), πώς ξεχωρίζουμε ποιό είναι ποιο?



+1 Ξερει κανεις τι γινεται?

εκανα 4 αρχικων συνθηκων στην circuit και εστελνα στις 3 ορισματα "σπορος".
και αναλογα ετρεχα την αρχικων συνθηκων S ή/και P.
Πχ αν εχουμε σπορο στο S κυκλωμα τρεχουμε την αρχικων συνθηκων της S με το σπορο.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δον on December 01, 2011, 12:55:09 pm
Κάπως έτσι.

Αλλά έχω μια απορία/ένσταση.
Αν θες να καλέσεις τον costrucor ας πουμε στην περίπτωση που θέλεις το S να το καταχωρείς εσύ και το P τυχαία o constructor θα έχει τη μορφή         circuitS::circuitS(int n, int sporos, int m, V)
Αν τώρα θες να κέσεις τον constructor στην περίπτωση που θέλεις το S τυχαία και το P να το καταχωρείς εσύ τότε θα έχει τη μορφή
                      circuitP::circuitP(int n, int m, int sporos, V)

ΠΩΣ ΘΑ ΞΕΡΕΙ Ο COMPILER ΠΟΙΟ ΝΑ ΣΤΕΙΛΕΙ ΚΑΘΕ ΦΟΡΑΑΑΑ?? ΑΑΑΑΑΑΑΑ έχει πονέσει το μυαλό μου!!!


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δον on December 01, 2011, 12:55:55 pm
*float V


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on December 01, 2011, 18:17:50 pm
θα κανουμε το σπορο float μαλλον.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 01, 2011, 22:47:18 pm
Q1:
Quote
Η κλάση να ορίζει ένα σύνθετο κύκλωμα το οποίο να αποτελείται από ένα κύκλωμα S και ένα κύκλωμα P.
Πώς το κάνουμε αυτό;

Q2:μπορεί κάποιο καλό παιδάκι να πει πως υπολογίζουμε την ολική αντίσταση σε σειρά και παράλληλα;
 :-\

https://www.youtube.com/watch?v=uow8bNIMaRo

your mind aches λεμεεεεε


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 01, 2011, 22:51:30 pm
Κάπως έτσι.

Αλλά έχω μια απορία/ένσταση.
Αν θες να καλέσεις τον costrucor ας πουμε στην περίπτωση που θέλεις το S να το καταχωρείς εσύ και το P τυχαία o constructor θα έχει τη μορφή         circuitS::circuitS(int n, int sporos, int m, V)
Αν τώρα θες να κέσεις τον constructor στην περίπτωση που θέλεις το S τυχαία και το P να το καταχωρείς εσύ τότε θα έχει τη μορφή
                      circuitP::circuitP(int n, int m, int sporos, V)

ΠΩΣ ΘΑ ΞΕΡΕΙ Ο COMPILER ΠΟΙΟ ΝΑ ΣΤΕΙΛΕΙ ΚΑΘΕ ΦΟΡΑΑΑΑ?? ΑΑΑΑΑΑΑΑ έχει πονέσει το μυαλό μου!!!

ε δεν μπορεις να το κάνεις 4 φορές, 1 για κάθε περίπτωση;


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: anchelon on December 01, 2011, 23:53:05 pm
Έχω αρχίσει να νευριάζω πραγματικά όμως! >:( >:(..και να απελπίζομαι!Τι σόι εργασία είναι αυτή??Δεν μας λυπούνται καθόλου?Έχουμε τόσα πανδύσκολα μαθήματα να ασχοληθούμε δν έχουμε μόνο C++!Και είναι κ εβδομαδιαία...Δν μπορούν να βάλουν μία λίγο πιο απλή??

         .............η απελπισμένη........... :-[ :-[ :-[ :-[ :-[

ps1:Είμαι μόνο εγώ ή υπάρχουν κ άλλοι που κάθε φορά που βλέπουν τη νέα εργασία τους γεννιούνται τάσεις αυτοκτονίας??
ps2:Sorry για το off-topic αλλά δν είχα σε ποιον να τα πω!Κοντεύω να σκάσω :(


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: ForestBlack on December 02, 2011, 13:03:59 pm
χρειάζεται να κάνω πίνακα αντικειμένων (για το κύκλωμα S πχ) για κάθε διαφορετική τιμή αντίστασης και μέγιστης επιτρεπής 'εντασης ρεύματος η μπορώ να έχω ένα αντικείμενο μέσα στο οποίο θα έχω 2 πινακές για να καταχωρώ τις τιμές των αντιστάσεων και των επιτρεπτών εντάσεων ρεύματος?


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Davvol on December 02, 2011, 13:32:27 pm
χρειάζεται να κάνω πίνακα αντικειμένων (για το κύκλωμα S πχ) για κάθε διαφορετική τιμή αντίστασης και μέγιστης επιτρεπής 'εντασης ρεύματος η μπορώ να έχω ένα αντικείμενο μέσα στο οποίο θα έχω 2 πινακές για να καταχωρώ τις τιμές των αντιστάσεων και των επιτρεπτών εντάσεων ρεύματος?

Νομίζω πως η δεύτερη υλοποίηση είναι πιο εύκολη και μου φαίνεται και ορθότερη από το να δημιουργήσεις αντικείμενα


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: ForestBlack on December 02, 2011, 14:48:20 pm
ναι και εγώ έτσι ξεκίνησα να το κάνω.  :)


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 02, 2011, 17:48:05 pm
στη συνάρτηση της κλάσης circuit S, void check(float V) αν αλλάξω το n στις απο δω και πέρα συναρτήσεις θα έχω τη νέα τιμή του n ή την παλιά;για να έχω τη νέα πρεπει να γράψω return n; αν ναι τότε δεν πρέπει αν αλλάξω το void se int;
 :-\ :-\ :-\


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Andre on December 02, 2011, 18:16:53 pm
Έχω αρχίσει να νευριάζω πραγματικά όμως! >:( >:(..και να απελπίζομαι!Τι σόι εργασία είναι αυτή??Δεν μας λυπούνται καθόλου?Έχουμε τόσα πανδύσκολα μαθήματα να ασχοληθούμε δν έχουμε μόνο C++!Και είναι κ εβδομαδιαία...Δν μπορούν να βάλουν μία λίγο πιο απλή??

         .............η απελπισμένη........... :-[ :-[ :-[ :-[ :-[

ps1:Είμαι μόνο εγώ ή υπάρχουν κ άλλοι που κάθε φορά που βλέπουν τη νέα εργασία τους γεννιούνται τάσεις αυτοκτονίας??
ps2:Sorry για το off-topic αλλά δν είχα σε ποιον να τα πω!Κοντεύω να σκάσω :(

Και η πιο απλή ήρθε: https://www.thmmy.gr/smf/index.php?topic=49127.0  :'(

στη συνάρτηση της κλάσης circuit S, void check(float V) αν αλλάξω το n στις απο δω και πέρα συναρτήσεις θα έχω τη νέα τιμή του n ή την παλιά;για να έχω τη νέα πρεπει να γράψω return n; αν ναι τότε δεν πρέπει αν αλλάξω το void se int;
 :-\ :-\ :-\

Γιατί να αλλάξεις το n στη void chek(float V);

προσοχή είναι chek και όχι check:
Τα ονόματα των συναρτήσεων να διατηρηθούν στις βασικές και στις παραγόμενες κλάσεις όπως έχουν δοθεί πιο πάνω.
Μη σε κόψει άδικα!


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Παναγιώτης on December 02, 2011, 18:19:35 pm
Κάθε φορά που θα τρέχεις το πρόγραμμα μία φορά θα δώσεις τιμή στο n από το πληκτρολόγιο και δεν θα ξαναδώσεις. Γιατί λοιπόν να το αλλάξεις πιο κάτω; Αυτό που είναι εκεί θα είναι και παντού (μήπως δεν πρόσεξες ότι στο P κύκλωμα είναι m οι αντιστάσεις και όχι n?)


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 02, 2011, 18:30:01 pm
Έχω αρχίσει να νευριάζω πραγματικά όμως! >:( >:(..και να απελπίζομαι!Τι σόι εργασία είναι αυτή??Δεν μας λυπούνται καθόλου?Έχουμε τόσα πανδύσκολα μαθήματα να ασχοληθούμε δν έχουμε μόνο C++!Και είναι κ εβδομαδιαία...Δν μπορούν να βάλουν μία λίγο πιο απλή??

         .............η απελπισμένη........... :-[ :-[ :-[ :-[ :-[

ps1:Είμαι μόνο εγώ ή υπάρχουν κ άλλοι που κάθε φορά που βλέπουν τη νέα εργασία τους γεννιούνται τάσεις αυτοκτονίας??
ps2:Sorry για το off-topic αλλά δν είχα σε ποιον να τα πω!Κοντεύω να σκάσω :(

Και η πιο απλή ήρθε: https://www.thmmy.gr/smf/index.php?topic=49127.0  :'(

στη συνάρτηση της κλάσης circuit S, void check(float V) αν αλλάξω το n στις απο δω και πέρα συναρτήσεις θα έχω τη νέα τιμή του n ή την παλιά;για να έχω τη νέα πρεπει να γράψω return n; αν ναι τότε δεν πρέπει αν αλλάξω το void se int;
 :-\ :-\ :-\

Γιατί να αλλάξεις το n στη void chek(float V);

προσοχή είναι chek και όχι check:
Τα ονόματα των συναρτήσεων να διατηρηθούν στις βασικές και στις παραγόμενες κλάσεις όπως έχουν δοθεί πιο πάνω.
Μη σε κόψει άδικα!
γιατί όταν διαγραφούν κάποιες αντιστάσεις αλλάζουν και τα δεδομένα του κυκλώματος, μαζί και ο συνολικός αριθμός των αντιστάσεων

Κάθε φορά που θα τρέχεις το πρόγραμμα μία φορά θα δώσεις τιμή στο n από το πληκτρολόγιο και δεν θα ξαναδώσεις. Γιατί λοιπόν να το αλλάξεις πιο κάτω; Αυτό που είναι εκεί θα είναι και παντού (μήπως δεν πρόσεξες ότι στο P κύκλωμα είναι m οι αντιστάσεις και όχι n?)

αφού μες στη συνάρτηση θα έχω αλλάξει την τιμή του n  χωρίς να δώσω δεύτερη φορά τιμή γι αυτό,οπότε δε θα έχω τη νέα τιμή του στο σύνθετο κύκλωμα;
ΓΑΜΩ ΤΗΝ ΠΟΥΤΑΝΑ ΜΟΥ, ΓΑΜΩΩΩΩΩ!!!


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: anchelon on December 03, 2011, 13:59:09 pm
Πόσους constructors ορίσατε στην κλάση circuit? :-\


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on December 03, 2011, 14:06:23 pm
4


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: stathisss on December 03, 2011, 14:11:51 pm
μπορεί κάποιος να μας γράψει την μορφή(ορίσματα) των 4 αυτών constructor...........γιατί εχω σκαλώσει αρκετα!!!


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: anchelon on December 03, 2011, 14:13:01 pm
4
πηγάζει από τους συνδυασμούς των κυκλ.P,S?Κάτι δν μου κολλάει!Ως ορίσματα πέρα απο τη V θα δέχονται κ τπτ άλλο? :-\


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: abcd on December 03, 2011, 14:24:56 pm
Τα στοιχεια που θα εκτυπωνει η out() δε θα περιλαμβανουν τις αντιστασεις που εχουν καταστραφει ε??


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on December 03, 2011, 14:37:26 pm
Λοιπον εχουμε 2 περιπτωσεις
1)τα κυκλωματα να συνδεθουν παραλληλα
2)σε σειρα

σε καθε μια περιπτωση εχουμε 4 υποπεριπτωσεις
1)να δινει ο χρηστης τιμες και για τα 2 κυκλωματα
2) ο χρηστησ να δινει τιμες στο κυκλωμα με το παραλληλο συνδυασμό και στο αλλο ν πηγαινει ο σπορος
3)σπορος και στα δυο
4)σποροσ στον παραλληλο συνδυασμο και ο χρηστης να δινει τιμες στο κυκλωμα που ειναι σε σειρα


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: christineL on December 03, 2011, 14:38:23 pm
circuit(float V,int n,int m):circuitS(n),circuitP(m){tasi=V;}
       circuit(float V,int n,int m,int sporos):circuitS(n), circuitP(m,sporos){tasi=V;}
       circuit(int n,float V,int sporos,int m):circuitS(n,sporos),circuitP(m){tasi=V;}
       circuit(int n,int sporos,int m,float V):circuitS(n,sporos),circuitP(m,sporos){tasi=V;}

και ο κωδικας αυτος. Εμένα τρεχει πάντως


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: stathisss on December 03, 2011, 14:43:21 pm
Σε ευχαριστώ πολυ........μακάρι να τρέξει κ σε εμένα


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: anchelon on December 03, 2011, 15:52:31 pm
circuit(float V,int n,int m):circuitS(n),circuitP(m){tasi=V;}
       circuit(float V,int n,int m,int sporos):circuitS(n), circuitP(m,sporos){tasi=V;}
       circuit(int n,float V,int sporos,int m):circuitS(n,sporos),circuitP(m){tasi=V;}
       circuit(int n,int sporos,int m,float V):circuitS(n,sporos),circuitP(m,sporos){tasi=V;}

και ο κωδικας αυτος. Εμένα τρεχει πάντως
Τέλεια!!! :D tnx for the advice ;)


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 03, 2011, 16:09:58 pm
το πρώτυπο για την malloc  σε ποια βιβλιοθήκη είναι; ::)


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: anchelon on December 03, 2011, 16:17:08 pm
Στην <stdlib.h>.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 03, 2011, 16:41:39 pm
εεεευχαριστώώώώώ


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 03, 2011, 18:15:59 pm
έχω
 
Code:
void circuitS::chek(float V)
{...
Ik=(V/Rov1)
...
}

όπου V η τάση Ικ η ένταση  και Rov1 η ολική αντίσταση του κυκλώματος Σ
όταν κάνω compile μου βγάζει 
 stray '\' in program
 και
 expected `)' before "Rov1"
 καμια ιδέα; :(


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Ναταλία on December 03, 2011, 18:34:59 pm
έχω
 
Code:
void circuitS::chek(float V)
{...
Ik=(V/Rov1)
...
}

όπου V η τάση Ικ η ένταση  και Rov1 η ολική αντίσταση του κυκλώματος Σ
όταν κάνω compile μου βγάζει 
 stray '\' in program
 και
 expected `)' before "Rov1"
 καμια ιδέα; :(

δεν εχει ; αλλα δεν ξερω αν φταιει αυτο.. :S


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 03, 2011, 18:39:43 pm
problem solved-thanX
έβαζα "\" αντί για "/"
 8))


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: alexis2044 on December 03, 2011, 19:07:07 pm
Παιδιά τα n,m, σπορος τα διαβάζετε πουθενά ή τα θέτουμε εξ ορισμού στον κώδικα;

Γιατί δε βλέπω διευκρίνηση... Μόνο V λέει να διαβάζει η main.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: anchelon on December 03, 2011, 19:47:27 pm
Παιδιά τα n,m, σπορος τα διαβάζετε πουθενά ή τα θέτουμε εξ ορισμού στον κώδικα;

Γιατί δε βλέπω διευκρίνηση... Μόνο V λέει να διαβάζει η main.
Μου φαίνεται λογικό να διαβαστούν στη main.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Silvo the Beautiful on December 04, 2011, 13:18:05 pm
δεν πολυκαταλαβα πως δουλευει η rand με τον σπορο... Πρεπει πρωτα να βαλω αυτην την srand?


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: adianohtos on December 04, 2011, 16:11:46 pm
float set_tres(int k) η οποία, στην περίπτωση που ο αριθμός k είναι ίσος με το 0 να επιστρέφει την ολική αντίσταση που θα έχει το σύνθετο κύκλωμα αν τα δύο στοιχειώδη κυκλώματα συνδεθούν σε παράλληλη διάταξη

Έχω μπερδευτεί λιγάκι. Για να υπολογιστει αυτο, η float set_tres(int k) χρειαζεται τις εξοδους των float circuitS:: get_tres() των 2 κλασεων circuitS και circuitP ετσι δεν ειναι; Για να εκτελεστουν αυτες οι συναρτησεις δεν πρεπει να κληθουν απο τη main ωστε να εχουμε τις εξοδους τους και να μπορουμε να τις διαχειριστουμε απο την circuit?! Κατι μου διαφευγει ή κατι εχω καταλαβει λαθος..  :-\



Title: Re: [C++] Εργασία Γ (2011-12)
Post by: pentium4 on December 04, 2011, 16:49:25 pm
float set_tres(int k) η οποία, στην περίπτωση που ο αριθμός k είναι ίσος με το 0 να επιστρέφει την ολική αντίσταση που θα έχει το σύνθετο κύκλωμα αν τα δύο στοιχειώδη κυκλώματα συνδεθούν σε παράλληλη διάταξη

Έχω μπερδευτεί λιγάκι. Για να υπολογιστει αυτο, η float set_tres(int k) χρειαζεται τις εξοδους των float circuitS:: get_tres() των 2 κλασεων circuitS και circuitP ετσι δεν ειναι; Για να εκτελεστουν αυτες οι συναρτησεις δεν πρεπει να κληθουν απο τη main ωστε να εχουμε τις εξοδους τους και να μπορουμε να τις διαχειριστουμε απο την circuit?! Κατι μου διαφευγει ή κατι εχω καταλαβει λαθος..  :-\



εφοσον η circuit ειναι παραγομενη νομιζω δε χρειαζεται. απλα οταν τις καλεσεις θα τις καλεσεις ως circuitS:: get_tres() και circuitP:: get_tres() ωστε να "φαινεται" ποια ειναι ποια


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Endeavour X on December 04, 2011, 20:06:39 pm
δεν πολυκαταλαβα πως δουλευει η rand με τον σπορο... Πρεπει πρωτα να βαλω αυτην την srand?
http://www.learncpp.com/cpp-tutorial/59-random-number-generation/   ;)


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Silvo the Beautiful on December 04, 2011, 20:26:33 pm
δεν πολυκαταλαβα πως δουλευει η rand με τον σπορο... Πρεπει πρωτα να βαλω αυτην την srand?
http://www.learncpp.com/cpp-tutorial/59-random-number-generation/   ;)

ε μαλακιες ρε ...       

      srand(s);
      for(int i=0;i<m;i++)
      {
         r=rand() % maxR + minR ;
         iMax=rand() % maxI + minI;
      }

εχει προβλημα στο maxR και το maxI... Κατι τρεχει με τους τυπους


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: mafalda on December 04, 2011, 21:12:27 pm
Code:
// Generate a random number between nLow and nHigh (inclusive)
unsigned int GetRandomNumber(int nLow, int nHigh)
{
    return (rand() % (nHigh - nLow + 1)) + nLow;
}
Eγω έτσι  βρήκα πάντως να συντάσεται...λέω να το ακολουθήσω κατά γράμμα,οπότε έβαλα
 for(int i=0;i<ν;i++)
      {
         R=(rand() % (maxR - minR +1))+minR;
         iImax=(rand() % (maxI - minI+1))+minI;
      }

κ μια ερώτηση:
Μέσα στην circuit έχουμε τα S,P.Για να καλέσουμε μια συνάρτηση του Ρ πχ. την get_tres() ενώ είμαστε μέσα σε συνάρτηση του circuit, πώς θα το γράψουμε;
P.get_tres();


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Silvo the Beautiful on December 04, 2011, 21:37:14 pm
Pantou ektos tis main vazeis :: stin main vazeis .


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: Δικαστής Μύρτιλος on December 04, 2011, 23:06:11 pm
Ερώτηση για την class circuitP.
Κάνουμε copy/paste την class circuitS και στη συνέχεια αλλάζουμε το "n" σε "m" και αλλάζουμε λίγο την συνάρτηση υπολογισμού της ολικής αντίστασης αφού τωρα είναι παράλληλα;;;;

Απάντηση από christineL : ακριβώς.

Και αυτός ακριβώς είναι ο λόγος που δεν θα ασχοληθώ άλλο με την εργασία.
Να ασχοληθώ με ένα πρόβλημα που ζητάει να καουμε copy / paste ~ 100 γραμμές ???
Ενω υποτίθεται πως μαθαίνουμε πολυμορφισμό και κληρονομικότητα ???

Καληνύχτα. Πάω να δω Monty Python.


Title: Re: [C++] Εργασία Γ (2011-12)
Post by: princess_of_the_dawn on December 04, 2011, 23:22:52 pm
Καληνύχτα. Πάω να δω Monty Python.
σωστός αδερφέ ;)