Title: [C++] 8η Εργασία 2008 Post by: Neal on December 09, 2008, 12:01:37 pm Εργασία H Η παραγωγή ενός εργοστασίου αποτελείται από μια σειρά διαφορετικών προϊόντων. Το εργοστάσιο διαθέτει έναν αριθμό από διαφορετικές μεταξύ τους μηχανές κάθε μια από τις οποίες μπορεί να κατασκευάσει όλους τους τύπους προϊόντων που παράγει το εργοστάσιο. Για την εκτέλεση μιας παραγγελίας που φτάνει στο εργοστάσιο χρησιμοποιείται μια μόνο από τις μηχανές. Κάθε μηχανή έχει ένα κόστος λειτουργίας για να κατασκευάσει ένα τεμάχιο προϊόντος το οποίο εξαρτάται από τον τύπο του προϊόντος και είναι γνωστό για κάθε μηχανή και για κάθε προϊόν. Ακόμη για κάθε μηχανή είναι γνωστός ο χρόνος που απαιτείται για να κατασκευαστεί ένα τεμάχιο για κάθε ένα από τα προϊόντα που παράγει το εργοστάσιο. Κάθε τεμάχιο προϊόντος που κατασκευάζεται επιβαρύνεται από ένα γνωστό κόστος που αφορά την πρώτη ύλη που θα χρησιμοποιηθεί ή κάποιους άλλους παράγοντες όπως ένα ενδεχόμενο κόστος προετοιμασίας, μεταφοράς κλπ. Να σχεδιαστεί και να υλοποιηθεί το λογισμικό το οποίο, όταν δοθεί μια παραγγελία στο εργοστάσιο, να υπολογίζει και να εκτυπώνει, για κάθε μηχανή, το κόστος και το χρόνο που θα χρειαστεί για να εκτελέσει την παραγγελία. Το λογισμικό να είναι ανεξάρτητο από τον αριθμό και τον τύπο των μηχανών που διαθέτει το εργοστάσιο και από τον αριθμό και τον τύπο των προϊόντων που θα κατασκευαστούν. Ως εφαρμογή να θεωρηθεί ότι το εργοστάσιο διαθέτει δύο μηχανές από τις οποίες η πρώτη λειτουργεί αυτόματα και για την οποία διαβάζεται, για κάθε τεμάχιο, το κόστος λειτουργίας της και ο χρόνος που θα απαιτηθεί για να το κατασκευάσει. Για τη δεύτερη μηχανή, την οποία χειρίζεται ένας εργάτης, διαβάζεται ο χρόνος, το κόστος και η αποζημίωση του εργάτη για την κατασκευή ενός τεμαχίου. Η παραγγελία που έφτασε στο εργοστάσιο αφορά δύο τύπους προϊόντων για κάθε έναν από τους οποίους διαβάζεται ο αριθμός των τεμαχίων που θα κατασκευαστούν. Για τον πρώτο τύπο διαβάζεται, για κάθε τεμάχιο, το κόστος της πρώτης ύλης που χρειάζεται για την κατασκευή του. Για το δεύτερο τύπο διαβάζεται, για κάθε τεμάχιο, το κόστος της πρώτης ύλης και ένα επιπλέων κόστος που απαιτείται για την προετοιμασία του προϊόντος η οποία χρειάζεται πριν αυτό κατασκευαστεί από τη μηχανή. Title: Re: [C++] 8η Εργασία 2008 Post by: stefos on December 09, 2008, 12:06:18 pm Μήπως είπε πόσες εργασίες μένουν για να τελειώσουμε;
Title: Re: [C++] 8η Εργασία 2008 Post by: Τσαμπίκα on December 09, 2008, 12:40:31 pm Ξέρει κανείς αν υπάρχει περίπτωση να γίνουν εργαστήρια την άλλη βδομάδα? ^beg^
Title: Re: [C++] 8η Εργασία 2008 Post by: Καμένος on December 09, 2008, 12:48:54 pm Αν γίνουν μαθήματα υπάρχει περίπτωση.
(Τι απάντηση περίμενες...?) Title: Re: [C++] 8η Εργασία 2008 Post by: N3ikoN on December 09, 2008, 13:21:01 pm τι εκφωνηση ειναι αυτη παλι...γιατι δεν μπορουμε να κανουμε ότι προγραμματιστικό πρέπει να κανουμε ,με απλα πραματα..κ το ταδε κοστος κ το παρ αλλο κοστος κ δε συμμαζευεται..βαρεθηκα..!
Title: Re: [C++] 8η Εργασία 2008 Post by: stefos on December 09, 2008, 16:09:44 pm τι εκφωνηση ειναι αυτη παλι...γιατι δεν μπορουμε να κανουμε ότι προγραμματιστικό πρέπει να κανουμε ,με απλα πραματα..κ το ταδε κοστος κ το παρ αλλο κοστος κ δε συμμαζευεται..βαρεθηκα..! Στο τέλος θα σου βάλει μια τέτοια εκφώνηση σίγουρα! Και θα πιάνει και τις περισσότερες μονάδες.. Title: Re: [C++] 8η Εργασία 2008 Post by: Grecs on December 09, 2008, 16:18:47 pm αυτη ειναι ιδια με την προηγουμενη ε? Ως προς τον τροπο λυσης
Title: Re: [C++] 8η Εργασία 2008 Post by: N3ikoN on December 09, 2008, 16:46:27 pm τι εκφωνηση ειναι αυτη παλι...γιατι δεν μπορουμε να κανουμε ότι προγραμματιστικό πρέπει να κανουμε ,με απλα πραματα..κ το ταδε κοστος κ το παρ αλλο κοστος κ δε συμμαζευεται..βαρεθηκα..! Στο τέλος θα σου βάλει μια τέτοια εκφώνηση σίγουρα! Και θα πιάνει και τις περισσότερες μονάδες.. δυστυχως το χω καταλαβει... το ειπε και μες την αιθουσα :P ενταξει , δεν ειναι οτι ειναι δυσκολη απο οτι ειδα, ειναι οτι πρεπει να συγκεντρωθεις αρκετα κ ν αφιερωσεις καποιες ωρουλες μαζεμενες γ ν το αποκρυπτογραφησεις και ν τ κανεις! Title: Re: [C++] 8η Εργασία 2008 Post by: Neal on December 09, 2008, 18:08:32 pm Με τον Κογτέση όγγα τα πεγιμένουμε.. :>
Title: Re: [C++] 8η Εργασία 2008 Post by: Sonic on December 09, 2008, 19:06:12 pm τι εκφωνηση ειναι αυτη παλι...γιατι δεν μπορουμε να κανουμε ότι προγραμματιστικό πρέπει να κανουμε ,με απλα πραματα..κ το ταδε κοστος κ το παρ αλλο κοστος κ δε συμμαζευεται..βαρεθηκα..! +10000 Title: Re: [C++] 8η Εργασία 2008 Post by: stefdth on December 12, 2008, 12:58:57 pm Μηπως χρειαζεται να κανουμε 2 κλασεις, μια για τις μηχανες και μια για τα προιοντα? :o
Title: Re: [C++] 8η Εργασία 2008 Post by: N3ikoN on December 12, 2008, 18:57:42 pm Μηπως χρειαζεται να κανουμε 2 κλασεις, μια για τις μηχανες και μια για τα προιοντα? :o κοίτα , αυτό που έκανα εγώ τουλάχιστον ήταν , μια κλάσση για τα προιόντα , οπου καταχωρούνταν οσοι τυποι υπηρχαν με τ ονοματα τους κ ποσα τεμαχια θελουμε..οποτε δε χρειαζοταν ν επεμβεις στο λογισμικο.. μετα έκανα μια βασική κλάσση για μηχανές , και δυο παραγόμενες , αφού τόσες ζητάει! τώρα αν γινεται κ αλλιως..δε ξερω! :) Title: Re: [C++] 8η Εργασία 2008 Post by: AgentCain on December 12, 2008, 19:35:04 pm Επίσης μπορείς να κάνεις κλάση μόνο για τις μηχανές και να βάλεις σαν static μεταβλητές πίνακες που να έχουν τα είδη των προϊόντων τη ποσότητα τους τα κόστη κτλ
Title: Re: [C++] 8η Εργασία 2008 Post by: ripper_george on December 13, 2008, 00:53:29 am Μα καλά, για την δημιουργία των αντικειμένων των διαφόρων κλάσεων, θα πρέπει να ορίζουμε τα αντικείμενα...
Άρα, είτε μεσα στην μαιν είτε μέσα σε μια υποσυνάρτηση θα πρέπει να ορίσουμε κάποια αντικείμενα, ακόμα και αν σε όλο το υπόλοιπο πρόγραμμα χρησιμοποιώ την βασική.... Π.χ. Έχω μία βασική την product και 2 παραγόμενες την product1 ,product2 που έχουν μία δυναμική συνάρτηση... Μπορώ να χειριστώ τα product1 ,product2, αλλά θα χρειαστεί κάπου στο πρόγραμμα να ορίσω κάτι τέτοιο: product1 Α product2 Β ακόμα και αν παρακάτω τα μετατρέψω στην βασική product.... Υπάρχει κάτι που μπορώ να κάνω για αυτό το πράγμα, ή τελικά θα χρειαστεί να ορίσω μία συνάρτηση που να ορίζει τα αντικείμενα, και μετά αν είναι να τα μετατρέψω στη βασική και να εκτελέσω τις virtual.... Όμως αν γίνει κάτι τέτοιο, αν θελήσεις να προσθέσεις μία ακόμη κλάση, δεν μπορείς απλά να την ορίσεις, αλλά θα πρέπει να τροποποιήσεις και την συνάρτηση που ορίζει τα αντικείμενα.... Εναλλακτικά αυτό που πέρασε απτό μυαλό μου είναι class σε class,... Π.χ. μία βασική κλάση product που περιέχει 2 πίνακες με product1 και product2, οι οποίοι θα δεσμεύονται δυναμικά... Και πάλι όμως αν θελήσεις να προσθέσεις κάποιο ακόμα αντικείμενο, θα πρέπει να επέμβεις στην βασική κλάση και να ορίσεις έναν ακόμα πίνακα.... Any help is deeply appreciated.... Title: Re: [C++] 8η Εργασία 2008 Post by: Grecs on December 13, 2008, 01:05:56 am εγω βασικα πιστευω μετα απο μια προσεχτικη αναγνωση οτι ειναι κλαση μεσα στην κλαση δλδ θα κανουμε για τις μηχανες μια βασικη και μετα παραγωμενες για καθε τυπο μηχανης και προϊοντων
και θα χρησιμοποιουμε στοιχεια των κλασεων των προιοντων μεσα στις κλασεις των μηχανων. Title: Re: [C++] 8η Εργασία 2008 Post by: ripper_george on December 13, 2008, 01:12:00 am Ναι αλλά τι γίνεται με το ότι δεν είναι πλήρως ανεξάρτητες οι νέες κλάσεις που ίσως θέλει να προσθέσει ο χρήστης???
Γίνεται με κλάση σε κλάση να έχουμε πλήρη ανεξαρτησία??? Επίσης, με τον 1ο τρόπο είναι δυνατό να έχουμε νέες κλάσεις πλήρως ανεξάρτητες??? Title: Re: [C++] 8η Εργασία 2008 Post by: Grecs on December 13, 2008, 01:21:20 am Μολις βρηκα την περσινη αντιστοιχη εργασια παιδια και ανεβαζω εκφωνηση και λυση
Title: Re: [C++] 8η Εργασία 2008 Post by: ripper_george on December 13, 2008, 01:24:04 am Είσαι ωραίος!!! :D :D :D
Title: Re: [C++] 8η Εργασία 2008 Post by: Grecs on December 13, 2008, 01:30:42 am Oριστε νομιζω ειναι ιδιο σκεπτικο το word ειναι εκφωνηση και το αλλο η λυση. Ειναι απο περυσι απο το site του ετημμυ
Title: Re: [C++] 8η Εργασία 2008 Post by: ripper_george on December 13, 2008, 01:46:38 am Γιαμ***ται ο Δίας, ρε φίλε!!!!
Της πουτ*νας γίνεται.... Πόση ώρα για να βγάλουμε άκρη.... Αυτό πάντως που παρατηρώ είναι ότι με κάθε νέα κλάση που εισάγει, ορίζει απευθείας και ένα universal αντικείμενο αυτής της κλάσης.... Αν κάνουμε και εμείς το ίδιο, τότε πιστεύω μπορούμε να λυσουμε το πρόβλημα του να ορίζουμε τα αντικείμενα για καθε κλάση σε συνάρτηση, και μπορούμε να μπούμε κατευθείαν στο επίπεδο των βασικών συναρτήσεων και της χρήσης των virtual. Όμως universal αντικείμενα-Μεταβλητές....???? Remarkable... Title: Re: [C++] 8η Εργασία 2008 Post by: Grecs on December 13, 2008, 02:21:02 am ε κλαιν ετσι και αλλιως 2 εργασιες δικαιουμαστε να μην παμε και ειναι η προτελευταια λογικα
Title: Re: [C++] 8η Εργασία 2008 Post by: N3ikoN on December 13, 2008, 17:01:17 pm Μα καλά, για την δημιουργία των αντικειμένων των διαφόρων κλάσεων, θα πρέπει να ορίζουμε τα αντικείμενα... Άρα, είτε μεσα στην μαιν είτε μέσα σε μια υποσυνάρτηση θα πρέπει να ορίσουμε κάποια αντικείμενα, ακόμα και αν σε όλο το υπόλοιπο πρόγραμμα χρησιμοποιώ την βασική.... Π.χ. Έχω μία βασική την product και 2 παραγόμενες την product1 ,product2 που έχουν μία δυναμική συνάρτηση... Μπορώ να χειριστώ τα product1 ,product2, αλλά θα χρειαστεί κάπου στο πρόγραμμα να ορίσω κάτι τέτοιο: product1 Α product2 Β ακόμα και αν παρακάτω τα μετατρέψω στην βασική product.... Υπάρχει κάτι που μπορώ να κάνω για αυτό το πράγμα, ή τελικά θα χρειαστεί να ορίσω μία συνάρτηση που να ορίζει τα αντικείμενα, και μετά αν είναι να τα μετατρέψω στη βασική και να εκτελέσω τις virtual.... αν κατάλαβα αυτό που είπες..στη μέιν δε χρειάζεται να ορίζεις καινούριο αντικείμενο για κάθε μηχανή.. απλώς όταν ορίζεις την ΄κλάσση(εξω απο τη μειν δλδ) ορίζει κ ένα αντικείμενο..το οποίο το βάζεις σε ένα πίνακα τύπου της βασικής κλάσσης..και έτσι έχεις ανεξαρτησία..δες το παράδειγμα mach1 στο υλικο μαθήματος..! Title: Re: [C++] 8η Εργασία 2008 Post by: ripper_george on December 14, 2008, 08:04:26 am Μα καλά, για την δημιουργία των αντικειμένων των διαφόρων κλάσεων, θα πρέπει να ορίζουμε τα αντικείμενα... Άρα, είτε μεσα στην μαιν είτε μέσα σε μια υποσυνάρτηση θα πρέπει να ορίσουμε κάποια αντικείμενα, ακόμα και αν σε όλο το υπόλοιπο πρόγραμμα χρησιμοποιώ την βασική.... Π.χ. Έχω μία βασική την product και 2 παραγόμενες την product1 ,product2 που έχουν μία δυναμική συνάρτηση... Μπορώ να χειριστώ τα product1 ,product2, αλλά θα χρειαστεί κάπου στο πρόγραμμα να ορίσω κάτι τέτοιο: product1 Α product2 Β ακόμα και αν παρακάτω τα μετατρέψω στην βασική product.... Υπάρχει κάτι που μπορώ να κάνω για αυτό το πράγμα, ή τελικά θα χρειαστεί να ορίσω μία συνάρτηση που να ορίζει τα αντικείμενα, και μετά αν είναι να τα μετατρέψω στη βασική και να εκτελέσω τις virtual.... αν κατάλαβα αυτό που είπες..στη μέιν δε χρειάζεται να ορίζεις καινούριο αντικείμενο για κάθε μηχανή.. απλώς όταν ορίζεις την ΄κλάσση(εξω απο τη μειν δλδ) ορίζει κ ένα αντικείμενο..το οποίο το βάζεις σε ένα πίνακα τύπου της βασικής κλάσσης..και έτσι έχεις ανεξαρτησία..δες το παράδειγμα mach1 στο υλικο μαθήματος..! ΣΩΣΤ! Title: Re: [C++] 8η Εργασία 2008 Post by: Anyparktos on December 14, 2008, 13:57:29 pm ε κλαιν ετσι και αλλιως 2 εργασιες δικαιουμαστε να μην παμε και ειναι η προτελευταια λογικα Καμία πιο σίγουρη πληροφορία έχουμε? :) Title: Re: [C++] 8η Εργασία 2008 Post by: Anyparktos on December 14, 2008, 18:51:17 pm Έχω μια μεγάλη απορία...Αφού για κάθε μηχανή έχουμε διαφορετικό κόστος για κάθε διαφορετικό προϊόν τότε σε κάθε παραγόμενη που αντιστοιχή σε διαφορετική μηχανή θα έχουμε ισάριθμες μετάβλητές με το πλήθος των διαφορετικών προϊόντων για να δείξουν το αντίστοιχο κόστος?Γιατί αν όντως είναι έτσι τότε δε μπορεί να δημιουργηθεί πρόγραμμα ανεξάρτητο του πλήθους των ειδών των προϊόντων.Ακατάληπτη εκφώνηση για άλλη μια φορά...
Title: Re: [C++] 8η Εργασία 2008 Post by: MARIOS on December 15, 2008, 16:24:43 pm Oριστε νομιζω ειναι ιδιο σκεπτικο το word ειναι εκφωνηση και το αλλο η λυση. Ειναι απο περυσι απο το site του ετημμυ Βασικά η περσινή ήταν πολύ μα πολύ πιο δύσκολη από αυτήν!!! Και πολύ μεγαλύτερη!!! Αυτή είναι στο ίδιο σκεπτικό με την προηγούμενη!!! Μια βασική,δύο παραγόμενες,δύο-τρεις virtual και έναν πίνακα με pointers στην βασική και βάζω όλα τα αντικείμενα των παραγωμένων στον pointer Βέβαια ο προγραμματισμός είναι art( :P )!!!Άρα μπορείς να κάνεις ότι θέλεις,όπως το θέλεις αρκεί να δουλεύει!!!(Τα κομμάτια για το καλύτερο λογισμικό κτλ περιττεύουν τώρα γιατί σήμερα παραδίdουμε!!!...:P) Title: Re: [C++] 8η Εργασία 2008 Post by: MARIOS on December 15, 2008, 16:30:17 pm Αυτό πιστεύω ότι είναι αλλά να ρωτήσω???
Το λογισμικό να είναι ανεξάρτητο από τον αριθμό και τον τύπο των μηχανών που διαθέτει το εργοστάσιο και από τον αριθμό και τον τύπο των προϊόντων που θα κατασκευαστούν. Ο τύπος μηχανών είναι η αυτόματη και χειριζόμενη από τον εργάτη!!! Άρα κάνουμε δύο παραγόμενες για τις δύο μηχανές!!! το ανεξάρτητη απο τον τύπο και τον αριθμό των προ'ι'όντων που θα κατασκευαστούν είναι να διαβάζει στην main πόσα αντικείμενα θα κάνει για την κάθε κλάση και να κάνει την αντίστοιχη δέσμευση μνήμης για τον pointer(malloc-new) ??? Title: Re: [C++] 8η Εργασία 2008 Post by: MARIOS on December 15, 2008, 16:48:43 pm Αναθεωρώ!!!!
Μετά απο προσεχτικότερη ανάγνωση είδα ότι θέλει ξεχωριστές κλάσεις για τις μηχανές και άλλες για τα προ'ι'όντα!!!! OOOOHHHHHHHHH SHIT Title: Re: [C++] 8η Εργασία 2008 Post by: mitsos_dlx on December 15, 2008, 18:38:31 pm Ναι αφού θέλει ανεξαρτησία και ως προς τις μηχανές και ως προς τα προϊόντα. Σαν την περσυνή είναι...
Τώρα μήπως ξέρει κανέις αν υπάρχει υπάρχει αντίστοιχη εντολή για την realloc στη C++? Όπως η new για την malloc... Title: Re: [C++] 8η Εργασία 2008 Post by: MARIOS on December 15, 2008, 20:55:55 pm void calculations(Mixanes *p,int x1,int x2){
int i; float sum1=0,sum2=0; for (i=x1;i<x2;i++){ sum1+=p(i)->kostos(); sum2+=p(i)->xronos(); } cout<<"to kostos einai:"<<sum1; cout<<"to xronos einai:"<<sum2; } int main(){ int n1,n2; Mixanes *M; Aytomati *A; Xeirizomeni *X; Mixanes::set_variables(); cin>>n1; cin>>n2; A=(Aytomati *)malloc(n1*sizeof(Aytomati)); if (!A) exit(1); X=(Xeirizomeni *)malloc(n2*sizeof(Xeirizomeni)); if (!X) exit(1); M=(Mixanes *)malloc((n1+n2)*sizeof(Mixanes)); if (!M) exit(1); int i; for (i=0;i<n1;i++) M(i)=&A(i); for (i=n1;i<n2;i++) M(i)=&X(i); cout<<"gia tin Aytomati mixani pieste 1 eno gia tin Xeirizomeni pieste 2"; int k; cin>>k; if (k==1) calculations(M,0,n1); else if(k==2) calculations(M,n1,n2); else cout<<"pliktrologisate lathos epilogi"; cout<<"pieste 0 ean theletai na termatisete to programma"; cin>>k; free(A); free(X); free(M); return 0; } Να σας πω, έχω κάποια προβλήματα με σηγκεκριμένα κομμάτια του κώδικα αυτού!!! 1) for (i=0;i<n1;i++) M(i)=&A(i); for (i=n1;i<n2;i++) M(i)=&X(i); Μου βγάζει : no match for 'operator=' in '*((+(((unsigned int)i) * 4u)) + M) = ((+(((unsigned int)i) * 12u)) + A)' και σαν note: note C:\Documents and Settings\dimiu\ÅðéöÜíåéá åñãáóßáò\H6273.cpp:7 candidates are: Mixanes& Mixanes::operator=(const Mixanes&) 2)for (i=x1;i<x2;i++){ sum1+=p(i)->kostos(); sum2+=p(i)->xronos(); } Μου βγάζει:base operand of `->' has non-pointer type `Mixanes' Ta p(i),M(i),A(i),X(i) einai stoixeia pinaka Title: Re: [C++] 8η Εργασία 2008 Post by: AgentCain on December 15, 2008, 21:34:33 pm Τώρα μήπως ξέρει κανέις αν υπάρχει υπάρχει αντίστοιχη εντολή για την realloc στη C++? Όπως η new για την malloc... Εφόσον χρησιμοποιείς new δεν υπάρχει κάτι ανάλογο της realloc. Κάποιοι αναφέρουν ότι η realloc δουλεύει με τη new αλλά γενικά δεν προτείνεται! Επίσης κάπου διάβασα κάτι για vector και διάφορες "μαστοριές". Χρησιμοποίησε το google ;) |