Title: [C++] Εργασία G [2011-2012] Post by: teslaaaa on December 21, 2011, 19:42:51 pm Άσκηση G
Για την ηλεκτροδότηση μας πόλης το κέντρο διανομής φορτίου διαθέτει, σε κάποια δεδομένη στιγμή, μια ισχύ P. Η πόλη χωρίζεται σε περιοχές σε κάθε μια από τις οποίες έχει δοθεί ένας κωδικός. Για την ισχύ P που είναι διαθέσιμη είναι αναγκαίο να γνωρίζουμε ποίες περιοχές θα ηλεκτροδοτηθούν, ποιες θα μείνουν εκτός ηλεκτροδότησης και ποιο είναι το έλλειμμα ισχύος στην περίπτωση που η διαθέσιμη ισχύς δεν επαρκεί για την ηλεκτροδότηση όλης της πόλης. Οι περιοχές στις οποίες είναι χωρισμένη η πόλη χωρίζονται σε κατηγορίες ανάλογα με τις ανάγκες ηλεκτροδότησης τους πχ. Περιοχές όπου υπάρχουν νοσοκομεία, βιομηχανικές περιοχές, οικιστικές περιοχές κλπ. Για κάθε κατηγορία ορίζεται μια προτεραιότητα στην ηλεκτροδότηση ενώ για περιοχές που ανήκουν στην ίδια κατηγορία η σειρά ηλεκτροδότησής τους ορίζεται με κριτήρια που αφορούν τον χαρακτήρα της περιοχής. Να γραφεί το λογισμικό στο οποίο να ορίζεται η συνάρτηση distribution(…) η οποία να δέχεται, ως ορίσματα, έναν πίνακα από αντικείμενα που υλοποιούν τις περιοχές στις οποίες έχει χωριστεί η πόλη και την διαθέσιμη ισχύ P. Η συνάρτηση να εκτυπώνει τους κωδικούς των περιοχών που θα ηλεκτροδοτηθούν και στην περίπτωση που η ισχύς δεν επαρκεί να τυπώνει, κάτω από σχετικό μήνυμα και τους κωδικούς των περιοχών που δε θα ηλεκτροδοτηθούν καθώς και το αντίστοιχο έλλειμμα ισχύος. Η συνάρτηση main του προγράμματος να διαβάζει τη διαθέσιμη ισχύ P και για κάθε τύπο περιοχής τον αριθμό των περιοχών που ανήκουν σε αυτόν τον τύπο. Το πρόγραμμα, αφού δημιουργήσει τα αντικείμενα που υλοποιούν τις περιοχές, να καλεί, μια φορά, τη συνάρτηση distribution() για να εκτυπώσει την κατάσταση ηλεκτροδότησης της πόλης για τη διαθέσιμη ισχύ P. Το λογισμικό, συμπεριλαμβανομένης και της συνάρτησης main, να είναι ανεξάρτητο από τον αριθμό και τον τύπο των περιοχών που υπάρχουν στην πόλη. Ως εφαρμογή να θεωρηθεί ότι για την πόλη έχουν οριστεί δύο τύποι περιοχών. Ο τύπος hospital και ο τύπος household. Ο τύπος hospital υλοποιεί περιοχές όπου υπάρχουν νοσοκομεία και ο τύπος household περιοχές όπου υπάρχουν μόνον κατοικίες. Για τα αντικείμενα του τύπου hospital να διαβάζονται: α) Ο κωδικός της περιοχής. β) Ένας αριθμός που να καθορίζει την προτεραιότητα ηλεκτροδότησης. γ) Ο αριθμός των κρεβατιών που υπάρχουν στο σύνολο των νοσοκομείων της περιοχής. δ) Μία μέγιστη τιμή για την ανά κρεβάτι νοσοκομείου απαιτούμενη ισχύ. ε) Ο αριθμός των νοικοκυριών που υπάρχουν στην περιοχή. ζ) Μια μέγιστη απαιτούμενη ισχύ ανά νοικοκυριό. Σε περίπτωση που υπάρχουν περισσότερα από ένα αντικείμενα της ίδιας κλάσης προηγείται η περιοχή με τα περισσότερα κρεβάτια νοσοκομείου. Για τα αντικείμενα του τύπου household να διαβάζονται: α) Ο κωδικός της περιοχής. β) Ένας αριθμός που να καθορίζει την προτεραιότητα ηλεκτροδότησης. γ) Ο αριθμός των νοικοκυριών που υπάρχουν στην περιοχή. δ) Μια μέγιστη απαιτούμενη ισχύ ανά νοικοκυριό. Σε περίπτωση που υπάρχουν περισσότερα από ένα αντικείμενα της ίδιας κλάσης προηγείται η περιοχή με τα περισσότερα νοικοκυριά. (Hμ/νία λήξης δηλώσεων: 15/01/2012) Καλά Χριστούγεννα :D Title: Re: [C++] Εργασία G [2011-2012] Post by: sok on January 10, 2012, 12:27:31 pm Παιδιά ξέρει κανείς με ποιό τρόπο θα γεμίσουμε τον πίνακα( Households kai Hospitals ) με στοιχεία διαφορετικών τύπων;Ευχαριστώ.
Title: Re: [C++] Εργασία G [2011-2012] Post by: Perasmus on January 11, 2012, 19:14:20 pm "Το λογισμικό, συμπεριλαμβανομένης και της συνάρτησης main, να είναι ανεξάρτητο από τον αριθμό και τον τύπο των περιοχών που υπάρχουν στην πόλη."
Αυτο σημαινει οτι οι κλασεις household και hospital δεν πρεπει να οριζονται μεσα στην main?? Εννοω ναι μεν να οριζονται στο προγραμμα αλλα οχι μεσα στην main ως π.χ household house ? Title: Re: [C++] Εργασία G [2011-2012] Post by: pepper ann on January 12, 2012, 21:44:06 pm καμιά ιδέα για το που μπορώ να βρω πληροφορίες για την ανεξαρτησία λογισμικού;
Title: Re: [C++] Εργασία G [2011-2012] Post by: Ναταλία on January 12, 2012, 21:44:26 pm "Το λογισμικό, συμπεριλαμβανομένης και της συνάρτησης main, να είναι ανεξάρτητο από τον αριθμό και τον τύπο των περιοχών που υπάρχουν στην πόλη." Αυτο σημαινει οτι οι κλασεις household και hospital δεν πρεπει να οριζονται μεσα στην main?? Εννοω ναι μεν να οριζονται στο προγραμμα αλλα οχι μεσα στην main ως π.χ household house ? μαλλον ναι.. οποτε λογικα πρεπει να κανεις μια abstract κλαση με virtual συναρτησεις. μπορει να λεω και βλακειες Title: Re: [C++] Εργασία G [2011-2012] Post by: Δον on January 13, 2012, 12:31:40 pm Aν η hospital είναι παραγόμενη της Household δεν θα υπάρχει θέμα ε?
Title: Re: [C++] Εργασία G [2011-2012] Post by: pepper ann on January 13, 2012, 13:44:01 pm Aν η hospital είναι παραγόμενη της Household δεν θα υπάρχει θέμα ε? υπάρχει.Title: Re: [C++] Εργασία G [2011-2012] Post by: Δον on January 14, 2012, 13:11:00 pm Tι θέμα?? Αφού η hospital είναι ουσιαστικά μία household με 3 παραπάνω στοιχεία. Άρα αν την κάνουμε public παραγόμενη τότε γλυτώνουμε πολλές σειρές!
Title: Re: [C++] Εργασία G [2011-2012] Post by: pepper ann on January 14, 2012, 13:46:53 pm Tι θέμα?? Αφού η hospital είναι ουσιαστικά μία household με 3 παραπάνω στοιχεία. Άρα αν την κάνουμε public παραγόμενη τότε γλυτώνουμε πολλές σειρές! δεν ξερω αν θα σου δημιουργήσει πρόβλημα στο συγκεκριμένο πρόγραμμα.Αλλά σκέψου να είχες και άλλους τύπους.Μια βιομηχανική περιοχή,ή μια περιοχή με εμπορικά μαγαζιά,ή..ή... Δεν μου ακούγεται σωστό από σχεδιαστική άποψη. Μπορεί όλοι αυτοι οι επιπλέον διαφορετικοί τύποι να είχαν στοιχεία που δεν έχει ένα household. (και ποια είναι τα 3 παραπάνω στοιχεια; :???:) Title: Re: [C++] Εργασία G [2011-2012] Post by: Ναταλία on January 14, 2012, 13:59:16 pm να ρωτησω και γω κατι..
στο circuit.cpp που ανεβασαν στο ετημμυ, εχουν δηλωσει μια static μεταβλητη n στη βασικη κλαση και την τιμη της την αλλαζουν στις παραγομενες κλασεις. επειδη ακριβως ειναι παραγομενες μπορουν να αλλαξουν την τιμη της μεταβλητης της βασικης κλασης? η βασικη κλαση: class circuit{ protected: static circuit **M; static int n; public: circuit(){}; virtual float ret_power(float V)=0; virtual float ret_inten(float V)=0; static circuit **get_M(){return M;} static int get_n(){return n;} }; μπλα μπλα η παραγομενη κλαση: class circuit_1:public circuit{ float power,resistance[3]; public: circuit_1(); float ret_power(float V); float ret_inten(float V); }cir_1; η αρχικων συνθηκων: circuit_1::circuit_1() { int i; cout<<"\n Kyklwma 3 antistaseis se seira\n"; for(i=0;i<3;i++){ cout<<"Eisagete tin timi tis yp' ari8mon "<<i+1<<" antistasis = ? "; cin>>resistance; } n++; if(n==1) M=(circuit **)malloc(n*sizeof(circuit *)); else M=(circuit **)realloc(M,n*sizeof(circuit *)); M[n-1]=this; } Title: Re: [C++] Εργασία G [2011-2012] Post by: pepper ann on January 14, 2012, 14:17:32 pm οι παραγόμενες έχουν πρόσβαση στα στοιχεία της βασικής (ανάλογα με το αν είναι Protected/public κτλ)
Title: Re: [C++] Εργασία G [2011-2012] Post by: mark333 on January 14, 2012, 14:59:02 pm Η distribution λέει να δέχεται ως όρισμα έναν πίνακα και να καλείται μία μόνο φορά. Πως θα γίνει να βάλουμε στοιχεία δύο διαφορετικών τύπων σε ένα πίνακα?
Title: Re: [C++] Εργασία G [2011-2012] Post by: alexis2044 on January 14, 2012, 15:29:11 pm Θα μεγαλώνεις τον πίνακα κάθε φορά που καλέιται η συνάρτηση αρχικών συνθηκών του κάθε τύπου με realloc και θα καταχωρείς σε αυτόν τη διεύθυνση του αντικειμένου με this.
Title: Re: [C++] Εργασία G [2011-2012] Post by: Ναταλία on January 14, 2012, 16:00:10 pm οι παραγόμενες έχουν πρόσβαση στα στοιχεία της βασικής (ανάλογα με το αν είναι Protected/public κτλ) ααα οκ! thaaanks! :D Title: Re: [C++] Εργασία G [2011-2012] Post by: Infinite Loop on January 14, 2012, 16:14:25 pm Η distribution λέει να δέχεται ως όρισμα έναν πίνακα και να καλείται μία μόνο φορά. Πως θα γίνει να βάλουμε στοιχεία δύο διαφορετικών τύπων σε ένα πίνακα? Δεν θα βαλεις τα ιδια τα αντικειμενα στον πινακα, αλλα (hint hint) pointers σε base class. Θα μεγαλώνεις τον πίνακα κάθε φορά που καλέιται η συνάρτηση αρχικών συνθηκών του κάθε τύπου με realloc και θα καταχωρείς σε αυτόν τη διεύθυνση του αντικειμένου με this. Η realloc() ειναι συναρτηση της C. Οχι οτι τυπικα δεν μπορεις να την χρησιμοποιησεις, αλλα στην C++ δεν δουλευεις με αυτη. C != C++. Title: Re: [C++] Εργασία G [2011-2012] Post by: giapapva on January 14, 2012, 22:07:32 pm Έχω 2 ερωτήσεις: 1ον Εφόσον θα πρέπει να διαβαζει αριθμο προτεραιότητας που να καθορίζει την ηλεκτροδότηση γιατί ύστερα λέει πως αν υπάρχουν παραπάνω από ένα αντικείμενο της ίδιας κλάσης να επιλέγεται με βάση τα κρεββάτια για παράδειγμα στην πρώτη κλάση?? (Μήπως εννοει αν τα αντικείμενα έχουν τον ίδιο αριθμό προτεραιότητας?-αλλιώς δεν βγάζει νόημα)
2ον: Όταν μας ζητάει να δώσουμε τον αριθμό των περιοχών (δηλ. των αντικειμένων) μέσα στη main πως γίνεται να κάνουμε ανεξαρτησία λογισμικού σύμφωνα με όσα μας είπε ο Συμεωνίδης στο τελευταίο μάθημα? Αφού στους contructors των αντικειμένων πρέπει να αρχικοποιήσουμε τα αντικείμενα... Μήπως θα έπρεπε να ζητάει αριθμό περιοχών μέσα στους constructors?? Title: Re: [C++] Εργασία G [2011-2012] Post by: Infinite Loop on January 14, 2012, 22:30:34 pm Έχω 2 ερωτήσεις: 1ον Εφόσον θα πρέπει να διαβαζει αριθμο προτεραιότητας που να καθορίζει την ηλεκτροδότηση γιατί ύστερα λέει πως αν υπάρχουν παραπάνω από ένα αντικείμενο της ίδιας κλάσης να επιλέγεται με βάση τα κρεββάτια για παράδειγμα στην πρώτη κλάση?? (Μήπως εννοει αν τα αντικείμενα έχουν τον ίδιο αριθμό προτεραιότητας?-αλλιώς δεν βγάζει νόημα) Κι εγω δεν το επιασα στην πρωτη αναγνωση της ασκησης, αλλα: Quote Για κάθε κατηγορία ορίζεται μια προτεραιότητα στην ηλεκτροδότηση ενώ για περιοχές που ανήκουν στην ίδια κατηγορία η σειρά ηλεκτροδότησής τους ορίζεται με κριτήρια που αφορούν τον χαρακτήρα της περιοχής. 2ον: Όταν μας ζητάει να δώσουμε τον αριθμό των περιοχών (δηλ. των αντικειμένων) μέσα στη main πως γίνεται να κάνουμε ανεξαρτησία λογισμικού σύμφωνα με όσα μας είπε ο Συμεωνίδης στο τελευταίο μάθημα? Αφού στους contructors των αντικειμένων πρέπει να αρχικοποιήσουμε τα αντικείμενα... Μήπως θα έπρεπε να ζητάει αριθμό περιοχών μέσα στους constructors?? Δεν σε πιανω... Οι ctors θα κληθουν τοσες φορες οσες και τα αντικειμενα σου... Πώς θα ζητησεις τον αριθμο περιοχων εκει μεσα; Title: Re: [C++] Εργασία G [2011-2012] Post by: giapapva on January 14, 2012, 22:45:29 pm Έχω 2 ερωτήσεις: 1ον Εφόσον θα πρέπει να διαβαζει αριθμο προτεραιότητας που να καθορίζει την ηλεκτροδότηση γιατί ύστερα λέει πως αν υπάρχουν παραπάνω από ένα αντικείμενο της ίδιας κλάσης να επιλέγεται με βάση τα κρεββάτια για παράδειγμα στην πρώτη κλάση?? (Μήπως εννοει αν τα αντικείμενα έχουν τον ίδιο αριθμό προτεραιότητας?-αλλιώς δεν βγάζει νόημα) Κι εγω δεν το επιασα στην πρωτη αναγνωση της ασκησης, αλλα: Quote Για κάθε κατηγορία ορίζεται μια προτεραιότητα στην ηλεκτροδότηση ενώ για περιοχές που ανήκουν στην ίδια κατηγορία η σειρά ηλεκτροδότησής τους ορίζεται με κριτήρια που αφορούν τον χαρακτήρα της περιοχής. 2ον: Όταν μας ζητάει να δώσουμε τον αριθμό των περιοχών (δηλ. των αντικειμένων) μέσα στη main πως γίνεται να κάνουμε ανεξαρτησία λογισμικού σύμφωνα με όσα μας είπε ο Συμεωνίδης στο τελευταίο μάθημα? Αφού στους contructors των αντικειμένων πρέπει να αρχικοποιήσουμε τα αντικείμενα... Μήπως θα έπρεπε να ζητάει αριθμό περιοχών μέσα στους constructors?? Δεν σε πιανω... Οι ctors θα κληθουν τοσες φορες οσες και τα αντικειμενα σου... Πώς θα ζητησεις τον αριθμο περιοχων εκει μεσα; Ναι σόρρυ λάθος έκανα άλλο ήθελα να πω... ήθελα να πω πως τα αντικείμενα στην ασκηση με τα κυκλώματα αρχικοποιούνται μετά την κλάση αμέσως. Αυτός είναι και ο σκοπός ώστε να μην χρειάζεται να πειράζεις την main ωστε να πετύχεις ανεξαρτησια λογισμικού. Τώρα η κάθε περιοχή αντιστοιχεί σε ένα αντικείμενο άρα λογικά θα υπονοεί ότι τα αντικείμενα των παραγόμενων κλάσεων δεν θα αρχικοποιούνται αμέσως έξω από την κλάση αλλά μέσα στη main σωστά? Άυτο όμως αμέσως αναιρεί την ανεξαρτησία λογισμικού αφού θα πρέπει να ζητήσουμε στη main των αριθμό των αντικειμένων για τις 2(στην εφαρμογή μας) παραγόμενες κλάσεις... :???: Title: Re: [C++] Εργασία G [2011-2012] Post by: Ναταλία on January 14, 2012, 22:59:00 pm μπορεις να κανεις μια for και μια συναρτηση get_name για να ρωτησεις ετσι ποσες περιοχες υπαρχουν σε καθε κατηγορια!
οποτε δεν θα χρειαστει να ορισεις οτι ειναι 2. Title: Re: [C++] Εργασία G [2011-2012] Post by: Infinite Loop on January 14, 2012, 22:59:53 pm Έχω 2 ερωτήσεις: 1ον Εφόσον θα πρέπει να διαβαζει αριθμο προτεραιότητας που να καθορίζει την ηλεκτροδότηση γιατί ύστερα λέει πως αν υπάρχουν παραπάνω από ένα αντικείμενο της ίδιας κλάσης να επιλέγεται με βάση τα κρεββάτια για παράδειγμα στην πρώτη κλάση?? (Μήπως εννοει αν τα αντικείμενα έχουν τον ίδιο αριθμό προτεραιότητας?-αλλιώς δεν βγάζει νόημα) Κι εγω δεν το επιασα στην πρωτη αναγνωση της ασκησης, αλλα: Quote Για κάθε κατηγορία ορίζεται μια προτεραιότητα στην ηλεκτροδότηση ενώ για περιοχές που ανήκουν στην ίδια κατηγορία η σειρά ηλεκτροδότησής τους ορίζεται με κριτήρια που αφορούν τον χαρακτήρα της περιοχής. 2ον: Όταν μας ζητάει να δώσουμε τον αριθμό των περιοχών (δηλ. των αντικειμένων) μέσα στη main πως γίνεται να κάνουμε ανεξαρτησία λογισμικού σύμφωνα με όσα μας είπε ο Συμεωνίδης στο τελευταίο μάθημα? Αφού στους contructors των αντικειμένων πρέπει να αρχικοποιήσουμε τα αντικείμενα... Μήπως θα έπρεπε να ζητάει αριθμό περιοχών μέσα στους constructors?? Δεν σε πιανω... Οι ctors θα κληθουν τοσες φορες οσες και τα αντικειμενα σου... Πώς θα ζητησεις τον αριθμο περιοχων εκει μεσα; Ναι σόρρυ λάθος έκανα άλλο ήθελα να πω... ήθελα να πω πως τα αντικείμενα στην ασκηση με τα κυκλώματα αρχικοποιούνται μετά την κλάση αμέσως. Αυτός είναι και ο σκοπός ώστε να μην χρειάζεται να πειράζεις την main ωστε να πετύχεις ανεξαρτησια λογισμικού. Τώρα η κάθε περιοχή αντιστοιχεί σε ένα αντικείμενο άρα λογικά θα υπονοεί ότι τα αντικείμενα των παραγόμενων κλάσεων δεν θα αρχικοποιούνται αμέσως έξω από την κλάση αλλά μέσα στη main σωστά? Άυτο όμως αμέσως αναιρεί την ανεξαρτησία λογισμικού αφού θα πρέπει να ζητήσουμε στη main των αριθμό των αντικειμένων για τις 2(στην εφαρμογή μας) παραγόμενες κλάσεις... :???: Η αρχικοποιηση ενος αντικειμενου γινεται με τον ctor... Μηπως εννοεις την δημιουργια; Παντως και οι τυποι περιοχων και οι ιδιες οι περιοχες θα ειναι αντικειμενα... Δηλαδη θα δουλευεις συνολικα με (πληθος περιοχων) + (πληθος τυπων περιοχων) αντικειμενα. Και οχι, δεν την αναιρει. Στην main() απλα θα κανεις μια λουπα που θα περναει καθε τυπο περιοχης που εχει αυτη η υλοποιηση του προγραμματος (στην προκειμενη περιπτωση, 2) και θα ζηταει ενα πληθος για να φτιαξει τοσα αντικειμενα (περιοχες δηλαδη) εκεινου του τυπου... Και θα μου πεις "και πού θα ξερει η main() ποσους τυπους περιοχων εχει αυτη η υλοποιηση;" - ε, τα αντικειμενα που υλοποιουν τους τυπους περιοχων θα τα κανεις (ω, θεοι... ::)) global (ναι, ναι, αυτο που τοσο αγαπαει ο Κορτεσης...) . Title: Re: [C++] Εργασία G [2011-2012] Post by: giapapva on January 14, 2012, 23:09:19 pm Οκ σας ευχαριστώ πολύ για τη βοήθεια! :)
Title: Re: [C++] Εργασία G [2011-2012] Post by: alexis2044 on January 15, 2012, 00:06:20 am Η distribution λέει να δέχεται ως όρισμα έναν πίνακα και να καλείται μία μόνο φορά. Πως θα γίνει να βάλουμε στοιχεία δύο διαφορετικών τύπων σε ένα πίνακα? Δεν θα βαλεις τα ιδια τα αντικειμενα στον πινακα, αλλα (hint hint) pointers σε base class. Θα μεγαλώνεις τον πίνακα κάθε φορά που καλέιται η συνάρτηση αρχικών συνθηκών του κάθε τύπου με realloc και θα καταχωρείς σε αυτόν τη διεύθυνση του αντικειμένου με this. Η realloc() ειναι συναρτηση της C. Οχι οτι τυπικα δεν μπορεις να την χρησιμοποιησεις, αλλα στην C++ δεν δουλευεις με αυτη. C != C++. Εσύ πάρε τη new, φτιάξε έναν πίνακα temp, θέσε τον παλιό πίνακα στο temp, φτιάξε έναν νέο πίνακα μεγαλώνοντας την διάσταση με new και θέσε τον temp στον νέο. Θα έχεις κάνει το ίδιο με ότι θα είχε κάνει η realloc με μια γραμμή. Σύμφωνοι η realloc δεν ανήκει στη C++ αλλά και πάλι δεν υπάρχει αντίστοιχη συνάρτηση στη C++ παρα μόνο η προαναφερθείσα διαδικασία. Το αποτέλεσμα είναι το ίδιο. Title: Re: [C++] Εργασία G [2011-2012] Post by: alexis2044 on January 15, 2012, 00:16:33 am Έχω 2 ερωτήσεις: 1ον Εφόσον θα πρέπει να διαβαζει αριθμο προτεραιότητας που να καθορίζει την ηλεκτροδότηση γιατί ύστερα λέει πως αν υπάρχουν παραπάνω από ένα αντικείμενο της ίδιας κλάσης να επιλέγεται με βάση τα κρεββάτια για παράδειγμα στην πρώτη κλάση?? (Μήπως εννοει αν τα αντικείμενα έχουν τον ίδιο αριθμό προτεραιότητας?-αλλιώς δεν βγάζει νόημα) Κι εγω δεν το επιασα στην πρωτη αναγνωση της ασκησης, αλλα: Quote Για κάθε κατηγορία ορίζεται μια προτεραιότητα στην ηλεκτροδότηση ενώ για περιοχές που ανήκουν στην ίδια κατηγορία η σειρά ηλεκτροδότησής τους ορίζεται με κριτήρια που αφορούν τον χαρακτήρα της περιοχής. 2ον: Όταν μας ζητάει να δώσουμε τον αριθμό των περιοχών (δηλ. των αντικειμένων) μέσα στη main πως γίνεται να κάνουμε ανεξαρτησία λογισμικού σύμφωνα με όσα μας είπε ο Συμεωνίδης στο τελευταίο μάθημα? Αφού στους contructors των αντικειμένων πρέπει να αρχικοποιήσουμε τα αντικείμενα... Μήπως θα έπρεπε να ζητάει αριθμό περιοχών μέσα στους constructors?? Δεν σε πιανω... Οι ctors θα κληθουν τοσες φορες οσες και τα αντικειμενα σου... Πώς θα ζητησεις τον αριθμο περιοχων εκει μεσα; Ναι σόρρυ λάθος έκανα άλλο ήθελα να πω... ήθελα να πω πως τα αντικείμενα στην ασκηση με τα κυκλώματα αρχικοποιούνται μετά την κλάση αμέσως. Αυτός είναι και ο σκοπός ώστε να μην χρειάζεται να πειράζεις την main ωστε να πετύχεις ανεξαρτησια λογισμικού. Τώρα η κάθε περιοχή αντιστοιχεί σε ένα αντικείμενο άρα λογικά θα υπονοεί ότι τα αντικείμενα των παραγόμενων κλάσεων δεν θα αρχικοποιούνται αμέσως έξω από την κλάση αλλά μέσα στη main σωστά? Άυτο όμως αμέσως αναιρεί την ανεξαρτησία λογισμικού αφού θα πρέπει να ζητήσουμε στη main των αριθμό των αντικειμένων για τις 2(στην εφαρμογή μας) παραγόμενες κλάσεις... :???: Η αρχικοποιηση ενος αντικειμενου γινεται με τον ctor... Μηπως εννοεις την δημιουργια; Παντως και οι τυποι περιοχων και οι ιδιες οι περιοχες θα ειναι αντικειμενα... Δηλαδη θα δουλευεις συνολικα με (πληθος περιοχων) + (πληθος τυπων περιοχων) αντικειμενα. Και οχι, δεν την αναιρει. Στην main() απλα θα κανεις μια λουπα που θα περναει καθε τυπο περιοχης που εχει αυτη η υλοποιηση του προγραμματος (στην προκειμενη περιπτωση, 2) και θα ζηταει ενα πληθος για να φτιαξει τοσα αντικειμενα (περιοχες δηλαδη) εκεινου του τυπου... Και θα μου πεις "και πού θα ξερει η main() ποσους τυπους περιοχων εχει αυτη η υλοποιηση;" - ε, τα αντικειμενα που υλοποιουν τους τυπους περιοχων θα τα κανεις (ω, θεοι... ::)) global (ναι, ναι, αυτο που τοσο αγαπαει ο Κορτεσης...) . Στη main το μόνο που θα κάνεις είναι να ζητήσεις τον στατικό πίνακα διευθύνσεων αντικειμένων της αρχικής κλάσης εκ της οποίας παράγονται οι hospital και household (όπως στο παράδειγμα με το circuit). Κατόπιν θα θέτεις τον πίνακα στην distribution και θα κάνει τα μαγικά της. Ένα κενό της άσκησης είναι πως θα βλέπει η distribution πόσες διευθύνσεις αντικείμενων έχει ο πίνακας... Εγώ θεώρησα 2 μιας και πρόκειται περί εφαρμογής (και γιατί ζητά μόνο 2 ορίσματα η εκφώνηση στην distribution- πίνακας και διαθέσιμη ισχύ) , αλλά κανονικά θέλει να μπαίνει και ο αριθμός αυτός στην distribution Title: Re: [C++] Εργασία G [2011-2012] Post by: Infinite Loop on January 15, 2012, 00:56:42 am Η distribution λέει να δέχεται ως όρισμα έναν πίνακα και να καλείται μία μόνο φορά. Πως θα γίνει να βάλουμε στοιχεία δύο διαφορετικών τύπων σε ένα πίνακα? Δεν θα βαλεις τα ιδια τα αντικειμενα στον πινακα, αλλα (hint hint) pointers σε base class. Θα μεγαλώνεις τον πίνακα κάθε φορά που καλέιται η συνάρτηση αρχικών συνθηκών του κάθε τύπου με realloc και θα καταχωρείς σε αυτόν τη διεύθυνση του αντικειμένου με this. Η realloc() ειναι συναρτηση της C. Οχι οτι τυπικα δεν μπορεις να την χρησιμοποιησεις, αλλα στην C++ δεν δουλευεις με αυτη. C != C++. Εσύ πάρε τη new, φτιάξε έναν πίνακα temp, θέσε τον παλιό πίνακα στο temp, φτιάξε έναν νέο πίνακα μεγαλώνοντας την διάσταση με new και θέσε τον temp στον νέο. Θα έχεις κάνει το ίδιο με ότι θα είχε κάνει η realloc με μια γραμμή. Σύμφωνοι η realloc δεν ανήκει στη C++ αλλά και πάλι δεν υπάρχει αντίστοιχη συνάρτηση στη C++ παρα μόνο η προαναφερθείσα διαδικασία. Το αποτέλεσμα είναι το ίδιο. Not quite - οι περιοχες μνημης που δεσμευονται με την malloc()/realloc() εχουν διαφορετικη μορφη μεσα στο συστημα απο αυτες της new/new[], και αρα ειναι ασυμβατες μεταξυ τους. Επισης οι μεν δεν καλουν ctors/dtors, πραγμα που τις κανει αχρηστες για OOP. Επειδη λοιπον σε καποιο σημειο θα χρειαστει να δημιουργησεις εναν πινακα αντικειμενων, θα πρεπει να το κανεις με new[], και για consistency και μονο απορριπτεις τις αλλες. Α, και οι μεν δεν ριχνουν exceptions - και καλη σου τυχη αν ειναι να κοιτας καθε φορα αν η malloc() επεστρεψε NULL και να προσπαθεις να κανεις χειροκινητο exception handling. Και μια χαρα "αντιστοιχη συναρτηση" υπαρχει στην C++. Οι vectors για αυτον τον λογο υπαρχουν. Και ακομα και να μην χρησιμοποιησω vectors, προτιμω να γραψω 3-4 γραμμες παραπανω για τους λογους που προαναφερθηκαν. Και σορρυ αν φανηκε λιγο επιθετικη η απαντηση μου - ειλικρινα δεν ειχα τετοια προθεση. Title: Re: [C++] Εργασία G [2011-2012] Post by: Infinite Loop on January 15, 2012, 01:01:22 am Έχω 2 ερωτήσεις: 1ον Εφόσον θα πρέπει να διαβαζει αριθμο προτεραιότητας που να καθορίζει την ηλεκτροδότηση γιατί ύστερα λέει πως αν υπάρχουν παραπάνω από ένα αντικείμενο της ίδιας κλάσης να επιλέγεται με βάση τα κρεββάτια για παράδειγμα στην πρώτη κλάση?? (Μήπως εννοει αν τα αντικείμενα έχουν τον ίδιο αριθμό προτεραιότητας?-αλλιώς δεν βγάζει νόημα) Κι εγω δεν το επιασα στην πρωτη αναγνωση της ασκησης, αλλα: Quote Για κάθε κατηγορία ορίζεται μια προτεραιότητα στην ηλεκτροδότηση ενώ για περιοχές που ανήκουν στην ίδια κατηγορία η σειρά ηλεκτροδότησής τους ορίζεται με κριτήρια που αφορούν τον χαρακτήρα της περιοχής. 2ον: Όταν μας ζητάει να δώσουμε τον αριθμό των περιοχών (δηλ. των αντικειμένων) μέσα στη main πως γίνεται να κάνουμε ανεξαρτησία λογισμικού σύμφωνα με όσα μας είπε ο Συμεωνίδης στο τελευταίο μάθημα? Αφού στους contructors των αντικειμένων πρέπει να αρχικοποιήσουμε τα αντικείμενα... Μήπως θα έπρεπε να ζητάει αριθμό περιοχών μέσα στους constructors?? Δεν σε πιανω... Οι ctors θα κληθουν τοσες φορες οσες και τα αντικειμενα σου... Πώς θα ζητησεις τον αριθμο περιοχων εκει μεσα; Ναι σόρρυ λάθος έκανα άλλο ήθελα να πω... ήθελα να πω πως τα αντικείμενα στην ασκηση με τα κυκλώματα αρχικοποιούνται μετά την κλάση αμέσως. Αυτός είναι και ο σκοπός ώστε να μην χρειάζεται να πειράζεις την main ωστε να πετύχεις ανεξαρτησια λογισμικού. Τώρα η κάθε περιοχή αντιστοιχεί σε ένα αντικείμενο άρα λογικά θα υπονοεί ότι τα αντικείμενα των παραγόμενων κλάσεων δεν θα αρχικοποιούνται αμέσως έξω από την κλάση αλλά μέσα στη main σωστά? Άυτο όμως αμέσως αναιρεί την ανεξαρτησία λογισμικού αφού θα πρέπει να ζητήσουμε στη main των αριθμό των αντικειμένων για τις 2(στην εφαρμογή μας) παραγόμενες κλάσεις... :???: Η αρχικοποιηση ενος αντικειμενου γινεται με τον ctor... Μηπως εννοεις την δημιουργια; Παντως και οι τυποι περιοχων και οι ιδιες οι περιοχες θα ειναι αντικειμενα... Δηλαδη θα δουλευεις συνολικα με (πληθος περιοχων) + (πληθος τυπων περιοχων) αντικειμενα. Και οχι, δεν την αναιρει. Στην main() απλα θα κανεις μια λουπα που θα περναει καθε τυπο περιοχης που εχει αυτη η υλοποιηση του προγραμματος (στην προκειμενη περιπτωση, 2) και θα ζηταει ενα πληθος για να φτιαξει τοσα αντικειμενα (περιοχες δηλαδη) εκεινου του τυπου... Και θα μου πεις "και πού θα ξερει η main() ποσους τυπους περιοχων εχει αυτη η υλοποιηση;" - ε, τα αντικειμενα που υλοποιουν τους τυπους περιοχων θα τα κανεις (ω, θεοι... ::)) global (ναι, ναι, αυτο που τοσο αγαπαει ο Κορτεσης...) . Στη main το μόνο που θα κάνεις είναι να ζητήσεις τον στατικό πίνακα διευθύνσεων αντικειμένων της αρχικής κλάσης εκ της οποίας παράγονται οι hospital και household (όπως στο παράδειγμα με το circuit). Κατόπιν θα θέτεις τον πίνακα στην distribution και θα κάνει τα μαγικά της. Ένα κενό της άσκησης είναι πως θα βλέπει η distribution πόσες διευθύνσεις αντικείμενων έχει ο πίνακας... Εγώ θεώρησα 2 μιας και πρόκειται περί εφαρμογής (και γιατί ζητά μόνο 2 ορίσματα η εκφώνηση στην distribution- πίνακας και διαθέσιμη ισχύ) , αλλά κανονικά θέλει να μπαίνει και ο αριθμός αυτός στην distribution Παιζει να στην κοψει τοτε, γιατι δεν ειναι "ανεξαρτητη" η distribution()... Kαλυτερα προσθεσε αλλη μια παραμετρο στην συναρτηση που να δινει το μεγεθος του πινακα, για νασαι σιγουρος. Αλλωστε κανονικα θα πρεπει να αποφευγονται οι σκετοι αριθμοι. Title: Re: [C++] Εργασία G [2011-2012] Post by: Κάρβουνο on January 15, 2012, 01:01:47 am Και μια χαρα "αντιστοιχη συναρτηση" υπαρχει στην C++. Οι vectors για αυτον τον λογο υπαρχουν. Που ποτέ δεν κατάλαβα γιατί τους αποφεύγει ο Κορτέσης όπως ο διάολος το λιβάνι. Title: Re: [C++] Εργασία G [2011-2012] Post by: Infinite Loop on January 15, 2012, 01:07:30 am Και μια χαρα "αντιστοιχη συναρτηση" υπαρχει στην C++. Οι vectors για αυτον τον λογο υπαρχουν. Που ποτέ δεν κατάλαβα γιατί τους αποφεύγει ο Κορτέσης όπως ο διάολος το λιβάνι. 1η περιπτωση: [sarcasm]Μα ειναι τοοοσο δυσχρηστοι! Μπορει να μπερδευτουμε![/sarcasm] 2η περιπτωση: Arrays της C: αυτην ξερετε, αυτην εμπιστευεστε. Ασχετα αν ειναι εντελως αχρηστοι για οποιοδηποτε σοβαρο προγραμμα C++. Title: Re: [C++] Εργασία G [2011-2012] Post by: nikovaka on January 15, 2012, 02:48:10 am παιδιά μια ερώτηση για την άσκηση circuit που ουσιαστικά είναι σαν την εργασία G.Πως γίνεται οι constructors των παραγόμενων συναρτήσεων circuit_1 και circuit_2 να επεξεργάζονται τις protected μεταβλητές της βασικής κλάσης αφού την κληρονομούν με τρόπο public και όχι protected?
Title: Re: [C++] Εργασία G [2011-2012] Post by: Ναταλία on January 15, 2012, 14:24:54 pm παιδιά μια ερώτηση για την άσκηση circuit που ουσιαστικά είναι σαν την εργασία G.Πως γίνεται οι constructors των παραγόμενων συναρτήσεων circuit_1 και circuit_2 να επεξεργάζονται τις protected μεταβλητές της βασικής κλάσης αφού την κληρονομούν με τρόπο public και όχι protected? και γω την ειχα αυτη την απορια αλλα υπεθεσα οτι θα μπορουν να μεταβαλουν τις μεταβλητες της βασικης.. Title: Re: [C++] Εργασία G [2011-2012] Post by: tsakos on January 15, 2012, 15:05:18 pm Οποτε χρησιμοποιω την else if ο compiler μου βγαζει το παρακατω μηνυμα..
expected ';' before 'else' Δεν μπορω να καταλαβω το γιατι αφου καθε φορα βαζω αυτο που ζηταει και παλι χτυπαει!!! Μονο αυτο χρειαζομαι για να τρεξει..Καμια ιδεα? Καλη δυναμη για την εξεταστικη σε ολους Σε dev γραφω Title: Re: [C++] Εργασία G [2011-2012] Post by: tsakos on January 15, 2012, 15:19:24 pm Οποτε χρησιμοποιω την else if ο compiler μου βγαζει το παρακατω μηνυμα.. Το εσβησα και δεν υπαρχει προβλημα...οτι να ναι!! :D :D :D :Dexpected ';' before 'else' Δεν μπορω να καταλαβω το γιατι αφου καθε φορα βαζω αυτο που ζηταει και παλι χτυπαει!!! Μονο αυτο χρειαζομαι για να τρεξει..Καμια ιδεα? Καλη δυναμη για την εξεταστικη σε ολους Σε dev γραφω Title: Re: [C++] Εργασία G [2011-2012] Post by: ValmadiaN on January 15, 2012, 15:56:58 pm παιδιά μια ερώτηση για την άσκηση circuit που ουσιαστικά είναι σαν την εργασία G.Πως γίνεται οι constructors των παραγόμενων συναρτήσεων circuit_1 και circuit_2 να επεξεργάζονται τις protected μεταβλητές της βασικής κλάσης αφού την κληρονομούν με τρόπο public και όχι protected? Όταν μια κλάση κληρονομεί με τρόπο public μια άλλη κλάση , τότε τα protected στοιχεία της βασικής κλάσης γίνονται protected στοιχεία της παραγόμενης.Έτσι οι constructors των παραγόμενων μπορούν να τα επεξεργαστούν. @tsakos ψάξε μήπως ξεχνάς κάποιο ";" σε κάποια εντολή μέσα στην if που προηγείται της else if, ή μήπως ξεχνάς κάποιο "}" για να κλείσεις την if .Πολλές φορές (στον dev που δουλεύω κι εγώ) ένα ξεχασμένο ";" χτυπάει σαν πρόβλημα στον compiler ποιο κάτω από εκεί που έπρεπε να υπάρχει . Title: Re: [C++] Εργασία G [2011-2012] Post by: tsakos on January 15, 2012, 16:38:51 pm παιδιά μια ερώτηση για την άσκηση circuit που ουσιαστικά είναι σαν την εργασία G.Πως γίνεται οι constructors των παραγόμενων συναρτήσεων circuit_1 και circuit_2 να επεξεργάζονται τις protected μεταβλητές της βασικής κλάσης αφού την κληρονομούν με τρόπο public και όχι protected? Όταν μια κλάση κληρονομεί με τρόπο public μια άλλη κλάση , τότε τα protected στοιχεία της βασικής κλάσης γίνονται protected στοιχεία της παραγόμενης.Έτσι οι constructors των παραγόμενων μπορούν να τα επεξεργαστούν. @tsakos ψάξε μήπως ξεχνάς κάποιο ";" σε κάποια εντολή μέσα στην if που προηγείται της else if, ή μήπως ξεχνάς κάποιο "}" για να κλείσεις την if .Πολλές φορές (στον dev που δουλεύω κι εγώ) ένα ξεχασμένο ";" χτυπάει σαν πρόβλημα στον compiler ποιο κάτω από εκεί που έπρεπε να υπάρχει . ναι ξερω.κ εγω για τετοια λαθη ψαχνω απλα πολλες φορες δν βγαινει νοημα!! Ευχαριστω Title: Re: [C++] Εργασία G [2011-2012] Post by: Ναταλία on January 15, 2012, 17:51:18 pm παιδιά μια ερώτηση για την άσκηση circuit που ουσιαστικά είναι σαν την εργασία G.Πως γίνεται οι constructors των παραγόμενων συναρτήσεων circuit_1 και circuit_2 να επεξεργάζονται τις protected μεταβλητές της βασικής κλάσης αφού την κληρονομούν με τρόπο public και όχι protected? Όταν μια κλάση κληρονομεί με τρόπο public μια άλλη κλάση , τότε τα protected στοιχεία της βασικής κλάσης γίνονται protected στοιχεία της παραγόμενης.Έτσι οι constructors των παραγόμενων μπορούν να τα επεξεργαστούν. αν ηταν Public παλι θα μπορουσαν οι παραγομενες να τα επεξεργαστουν σωστα? ενω αν ηταν private οχι, σωστα? Title: Re: [C++] Εργασία G [2011-2012] Post by: teslaaaa on January 15, 2012, 19:03:42 pm για τις new και delete τι header χρησιμοποιουμε ?η το iostream φτανει?
Title: Re: [C++] Εργασία G [2011-2012] Post by: ValmadiaN on January 15, 2012, 19:07:59 pm @teslaaaa
το iostream φτάνει. @natalia_3005 έτσι είναι.Τις private μεταβλητές της βασικής κλάσης δεν τις κληρονομούν οι παράγουσες. Τις public και τις protected κληρονομούν ανάλογα με τον τρόπο που δηλώνεις. Title: Re: [C++] Εργασία G [2011-2012] Post by: thomais on January 15, 2012, 19:55:31 pm Απ ότι κατάλαβα όλα τα hospital και αντιστοίχως όλα τα household θα έχουν την ιδια προτεραιοτητα...δηλαδή αρκεί να αρχικοποιήσουμε μια τιμή στο καθένα και να μην διαβάζεται αυτή απο το πληκτρολόγιο του χρηστη;
Title: Re: [C++] Εργασία G [2011-2012] Post by: nikovaka on January 15, 2012, 20:08:00 pm Απ ότι κατάλαβα όλα τα hospital και αντιστοίχως όλα τα household θα έχουν την ιδια προτεραιοτητα...δηλαδή αρκεί να αρχικοποιήσουμε μια τιμή στο καθένα και να μην διαβάζεται αυτή απο το πληκτρολόγιο του χρηστη; λογικά θα διαβάζεται από το χρήστη στον constructor της κάθε παραγόμενης κλάσης.Title: Re: [C++] Εργασία G [2011-2012] Post by: nikovaka on January 15, 2012, 20:45:02 pm μπορεί κάποιος να μου πει πως δημιουργούμε περισσότερα του ενός αντικείμενα του ίδιου τύπου απ τη στιγμή που δεν τα δηλώνουμε μέσα στη main() αλλά μετά την κλάση?για παράδειγμα πως θα γίνει η δημιουργία n αντικειμένων τύπου hospital?
Title: Re: [C++] Εργασία G [2011-2012] Post by: giapapva on January 15, 2012, 20:47:23 pm Απ ότι κατάλαβα όλα τα hospital και αντιστοίχως όλα τα household θα έχουν την ιδια προτεραιοτητα...δηλαδή αρκεί να αρχικοποιήσουμε μια τιμή στο καθένα και να μην διαβάζεται αυτή απο το πληκτρολόγιο του χρηστη; λογικά θα διαβάζεται από το χρήστη στον constructor της κάθε παραγόμενης κλάσης.Κανονικά οι περιοχές του ίδιου τύπου θα πρέπει να έχουν τον ίδιο αριθμό προτεραιότητας σύμφωνα με την εκφώνηση. Ωστόσο επειδή η εκφώνηση λέει να διαβάζεται σε κάθε αντικείμενο ο αριθμός προτεραιότητας ουσιαστικά αφήνει στο χρήστη την ευθύνη να βάλει τον ίδιο αριθμό προτεραιότητας στα αντικείμενα της ίδιας κλάσης. Η λογική πάντως έτσι όπως το κατάλαβα για την ταξινόμηση είναι: πρώτα τσεκάρει αριθμό προτεραιότητας και ύστερα την δεύτερη συνθήκη σε περίπτωση που τα αντικείμενα είναι ίδια(δηλ έχουν ίδιους αρ. προτεραιότητας) Title: Re: [C++] Εργασία G [2011-2012] Post by: giapapva on January 15, 2012, 20:49:28 pm μπορεί κάποιος να μου πει πως δημιουργούμε περισσότερα του ενός αντικείμενα του ίδιου τύπου απ τη στιγμή που δεν τα δηλώνουμε μέσα στη main() αλλά μετά την κλάση?για παράδειγμα πως θα γίνει η δημιουργία n αντικειμένων τύπου hospital? Ειχα την ίδια απορία με εσένα ακριβώς πριν κάνω την άσκηση. Κοίτα στην τάξη τέτοια άσκηση δεν έκανε γι αυτό ανέβασε στο ethmmy την περσινή αντίστοιχη άσκηση. Διάβασε την καλά κατανόησέ την πως δουλεύει και δεν θα έχεις κανένα πρόβλημα! ;) Title: Re: [C++] Εργασία G [2011-2012] Post by: nikovaka on January 15, 2012, 20:57:17 pm Απ ότι κατάλαβα όλα τα hospital και αντιστοίχως όλα τα household θα έχουν την ιδια προτεραιοτητα...δηλαδή αρκεί να αρχικοποιήσουμε μια τιμή στο καθένα και να μην διαβάζεται αυτή απο το πληκτρολόγιο του χρηστη; λογικά θα διαβάζεται από το χρήστη στον constructor της κάθε παραγόμενης κλάσης.Κανονικά οι περιοχές του ίδιου τύπου θα πρέπει να έχουν τον ίδιο αριθμό προτεραιότητας σύμφωνα με την εκφώνηση. Ωστόσο επειδή η εκφώνηση λέει να διαβάζεται σε κάθε αντικείμενο ο αριθμός προτεραιότητας ουσιαστικά αφήνει στο χρήστη την ευθύνη να βάλει τον ίδιο αριθμό προτεραιότητας στα αντικείμενα της ίδιας κλάσης. Η λογική πάντως έτσι όπως το κατάλαβα για την ταξινόμηση είναι: πρώτα τσεκάρει αριθμό προτεραιότητας και ύστερα την δεύτερη συνθήκη σε περίπτωση που τα αντικείμενα είναι ίδια(δηλ έχουν ίδιους αρ. προτεραιότητας) Title: Re: [C++] Εργασία G [2011-2012] Post by: Salvation on January 15, 2012, 20:59:53 pm Εγω έχω μια αλλη απορία. Αν υποθεσουμε ότι όλα τα αντικειμενα μιας κλάσης έχουν την ιδια προτεραιότητα θα πρέπει να αποφασίσω με βαση τις συνθηκες που περιγράφει που θα δωσω ρευμα. Το θέμα είναι οτι μεσα στην distribution δν έχω πληροφορια για το τι είδους αντικείμενο βρίσκεται μέσα σε ένα κελι του πίνακα, οπότε πώς θα ξερω αν θα πρέπει να καλεσω συναρτηση που θα μου επιστρεφει αριθμό κρεβατιών νοσοκομείου ή αριθμό νοικοκυριών;
Title: Re: [C++] Εργασία G [2011-2012] Post by: Salvation on January 15, 2012, 21:00:16 pm Ωπ με προλαβαν απο πανω :)
Title: Re: [C++] Εργασία G [2011-2012] Post by: thomais on January 15, 2012, 21:40:27 pm Απ ότι κατάλαβα όλα τα hospital και αντιστοίχως όλα τα household θα έχουν την ιδια προτεραιοτητα...δηλαδή αρκεί να αρχικοποιήσουμε μια τιμή στο καθένα και να μην διαβάζεται αυτή απο το πληκτρολόγιο του χρηστη; λογικά θα διαβάζεται από το χρήστη στον constructor της κάθε παραγόμενης κλάσης.Κανονικά οι περιοχές του ίδιου τύπου θα πρέπει να έχουν τον ίδιο αριθμό προτεραιότητας σύμφωνα με την εκφώνηση. Ωστόσο επειδή η εκφώνηση λέει να διαβάζεται σε κάθε αντικείμενο ο αριθμός προτεραιότητας ουσιαστικά αφήνει στο χρήστη την ευθύνη να βάλει τον ίδιο αριθμό προτεραιότητας στα αντικείμενα της ίδιας κλάσης. Η λογική πάντως έτσι όπως το κατάλαβα για την ταξινόμηση είναι: πρώτα τσεκάρει αριθμό προτεραιότητας και ύστερα την δεύτερη συνθήκη σε περίπτωση που τα αντικείμενα είναι ίδια(δηλ έχουν ίδιους αρ. προτεραιότητας) Εγώ πιστεύω πως οριζεις μια αρχικη κλαση "περιοχη" με τα στοιχεια κωδικος,αριθμος προτεραιοτητας,πληθος(κρεβατια ή νοικοκυρια αντιστοιχα) και μεγιστη απαιτουμενη ισχυ...και αφου κανεις ταξινομηση βασιζομενος στη προτεραιοτητα για καθε τυπο επειτα να εχεις σαν 2ο κριτηριο το πληθος.. |