THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: vasilis94 on November 10, 2014, 15:51:54 pm



Title: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: vasilis94 on November 10, 2014, 15:51:54 pm
Άσκηση C

Το στοιχειώδες κύκλωμα 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++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Kthulu on November 11, 2014, 17:50:17 pm
έχει κανείς καμιά ιδέα για το πως θα χρησιμοποιηθεί ο "σπόρος";


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: pentium4 on November 11, 2014, 17:53:38 pm
http://www.cplusplus.com/reference/cstdlib/srand/


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: GiorgosOmegas on November 12, 2014, 21:02:03 pm
Θέλει virtual συναρτήσεις αυτή η άσκηση ή κάνω λάθος;


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Napoleon on November 12, 2014, 23:04:19 pm
Θέλει virtual συναρτήσεις αυτή η άσκηση ή κάνω λάθος;

όχι


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Kthulu on November 12, 2014, 23:20:06 pm
Στη κλαση circuit θα πρεπει να δηλωσουμε στο private κομματι και αντικειμενα των κλασεων circuitP & circuitS;


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 12, 2014, 23:23:51 pm
Στη κλαση circuit θα πρεπει να δηλωσουμε στο private κομματι και αντικειμενα των κλασεων circuitP & circuitS;


Νομίζω η circuit είναι παραγόμενη άρα δεν χρειάζεται...

H void out() τι πρέπει να εκτυπώνει ; Μόνο τις τιμές των αντιστάσεων και τα μέγιστα ρεύματα ;


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Μουργόλυκος on November 13, 2014, 02:51:48 am
Στη κλαση circuit θα πρεπει να δηλωσουμε στο private κομματι και αντικειμενα των κλασεων circuitP & circuitS;


Νομίζω η circuit είναι παραγόμενη άρα δεν χρειάζεται...

H void out() τι πρέπει να εκτυπώνει ; Μόνο τις τιμές των αντιστάσεων και τα μέγιστα ρεύματα ;

+ την ολικη αντισταση


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 13, 2014, 03:37:23 am
Την get_res() της κλάσης circuit πως θα την υλοποιήσω ; Θα είναι συνάρτηση μέλους της ; Αυτή η συνάρτηση πρέπει να είναι ίση με την set_tres της circuitS + την set_tres της circuitP , πως θα γίνει αυτή η διάκριση όμως στον κώδικα όταν και οι δύο έχουν το ίδιο όνομα !!!  >:(


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Μουργόλυκος on November 13, 2014, 17:05:22 pm
Την get_res() της κλάσης circuit πως θα την υλοποιήσω ; Θα είναι συνάρτηση μέλους της ; Αυτή η συνάρτηση πρέπει να είναι ίση με την set_tres της circuitS + την set_tres της circuitP , πως θα γίνει αυτή η διάκριση όμως στον κώδικα όταν και οι δύο έχουν το ίδιο όνομα !!!  >:(

Όταν τις καλεις:

circuitS::set_tres...
circuitP::set_tres...


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Kthulu on November 13, 2014, 17:39:38 pm
Πόσες συναρτήσεις αρχικών συνθηκών πρέπει να κανουμε για την κλαση circuit;
Ως εξής:
-μια που να δεχεται m,n,k1,k2(m & n πλήθος αντιστάσεων k1 & k2 σπόροι)
-μια που να δεχεται m,n
ή ως εξής:
-μια που να δεχεται m,n,k1,k2
-μια που να δεχεται m,n,k1
-μια που να δεχεται m,n,k2
-μια που να δεχεται m,n

 :-\


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 13, 2014, 18:41:06 pm
Πόσες συναρτήσεις αρχικών συνθηκών πρέπει να κανουμε για την κλαση circuit;
Ως εξής:
-μια που να δεχεται m,n,k1,k2(m & n πλήθος αντιστάσεων k1 & k2 σπόροι)
-μια που να δεχεται m,n
ή ως εξής:
-μια που να δεχεται m,n,k1,k2
-μια που να δεχεται m,n,k1
-μια που να δεχεται m,n,k2
-μια που να δεχεται m,n

 :-\

Εγώ έκανα το δεύτερο , 4 constructors δηλαδή ...


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 13, 2014, 22:01:12 pm
Μπορει καποιος να δωσει μια μικρη βοηθεια ως προς το ποιοες θα ειναι οι private μεταβλητες των κλασεων circuit S και CircuitP? Ο πινακας των αντιστασεων-ρευματων? Δηλαδή ενας pointer?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: airguitar on November 13, 2014, 22:18:20 pm
τον σπορο πως τον χρησιμοποιω ??
εγινε αναφορα σε ενα site πιο πανω αλλα δεν
πολυκαταλαβα πως γινεται ....


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 13, 2014, 23:39:56 pm
off topic. Πρεπει να βρεθει τροπος να παλεψουμε τις εργασιες. Ειναι η τρίτη και ηδη η κατασταση φαινεται απειλητική.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 14, 2014, 02:03:31 am
Μπορει καποιος να δωσει μια μικρη βοηθεια ως προς το ποιοες θα ειναι οι private μεταβλητες των κλασεων circuit S και CircuitP? Ο πινακας των αντιστασεων-ρευματων? Δηλαδή ενας pointer?

Και στις 2 κλάσεις έχω ως private 2 pointers ( πίνακας των αντιστάσεων και πίνακας των μεγίστων ρευμάτων) + το μέγεθος των πινάκων που είναι κοινό

τον σπορο πως τον χρησιμοποιω ??
εγινε αναφορα σε ενα site πιο πανω αλλα δεν
πολυκαταλαβα πως γινεται ....

srand(s);
t=rand(); \\ η rand εξαρτάται μέχρι κάποιο βαθμό απο την srand(s) όπου s είναι ο σπόρος


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Napoleon on November 14, 2014, 02:15:35 am
Πόσες συναρτήσεις αρχικών συνθηκών πρέπει να κανουμε για την κλαση circuit;
Ως εξής:
-μια που να δεχεται m,n,k1,k2(m & n πλήθος αντιστάσεων k1 & k2 σπόροι)
-μια που να δεχεται m,n
ή ως εξής:
-μια που να δεχεται m,n,k1,k2
-μια που να δεχεται m,n,k1
-μια που να δεχεται m,n,k2
-μια που να δεχεται m,n

 :-\
ναι 4 φτιάξε όπου στην κάθε μια θα καλείς τους αντίστοιχους των  cirquitP και circuitS.όρισε και μια flag=0 στην main να την βάλεις όρισμα στον 2ο(ή στον 3ο) η οποια δεν θα κανει τίποτα πέρα από το να ξεχωρίζει ποιον εννοείς να καλέσει


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Apostolof on November 14, 2014, 17:57:43 pm
Πόσες συναρτήσεις αρχικών συνθηκών πρέπει να κανουμε για την κλαση circuit;
Ως εξής:
-μια που να δεχεται m,n,k1,k2(m & n πλήθος αντιστάσεων k1 & k2 σπόροι)
-μια που να δεχεται m,n
ή ως εξής:
-μια που να δεχεται m,n,k1,k2
-μια που να δεχεται m,n,k1
-μια που να δεχεται m,n,k2

-μια που να δεχεται m,n

 :-\
ναι 4 φτιάξε όπου στην κάθε μια θα καλείς τους αντίστοιχους των  cirquitP και circuitS.όρισε και μια flag=0 στην main να την βάλεις όρισμα στον 2ο(ή στον 3ο) η οποια δεν θα κανει τίποτα πέρα από το να ξεχωρίζει ποιον εννοείς να καλέσει


Το παραπάνω έχει πρόβλημα, στη περίπτωση που θα στείλεις 3 τιμές ο compiler δε ξέρει ποιόν από τους δύο constructor να καλέσει (όπως είπε και ο Napoleon).
Μπορείς (αντί για μια σημαία όπως προτείνεις) στον ένα από τους δύο constructor να στέλνεις το σπόρο ως float και μετά μέσα να κάνεις type casting σε int;;


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Μουργόλυκος on November 14, 2014, 21:30:27 pm
Μπορει καποιος να δωσει μια μικρη βοηθεια ως προς το ποιοες θα ειναι οι private μεταβλητες των κλασεων circuit S και CircuitP? Ο πινακας των αντιστασεων-ρευματων? Δηλαδή ενας pointer?

Εγω εβαλα:
int numR;
float *TimhR, *Imax, Tres;
Αριθμος αντιστασεων, πινακας με τις τιμες τους, πινακες με τα αντιστοιχα imax της καθεμιας και η ολικη αντισταση.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 14, 2014, 23:19:04 pm
Πόσες συναρτήσεις αρχικών συνθηκών πρέπει να κανουμε για την κλαση circuit;
Ως εξής:
-μια που να δεχεται m,n,k1,k2(m & n πλήθος αντιστάσεων k1 & k2 σπόροι)
-μια που να δεχεται m,n
ή ως εξής:
-μια που να δεχεται m,n,k1,k2
-μια που να δεχεται m,n,k1
-μια που να δεχεται m,n,k2

-μια που να δεχεται m,n

 :-\
ναι 4 φτιάξε όπου στην κάθε μια θα καλείς τους αντίστοιχους των  cirquitP και circuitS.όρισε και μια flag=0 στην main να την βάλεις όρισμα στον 2ο(ή στον 3ο) η οποια δεν θα κανει τίποτα πέρα από το να ξεχωρίζει ποιον εννοείς να καλέσει


Το παραπάνω έχει πρόβλημα, στη περίπτωση που θα στείλεις 3 τιμές ο compiler δε ξέρει ποιόν από τους δύο constructor να καλέσει (όπως είπε και ο Napoleon).
Μπορείς (αντί για μια σημαία όπως προτείνεις) στον ένα από τους δύο constructor να στέλνεις το σπόρο ως float και μετά μέσα να κάνεις type casting σε int;;

Νομίζω σε όλους τους constructors πρέπει να έχεις ως παράμετρο και την float τάση Vs που θα διεγείρει το σύνθετο κύκλωμα άρα για να ξεχωρίσεις τους constructors στον έναν βάζεις την float Vs ως πρώτο όρισμα και μετά στον άλλον ως δεύτερο όρισμα !


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: K on November 15, 2014, 15:45:13 pm
Στις κλάσσεις S και P,όταν υπολογίζω ποιες αντιστάσεις θα καταστραφούν
 συγκρίνω απλά το V/R αν είναι μεγαλύτερο απ το Imax για την καθεμία ή κάνω πλήρη ανάλυση του κυκλωματος?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: BabisI on November 15, 2014, 16:39:04 pm
Στις κλάσσεις S και P,όταν υπολογίζω ποιες αντιστάσεις θα καταστραφούν
 συγκρίνω απλά το V/R αν είναι μεγαλύτερο απ το Imax για την καθεμία ή κάνω πλήρη ανάλυση του κυκλωματος?
Το πρώτο,απλά συγκρίνεις είπε.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: K on November 15, 2014, 16:44:49 pm
Στις κλάσσεις S και P,όταν υπολογίζω ποιες αντιστάσεις θα καταστραφούν
 συγκρίνω απλά το V/R αν είναι μεγαλύτερο απ το Imax για την καθεμία ή κάνω πλήρη ανάλυση του κυκλωματος?
Το πρώτο,απλά συγκρίνεις είπε.

Δεν είναι όμως εν μέρει μπακάλικο? Κανονικά θα έπρεπε στην εν σειρά σύνδεση να κρατήσω σταθερό ρεύμα και να υπολογίσω, ενώ στην εν παραλλήλω να κρατήσω σταθερή τάση και να υπολογίσω.

Σε ευχαριστώ πάντως Χαράλαμπε


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Vlassis on November 15, 2014, 18:53:33 pm
Τη συναρτηση float get_tres() πρεπει να την αφησουμε ετσι, η μπορουμε να βαλουμε καποια ορισματα για να δεχεται η συναρτηση?
Γιατι αλλιως πως θα δεχεται τον πινακα με τις αντιστασεις και τον αριθμο τους ??


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 15, 2014, 18:57:20 pm
Τη συναρτηση float get_tres() πρεπει να την αφησουμε ετσι, η μπορουμε να βαλουμε καποια ορισματα για να δεχεται η συναρτηση?
Γιατι αλλιως πως θα δεχεται τον πινακα με τις αντιστασεις και τον αριθμο τους ??

Η float get_tres() είναι μέλος της κλάσης αρά "βλέπει" κάθε private μέλος και μπορείς να αναφερθείς σε αυτά απευθείας


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Vlassis on November 15, 2014, 19:03:58 pm
Τη συναρτηση float get_tres() πρεπει να την αφησουμε ετσι, η μπορουμε να βαλουμε καποια ορισματα για να δεχεται η συναρτηση?
Γιατι αλλιως πως θα δεχεται τον πινακα με τις αντιστασεις και τον αριθμο τους ??

Η float get_tres() είναι μέλος της κλάσης αρά "βλέπει" κάθε private μέλος και μπορείς να αναφερθείς σε αυτά απευθείας
και γιατι μου χτυπαει error το γαμιδι  >:(
ακυρο δεν ειχα βαλει το :: στη δηλωση της συναρτησης! θενξ τσακαλε  ;)


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 15, 2014, 19:07:27 pm
Τη συναρτηση float get_tres() πρεπει να την αφησουμε ετσι, η μπορουμε να βαλουμε καποια ορισματα για να δεχεται η συναρτηση?
Γιατι αλλιως πως θα δεχεται τον πινακα με τις αντιστασεις και τον αριθμο τους ??

Η float get_tres() είναι μέλος της κλάσης αρά "βλέπει" κάθε private μέλος και μπορείς να αναφερθείς σε αυτά απευθείας
και γιατι μου χτυπαει error το γαμιδι  >:(
ακυρο δεν ειχα βαλει το :: στη δηλωση της συναρτησης! θενξ τσακαλε  ;)

Προσοχή στους χαρακτηρισμούς σου για τον φίλο compiler  8))  Compiler is your friend


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: molotov49 on November 15, 2014, 19:45:52 pm
Πόσες συναρτήσεις αρχικών συνθηκών πρέπει να κανουμε για την κλαση circuit;
Ως εξής:
-μια που να δεχεται m,n,k1,k2(m & n πλήθος αντιστάσεων k1 & k2 σπόροι)
-μια που να δεχεται m,n
ή ως εξής:
-μια που να δεχεται m,n,k1,k2
-μια που να δεχεται m,n,k1
-μια που να δεχεται m,n,k2

-μια που να δεχεται m,n

 :-\
ναι 4 φτιάξε όπου στην κάθε μια θα καλείς τους αντίστοιχους των  cirquitP και circuitS.όρισε και μια flag=0 στην main να την βάλεις όρισμα στον 2ο(ή στον 3ο) η οποια δεν θα κανει τίποτα πέρα από το να ξεχωρίζει ποιον εννοείς να καλέσει


Το παραπάνω έχει πρόβλημα, στη περίπτωση που θα στείλεις 3 τιμές ο compiler δε ξέρει ποιόν από τους δύο constructor να καλέσει (όπως είπε και ο Napoleon).
Μπορείς (αντί για μια σημαία όπως προτείνεις) στον ένα από τους δύο constructor να στέλνεις το σπόρο ως float και μετά μέσα να κάνεις type casting σε int;;

για να ξεχωρίσεις ποιον constructor θέλεις να καλέσεις πρέπει να αλλάξεις τη σειρά των ορισμάτων


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Vlassis on November 15, 2014, 19:52:47 pm
@ablaoublas καποιες φορες δε ξηγιεται σωστα ομως ο φιλος  :D  8))

Θα υπαρξει προβλημα αν οι πινακες με τις αντιστασεις και τα μεγιστα ρευματα των κυκλωματων S και P εχουν τα ιδια ονοματα ?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: molotov49 on November 15, 2014, 19:58:05 pm
@ablaoublas καποιες φορες δε ξηγιεται σωστα ομως ο φιλος  :D  8))

Θα υπαρξει προβλημα αν οι πινακες με τις αντιστασεις και τα μεγιστα ρευματα των κυκλωματων S και P εχουν τα ιδια ονοματα ?

δεν νομίζω  ;)


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: vlad on November 15, 2014, 21:26:49 pm
δεν νομίζω  ;)
^guitar^


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: airpap on November 16, 2014, 01:05:48 am
να κανω μια ερωτηση...μπορω να χρησιμοποιησω τις συναρτησεις των circuitS και circuitP μεσα απο την circuit??


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: BabisI on November 16, 2014, 02:17:24 am
να κανω μια ερωτηση...μπορω να χρησιμοποιησω τις συναρτησεις των circuitS και circuitP μεσα απο την circuit??
Φυσικά, με scope resolution.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: airguitar on November 16, 2014, 14:16:43 pm
στους constructors των class S,class P πρεπει να δωσω αρχικες τιμες ??
π.χ πρεπει να κανω αυτο ? :
Code:
circuitS::circuitS(int n)
{
  x=n;
}


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 16, 2014, 16:55:09 pm
Την ταση V που θα βαζουμε στους constructor της Circuit, τι θα την κανουμε? Εννοω, θα μεταβιβαζεται στους constructor των circuitS και circuitP, άρα να δηλωσουμε ακομα μια private ιδιοτητα V σε αυτες τις 2 κλασεις, ή θα χρησιμοποιείται κάπως στο σώμα των constructor της circuit? Ελπιζω να εγινα κατανοητος  :D


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Vlassis on November 16, 2014, 17:10:49 pm
στους constructors των class S,class P πρεπει να δωσω αρχικες τιμες ??
π.χ πρεπει να κανω αυτο ? :
Code:
circuitS::circuitS(int n)
{
  x=n;
}
Στους constructors εγω εκανα μεσα τα malloc για τους πινακες με την τιμη των αντιστασεων και την μεγιστη τιμη του ρευματος, και γεμισα και αυτους τους πινακες! Και ως ορισμα εβαλα απλα τον αριθμο των αντιστασεων οπως το εχεις  ;)
Την ταση V που θα βαζουμε στους constructor της Circuit, τι θα την κανουμε? Εννοω, θα μεταβιβαζεται στους constructor των circuitS και circuitP, άρα να δηλωσουμε ακομα μια private ιδιοτητα V σε αυτες τις 2 κλασεις, ή θα χρησιμοποιείται κάπως στο σώμα των constructor της circuit? Ελπιζω να εγινα κατανοητος  :D
την ταση V (που την οριζεις και στην κλαση circuit) την περνας ως ορισμα στους constructors της circuit και την χρησιμοποιεις στην chek() , αλλα δεν ξερω αν καταλαβα τι εννοεις   ;D


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: K on November 16, 2014, 17:19:32 pm
Μέσα στους κονστράκτορς της circuit πως δημιουργώ αντικείμενα circuitS, circuitP?
κάπως έτσι?
circuit::circuit(float V,int n,int m,int seed1){
   circuitS S1(int n,int seed1);
   circuitP P1(int m);
   
}


Αυτός είναι ένας από τους 4 κονστράκτορς της circuit
.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Vlassis on November 16, 2014, 17:30:14 pm
Στους constructors της circuit εκανα απλα αυτο:
circuit::circuit(float Vs,int n,int spS,int m): circuitS(n,spS),circuitP(m){
    v=Vs;
} οπου το v ειναι ορισμενο στην κλαση circuit ως private.

τις circuitS και circuitP τις χρησιμοποιησα μονο με scope resolution για να καλεσω τις αντιστοιχες συναρτησεις στη main και τις συναρτησεις της circuit. Δεν ξερω κατα ποσο βοηθησα!  :P


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: K on November 16, 2014, 17:33:34 pm
Στους constructors της circuit εκανα απλα αυτο:
circuit::circuit(float Vs,int n,int spS,int m): circuitS(n,spS),circuitP(m){
    v=Vs;
} οπου το v ειναι ορισμενο στην κλαση circuit ως private.

τις circuitS και circuitP τις χρησιμοποιησα μονο με scope resolution για να καλεσω τις αντιστοιχες συναρτησεις στη main και τις συναρτησεις της circuit. Δεν ξερω κατα ποσο βοηθησα!  :P


Φαίνεται σωστό αυτό που έκανες απλά τί θα δημιουργήσει ακριβώς?
θα δημιουργήσει 1 αντικείμενο circuit 1 circuitS και 1 circuitP?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 16, 2014, 18:03:51 pm
Δηλαδη αν εχουμε 4 constructor πρεπει να δημιουργησουμε 4 αντικειμενα τυπου circuit?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: K on November 16, 2014, 18:07:07 pm
Δηλαδη αν εχουμε 4 constructor πρεπει να δημιουργησουμε 4 αντικειμενα τυπου circuit?

Aπ' ότι αντιλαμβάνομαι ναι.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Vlassis on November 16, 2014, 18:07:30 pm
Θα δημιουργησει ενα αντικειμενο circuit μονο, που θα αποτελειται απο ενα circuitS και 1 circuitP, τα οποια ομως δεν τα δημιουργεις ξεχωριστα!
Δηλαδη αν εχουμε 4 constructor πρεπει να δημιουργησουμε 4 αντικειμενα τυπου circuit?
ναι, ενα για καθε περιπτωση συναρτησης α.σ.


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 16, 2014, 18:50:08 pm
Μπορουμε να δημιουργουμε αντικειμενα στην main χωρις να τα βαλουμε στην αρχικη δηλωση μεταβλητων αλλα στην συνεχεια? Νομιζω πως ναι, ετσι?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: tsarachaf on November 16, 2014, 19:51:16 pm
Μπορουμε να δημιουργουμε αντικειμενα στην main χωρις να τα βαλουμε στην αρχικη δηλωση μεταβλητων αλλα στην συνεχεια? Νομιζω πως ναι, ετσι?

Ναι, μπορείς


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: airpap on November 16, 2014, 20:04:27 pm
να κανω μια ερωτηση...μπορω να χρησιμοποιησω τις συναρτησεις των circuitS και circuitP μεσα απο την circuit??
Φυσικά, με scope resolution.

δηλαδη τι εννοεις scope resolution? εγω θελω μεσα στην συναρτηση check της circuit να χρησιμοποιησω  get_tres της circuitS για να υπολογισω την ολικη αντισταση για να μην τα ξανακανω απο την αρχη!


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 16, 2014, 20:10:34 pm
circuitS.get_tres();


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 16, 2014, 20:11:45 pm
Οταν ειμαστε μεσα σε μια μεθοδο της circuitS π.χ στην chek μπορω να καλω αλλη μεθοδο της circuitS χωρις scope resolution σωστα? Δηλαδη μπορω να γραψω απλα total=get_tres(); για παραδειγμα?


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Μουργόλυκος on November 16, 2014, 20:14:37 pm
να κανω μια ερωτηση...μπορω να χρησιμοποιησω τις συναρτησεις των circuitS και circuitP μεσα απο την circuit??
Φυσικά, με scope resolution.

δηλαδη τι εννοεις scope resolution? εγω θελω μεσα στην συναρτηση check της circuit να χρησιμοποιησω  get_tres της circuitS για να υπολογισω την ολικη αντισταση για να μην τα ξανακανω απο την αρχη!
Γραψε circuitS::get_tres... για την get_tres της S και circuitP::get_tres... για την get_tres της P


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: reservoir dog on November 16, 2014, 21:14:10 pm
Το βγαζει και σε καποιον αλλον αυτο?  cannot convert `bool' to `int*' in assignment


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Napoleon on November 16, 2014, 22:36:49 pm
Το βγαζει και σε καποιον αλλον αυτο?  cannot convert `bool' to `int*' in assignment

Λογικά κάπου εχεις κανει λάθος στη δέσμευση μνήμης για τους πινακες


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: ablaoublas on November 17, 2014, 04:02:20 am
Το βγαζει και σε καποιον αλλον αυτο?  cannot convert `bool' to `int*' in assignment

Και εμένα μου το είχε βγάλει αυτό όταν έκανα τον έλεγχο με if(...=NULL) για την malloc . Ωστόσο όταν έβγαλα την if και άφησα μόνo την malloc το πρόγραμμα έκανε compile. Ξέρει κανείς πως διορθώνεται ;


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: pentium4 on November 17, 2014, 04:08:06 am
κοιμήσου !


Title: Re: [C++] Άσκηση C - 2014/2015 - Προθεσμία 16/11/2014
Post by: Apostolof on November 18, 2014, 11:46:53 am
Το βγαζει και σε καποιον αλλον αυτο?  cannot convert `bool' to `int*' in assignment

Και εμένα μου το είχε βγάλει αυτό όταν έκανα τον έλεγχο με if(...=NULL) για την malloc . Ωστόσο όταν έβγαλα την if και άφησα μόνo την malloc το πρόγραμμα έκανε compile. Ξέρει κανείς πως διορθώνεται ;

Αυτό χτυπάει:
Code:
if (p = (float**) malloc( k * sizeof(float*)) == NULL){
        cout << "Not enough memory!";
        exit (2);
    }

Αυτό όχι:
Code:
if ( (p = (float**) malloc( k * sizeof(float*))) == NULL){
        cout << "Not enough memory!";
        exit (2);
    }

Η διαφορά είναι μια παρένθεση!