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

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, 11:45:35 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 02:29:21]

[Οργάνωση Υπολογιστών] Γε...
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 Nikos_313
[June 16, 2025, 12:01:53 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[June 16, 2025, 10:22:18 am]

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

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
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]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426682
Total Topics: 31710
Online Today: 169
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 54
Guests: 82
Total: 136
idchatzi
chris_krkls
dseid
Δημήτρης Διακολουκάς
dleivadi
Local Rider
kostas.13v
stefpapa21
Markella
vasilis saitis
JiMan5
Νικη
tsaliki
thanos_
George_RT
makato
Marihouan820
Nikos.kouts
gpapmtb
Petran25
Filpan10
AristeidisM
george14
Mr White
kyriazak
kvas
sigklitiki
antreassv
vkarapas
vagk
Passerby
ioathemar
Spyridon01101
xaotikos
freakyy
DimitrisL
smaragdis
giorgosc
JTS
alexkont
mmikelo
Saint_GR
tzortzis
Thalasotsanta
dkoukn
xarisagraf
AcademicWeapon!
menelaras
atpvk
mpizos
Εμφάνιση

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

Νέα!
Για αλλαγή του public name σας, επικοινωνήστε με έναν από τους Admins.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
0 Members and 1 Guest are viewing this topic.
Pages: 1 [2] 3 4 Go Down Print
Author Topic: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01  (Read 5948 times)
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #15 on: January 18, 2013, 19:53:44 pm »

Quote from: nontas93 on January 18, 2013, 19:41:51 pm
Quote from: Exomag on January 18, 2013, 18:34:10 pm
Quote from: nontas93 on January 18, 2013, 18:22:15 pm
Quote from: Exomag on January 06, 2013, 18:15:14 pm
Προσπαθήστε, ο αριθμός των φορολογουμένων που θα ελεγχθούν, ο αριθμός των ετών που θα γίνει ο έλεγχος και το έτος από το οποίο θα αρχίσει, να μην είναι μέλη της κλάσης taxation ούτε γενικές μεταβλητές.
Οποιος καταλαβε πως θα χειριζομαστε τα χρονια χωρις να ειναι μελος της κλασης ουτε γενικη μεταβλητη ας μας πει!!!

Θα κάνεις μια άλλη κλάση (στον τύπο της οποίας δεν χρειάζεται να ορίσεις κάποια αντικείμενα) που θα έχει static μεταβλητές και συναρτήσεις-μέλη και θα χειρίζεται τα δεδομένα σου.
καλη ιδεα..
προφανως θα ειναι παραγομενη απο την taxation ετσι ?? πως θα γινει αυτο χωρις να ορισω αντικειμενα στον τυπο της??

Δεν θα είναι παραγόμενη της taxation! Για παράδειγμα, μια πρόχειρη υλοποιήση αυτού που λέω (που το είπε, βασικά, ο Κορτέσης στην τάξη):

Code:
class data
{
private:
    static int N;
public:
    data() { }
    static int get_N() {return N;}
    static void set_N(int _N) {N=_N;}
};

int data::N;

Έπειτα, σε οποιοδήποτε κομμάτι του προγράμματος σου, μπορείς να κάνεις access το N με την εντολή data::get_N() και να του ορίσεις μια τιμή x με την εντολή data::set_N(x).
« Last Edit: January 18, 2013, 21:11:49 pm by Exomag » Logged

Alice_8
Ανερχόμενος/Ανερχόμενη
**
Gender: Female
Posts: 76



View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #16 on: January 18, 2013, 20:30:51 pm »

Quote from: Exomag on January 18, 2013, 19:08:55 pm
Quote from: Alice_8 on January 18, 2013, 18:42:47 pm
Ρε παιδιά , έχω σκάσει...
Τι εννοεί όταν λέει να κάνουμε extractor ο οποίος, αφού διαβάσει τον ΑΦΜ του φορολογούμενου, να διαβάζει τα στοιχεία των πινάκων balance,  taking και taxis.??
Καταλαβαίνω οτι θα έχουμε πίνακα αντικειμένων taxation, εστω t όπου το κάθε αντικείμενο θα έχει επίσης έναν πίνακα balance,  taking  taxis και debt . Αλλά αφού διαβάσει το ΑΦΜ τι γινεται?
Θα ψαχνει ολον τον πινακα t να βρει τ συγκεκριμενο αντικειμενο κ απο κει απο καποιο καναλι θα διαβαζει τις τιμες???  bang_head

Ο extractor θα δέχεται ένα από τα αντικείμενα του πίνακα t, όχι ολόκληρο τον πίνακα. Έπειτα θα διαβάζει όλα τα στοιχεία των πινάκων balance, taking, taxis και debt από το συγκεκριμένο αντικείμενο.

Ευχαριστώ ! Απλα (sorry με εχει μπερδεψει η συγκεκριμενη εργασια) μπορεις να μου εξηγήσεις πως θα το κάνω αυτό σαν υλοποιήση?
Θα δέχεται ο extractor όρισμα (τύπου taxation tax ) διπλα απο το (istream &c,taxation &p) ??
και μετα θα ειναι cout<<"dwse to upoloipo tou logoariasmou tou\n";
c>>tax.balance ???
« Last Edit: January 18, 2013, 20:35:31 pm by Exomag » Logged

"..You make me feel like I'm home again..."
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #17 on: January 18, 2013, 20:46:37 pm »

Quote from: Alice_8 on January 18, 2013, 20:30:51 pm
Quote from: Exomag on January 18, 2013, 19:08:55 pm
Ο extractor θα δέχεται ένα από τα αντικείμενα του πίνακα t, όχι ολόκληρο τον πίνακα. Έπειτα θα διαβάζει όλα τα στοιχεία των πινάκων balance, taking, taxis και debt από το συγκεκριμένο αντικείμενο.
Ευχαριστώ ! Απλα (sorry με εχει μπερδεψει η συγκεκριμενη εργασια) μπορεις να μου εξηγήσεις πως θα το κάνω αυτό σαν υλοποιήση?
Θα δέχεται ο extractor όρισμα (τύπου taxation tax ) διπλα απο το (istream &c,taxation &p) ??
και μετα θα ειναι cout<<"dwse to upoloipo tou logoariasmou tou\n";
c>>tax.balance ???

Το definition θα είναι (μέσα στην κλάση taxation):
Code:
friend istream& operator>(istream &stream,taxation &object);

Θα την καλείς ως εξής:
Code:
cin>object_of_type_taxation;

Και μέρος της υλοποίησης της, για παράδειγμα, θα είναι:
Code:
istream& operator>(istream &stream,taxation &object)
{
    for (int i=0;i<data::get_N();i++) {
            cout<<"Υπόλοιπο Λογαριασμού = ";
            stream>>object.balance[i];
    return stream;
}
Logged

Alice_8
Ανερχόμενος/Ανερχόμενη
**
Gender: Female
Posts: 76



View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #18 on: January 18, 2013, 20:50:45 pm »

Υπερ-ευχαριστώ !!!
Logged

"..You make me feel like I'm home again..."
thanospr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #19 on: January 18, 2013, 21:56:15 pm »

Ουσιαστικα εδω τσαμπα τους βαζουμε τους extractors ετσι δεν ειναι;Και με μια συναρτηση δεν θα μπορουσαμε να το κανουμε αυτό; Ειναι χρησιμο για να μπορουμε με ενα cout να γραφουμε δεδομενα και στην κονσολα αλλα και σε ενα αρχειο π.χ..Κανω λαθος;
« Last Edit: January 18, 2013, 21:58:48 pm by thanospr » Logged
papatasoylis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 242


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #20 on: January 19, 2013, 15:26:14 pm »

τα  free στην delete μέσα πως θα γίνουν΄?  γτ δν περνει free(balance) free(taxis) και τα λοιπά. Embarrassed

 for (int i=0;i<data::get_N();i++) {
        //Εδώ τα 4 free
    }
Logged

Πιστεύω εις έναν Τουξ,πιγκουίνο παντοκράτωρα,ποιητή παντός OSSορατών scriptsκαι αοράτων processes.Και εις ένα Kernel Χρηστικόν,μονολιθικόν, εκ του Linus γεννηθέντα, προ πάντων των UNIXοειδών.C++ εκ της C,GUI αληθινόν,εκ χρηστών αληθινών,,,,,,,,,,,,,,,,,,,,,,,,,Το Backtrack θα μας σωσει!!
papatasoylis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 242


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #21 on: January 19, 2013, 15:41:59 pm »

στν new θα έχει ως όρισμα size_t size?

και απο κάτω θα έιναι κάπως έτσι?
if((p=(taxation*)malloc(size))==NULL)
      {
         cout<<"Allocation failure for forologoumenous!\n";
         exit(1);
      }
      
      if((bal=(float*)malloc(sizeof(float)*(stoixeia::get_years()))==NULL))
           {
              cout<<"Allocation error for balance\n";
              exit(2);
           }

αλλα για τον float *bal δεν το δέχεται το bal gia ton balance ετσι. πρέπει αν γίνει static;
« Last Edit: January 19, 2013, 15:49:07 pm by papatasoylis » Logged

Πιστεύω εις έναν Τουξ,πιγκουίνο παντοκράτωρα,ποιητή παντός OSSορατών scriptsκαι αοράτων processes.Και εις ένα Kernel Χρηστικόν,μονολιθικόν, εκ του Linus γεννηθέντα, προ πάντων των UNIXοειδών.C++ εκ της C,GUI αληθινόν,εκ χρηστών αληθινών,,,,,,,,,,,,,,,,,,,,,,,,,Το Backtrack θα μας σωσει!!
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #22 on: January 19, 2013, 15:55:37 pm »

Quote from: papatasoylis on January 19, 2013, 15:26:14 pm
τα  free στην delete μέσα πως θα γίνουν΄?  γτ δν περνει free(balance) free(taxis) και τα λοιπά. Embarrassed

 for (int i=0;i<data::get_N();i++) {
        //Εδώ τα 4 free
    }

Εφόσον έχεις έναν pointer σε αντικείμενα τύπου taxation (έστω p), θα κάνεις μέσα σε ένα loop:
Code:
 for (int i=0;i<data::get_N();i++) {
        free(p[i].balance);
        //τα υπόλοιπα 3 free
    }
Logged

Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #23 on: January 19, 2013, 15:57:36 pm »

Quote from: papatasoylis on January 19, 2013, 15:41:59 pm
στν new θα έχει ως όρισμα size_t size?

και απο κάτω θα έιναι κάπως έτσι?
if((p=(taxation*)malloc(size))==NULL)
      {
         cout<<"Allocation failure for forologoumenous!\n";
         exit(1);
      }
      
      if((bal=(float*)malloc(sizeof(float)*(stoixeia::get_years()))==NULL))
           {
              cout<<"Allocation error for balance\n";
              exit(2);
           }

αλλα για τον float *bal δεν το δέχεται το bal gia ton balance ετσι. πρέπει αν γίνει static;

Μέσα σε ένα loop θα αναφέρεσαι στους πίνακες του εκάστωτε στοιχείου μέσω του αντικειμένου που ανήκουν. Δηλαδή, για παράδειγμα,
Code:
		if((p[i].bal=(float*)malloc(sizeof(float)*(stoixeia::get_years()))==NULL))
  {
  cout<<"Allocation error for balance\n";
  exit(2);
  }
Logged

papatasoylis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 242


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #24 on: January 19, 2013, 16:04:39 pm »

αφτο το loop θα τρέχει για τον αριθμο φορολογούμενων?

και μέσα στν delete δεν μ πέρνει p.balance..

πρέπει με΄σα στν κλάση να τα δηλώσω ως static float *balance?
Logged

Πιστεύω εις έναν Τουξ,πιγκουίνο παντοκράτωρα,ποιητή παντός OSSορατών scriptsκαι αοράτων processes.Και εις ένα Kernel Χρηστικόν,μονολιθικόν, εκ του Linus γεννηθέντα, προ πάντων των UNIXοειδών.C++ εκ της C,GUI αληθινόν,εκ χρηστών αληθινών,,,,,,,,,,,,,,,,,,,,,,,,,Το Backtrack θα μας σωσει!!
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #25 on: January 19, 2013, 16:07:25 pm »

Quote from: papatasoylis on January 19, 2013, 16:04:39 pm
αφτο το loop θα τρέχει για τον αριθμο φορολογούμενων?
Ναι

Quote from: papatasoylis on January 19, 2013, 16:04:39 pm
και μέσα στν delete δεν μ πέρνει p[ i ].balance..

πρέπει με΄σα στν κλάση να τα δηλώσω ως static float *balance?
Πες πρώτα τι error σου βγάζει ο compiler.
Logged

papatasoylis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 242


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #26 on: January 19, 2013, 16:15:14 pm »

μεσα στην delete αμα ορίσω taxation *p

και πω free(p.balance) oπου float *balance στν κλαση taxation

βγάζει expression must be a pointer to a complete object
κατω απο το p βγάζει κόκκινο.

οσο για τν new που πέρνει όρισμα size_t size

μέσα της:

taxation *p;
      
      if((p=(taxation*)malloc(size))==NULL)
      {
         cout<<"Allocation failure for forologoumenous!\n";
         exit(1);
      }
      
             bal=new float(stoixeia::get_years());
            
              if(bal==0)
              {
              cout<<"Allocation error for balance\n";
              exit(2);
              }
βγάζει error κατω απο το bal(balance dld) και λέει a nonstatic member reference must be relative to a specific object

πρέπει αν ορισω τους pointers ως static στην taxation?
Logged

Πιστεύω εις έναν Τουξ,πιγκουίνο παντοκράτωρα,ποιητή παντός OSSορατών scriptsκαι αοράτων processes.Και εις ένα Kernel Χρηστικόν,μονολιθικόν, εκ του Linus γεννηθέντα, προ πάντων των UNIXοειδών.C++ εκ της C,GUI αληθινόν,εκ χρηστών αληθινών,,,,,,,,,,,,,,,,,,,,,,,,,Το Backtrack θα μας σωσει!!
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #27 on: January 19, 2013, 16:26:23 pm »

Quote from: papatasoylis on January 19, 2013, 16:15:14 pm
μεσα στην delete αμα ορίσω taxation *p

και πω free(p.balance) oπου float *balance στν κλαση taxation

βγάζει expression must be a pointer to a complete object
κατω απο το p βγάζει κόκκινο.

οσο για τν new που πέρνει όρισμα size_t size

μέσα της:

taxation *p;
      
      if((p=(taxation*)malloc(size))==NULL)
      {
         cout<<"Allocation failure for forologoumenous!\n";
         exit(1);
      }
      
             bal=new float(stoixeia::get_years());
            
              if(bal==0)
              {
              cout<<"Allocation error for balance\n";
              exit(2);
              }
βγάζει error κατω απο το bal(balance dld) και λέει a nonstatic member reference must be relative to a specific object

πρέπει αν ορισω τους pointers ως static στην taxation?

Στην delete δεν θα ορίσεις κάποιον δικό σου pointer, θα χρησιμοποιήσεις αυτόν που θα λάβεις από τα ορίσματα της delete.

Στην new δεν θα γράψεις ποτέ σκέτο bal. Πάντα θα αναφέρεσαι στους πίνακες μέσω ενός αντικειμένου:
Code:
p[i].bal=new float(stoixeia::get_years());
Logged

papatasoylis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 242


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #28 on: January 19, 2013, 16:51:24 pm »

βγάζει στηn delete αυτο που είπα πιο πριν

expression must be a pointer to a complete object οταν βάζω free(p.balance);

καυ αυτο που λες για την new to καταλαβα
« Last Edit: January 19, 2013, 16:54:57 pm by papatasoylis » Logged

Πιστεύω εις έναν Τουξ,πιγκουίνο παντοκράτωρα,ποιητή παντός OSSορατών scriptsκαι αοράτων processes.Και εις ένα Kernel Χρηστικόν,μονολιθικόν, εκ του Linus γεννηθέντα, προ πάντων των UNIXοειδών.C++ εκ της C,GUI αληθινόν,εκ χρηστών αληθινών,,,,,,,,,,,,,,,,,,,,,,,,,Το Backtrack θα μας σωσει!!
papatasoylis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 242


View Profile
Re: [C++] Άσκηση G - 2012/2013 - Προθεσμία 20/01
« Reply #29 on: January 19, 2013, 17:23:13 pm »

o constructor της taxation πρέπει να κάνει κτ η μπά? Cool
Logged

Πιστεύω εις έναν Τουξ,πιγκουίνο παντοκράτωρα,ποιητή παντός OSSορατών scriptsκαι αοράτων processes.Και εις ένα Kernel Χρηστικόν,μονολιθικόν, εκ του Linus γεννηθέντα, προ πάντων των UNIXοειδών.C++ εκ της C,GUI αληθινόν,εκ χρηστών αληθινών,,,,,,,,,,,,,,,,,,,,,,,,,Το Backtrack θα μας σωσει!!
Pages: 1 [2] 3 4 Go Up Print
Jump to:  

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