THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: il capitano on October 23, 2009, 12:00:59 pm



Title: [C++] 2η εργασία 2009
Post by: il capitano on October 23, 2009, 12:00:59 pm
Εργασία Β

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

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

Στο λογισμικό να ορίζεται ακόμη η συνάρτηση total_cost η οποία να επεξεργάζεται το σύνολο των αντικειμένων που αντιστοιχούν στα εμπορευμα-τοκιβώτια που πρέπει να μεταφέρει η εταιρία και να επιστρέφει το συνολικό κόστος για τη μεταφορά τους.

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


Σημείωση: για τη δέσμευση της μνήμης που αφορά τα αντικείμενα να χρησιμοποιηθεί η συνάρτηση malloc


ημερομηνια παράδωσης 1-11


Title: Re: [C++] 2η εργασία 2009
Post by: patoho on October 23, 2009, 13:03:40 pm
ποτε προλαβε??
εδω καλα καλα δν παραδωσαμε τν 1η...

ελεος ρε γμτ... >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:(
 >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:(


Title: Re: [C++] 2η εργασία 2009
Post by: chris21 on October 23, 2009, 13:48:14 pm
Ειναι τραγικά γραμμένη!! την 1η παραγραφο την διαβασα 10 φορες μεχρι να καταλαβω τι θελει να πει ο ποιητης!!


Title: Re: [C++] 2η εργασία 2009
Post by: El Niño on October 23, 2009, 14:04:34 pm
ρε ελεος...ακομα δεν εχω διαβασει για την 1η...αν ειναι δυνατον...πλακα κανει???


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on October 23, 2009, 14:06:55 pm
oxi :'( :-\


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 24, 2009, 12:57:59 pm
Ειναι τραγικά γραμμένη!! την 1η παραγραφο την διαβασα 10 φορες μεχρι να καταλαβω τι θελει να πει ο ποιητης!!


Ειδικά εκεί που λέει για το πως υπολογίζεις το κόστος για την μεταφορά με φορτηγά τα έχει μπερδέψει αρκετά


Title: Re: [C++] 2η εργασία 2009
Post by: billakos on October 24, 2009, 13:03:22 pm
παντα οι εκφωνησεις των εργασιων ηταν χαλια απο οτι θυμαμαι...δλδ για να τις καταλαβεις ηθελαν και δεκα φορες προσεκτικο διαβασμα... >:( >:(


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 24, 2009, 17:50:18 pm
Ας με επιβεβαιώσει κάποιος:

Για τα τραίνα το κόστος θα είναι||      (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση+(αξία του εμπορεύματος που μεταφέρει
το εμπορευματοκιβώτιο)*απόσταση*ins_co


Για τα φορτηγά|| (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση + (ένα ποσοστό που δήνει ο χρήστης)* (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση


Title: Re: [C++] 2η εργασία 2009
Post by: ggpyr on October 24, 2009, 17:53:54 pm
ναι έτσι κατάλαβα και έτσι το έκανα!


Title: Re: [C++] 2η εργασία 2009
Post by: jason_ on October 24, 2009, 22:00:14 pm
Φτιάξατε δύο κλάσσεις, μία train και μία truck, ή και μία που τα περιέχει όλα;

Άκυρο. Τώρα ξανάδα την εκφώνηση.


Title: Re: [C++] 2η εργασία 2009
Post by: Laza G on October 25, 2009, 13:21:29 pm
στο ethmmy γιατί δεν έχει ανέβει ?


Title: Re: [C++] 2η εργασία 2009
Post by: jason_ on October 25, 2009, 14:12:56 pm
Ρε guys γιατί κατα τη δέσμευση μνήμης με τη malloc δεν τρέχει ταυτόχρονα η συνάρτηση αρχικών συνθηκών;

Έχω γράψει κάτι τέτοιο:

Code:
int main()
{    
    train *acon;
    truck *ucon;
    int i, a_num, u_num;
    
    cout << "\nEnter the number of containers which will be transported by train: ";
    cin >> a_num;
    cout << "\nEnter the number of containers which will be transported by truck: ";
    cin >> u_num;
  
    acon = (train *)malloc(a_num*sizeof(train));
    ucon = (truck *)malloc(u_num*sizeof(truck));

Κάποια μλκία με τις δηλώσεις παίζει; Γιατί ουσιαστικά αγνοεί την συν. αρχ. συνθηκών και κατά συνέπεια δεν παίρνει τα δεδομένα ώστε να υπολογίσει το συνολικό κόστος κτλ


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on October 25, 2009, 14:19:14 pm
Και σε μενα το κανει αυτο :P. Μπορει για κάποιον λόγο να μην δημιουργει τα αντικείμενα. Μάλλον κατι παιζει με την malloc! Guyz help!


Title: Re: [C++] 2η εργασία 2009
Post by: jason_ on October 25, 2009, 14:23:05 pm
Αυτό είναι το παράδοξο, ότι τα δημιουργεί. Όταν εκτελώ το πρόγραμμα οι υπόλοιπες συναρτήσεις-μέλη του κάθε αντικειμένου λειτουργούν κανονικά. Η constructor αγνοείται και δεν μπορώ να καταλάβω το γιατί...


Title: Re: [C++] 2η εργασία 2009
Post by: Laza G on October 25, 2009, 14:27:17 pm
και σε μένα δεν τρέχει ο constructor...καμιά ιδέα ?


Title: Re: [C++] 2η εργασία 2009
Post by: Laza G on October 25, 2009, 14:38:23 pm
λοιπόν, το έκανα έτσι και δούλεψε...

*obj = constructor() ;



Title: Re: [C++] 2η εργασία 2009
Post by: chris21 on October 25, 2009, 16:44:55 pm
λοιπόν, το έκανα έτσι και δούλεψε...

*obj = constructor() ;



Σιγουρα δουλεψε?? δεν σου χτηπησε ο compiler???


Title: Re: [C++] 2η εργασία 2009
Post by: Laza G on October 25, 2009, 16:49:41 pm
δούλεψε κανονικά αλλά δεν είναι και πολύ σωστό...
Το σωστό είναι μέσα στην for να βάλεις object=constructor() ; έτσι ώστε σε κάθε επανάληψη να έχεις αρχικοποίηση των δεδομένων για το κάθε αντικείμενο...τα λέω καλα η όχι ???


Title: Re: [C++] 2η εργασία 2009
Post by: san_zoulapi on October 25, 2009, 16:51:19 pm
μαν ο κονστρακτορ δεν επιστρεφει τιμες


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on October 25, 2009, 16:54:38 pm
γενικα ο κονστρακτορ θα τρεξει μονος του οταν και μονο οταν δημιουργηθει το αντικειμενο :???:


Title: Re: [C++] 2η εργασία 2009
Post by: Laza G on October 25, 2009, 22:13:38 pm
A=(train*)malloc(A_number*sizeof(train));
for(i=0; i<A_num; i++){
     A=train();
}


ετσι το εκανα και τρεχει κανονικά ο constructor... :-\


Title: Re: [C++] 2η εργασία 2009
Post by: Laza G on October 25, 2009, 22:24:50 pm
έχω ορίσει βέβαια το Α σαν *Α στην κλάση train...


Title: Re: [C++] 2η εργασία 2009
Post by: Wanderer on October 26, 2009, 00:16:58 am
Έχω πάρα πολύ καιρό να ασχοληθώ με c++ οπότε μπορεί να λέω και βλακείες... αλλά αν θυμάμαι καλά, σε περίπτωση δημιουργίας πίνακα με αντικείμενα, για τη συνάρτηση αρχικών συνθηκών γίνεται το εξής..

Χρησιμοποιείς ένα προσωρινό αντικείμενο σε μια for επανάληψη. Δηλαδή έστω πίνακας 10 αντικειμένων, που η συνάρτηση αρχικών συνθηκών τους παίρνει 2 παραμέτρους. Γράφεις:

Code:
ΔΗΜΙΟΡΓΙΑ ΠΙΝΑΚΑ pinaks 10 αντικειμένων τύπου object
for(i από 0 έως 9 με βήμα 1) {
  "Δώσε τιμές για το Α και Β του i αντικειμένου"
  ...
  object temp(A,B);
  pinaks[i]=temp(A,B);
}

Διότι αλλιώς δεν ξέρει ποιά συνάρτηση αρχικών συνθηκών να τρέξει για το κάθε αντικείμενο. Αντιστοίχως αν η συνάρτηση αρχικών συνθηκών δεν παίρνει παραμέτρους, γίνεαι object temp(); κ.λ.π. Αν και για να πω την αλήθεια θυμάμαι ότι σε αυτήν την περίπτωση (που εκτελείται η default συνάρτηση αρχικών συνθηκών) δεν χρειάζεται να γίνει αυτή τη διαδικασία..


**για όσους αναρωτιούνται πώς γίνεται να δηλώνεται ξανά και ξανά μεταβλητή με το ίδιο όντομα (η temp εν προκειμένω), θυμίζω ότι σε κάθε επανάληψη "καταστρέφεται" διότι έχει ορισθεί τοπικά μέσα στη for.


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 26, 2009, 00:41:28 am
Code:
ΔΗΜΙΟΡΓΙΑ ΠΙΝΑΚΑ pinaks 10 αντικειμένων τύπου object
for(i από 0 έως 9 με βήμα 1) {
  "Δώσε τιμές για το Α και Β του i αντικειμένου"
  ...
  object temp(A,B);
  pinaks[i]=temp(A,B);
}

+ 1

και εγω με αυτη την λογικη το εκανα.


Title: Re: [C++] 2η εργασία 2009
Post by: Wanderer on October 26, 2009, 01:49:50 am
βασικά
Code:
pinaks[i]=temp
εννοώ, πρόσθεσα ένα (Α,Β) κατα λάθος.

Όμως τελικά ο compiler χτυπάει σε αυτή την ισότητα.. δεν ξέρω/θυμάμαι γιατί.. Doomguard πες τους τί έκανες :P


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 26, 2009, 01:55:41 am
βασικά
Code:
pinaks[i]=temp
εννοώ, πρόσθεσα ένα (Α,Β) κατα λάθος.

Όμως τελικά ο compiler χτυπάει σε αυτή την ισότητα.. δεν ξέρω/θυμάμαι γιατί.. Doomguard πες τους τί έκανες :P

Code:
        train * A;
        for(i=0;i<n;i++){
train a;
A[i]=a;
};

Έτσι μου τρέχει και ο constructor..


Title: Re: [C++] 2η εργασία 2009
Post by: fkoufis on October 26, 2009, 02:19:14 am
Ρε fkoufis... αντί να κοιτάς το φόρουμ μπες msn :P
:P :P
Code:
        train * A;
        Α = (train*)malloc(....);
        for(i=0;i<n;i++){
A[i]=a();
};
Και έτσι θα το δεχτεί πιθανότατα.


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 26, 2009, 02:23:07 am
Code:
        train * A;
        Α = (train*)malloc(....);
        for(i=0;i<n;i++){
A[i]=a();
};
Και έτσι θα το δεχτεί πιθανότατα.

Ναι εννοείτε πως θέλει και malloc απλα την παρέλειψα


Title: Re: [C++] 2η εργασία 2009
Post by: ggpyr on October 27, 2009, 12:44:19 pm
Code:
        train * A;
        for(i=0;i<n;i++){
train a;
A[i]=a;
};

Έτσι μου τρέχει και ο constructor..

και εγώ αυτό δοκίμασα και είμαι ok


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 13:24:03 pm
Code:
        train * A;
        for(i=0;i<n;i++){
train a;
A[i]=a;
};

Έτσι μου τρέχει και ο constructor..

και εγώ αυτό δοκίμασα και είμαι ok
με αυτό μου χτυπάει στο δεύτερο αντικείμενο που αποθηκεύω στον πίνακα. Ενώ αποθηκεύει το πρώτο κανονικά και το τυπώνω, στο δεύτερο πετάει segmentation fault και κλείνει το πρόγραμμα. Τι παίζει;


Title: Re: [C++] 2η εργασία 2009
Post by: Merlin on October 27, 2009, 13:39:23 pm
Υποψιαζομαι οτι επειδη εχεις δηλωσει εναν pointer σε τυπου train(αυτο δεν εχεις κανει?) ο compiler δεσμευει θεση μονο για τον pointer και οχι για τυχον επομενες θεσεις(δηλαδη δεν θα σου δουλεψει αν θες να αντικαταστησεις τον pointer με πινακα)Δοκιμασε να κανεις δυναμικη δεσμευση μνημης,δηλαδη κατι του στυλ:
Code:
train *A;
A=new train;


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 14:00:08 pm
Υποψιαζομαι οτι επειδη εχεις δηλωσει εναν pointer σε τυπου train(αυτο δεν εχεις κανει?) ο compiler δεσμευει θεση μονο για τον pointer και οχι για τυχον επομενες θεσεις(δηλαδη δεν θα σου δουλεψει αν θες να αντικαταστησεις τον pointer με πινακα)Δοκιμασε να κανεις δυναμικη δεσμευση μνημης,δηλαδη κατι του στυλ:
Code:
train *A;
A=new train;
χμμμ...
παίζει κάτι τέτοιο;
δεν γίνεται, ο Κορτέσης ζητάει να χρησιμοποιηθεί η malloc... (το γιατί είναι μυστήριο)
θα προσπαθήσω με pointer σε pointer μπας και...


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 14:09:30 pm
χαχαχχαχαχαχα
δούλεψε και όχι μόνο!!!
Ανάμεσα στα αποτελέσματα μου τύπωσε και καρδούλες

χαχαχαχαχαχαχαχαχα


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 27, 2009, 14:52:00 pm
Code:
        train * A;
        for(i=0;i<n;i++){
train a;
A[i]=a;
};

Έτσι μου τρέχει και ο constructor..

και εγώ αυτό δοκίμασα και είμαι ok
με αυτό μου χτυπάει στο δεύτερο αντικείμενο που αποθηκεύω στον πίνακα. Ενώ αποθηκεύει το πρώτο κανονικά και το τυπώνω, στο δεύτερο πετάει segmentation fault και κλείνει το πρόγραμμα. Τι παίζει;

Vasso αναμεσα στο

Code:
        train * A;

Code:
        for(i=0;i<n;i++){
train a;
A[i]=a;
};

θελει και

Code:
cin << n;
Α = (train *)mallon(n*sizeof(train));

Αν δεν τρεχει ετσι τοτε μαλλον ειναι θεμα διαφορετικου compiler


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 14:57:17 pm
ναι ναι προφανώς.
το έβαλα.
Το παράλογο είναι ότι για τον B πίνακα δουλεύει μια χαρά, με τον Α κρασάρει...


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 27, 2009, 14:59:36 pm
ναι ναι προφανώς.
το έβαλα.
Το παράλογο είναι ότι για τον B πίνακα δουλεύει μια χαρά, με τον Α κρασάρει...

χμμμμ δεν ξερω.

Αν θες ποσταρε τον κωδικα για τον αλλο πινακα μαζι με την malloc του για να τον δουμε

μηπως βρουμε τι φταίει

:)


Title: Re: [C++] 2η εργασία 2009
Post by: Merlin on October 27, 2009, 15:28:42 pm
To πιθανοτερο ειναι να κρασαρει επειδη δεν εχεις κανει δεσμευση της μνημης που χρησιμοποιεις στους πινακες σου,γιατι προφανως δεν φτανει να δηλωσεις μονο τον ποιντερ αλλα και ολες τις θεσεις στις οποιες αυτος θα δειχνει.Αν ο Κορτεσης δεν θελει new καντο με malloc.


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 16:12:48 pm
To πιθανοτερο ειναι να κρασαρει επειδη δεν εχεις κανει δεσμευση της μνημης που χρησιμοποιεις στους πινακες σου,γιατι προφανως δεν φτανει να δηλωσεις μονο τον ποιντερ αλλα και ολες τις θεσεις στις οποιες αυτος θα δειχνει.Αν ο Κορτεσης δεν θελει new καντο με malloc.

με malloc το κάνω.

Code:
    train **A ;  //pinakas emporeumatwn me traino
    trucks **B ;  //pinakas emporeumatwn me fortigo
    int A_num, B_num;   //megethos pinakwn

...//pairnw to megethos twn pinakwn


  //desmeuw ti mnimi gia tous pinakes
  A=(train**)malloc(A_num*sizeof(train));
  B=(trucks**)malloc(B_num*sizeof(trucks));
  if(!A){
     cout << "Allocation failure \n" ;
     return 1;
  }
  if(!B) {
     cout << "Allocation failure \n" ;
     return 1;
  }   for(int i=0; i<A_num; i++)
  {
      cout << i+1<<"o emporeumatokivwtio me traino:\n" ;  //vazw i+1 giati to i ksekinaei apo 0
     train temp(trainperkm, ins_co); //dimiourgw to antikeimeno
     temp.printdata();
      A[0][i]=temp;  //to apothikeuw ston pinaka A eee????
  }

    for(int i=0; i<B_num; i++){
     cout << i+1<< "o emporeumatokivwtio me fortigo:\n" ;  //vazw i+1 giati to i ksekinaei apo 0
     trucks temp(trucksperkm);
     B[0][i]=temp;
  }
...


για το Β δουλεύουν, για Α μέχρι 2 δουλεύει, η τόταλ_κοστ δουλεύει, αν κάνω όμως το Α_num >=2 κρασάρει


Title: Re: [C++] 2η εργασία 2009
Post by: Merlin on October 27, 2009, 16:53:59 pm
Στην συνθηκη για τον ελεγχο αν εγινε κατανομη μνημης βαλε NULL.Πχ:

Code:
if(A==NULL){
  cout<<"Memory failure...U suck big time!!!!";
}


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 19:27:19 pm
crasharei πάλι :)

όταν ο Α δεσμεύει μνήμη πάνω από μια θέση, απλά δεν προχωράει...
τεσπα, το αφήνω :)


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 27, 2009, 19:37:13 pm
crasharei πάλι :)

όταν ο Α δεσμεύει μνήμη πάνω από μια θέση, απλά δεν προχωράει...
τεσπα, το αφήνω :)
Χμμμ θα ελεγα να δοκιμασεις να το υλοποιήσεις ορίζωντας τα Α και Β

ως

Code:
train * A
οχι

Code:
train ** A


Title: Re: [C++] 2η εργασία 2009
Post by: vasso on October 27, 2009, 19:54:25 pm
crasharei πάλι :)

όταν ο Α δεσμεύει μνήμη πάνω από μια θέση, απλά δεν προχωράει...
τεσπα, το αφήνω :)
Χμμμ θα ελεγα να δοκιμασεις να το υλοποιήσεις ορίζωντας τα Α και Β

ως

Code:
train * A
οχι

Code:
train ** A

έτσι το είχα στην αρχή και..... κράσαρε :P


Title: Re: [C++] 2η εργασία 2009
Post by: DoomGuard on October 27, 2009, 20:07:16 pm
         crap


δεν ξερω  :-\  :-\  :-\


Title: Re: [C++] 2η εργασία 2009
Post by: kgiann78 on October 30, 2009, 18:22:11 pm
Ρε παιδιά να κανω και γω μια ρώτηξη. Μήπως το ασφάλιστρο στο τραίνο βγαίνει πολύ ακριβό??? Έκανα έναν υπολογισμό για τη μεταφορά ενός αντικειμένου αξίας ας πούμε 100 ευρώ και για απόσταση Αθήνα-Θεσσαλονική δηλ 500 χιλιόμετρα. Αν βάλεις ένα ins_co της τάξης των 19% (δηλ 0.19) τότε το ασφάλιστρο βγαίνει 9500 Ευρώ...

Πάει καλά????? Είπαμε ότι η εκφώνηση μπάζει αλλά έτσι????



Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on October 30, 2009, 18:38:55 pm
Νταξ ρε, εκφωνηση Κορτέσιου είναι. Μπορεί να λέει ότι θέλει :D :D


Title: Re: [C++] 2η εργασία 2009
Post by: kgiann78 on October 30, 2009, 18:46:18 pm
Με κάλυψες


Title: Re: [C++] 2η εργασία 2009
Post by: provataki on October 30, 2009, 18:47:22 pm
μην ασχολειστε τοσο σοβαρα με μαλακιες... ελεος...  :P :D


Title: Re: [C++] 2η εργασία 2009
Post by: salala on October 30, 2009, 19:12:16 pm
Ε όχι και μαλακίες οι εργασίες του Κορτέση... παρακαλώ κύριε!


Title: Re: [C++] 2η εργασία 2009
Post by: provataki on October 30, 2009, 19:13:24 pm
οχι δεν ειναι μαλακιες εχεις δικιο. Μαλακιες ειναι....  ;)


Title: Re: [C++] 2η εργασία 2009
Post by: salala on October 30, 2009, 19:33:05 pm
Τώρα μιλάς σωστά... αλλά όλα κεφαλαία! 8)


Title: Re: [C++] 2η εργασία 2009
Post by: ak1s on October 30, 2009, 21:16:50 pm
 η total_cost πρεπει να ειναι συναρτηση μελος η απλα μια συναρτηση που θα χρησιμοποιει τ κυριο προγραμμα?


Title: Re: [C++] 2η εργασία 2009
Post by: Ianna on October 30, 2009, 21:54:11 pm
Εγώ την έκανα φιλική στις δύο κλάσεις.


Title: Re: [C++] 2η εργασία 2009
Post by: ritchie on October 31, 2009, 17:54:58 pm
και μενα crasharei μετα απο την πρωτη constractor.Vasso μηπως βρήκες καμια λυση στο προβλημά σου? γιατι στο τσαφ ειμαι να την στειλω ετσι....


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on October 31, 2009, 17:58:18 pm
Εγώ την έκανα φιλική στις δύο κλάσεις.
+1 (δεν την εκανα ακομα, ΘΑ την κανω :D )


Title: Re: [C++] 2η εργασία 2009
Post by: diutinus on October 31, 2009, 23:29:09 pm
Εγώ την έκανα φιλική στις δύο κλάσεις.

Όταν λέμε φιλική εννοούμε.....????

Και η εργασία είναι μέχρι Κυριακή βράδυ έτσι;;


Title: Re: [C++] 2η εργασία 2009
Post by: jason_ on November 01, 2009, 00:12:36 am
Εγώ την έκανα φιλική στις δύο κλάσεις.

Όταν λέμε φιλική εννοούμε.....????

Και η εργασία είναι μέχρι Κυριακή βράδυ έτσι;;

Σημειώσεις Κεφ 2.5

Αν και και εγώ δεν την έκανα φιλική (γιατί δεν είχα διαβάσει) και δούλεψε μια χαρά.



Title: Re: [C++] 2η εργασία 2009
Post by: dimvam on November 01, 2009, 16:17:47 pm
Εγώ την έκανα φιλική στις δύο κλάσεις.

Όταν λέμε φιλική εννοούμε.....????

Και η εργασία είναι μέχρι Κυριακή βράδυ έτσι;;

Σημειώσεις Κεφ 2.5

Αν και και εγώ δεν την έκανα φιλική (γιατί δεν είχα διαβάσει) και δούλεψε μια χαρά.



Μπρείτε να δώσετε καμιά βοήθεια για αυτό το κομμάτι του κώδικα; Θα είναι φιλική στις δύο κλάσεις (train και truck) και θα αποθηκεύει το τελικό κόστος σε ένα νέο πίνακα;
Thanx!


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 16:21:29 pm
Μπορεις να την κάνεις φιλική ως προς τις δύο κλάσεις και επίσης να είναι τύπου float.
Οπότε θα φτιάξεις μία τοπική μεταβλητή μέσα στην συνάρτηση, που θα αθροίζει όλες τις τιμές και τελικά θα επιστρεφει το τελικό κόστος, το οποίο και θα τυπόνεται στην main!

Τώρα που το σκεύτομαι μπορείς να το τυπώσεις και μέσα στην συνάρτηση και να την κάνεις void 8)


Title: Re: [C++] 2η εργασία 2009
Post by: dimvam on November 01, 2009, 16:51:11 pm
Μπορεις να την κάνεις φιλική ως προς τις δύο κλάσεις και επίσης να είναι τύπου float.
Οπότε θα φτιάξεις μία τοπική μεταβλητή μέσα στην συνάρτηση, που θα αθροίζει όλες τις τιμές και τελικά θα επιστρεφει το τελικό κόστος, το οποίο και θα τυπόνεται στην main!

Τώρα που το σκεύτομαι μπορείς να το τυπώσεις και μέσα στην συνάρτηση και να την κάνεις void 8)
Στη συνάρτηση θα δώσω ορίσματα τύπου των κλάσεων train και truck, έτσι; Δηλαδή float_cost (train A, truck B); 


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 17:00:21 pm
Αν την κανεις φιλική ναι


Title: Re: [C++] 2η εργασία 2009
Post by: jason_ on November 01, 2009, 18:04:51 pm
H total_cost δεν πρέπει να είναι void, αλλά float και να επιστρέφει το συνολικό κόστος. Στην εκφώνησή του ο Κορτέσης ζητάει η total_cost() να επιστρέφει τιμή.

Επίσης, dimvam, θα δώσεις ορίσματα τύπου των κλάσεων train και truck όπως λες, αλλά νομίζω ότι θα χρειαστείς και δύο int ορίσματα που θα αντιστοιχούν στον αριθμό των κιβωτίων που μεταφέρονται με τραίνο και στον αριθμό των κιβωτίων που μεταφέρονται με φορτηγό, αντίστοιχα. Αριθμοί που τους ζητάς στην αρχή της main() ώστε να κάνεις δυναμική δέσμευση μνήμης.

Τώρα είτε την κάνεις φιλική προς στις δύο κλάσεις, είτε όχι, μικρή σημασία έχει.


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 19:23:42 pm
H total_cost δεν πρέπει να είναι void, αλλά float και να επιστρέφει το συνολικό κόστος. Στην εκφώνησή του ο Κορτέσης ζητάει η total_cost() να επιστρέφει τιμή.

Επίσης, dimvam, θα δώσεις ορίσματα τύπου των κλάσεων train και truck όπως λες, αλλά νομίζω ότι θα χρειαστείς και δύο int ορίσματα που θα αντιστοιχούν στον αριθμό των κιβωτίων που μεταφέρονται με τραίνο και στον αριθμό των κιβωτίων που μεταφέρονται με φορτηγό, αντίστοιχα. Αριθμοί που τους ζητάς στην αρχή της main() ώστε να κάνεις δυναμική δέσμευση μνήμης.

Τώρα είτε την κάνεις φιλική προς στις δύο κλάσεις, είτε όχι, μικρή σημασία έχει.

συμφωνω και κατι ακομα ομως... Pointer δεν πρεπει να δωσεις; εννοω  pointer των κλασεων train kai truck ( και μαλιστα τις αρχες των κοματιων που δεσμευεσες με τις δυο malloc... )


Title: Re: [C++] 2η εργασία 2009
Post by: El Niño on November 01, 2009, 19:44:05 pm
οχι...για να δεσμευσεις μνημη γι ενα αντικειμενο μιας κλασης κανεις:

πχ..
train *clients

clients=(train *)malloc(n*sizeof(train));

το n το χεις διαβασει πιο πριν...


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 19:49:08 pm
οχι...για να δεσμευσεις μνημη γι ενα αντικειμενο μιας κλασης κανεις:

πχ..
train *clients

clients=(train *)malloc(n*sizeof(train));

το n το χεις διαβασει πιο πριν...

το οχι σε μενα πηγαινε; με αυτον τον τροπο δε δεσμευεις θεσεις μνημης για n αντικειμενα;


Title: Re: [C++] 2η εργασία 2009
Post by: Andre on November 01, 2009, 19:56:19 pm
Επίσης, dimvam, θα δώσεις ορίσματα τύπου των κλάσεων train και truck όπως λες, αλλά νομίζω ότι θα χρειαστείς και δύο int ορίσματα που θα αντιστοιχούν στον αριθμό των κιβωτίων που μεταφέρονται με τραίνο και στον αριθμό των κιβωτίων που μεταφέρονται με φορτηγό, αντίστοιχα. Αριθμοί που τους ζητάς στην αρχή της main() ώστε να κάνεις δυναμική δέσμευση μνήμης.

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


Title: Re: [C++] 2η εργασία 2009
Post by: 4Dcube on November 01, 2009, 20:14:34 pm
Παιδιά, να ρωτήσω, γιατί ο κορτέσης επιμένει να χρησιμοποιείται η malloc;
Είπε κάποιο λόγο;
Ιδιαίτερα στη c++ προκαλεί προβλήματα... Η malloc είναι πολύ χειροκίνητη κατανομή μνήμης και δουλεύει μόνο σε τόσο απλές ασκήσεις όπως αυτή...


Title: Re: [C++] 2η εργασία 2009
Post by: jason_ on November 01, 2009, 20:15:58 pm
Επίσης, dimvam, θα δώσεις ορίσματα τύπου των κλάσεων train και truck όπως λες, αλλά νομίζω ότι θα χρειαστείς και δύο int ορίσματα που θα αντιστοιχούν στον αριθμό των κιβωτίων που μεταφέρονται με τραίνο και στον αριθμό των κιβωτίων που μεταφέρονται με φορτηγό, αντίστοιχα. Αριθμοί που τους ζητάς στην αρχή της main() ώστε να κάνεις δυναμική δέσμευση μνήμης.

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

Νομίζω πως όχι. Αυτή είναι η ιδιαιτερότητα των φιλικών συναρτήσεων, ότι πρέπει να έχουν ως ορίσματα αντικείμενα του τύπου των κλάσεων. Νομίζω, χωρίς να είμαι και σίγουρος. Δοκίμασε το και δες. Εγώ μιλάω, έχοντας κάνει την εργασίες χωρίς να χρησιμοποιήσω φιλικές συναρτήσεις

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

total_cost(train *A, truck *B, int, int)



Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 20:16:12 pm
Παιδιά, να ρωτήσω, γιατί ο κορτέσης επιμένει να χρησιμοποιείται η malloc;
Είπε κάποιο λόγο;
Ιδιαίτερα στη c++ προκαλεί προβλήματα... Η malloc είναι πολύ χειροκίνητη κατανομή μνήμης και δουλεύει μόνο σε τόσο απλές ασκήσεις όπως αυτή...
Επειδη η new και η delete απασχολούνε περισσότερο τον επεξεργαστη νομιζω
Κατι τετοιο δεν ειπε στο μαθημα; :(


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 20:20:24 pm
Επίσης, dimvam, θα δώσεις ορίσματα τύπου των κλάσεων train και truck όπως λες, αλλά νομίζω ότι θα χρειαστείς και δύο int ορίσματα που θα αντιστοιχούν στον αριθμό των κιβωτίων που μεταφέρονται με τραίνο και στον αριθμό των κιβωτίων που μεταφέρονται με φορτηγό, αντίστοιχα. Αριθμοί που τους ζητάς στην αρχή της main() ώστε να κάνεις δυναμική δέσμευση μνήμης.

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

Νομίζω πως όχι. Αυτή είναι η ιδιαιτερότητα των φιλικών συναρτήσεων, ότι πρέπει να έχουν ως ορίσματα αντικείμενα του τύπου των κλάσεων. Νομίζω, χωρίς να είμαι και σίγουρος. Δοκίμασε το και δες. Εγώ μιλάω, έχοντας κάνει την εργασίες χωρίς να χρησιμοποιήσω φιλικές συναρτήσεις

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

total_cost(train *A, truck *B, int, int)



ναι αυτο εννοουσα ( σε λιγο θα ποσταρω και τον κωδικα γιατι κατι δεν δουλευει και καποια μλκια κανω...


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 20:30:33 pm
Επίσης, dimvam, θα δώσεις ορίσματα τύπου των κλάσεων train και truck όπως λες, αλλά νομίζω ότι θα χρειαστείς και δύο int ορίσματα που θα αντιστοιχούν στον αριθμό των κιβωτίων που μεταφέρονται με τραίνο και στον αριθμό των κιβωτίων που μεταφέρονται με φορτηγό, αντίστοιχα. Αριθμοί που τους ζητάς στην αρχή της main() ώστε να κάνεις δυναμική δέσμευση μνήμης.

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

Νομίζω πως όχι. Αυτή είναι η ιδιαιτερότητα των φιλικών συναρτήσεων, ότι πρέπει να έχουν ως ορίσματα αντικείμενα του τύπου των κλάσεων. Νομίζω, χωρίς να είμαι και σίγουρος. Δοκίμασε το και δες. Εγώ μιλάω, έχοντας κάνει την εργασίες χωρίς να χρησιμοποιήσω φιλικές συναρτήσεις

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

total_cost(train *A, truck *B, int, int)



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

τα ορισματα των φιλικων συναρτησεων πεπει να ναι αντικειμενα των κλασεων στις οποιες ειναι φιλικες!!! ειναι γεγονος!!!


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 20:31:21 pm
αλλα δε λεει τιποτα για ποιντερσ αλλα εμενα δε μ τρεχει!!! σκατ σκατα


Title: Re: [C++] 2η εργασία 2009
Post by: Wanderer on November 01, 2009, 20:32:02 pm
Παιδιά, να ρωτήσω, γιατί ο κορτέσης επιμένει να χρησιμοποιείται η malloc;
Είπε κάποιο λόγο;
Ιδιαίτερα στη c++ προκαλεί προβλήματα... Η malloc είναι πολύ χειροκίνητη κατανομή μνήμης και δουλεύει μόνο σε τόσο απλές ασκήσεις όπως αυτή...
Από ό,τι θυμάμαι επειδή είναι κατάλοιπο από τη C. Σε επόμενα μαθήματα θα χρησιμοποιεί τη new και delete.

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


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 20:34:27 pm
Παιδιά, να ρωτήσω, γιατί ο κορτέσης επιμένει να χρησιμοποιείται η malloc;
Είπε κάποιο λόγο;
Ιδιαίτερα στη c++ προκαλεί προβλήματα... Η malloc είναι πολύ χειροκίνητη κατανομή μνήμης και δουλεύει μόνο σε τόσο απλές ασκήσεις όπως αυτή...
Επειδη η new και η delete απασχολούνε περισσότερο τον επεξεργαστη νομιζω
Κατι τετοιο δεν ειπε στο μαθημα; :(

Ποτε ρε παιδια?


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 20:37:03 pm
Παιδιά, να ρωτήσω, γιατί ο κορτέσης επιμένει να χρησιμοποιείται η malloc;
Είπε κάποιο λόγο;
Ιδιαίτερα στη c++ προκαλεί προβλήματα... Η malloc είναι πολύ χειροκίνητη κατανομή μνήμης και δουλεύει μόνο σε τόσο απλές ασκήσεις όπως αυτή...
Επειδη η new και η delete απασχολούνε περισσότερο τον επεξεργαστη νομιζω
Κατι τετοιο δεν ειπε στο μαθημα; :(

Ποτε ρε παιδια?
στο μάθημα του 2ου τμηματος παναη :P


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 20:38:51 pm
χαζη ερωτηση: Η void συναρτησεις μπορουν να εκτυπωσουν ε?


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 20:42:52 pm
εννοειται :P


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 20:44:09 pm
Εκει που θα διαβαζει το ονομα του αποστολεα και του παραληπτη αμα βαλω ch1,ch2 δεν φτανει ε?

θελει κανα ch1[30], ch2[30]...


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 20:49:13 pm
αυτο στη δηλωση
οχι στο cin


Title: Re: [C++] 2η εργασία 2009
Post by: dimvam on November 01, 2009, 20:53:08 pm
Τελικά μπορούν να έχουν οι φιλικές συναρτήσεις ορίσματα Int;
Αυτό με το τύπωση του συνολικού κόστους με μπερδεύει. Δεν είναι πιο απλό να το κάνουμε χωρίς φιλική συνάρτηση και να δηλώσουμε απλά μέσα στη main τη συνάρτηση για τον υπολογισμό του total cost?


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 21:29:26 pm
και γω για την total cost να ρωτησω... αν την κανουμε φιλικη χρειαζεται παλι ορισματα? γιατι μαλλον τα μπερδεψα

οκ, αν δεν ειναι φιλικη θα εχουμε τοταλ_κοστ(Ν, Μ, *α,*β)
αλλα αν ειναι?


Title: Re: [C++] 2η εργασία 2009
Post by: Ευχαριστο Διαλειμμα on November 01, 2009, 21:32:49 pm
Παιδιά, να ρωτήσω, γιατί ο κορτέσης επιμένει να χρησιμοποιείται η malloc;
Είπε κάποιο λόγο;
Ιδιαίτερα στη c++ προκαλεί προβλήματα... Η malloc είναι πολύ χειροκίνητη κατανομή μνήμης και δουλεύει μόνο σε τόσο απλές ασκήσεις όπως αυτή...

Στο εργαστηριο ακουσα εναν που τον ρωτησε αυτο ακριβως το πραγμα. Απαντησε πως θελει να παιδευτουμε και να μαθουμε πως γινεται και με malloc αν παρουσιαστει ποτε μπροστα μας να το ξερουμε... :P


Title: Re: [C++] 2η εργασία 2009
Post by: nasia!! on November 01, 2009, 21:34:52 pm
Δεν μπορώ άλλο,θα τον πω τον πόνο μου!!!Τί μλκςςςςςςςςςςςςςςςς  >:(

Πολλά νέυρα με αυτήν την ρημαδοεργασία
 

(Και πολλές απορίες..)


Title: Re: [C++] 2η εργασία 2009
Post by: sarovios on November 01, 2009, 21:43:11 pm
Επειδη δεν εχω καταλαβει πολυ καλα μπορει καποιος να μου πει τι παιζει με τι συναρτησεις αρχικων-τελικων συνθηκων και γιατι πρεπει να τις χρησιμοποιηουμε?
Χρειαζονται σε αυτη την εργασια?


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 21:49:19 pm
ναι για να διαβασεις

στα τραινα:
κοστος, αξια, Ins_co
αρα να δωσεις και τιμη στο ασφαλιστρο

στα φορτηγα:
κοστος, ποσοστο
αρα να δωσεις τιμη και στον φορο


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 21:50:43 pm
ναι για να διαβασεις

στα τραινα:
κοστος, αξια, Ins_co
αρα να δωσεις και τιμη στο ασφαλιστρο

στα φορτηγα:
κοστος, ποσοστο
αρα να δωσεις τιμη και στον φορο

και την αποσταση... ;)


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 21:52:06 pm
αχαχαχ

την ξεχασα την πουτανα! ^dontknow^


Title: Re: [C++] 2η εργασία 2009
Post by: sarovios on November 01, 2009, 21:53:54 pm
για την κλαση train που εχω η συναρτηση μου θα ειναι train(void);
και θα ειναι public?


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 21:56:06 pm
ναι


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:12:48 pm
στην μαιν εχω αυτο...

for (i=0;i<N;i++){
        a.bill1();
        a.out1();
    }

πρεπει να βαλω κατι για να μπαινει στην αρχικων συνθηκων ή επρεπε να μπαινει μονο του?

εδιτ: ειδα οτι ειναι η απορια στην αρχη οποτε ψιλο ακυρο...


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 22:18:19 pm
τα ονοματα πως τα δηλωσατε;
Code:
char ονομα_παραληπτη[100];
ξερω γω?

μιληστε σκουληκια!!!! :D


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:18:57 pm
Η συναρτηση αρχικων συνθηκων τρεχει με το που δημιουργειται το αντικειμενο.

Το θεμα είναι οτι με την malloc απλα δεσμευεις μνημη για τα αντικειμενα και δεν τα δημιουργεις!

οποτε πρεπει να κανεις κατι του στιλ:
Code:
for(i=0;i<n1;i++){
   train a;
   A[i]=a;
}
όπου Α ο πίνακας τον αντικειμενων

Αυτα για να δημιουργησεις τα αντικειμενα τυπου train. Το ιδιο και για τα truck και μετα αυτα που λες


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 22:19:59 pm
Code:
float total_cost(train *x,truck *y,int a,int b){
    int i,j;
    float z=0;
    
    for (i=0;i<a;i++){
        z=*(x+i).get_t_cost+z;
    }
    for (j=0;j<b;j++){
        z=*(y+j).get_t_cost+z;
    }
    return z;
}

ρε παιδια την total_cost πώς την κανατε; εγω την εκανα ετσι και δεν τρεχει!!! Γιατι; τι κανω λαθος;


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 22:22:15 pm
Α και κατι αλλο...

αυτο
Code:
Α[i]
δεν ειναι ιδιο μ αυτο
Code:
*(Α+i)
;


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:23:36 pm
Βασικα σε καθε κλαση γραψε μια συναρτηση που επιστρεφει το κοστος.

Οπότε στην total_cost θα καλεις αυτην την συναρτηση μεσα σε καθε λοοπ

edit: ναι στο 2ο


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 22:25:16 pm
κυριε κυριε!!

ο αντιλογος δε διαβαζει καλα τις εκφωνησεις!! :P ^binkybaby^


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 22:26:55 pm
σωστα αλλα πώς θα την καλω τη γαμημενη;;;;;;;; αφου στελνω 2 ποιντερς στην τοταλ_κοστ δεν ξερω πώς να γινει η συνταξη για να επιστρεφει το τελικο κοστος καθε αντικειμενου!!!

γαμωτο τοσο μπαφιασα που νοημα δε βγαζει τι γραφω   ;D ;D ;D

edit: τι δε διαβασα καλα ρε αλυτε;


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:30:15 pm
γραψε σε καθα κλαση την
Code:
float a(){return kostos;}
και στην total_cost απλα βαλε ορισματα τα n1,n2 και καλεσε την συναρτηση a σε ενα λοοπ π.χ.
Code:
for(i=0;i<n1;i++){
   synolo+=A[i].a();
}


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:31:28 pm
Η συναρτηση αρχικων συνθηκων τρεχει με το που δημιουργειται το αντικειμενο.

Το θεμα είναι οτι με την malloc απλα δεσμευεις μνημη για τα αντικειμενα και δεν τα δημιουργεις!

οποτε πρεπει να κανεις κατι του στιλ:
Code:
for(i=0;i<n1;i++){
   train a;
   A[i]=a;
}
όπου Α ο πίνακας τον αντικειμενων

Αυτα για να δημιουργησεις τα αντικειμενα τυπου train. Το ιδιο και για τα truck και μετα αυτα που λες

οκ ευχαριστω καπετανιε


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 22:33:45 pm
Η get_t_cost κανει αυτη τη δουλεια που περιγραφεις...

απλα μαλλον εκανα μλκια που στελνω και τους ποιντερς, ετοιμαζομαι για το σχετικο πειραμα στον κωδικα )


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:35:50 pm
και στις δηλωσεις τι θα εχω?

train *A, a?


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:37:07 pm
χιχι λαθος τελικα πρεπει να περασεις τις κλασεις στην total_cost.
Απλα μπορεις να γραψεις float total_cost(train A[ ],truck B[ ],int a,int b)


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:38:37 pm
και στις δηλωσεις τι θα εχω?

train *A, a?

Θα δηλωσεις train *A.
θα κανεις malloc στην Α για n1 θεσεις και μετα το λουπ που σου πα πριν


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:41:32 pm
ΟΚ ...κ ενα τελευται κ την στελνω ετσι :P

τι προβλημα εχει η

cout<<total_cost(N,M,*a,*b);

και μου βγαζει ο κομπιλερ

 cannot convert `truck' to `truck*' for argument `3' to `float total_cost(int, int, truck*, train*)'


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:42:40 pm
βασικα γραψε και πως εχεις δηλωσει την total_cost να σου πω ;)


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:43:18 pm

float total_cost(int N,int M, truck *a, train *b){
     
      float sum=0;
      int i;
     
      for (i=0;i<N;i++){
          sum+=a.bill1();
      }
      for (i=0;i<M;i++){
          sum+=b.bill2();
      }   
      return sum;
}


Title: Re: [C++] 2η εργασία 2009
Post by: il capitano on November 01, 2009, 22:44:12 pm
γραψε a[ ] kai b[ ] και στις δυο δηλωσεις και θα εισαι λογικα ΟΚ


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:46:04 pm
 expected primary-expression before ']' token
με λεει


Title: Re: [C++] 2η εργασία 2009
Post by: 4Dcube on November 01, 2009, 22:46:21 pm
ΟΚ ...κ ενα τελευται κ την στελνω ετσι :P

τι προβλημα εχει η

cout<<total_cost(N,M,*a,*b);

και μου βγαζει ο κομπιλερ

 cannot convert `truck' to `truck*' for argument `3' to `float total_cost(int, int, truck*, train*)'
γράψε cout<<total_cost(N,M,a,b);


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 22:49:37 pm
μου βγαζει αλλα ερρορ που βαριεμαι να ποσταρω...θα την στειλω ετσι και θα δω τι θα μου πει αυριο στο εργ...


Title: Re: [C++] 2η εργασία 2009
Post by: 4Dcube on November 01, 2009, 22:55:08 pm
γενικά ξέρουμε το copy paste στο google τα error που βγάζει το λογκ
ε;

υγ πάντως κημμυ την bill1, bill2 γιατι τις έκανες συναρτήσεις, δε χρειάζεται


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 01, 2009, 23:21:20 pm
γενικά ξέρουμε το copy paste στο google τα error που βγάζει το λογκ
ε;



ε??

οντως δεν χρειαζοταν...αλλα ετσι για να φαινεται πιο ωραιο  :D


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 01, 2009, 23:26:36 pm
δε μου λετε ρε συναδελφοι :'( :'( :'( :'( :'(

στα φορτηγα ναουμ.....
ο φορος θα προστεθει στο κοστος μεταφορας?
δηλαδη το κοστος μεταφορας θα γινει (κοστος μεταφορας + φορος) ??
ή το συνολικο ποσο θα ειναι (φορος + κοστος μεταφορας) ??

μιληστε!!! ^beg^


Title: Re: [C++] 2η εργασία 2009
Post by: nasia!! on November 01, 2009, 23:27:28 pm
Για τα φορτηγά|| (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση + (ένα ποσοστό που δήνει ο χρήστης)* (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση
8)
Εγω ετσι το κανα..


Title: Re: [C++] 2η εργασία 2009
Post by: ant on November 01, 2009, 23:50:33 pm
γενικά ξέρουμε το copy paste στο google τα error που βγάζει το λογκ
ε;

υγ πάντως κημμυ την bill1, bill2 γιατι τις έκανες συναρτήσεις, δε χρειάζεται

τι εννοεις; καταρχας αυτες οι συναρτησεις τι κανουν επιστρεφουν τιμες;

και αν δεν το κανε με συναρτησεις πώς θα το εκανε;


Title: Re: [C++] 2η εργασία 2009
Post by: antonios on November 01, 2009, 23:52:54 pm
ρε παιδιά, το γραφείο του συμεωνίδη ξέρουμε πού είναι??????


Title: Re: [C++] 2η εργασία 2009
Post by: Ianna on November 02, 2009, 00:09:34 am
Το γραφείο του Συμεωνίδη είναι στην Νησίδα Βεργίνα καθώς μπαίνεις αριστερά και μετά πάλι αριστερά. Είναι 2 γραφεία εκεί..ένα του Πιτσιάνη και ένα του Συμεωνίδη..έχει ταμπελίτσες...θα το δείτε...


Title: Re: [C++] 2η εργασία 2009
Post by: antonios on November 02, 2009, 00:11:08 am
Το γραφείο του Συμεωνίδη είναι στην Νησίδα Βεργίνα καθώς μπαίνεις αριστερά και μετά πάλι αριστερά. Είναι 2 γραφεία εκεί..ένα του Πιτσιάνη και ένα του Συμεωνίδη..έχει ταμπελίτσες...θα το δείτε...

thankssssssssssss


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 02, 2009, 00:50:00 am
παιδια στα πολυυυυυυυυ γρηγορα πειτε μου!!!!!
στη συναρτηση εκτυπωσης κοστους μεταφορας που ζηταει ο κορτεσης να εχει το καθε αντικειμενο
οταν λεει να εκτυπωσουμε κοστος μεταφορας
εννοει το κοστος μεταφορας απο μονο του?δηλαδη κοστος μεταφορας ανα χιλιομετρο επι την αποσταση??
ή το συνολικο κοστος για καθε εμπορευματοκιβωτιο????


 :D :D :D


γρηγορα πειτε μου!!!!!!!!!!!!!!!!! :D :D :D


Title: Re: [C++] 2η εργασία 2009
Post by: ΚΗΜΜΥ on November 02, 2009, 00:52:47 am
το κοστος για καθε εμπορευματοκιβωτιο συμφωνα με τους τυπους που γραψανε στην αρχη ΝΟΜΙΖΩ


Title: Re: [C++] 2η εργασία 2009
Post by: Αιμιλία η φτερωτή χελώνα on November 02, 2009, 00:55:15 am
Ας με επιβεβαιώσει κάποιος:

Για τα τραίνα το κόστος θα είναι||      (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση+(αξία του εμπορεύματος που μεταφέρει
το εμπορευματοκιβώτιο)*απόσταση*ins_co


Για τα φορτηγά|| (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση + (ένα ποσοστό που δήνει ο χρήστης)* (κόστος μεταφοράς ανά χιλιόμετρο)*απόσταση
ετσι και δεν ειναι αυτο θα σας φαω δαγκα!!!!!!!!! ^monster^ ;D ;D ;D ;D ;D ;D ;D ;D ;D


Title: Re: [C++] 2η εργασία 2009
Post by: Ianna on November 04, 2009, 21:10:17 pm
Εργασία Β

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

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

Στο λογισμικό να ορίζεται ακόμη η συνάρτηση total_cost η οποία να επεξεργάζεται το σύνολο των αντικειμένων που αντιστοιχούν στα εμπορευμα-τοκιβώτια που πρέπει να μεταφέρει η εταιρία και να επιστρέφει το συνολικό κόστος για τη μεταφορά τους.

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


Σημείωση: για τη δέσμευση της μνήμης που αφορά τα αντικείμενα να χρησιμοποιηθεί η συνάρτηση malloc


ημερομηνια παράδωσης 1-11

Λύση εργασίας Β από τους διδάσκοντες.