• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 19:41:53 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 19:41:53 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by Yamal
[Today at 19:07:04]

[Γραφική] Λυμένα θέματα
by okanpala
[Today at 18:56:22]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by asemas
[Today at 16:20:27]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426693
Total Topics: 31710
Online Today: 218
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 63
Guests: 161
Total: 224
statiris
gianst
fpapat
lapin
MarakiT
tasos potsakis
Ariadni
Χρήστος Κίτσος
user182
Sofiana
Athinaaz
telhs
anastas1a
evangeliaap
christina02
makis1941
dem05
tzortzis
GeorgeChri
artemissamaras_
spoun
Sanaia
gianniss
bsp
kokkinosgior
evitzv
ellimoschou
gstom
kstavroulis
AggelosZ
Papalamprous humor
Nicotre
Nikospneumatikos
natavhoo
jimalexoud
akpapako
Alex Kosmas
PAPARI69
soti
acolak
kpapama
airam
aachmet
JiMan5
xanthosp
akiousia
Thanasiscon1
pavlaras
Antreas17
ValKar
kchristoua
kkotsopo
VagT
kraxtopoulos
Νικη
PetrosCc
noimaginationforthis
Sotiris_atha
ggalamat
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
  Όταν ανεβάζουμε φωτογραφίες στις Ανακοινώσεις και Έκτακτα νέα, βάζουμε τη μεγαλύτερη πλευρά 400 (width=400 ή height=400 ). π.χ. [img height=400 (κλείνει η αγκύλη) 
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [C++] Εργασία G [2011-2012]
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 Go Down Print
Author Topic: [C++] Εργασία G [2011-2012]  (Read 5065 times)
teslaaaa
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Female
Posts: 2687


Buongiorno Principessa!


View Profile WWW
[C++] Εργασία G [2011-2012]
« 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)
Καλά Χριστούγεννα Cheesy
Logged

Κάντε την εφαρμογή μου για να πάρω πτυχίο!!

http://www.youtube.com/watch?v=ipjaLMd8TqM

https://www.youtube.com/watch?v=gQU3EphIpMY
sok
Καταξιωμένος/Καταξιωμένη
***
Posts: 124


View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #1 on: January 10, 2012, 12:27:31 pm »

Παιδιά ξέρει κανείς με ποιό τρόπο θα γεμίσουμε τον πίνακα( Households kai Hospitals ) με στοιχεία διαφορετικών τύπων;Ευχαριστώ.
Logged
Perasmus
Καταξιωμένος/Καταξιωμένη
***
Posts: 214



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #2 on: January 11, 2012, 19:14:20 pm »

"Το λογισμικό, συμπεριλαμβανομένης και της συνάρτησης main, να είναι ανεξάρτητο από τον αριθμό και τον τύπο των περιοχών που υπάρχουν στην πόλη."
Αυτο σημαινει οτι οι κλασεις household και hospital δεν πρεπει να οριζονται μεσα στην main?? Εννοω ναι μεν να οριζονται στο προγραμμα αλλα οχι μεσα στην main ως π.χ   household house ?
Logged
pepper ann
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1132



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #3 on: January 12, 2012, 21:44:06 pm »

καμιά ιδέα για το που μπορώ να βρω πληροφορίες για την ανεξαρτησία λογισμικού;
Logged
Ναταλία
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1209



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #4 on: January 12, 2012, 21:44:26 pm »

Quote from: Perasmus on January 11, 2012, 19:14:20 pm
"Το λογισμικό, συμπεριλαμβανομένης και της συνάρτησης main, να είναι ανεξάρτητο από τον αριθμό και τον τύπο των περιοχών που υπάρχουν στην πόλη."
Αυτο σημαινει οτι οι κλασεις household και hospital δεν πρεπει να οριζονται μεσα στην main?? Εννοω ναι μεν να οριζονται στο προγραμμα αλλα οχι μεσα στην main ως π.χ   household house ?

μαλλον ναι.. οποτε λογικα πρεπει να κανεις μια abstract κλαση με virtual συναρτησεις.
μπορει να λεω και βλακειες
Logged
Δον
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 724



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #5 on: January 13, 2012, 12:31:40 pm »

Aν η hospital είναι παραγόμενη της Household δεν θα υπάρχει θέμα ε?
Logged
pepper ann
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1132



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #6 on: January 13, 2012, 13:44:01 pm »

Quote from: dimitris_don on January 13, 2012, 12:31:40 pm
Aν η hospital είναι παραγόμενη της Household δεν θα υπάρχει θέμα ε?
υπάρχει.
Logged
Δον
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 724



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #7 on: January 14, 2012, 13:11:00 pm »

Tι θέμα?? Αφού η hospital είναι ουσιαστικά μία household με 3 παραπάνω στοιχεία. Άρα αν την κάνουμε public παραγόμενη τότε γλυτώνουμε πολλές σειρές!
Logged
pepper ann
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1132



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #8 on: January 14, 2012, 13:46:53 pm »

Quote from: dimitris_don on January 14, 2012, 13:11:00 pm
Tι θέμα?? Αφού η hospital είναι ουσιαστικά μία household με 3 παραπάνω στοιχεία. Άρα αν την κάνουμε public παραγόμενη τότε γλυτώνουμε πολλές σειρές!
δεν ξερω αν θα σου δημιουργήσει πρόβλημα στο συγκεκριμένο πρόγραμμα.
Αλλά σκέψου να είχες και άλλους τύπους.Μια βιομηχανική περιοχή,ή μια περιοχή με εμπορικά μαγαζιά,ή..ή...
Δεν μου ακούγεται σωστό από σχεδιαστική άποψη.
Μπορεί όλοι αυτοι  οι επιπλέον διαφορετικοί τύποι να είχαν στοιχεία που δεν έχει ένα household.
(και ποια είναι τα 3 παραπάνω στοιχεια;  Huh)
Logged
Ναταλία
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1209



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #9 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;
}
Logged
pepper ann
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1132



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #10 on: January 14, 2012, 14:17:32 pm »

οι παραγόμενες έχουν πρόσβαση στα στοιχεία της βασικής (ανάλογα με το αν είναι Protected/public κτλ)
Logged
mark333
Καταξιωμένος/Καταξιωμένη
***
Posts: 122



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #11 on: January 14, 2012, 14:59:02 pm »

Η distribution λέει να δέχεται ως όρισμα έναν πίνακα και να καλείται μία μόνο φορά. Πως θα γίνει να βάλουμε στοιχεία δύο διαφορετικών τύπων σε ένα πίνακα?
Logged

What don't kill ya make ya more strong...
alexis2044
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 120


Alopex Electricus


View Profile WWW
Re: [C++] Εργασία G [2011-2012]
« Reply #12 on: January 14, 2012, 15:29:11 pm »

Θα μεγαλώνεις τον πίνακα κάθε φορά που καλέιται η συνάρτηση αρχικών συνθηκών του κάθε τύπου με realloc και θα καταχωρείς σε αυτόν τη διεύθυνση του αντικειμένου με this.
Logged

Φιλικά, Αλέξης

"A computer lets you make more mistakes faster than any other human invention in history…
…with the possible exception of handguns and tequila." Mitch Radcliffe
Ναταλία
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1209



View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #13 on: January 14, 2012, 16:00:10 pm »

Quote from: pepper ann on January 14, 2012, 14:17:32 pm
οι παραγόμενες έχουν πρόσβαση στα στοιχεία της βασικής (ανάλογα με το αν είναι Protected/public κτλ)

ααα οκ! thaaanks!  Cheesy
Logged
Infinite Loop
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 706


We are the Harbinger of your perfection.


View Profile
Re: [C++] Εργασία G [2011-2012]
« Reply #14 on: January 14, 2012, 16:14:25 pm »

Quote from: mark333 on January 14, 2012, 14:59:02 pm
Η distribution λέει να δέχεται ως όρισμα έναν πίνακα και να καλείται μία μόνο φορά. Πως θα γίνει να βάλουμε στοιχεία δύο διαφορετικών τύπων σε ένα πίνακα?

Δεν θα βαλεις τα ιδια τα αντικειμενα στον πινακα, αλλα (hint hint) pointers σε base class.

Quote from: alexis2044 on January 14, 2012, 15:29:11 pm
Θα μεγαλώνεις τον πίνακα κάθε φορά που καλέιται η συνάρτηση αρχικών συνθηκών του κάθε τύπου με realloc και θα καταχωρείς σε αυτόν τη διεύθυνση του αντικειμένου με this.

Η realloc() ειναι συναρτηση της C. Οχι οτι τυπικα δεν μπορεις να την χρησιμοποιησεις, αλλα στην C++ δεν δουλευεις με αυτη. C != C++.
Logged

This one doesn't have time for your solid waste excretions.
Pages: [1] 2 3 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...