THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: nikitas350 on December 04, 2010, 22:16:03 pm



Title: [C++] 7η Εργασία 2010
Post by: nikitas350 on December 04, 2010, 22:16:03 pm
Εργασία G (Hμ/νία λήξης δηλώσεων: 12/12/2010)

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

     Να γραφεί το λογισμικό το οποίο διαχειρίζεται το σύστημα ηλεκτροδότησης της πόλης. Στο λογισμικό να ορίζεται η συνάρτηση calc_system η οποία σύμφωνα με τη σειρά προτεραιότητας που ορίστηκε για την λειτουργία των σταθμών και την ηλεκτροδότηση των περιοχών να τυπώνει τις ταυτότητες των σταθμών που μπήκαν σε λειτουργία και την ένδειξη «Το σύστημα λειτουργεί ομαλά» στην περίπτωση που όλες οι περιοχές ηλεκτροδοτούνται. Διαφορετικά να τυπώνει τις ταυτότητες των σταθμών που θα μπουν σε λειτουργία και τις ταυτότητες των περιοχών στις οποίες θα διακοπεί το ρεύμα λόγο μη επάρκειας του συστήματος. Στην περίπτωση που η παρεχόμενη από τους σταθμούς ισχύς δεν επαρκεί για να τροφοδοτήσει την πρώτη σε προτεραιότητα περιοχή να τυπώνεται η ένδειξη «Γενικό blackout». Η συνάρτηση σε κάθε περίπτωση να τυπώνει τη συνολική ισχύ που παράγουν οι σταθμοί που βρίσκονται σε λειτουργία και τη συνολική ισχύ που απαιτείται από το σύνολο των περιοχών στις οποίες χωρίζεται η πόλη.

     Η συνάρτηση main του προγράμματος να ορίζει μια ατέρμονα διαδικασία, σε κάθε επανάληψη της οποίας, να διαβάζεται η ισχύς που απαιτεί το σύστημα για κάθε μια από τις περιοχές που έχουν οριστεί στην πόλη και καλώντας την calc_system να τυπώνει την κατάσταση στην οποία βρίσκεται τη δεδομένη στιγμή το σύστημα. Η διαδικασία να σταματά αν για όλες τις περιοχές δοθεί ως απαιτούμενη ισχύς το 0. Το λογισμικό, συμπεριλαμβανομένης και της συνάρτησης main, να είναι ανεξάρτητο από τον αριθμό και τον τύπο των σταθμών που υπάρχουν στο σύστημα.

     Ως εφαρμογή να θεωρηθεί ότι υπάρχουν δύο τύποι σταθμών. Ο τύπος coal_source ο οποίος αφορά σταθμούς που λειτουργούν με κάρβουνο και ο τύπος water_source ο οποίος αφορά υδροηλεκτρικούς σταθμούς.
     Η ισχύς την οποία παράγει ένας σταθμός τύπου coal_source ισούται με την ωριαία κατανάλωση σε τόνους κάρβουνου επί ένα συντελεστή απόδοσης.

     Με τη δημιουργία αντικειμένων στον τύπο της αντίστοιχης κλάσης να διαβάζονται:
  • Η ταυτότητα του σταθμού.
  • Η σειρά με την οποία ορίστηκε να μπει σε λειτουργία ο σταθμός.
  • Η κατάσταση λειτουργίας του σταθμού (1 αν ο σταθμός λειτουργεί 0 αν είναι σε συντήρηση).
  • Η ωριαία κατανάλωση σε κάρβουνο του σταθμού,
  • Ο συντελεστής απόδοσης

     Η ισχύς την οποία παράγει ένας σταθμός τύπου water_source ισούται με το γινόμενο της στάθμης του νερού στον ταμιευτήρα επί την παροχή που υπάρχει για τον συγκεκριμένο σταθμό επί ένα συντελεστή απόδοσης.

     Με τη δημιουργία αντικειμένων στον τύπο της αντίστοιχης κλάσης να διαβάζονται:
  • Η ταυτότητα του σταθμού.
  • Η σειρά με την οποία ορίστηκε να μπει σε λειτουργία ο σταθμός.
  • Η κατάσταση λειτουργίας του σταθμού (1 αν ο σταθμός λειτουργεί 0 αν είναι σε συντήρηση).
  • Η στάθμη του νερού στον ταμιευτήρα.
  • Η παροχή που έχει ο σταθμός
  • Ο συντελεστής απόδοσης

     Βοηθητικές παρατηρήσεις
  • Η σειρά με την οποία δίνονται οι τιμές για την ισχύ που απαιτεί η κάθε περιοχή δηλώνει και τη σειρά με την οποία θα ηλεκτροδοτηθεί η περιοχή.
  • Ως ταυτότητα για την κάθε περιοχή να θεωρηθεί η σειρά με την οποία η περιοχή θα ηλεκτροδοτηθεί.
  • Το λογισμικό να διαχειρίζεται το σύστημα για μία μόνο ημέρα.


Title: Re: [C++] 7η Εργασία 2010
Post by: Orfikoss on December 08, 2010, 15:12:52 pm
κι αυτή ίδια με την περσινή


Title: Re: [C++] 7η Εργασία 2010
Post by: cindy on December 10, 2010, 17:53:24 pm
σε κάθε μια από τις επιμέρους περιοχές υπάρχουν n σταθμοί,έτσι;
δεν αντιστοιχεί ένας σταθμός σε κάθε περιοχή...
πρέπει να κάνουμε ερώτηση για το πόσοι υπάρχουν σε κάθε μια;;


Title: Re: [C++] 7η Εργασία 2010
Post by: Tracy_McGrady on December 10, 2010, 20:39:26 pm
σε κάθε μια από τις επιμέρους περιοχές υπάρχουν n σταθμοί,έτσι;
δεν αντιστοιχεί ένας σταθμός σε κάθε περιοχή...
πρέπει να κάνουμε ερώτηση για το πόσοι υπάρχουν σε κάθε μια;;
Βασικά εγώ πιστευω οτι εννοεί πως στην πόλη υπάρχουν ολοι (ν) σταθμοί!Δεν χωρίζεται η πόλη σε κάθε περιοχή με δικούς της σταθμούς!Τουλάχιστον εγώ έτσι το εκανα! :)


Title: Re: [C++] 7η Εργασία 2010
Post by: gareth on December 10, 2010, 22:03:18 pm
]Βασικά εγώ πιστευω οτι εννοεί πως στην πόλη υπάρχουν ολοι (ν) σταθμοί!Δεν χωρίζεται η πόλη σε κάθε περιοχή με δικούς της σταθμούς!Τουλάχιστον εγώ έτσι το εκανα! :)

+1


Title: Re: [C++] 7η Εργασία 2010
Post by: Dimitris1989 on December 12, 2010, 14:24:35 pm
Η ταυτότητα του σταθμού τι είναι; Αριθμός; String;


Title: Re: [C++] 7η Εργασία 2010
Post by: gareth on December 12, 2010, 15:10:20 pm
λογικα string....


Title: Re: [C++] 7η Εργασία 2010
Post by: RaiDeR on December 12, 2010, 15:11:51 pm
Η ταυτότητα του σταθμού τι είναι; Αριθμός; String;
εγω το πηρα σαν αριθμο την ταυτοτητα του καθε σταθμου που ειναι ο ιδιος με της περιοχης που τροφοδοτει ;)


Title: Re: [C++] 7η Εργασία 2010
Post by: gareth on December 12, 2010, 15:17:05 pm
ναι αλλα καθε περιοχη μπορει να τροφοδοτειται και απο αλλους σταθμους ταυτοχρονα... οχι μονο απο εναν..


Title: Re: [C++] 7η Εργασία 2010
Post by: RaiDeR on December 12, 2010, 15:26:13 pm
μαλλον εχεις ενα point .... ;)


Title: Re: [C++] 7η Εργασία 2010
Post by: cindy on December 12, 2010, 20:52:29 pm
σε κάθε μια από τις επιμέρους περιοχές υπάρχουν n σταθμοί,έτσι;
δεν αντιστοιχεί ένας σταθμός σε κάθε περιοχή...
πρέπει να κάνουμε ερώτηση για το πόσοι υπάρχουν σε κάθε μια;;
Βασικά εγώ πιστευω οτι εννοεί πως στην πόλη υπάρχουν ολοι (ν) σταθμοί!Δεν χωρίζεται η πόλη σε κάθε περιοχή με δικούς της σταθμούς!Τουλάχιστον εγώ έτσι το εκανα! :)

thanks!!


Title: Re: [C++] 7η Εργασία 2010
Post by: varvoutis on January 27, 2011, 20:24:50 pm
Καλησπέρα παιδιά,

μπορει καποιος να μου εξηγησει τι ακριβως ειναι αυτα τα

coal("coal_source")

και

water("water")

στο τελος των παραγόμενων κλασεων coal_source και water_source :-\ :-\ :-\

επισυνάπτω τη λύση των διδασκόντων




Title: Re: [C++] 7η Εργασία 2010
Post by: nohponex on January 27, 2011, 20:42:34 pm
Και το coal και το water είναι αντικείμενα που δημιουργούνται με τύπο coal_source και water_source αντίστοιχα.
Στο συγκεκριμένο πρόγραμμα και τα 2 αυτά αντικείμενα ως όρισμα έχουν ένα string που αντιστοιχεί στον constructor source(char *c) της βασικής κλάσης source, ώστε όταν οριστεί κάθε νεα παραγόμενη κλάση αυτόματα να καταχωρεί τον τύπο της στον πινάκα με τους της βασικης ( διαδικασία που οριζεται στον constructor).
Με αυτό τον τρόπο επιτυγχάνεται ανεξαρτησία του τύπου των σταθμών.


Title: Re: [C++] 7η Εργασία 2010
Post by: varvoutis on January 27, 2011, 20:53:43 pm
ευχαριστώ πολύ nohponex! μήπως μπορείς να μου πεις και πού μπορώ να βρώ αυτην τη σύνταξη ειτε στις σημειώσεις του Κορτέση είτε στο βιβλίο;



Title: Re: [C++] 7η Εργασία 2010
Post by: nohponex on January 27, 2011, 21:02:38 pm
τον τρόπο που κάνει την ανεξαρτησία του τύπου εννοείς ?


Title: Re: [C++] 7η Εργασία 2010
Post by: varvoutis on January 27, 2011, 21:05:46 pm
τον τρόπο που κάνει την ανεξαρτησία του τύπου εννοείς ?

ναι, και τον τροπο και τη συνταξη με την οποια αυτος γινεται... γιατι πρωτη φορα το βλεπω! να δω και κανενα αλλο παραδειγμα


Title: Re: [C++] 7η Εργασία 2010
Post by: nohponex on January 27, 2011, 21:13:03 pm
Δεν υπάρχει κάπου γραμμένος ούτε στο βιβλίο ούτε στις σημειώσεις , αν δεν κάνω λάθος. Όποτε μόνο από στη λύση της εργασίας αυτής.
Ακόμη δεν έχω καταλάβει τι ακριβώς-ακριβώς κάνει στο παράδειγμα, ειχα ασχοληθεί με ενα παρόμοιο παράδειγμα που εχει στο e-thmmy αλλα ο Κορτεσης στην εξέταση μου ειχε πει οτι δεν είναι απολύτως σωστός εκείνος ο τρόπος. Αναγκαστικά πρέπει να χρησιμοποιήσουμε τη λυση του δλδ  :-\  ::)

Θα κάτσω αν είναι να μελετήσω ξανά τη λύση του αυτή, και αν μπορέσω να τη σουλουπώσω κάπως θα την ανεβάσω.


Title: Re: [C++] 7η Εργασία 2010
Post by: varvoutis on January 27, 2011, 21:20:13 pm
να σαι καλα  ;)


Title: Re: [C++] 7η Εργασία 2010
Post by: nohponex on January 28, 2011, 01:29:16 am
Υπάρχει ένα παράδειγμα στο e-thmmy (Υλικό μαθήματος -> Παραδείγματα -> mach3ps.cpp ).

Μελέτησα τη λυση και έγραψα λίγο ποιο απλοποιημένο παράδειγμα πάνω στη λυση αυτή
http://users.auth.gr/~xenofons/files/app.cpp
&
http://users.auth.gr/~xenofons/files/paradeigmaAnexartitwn.pdf

Ελπίζω να είναι κάπως ποιο κατανοητό  :)