Title: [C++] Εργασία B (2011-12) Post by: Ναταλία on November 20, 2011, 04:25:03 am Άσκηση B Ένα εργοστάσιο πρόκειται να αγοράσει μια μηχανή με την οποία θα κατασκευάσει έναν αριθμό από τεμάχια ενός προϊόντος για το οποίο είναι γνωστό το κόστος των υλικών που απαιτούνται για την κατασκευή ενός τεμαχίου του. Στην αγορά υπάρχει μια σειρά από μηχανές, για κάθε μία από τις οποίες είναι γνωστός ο χρόνος που απαιτείται για την κατασκευή ενός τεμαχίου του προϊόντος, η ωριαία αμοιβή του χειριστή της και το ωριαίο κόστος λειτουργίας της (κατανάλωση ενέργειας). Κάθε μηχανή χρειάζεται συντήρηση μετά από έναν ορισμένο αριθμό τεμαχίων που θα κατασκευάσει ενώ είναι γνωστός ο χρόνος που η μηχανή δε θα παράγει κατά τη διάρκεια της συντήρησης καθώς και το κόστος της συντήρησης. Με σκοπό να επιλεγεί η μηχανή που θα αγοραστεί να γραφεί το λογισμικό το οποίο να ορίζει την κλάση machine η οποία να υλοποιεί μια μηχανή. Με τη δημιουργία αντικειμένων στον τύπο της κλάσης να διαβάζονται: α) Ένας ακέραιος ως ταυτότητα της μηχανής. β) Ο χρόνος που χρειάζεται η μηχανή για να κατασκευάσει ένα τεμάχιο. γ) Η ωριαία αμοιβή του χειριστή της μηχανής. δ) Ο αριθμός των τεμαχίων που μπορεί να κατασκευάσει η μηχανή μέχρι το επόμενο σέρβις. ε) Ο χρόνος που η μηχανή μένει εκτός παραγωγής κατά τη διάρκεια του σέρβις. ζ) Το κόστος του σέρβις. η) Το κόστος για την ανά ώρα λειτουργία της μηχανής (κόστος ενέργειας) Η κλάση να διαθέτει τις κατάλληλες συναρτήσεις μέλη για τον υπολογισμό του κόστους και του χρόνου που θα χρειαστούν για την κατασκευή από τη μηχανή ενός αριθμού από m τεμάχια του προϊόντος. Το λογισμικό να ορίζει τη συνάρτηση m_short(…) η οποία να δέχεται, ως όρισματα, έναν πίνακα από αντικείμενα στον τύπο της κλάσης machine και τον αριθμό των τεμαχίων του προϊόντος που θα παράγει το εργοστάσιο. Η συνάρτηση να ταξινομεί τον πίνακα των αντικειμένων κατά αύξουσα τάξη ως προς το χρόνο που απαιτείται για την κατασκευή των τεμαχίων. Στην περίπτωση που κάποιες μηχανές χρειάζονται τον ίδιο χρόνο για την κατασκευή, αυτές να ταξινομούνται και κατά αύξουσα τάξη ως προς το κόστος για την κατασκευή των τεμαχίων. Στη συνάρτηση, ως επιστρεφόμενη τιμή, να οριστεί ένα αντικείμενο στον τύπο της κλάσης machine το οποίο να είναι εκείνο από τα στοιχεία του πίνακα που θα έχει τον μικρότερο λόγο χρόνος /κόστος. Το λογισμικό να διαβάζει τον αριθμό n των μηχανών που υπάρχουν στην αγορά και να δεσμεύει δυναμικά μνήμη για n αντικείμενα στον τύπο της κλάσης machine. Στη συνέχεια αφού διαβάσει τον αριθμό m των τεμαχίων που πρόκειται να κατασκευαστούν και το κόστος των υλικών για την κατασκευή ενός τεμαχίου να καλεί τη συνάρτηση m_short(…) για να ταξινομήσει τον πίνακα των αντικειμένων και στη συνέχεια να εκτυπώσει, για τα αντικείμενα του ταξινομημένου πίνακα, το χρόνο, το κόστος και τον λόγο χρόνος /κόστος. Τέλος το πρόγραμμα να εκτυπώνει την ταυτότητα του αντικειμένου με τον μικρότερο λόγο χρόνος /κόστος. Βοηθητικές παρατηρήσεις: Να θεωρηθεί ότι κατά τη διάρκεια του σέρβις οι μηχανές εξακολουθούν να λειτουργούν καταναλώνοντας ενέργεια ενώ ο χειριστής τους θεωρείται ότι εργάζεται. Το λογισμικό να συμμορφώνεται με την αρχή της ενσωμάτωσης. Title: Re: [C++] Εργασία B (2011-12) Post by: Niobe on November 21, 2011, 03:28:28 am Και τωρα ερχομαι και ρωταω....
Δεν θα επρεπε να ειναι αυτο πρωτη εργασια edit : όχι έτσι Title: Re: [C++] Εργασία B (2011-12) Post by: Andre on November 21, 2011, 13:04:33 pm Και τωρα ερχομαι και ρωταω.... Δεν θα επρεπε να ειναι αυτο πρωτη εργασια edit : όχι έτσι Σίγουρα πάντως η προηγούμενη δε θα 'πρεπε να είναι! Μπορούμε να χρησιμοποιούμε τις εντολές new και delete αντί των συναρτήσεων malloc() κτλ? Δε ξέρω γιατί έχω κολλήσει μ' αυτό! Title: Re: [C++] Εργασία B (2011-12) Post by: rspappas on November 21, 2011, 18:32:56 pm οτι εχει διδαξει μπορεις να το χρησιμοποιησεις (εκτος και αν διευκρινιζει κατι δοαφορετικο στην εργασια)
Title: Re: [C++] Εργασία B (2011-12) Post by: princess_of_the_dawn on November 22, 2011, 02:52:02 am Quote Το λογισμικό να ορίζει τη συνάρτηση m_short(…) η οποία να δέχεται, ως όρισματα, έναν πίνακα από αντικείμενα στον τύπο της κλάσης machine και τον αριθμό των τεμαχίων του προϊόντος που θα παράγει το εργοστάσιο. Τί ακριβώς εννοεί;Title: Re: [C++] Εργασία B (2011-12) Post by: Andre on November 22, 2011, 14:39:37 pm Τί νόημα έχει ένα μέγεθος σα το λόγο χρόνος/κόστος; Αφού και τα δύο (χρόνος και κόστος) τα θέλουμε ελάχιστα, μία σταθερά που θα είχε νόημα θα μπορούσε να είναι το γινόμενό τους πχ.
EDIT: η εκτύπωση του χρόνου, του κόστους και του λόγου χρόνος/κόστος γίνεται από τη main ή την m_short(); EDIT2: Έτσι όπως το γράφει, νομίζω ότι θέλει η m_short() να εκτυπώνει τους χρόνους, τα κόστη και τον λόγο τους όλων των αντικειμένων, ενώ η main να εκτυπώνει την ταυτότητα της μηχανής με το μικρότερο λόγο. Title: Re: [C++] Εργασία B (2011-12) Post by: Ναταλία on November 22, 2011, 20:40:58 pm Τί νόημα έχει ένα μέγεθος σα το λόγο χρόνος/κόστος; Αφού και τα δύο (χρόνος και κόστος) τα θέλουμε ελάχιστα, μία σταθερά που θα είχε νόημα θα μπορούσε να είναι το γινόμενό τους πχ. EDIT: η εκτύπωση του χρόνου, του κόστους και του λόγου χρόνος/κόστος γίνεται από τη main ή την m_short(); μα οντως ειναι πολυ περιεργο!!! εγω το εβαλα να το εκτυπωνει η m_short! Title: Re: [C++] Εργασία B (2011-12) Post by: Ναταλία on November 22, 2011, 20:44:00 pm Quote Το λογισμικό να ορίζει τη συνάρτηση m_short(…) η οποία να δέχεται, ως όρισματα, έναν πίνακα από αντικείμενα στον τύπο της κλάσης machine και τον αριθμό των τεμαχίων του προϊόντος που θα παράγει το εργοστάσιο. Τί ακριβώς εννοεί;να μεταφερεις τον πινακα αντικειμενων που εχεις δημιουργησει στη main ως ορισμα στην m_short.. Title: Re: [C++] Εργασία B (2011-12) Post by: princess_of_the_dawn on November 22, 2011, 23:32:43 pm τα αντικείμενα αυτά η main θα τα διαβάζει ή θα δοθούν αυθαίρετα;
Title: Re: [C++] Εργασία B (2011-12) Post by: Ναταλία on November 23, 2011, 00:12:35 am τα αντικείμενα αυτά η main θα τα διαβάζει ή θα δοθούν αυθαίρετα; λογικα δημιουργουνται στη main με την εντολη user *a; οπου user η κλαση και *a ο πινακας των αντικειμενων! Title: Re: [C++] Εργασία B (2011-12) Post by: princess_of_the_dawn on November 23, 2011, 00:46:57 am αααααα
danke schon Title: Re: [C++] Εργασία B (2011-12) Post by: Andre on November 23, 2011, 01:06:17 am τα αντικείμενα αυτά η main θα τα διαβάζει ή θα δοθούν αυθαίρετα; λογικα δημιουργουνται στη main με την εντολη user *a; οπου user η κλαση και *a ο πινακας των αντικειμενων! Τί εννοείς δημιουργούνται; Πάντως ο κώδικας: user *a; δεν καλεί constructor. Δε δημιουργείται δηλαδή κάποιο αντικείμενο. Title: Re: [C++] Εργασία B (2011-12) Post by: pepper ann on November 23, 2011, 01:12:13 am τα αντικείμενα αυτά η main θα τα διαβάζει ή θα δοθούν αυθαίρετα; λογικα δημιουργουνται στη main με την εντολη user *a; οπου user η κλαση και *a ο πινακας των αντικειμενων! Τί εννοείς δημιουργούνται; Πάντως ο κώδικας: user *a; δεν καλεί constructor. Δε δημιουργείται δηλαδή κάποιο αντικείμενο. ίσα ίσα ο κονστράκτορ γι αυτό το λόγο υπάρχει. Από τη στιγμή που δηλώνεις το αντικείμενο καλείται η συνάρτηση αρχικών συνθηκων. έτσι μας είπαν τουλάχιστον.. Title: Re: [C++] Εργασία B (2011-12) Post by: Andre on November 23, 2011, 01:18:00 am τα αντικείμενα αυτά η main θα τα διαβάζει ή θα δοθούν αυθαίρετα; λογικα δημιουργουνται στη main με την εντολη user *a; οπου user η κλαση και *a ο πινακας των αντικειμενων! Τί εννοείς δημιουργούνται; Πάντως ο κώδικας: user *a; δεν καλεί constructor. Δε δημιουργείται δηλαδή κάποιο αντικείμενο. ίσα ίσα ο κονστράκτορ γι αυτό το λόγο υπάρχει. Από τη στιγμή που δηλώνεις το αντικείμενο καλείται η συνάρτηση αρχικών συνθηκων. έτσι μας είπαν τουλάχιστον.. Ναι αλλά (νομίζω) ότι δε δηλώνεις αντικείμενο με τον παραπάνω τρόπο. Το a είναι απλός ένας pointer σε αντικείμενο. Οι δηλώσεις των αντικειμένων θα γίνουν σε μια for. Τα αντικείμενά σου θα είναι τόσα όσα και οι μηχανές σου. (αν και μάλλον χρειάζεται -εγώ χρησιμοποίησα- ένα ακόμα αντικείμενο) Title: Re: [C++] Εργασία B (2011-12) Post by: τιρκουαζ στοκος on November 23, 2011, 02:22:03 am Δεν καλειται ο constructor σε αυτη την περιπτωση(user *a;). Θα τον καλουσαμε αν γραφαμε κατι της μορφης user a[5]; (το 5 ειναι τυχαιο)
Title: Re: [C++] Εργασία B (2011-12) Post by: teslaaaa on November 23, 2011, 12:52:59 pm Quote Το λογισμικό να ορίζει τη συνάρτηση m_short(…) η οποία να δέχεται, ως όρισματα, έναν πίνακα από αντικείμενα στον τύπο της κλάσης machine και τον αριθμό των τεμαχίων του προϊόντος που θα παράγει το εργοστάσιο. Τί ακριβώς εννοεί;να μεταφερεις τον πινακα αντικειμενων που εχεις δημιουργησει στη main ως ορισμα στην m_short.. αφου θα παρει σαν ορισμα τη διευθυνση του πρώτου στοιχείου του πίνακα (ο πινακας των αντικειμένων ειναι δυναμικα δεσμευμένος) πως θα γινει η ταξινομήση?δηλαδή πως θα ξερουμε τον αριθμο των μηχανων για το λουπ της ταξινόμησης εφοσον δεν πρεπει να ειναι όρισμα? Title: Re: [C++] Εργασία B (2011-12) Post by: kmaniac on November 23, 2011, 13:34:31 pm Πρέπει να μπει ως όρισμα.Εγώ πάντως δεν μπόρεσα να ταξινομήσω τα αντικείμενα.Δημιούργησα πίνακες όπου μετέφερα ταξινομένες τις τιμές χρόνου και αντιστοίχησα τα κόστη.
Title: Re: [C++] Εργασία B (2011-12) Post by: gmtms on November 23, 2011, 16:01:29 pm Αν τα στοιχεία κάθε μηχανής ήταν παμπλικ, θα μπορούσαν εύκολα να περαστούν σε μια τεμπ_μασιν έτσι ώστε να τρέξουμε κάποιου είδους μπαμπλσορτ για τον πίνακα μηχανών..
Αμφιβάλλω όμως αν μας επιτρέπεται (από τον Κορτέση) να τα έχουμε πάμπλικ (;) Title: Re: [C++] Εργασία B (2011-12) Post by: adianohtos on November 23, 2011, 17:15:10 pm Στη συνάρτηση m_shor(), ως επιστρεφόμενη τιμή, να οριστεί ένα αντικείμενο στον τύπο της κλάσης machine... Πώς το κάνουμε αυτό..; Καμιά ιδέα γιατί έχω κολλήσει... :-\
Title: Re: [C++] Εργασία B (2011-12) Post by: antonios on November 23, 2011, 17:32:08 pm Στη συνάρτηση m_shor(), ως επιστρεφόμενη τιμή, να οριστεί ένα αντικείμενο στον τύπο της κλάσης machine... Πώς το κάνουμε αυτό..; Καμιά ιδέα γιατί έχω κολλήσει... :-\ σκέψου το σαν να πρέπει να επιστρέψει έναν int... και μετά όπου έχεις γράψει το "int" αντικαθιστάς με το machine, αφού το είδος του αντικειμένου-μεταβλητής που θα επιστρέφει είναι machine.... Title: Re: [C++] Εργασία B (2011-12) Post by: adianohtos on November 23, 2011, 18:19:37 pm Τι τυπου θα ειναι η συναρτηση m_short?? return υποθετω θα κανω ενα pointer πουα θα δειχνει στο αντικειμενο... Ή οχι;
Title: Re: [C++] Εργασία B (2011-12) Post by: antonios on November 23, 2011, 18:47:25 pm Τι τυπου θα ειναι η συναρτηση m_short?? return υποθετω θα κανω ενα pointer πουα θα δειχνει στο αντικειμενο... Ή οχι; θα είναι τύπου machine και θα επιστρέφει ένα τέτοιο αντικείμενο, που θα το δηλώσεις μέσα στην συνάρτηση... Title: Re: [C++] Εργασία B (2011-12) Post by: adianohtos on November 23, 2011, 18:50:10 pm χμμ οκ θενξ :)
Title: Re: [C++] Εργασία B (2011-12) Post by: mafalda on November 24, 2011, 01:30:40 am O ακέραιος που δηλώνει την ταυτότητα της μηχανής θα πρέπει να δίνεται όταν δημιουργείται ο πίνακας με τα m αντικείμενα στην main ή θα ορίζεται στην συνάρτηση αρχικών συνθηκών (από τον χρήστη);
Ουσιαστικά θέλει απλά να λέμε "Η μηχανή νούμερο Χ είναι αυτή με κλπ.. ",όπου Χ={1,2,...m-1} ή μπορούμε να βάλουμε ό,τι αριθμό θέλουμε; Title: Re: [C++] Εργασία B (2011-12) Post by: Andre on November 24, 2011, 01:54:35 am O ακέραιος που δηλώνει την ταυτότητα της μηχανής θα πρέπει να δίνεται όταν δημιουργείται ο πίνακας με τα m αντικείμενα στην main ή θα ορίζεται στην συνάρτηση αρχικών συνθηκών (από τον χρήστη); Ουσιαστικά θέλει απλά να λέμε "Η μηχανή νούμερο Χ είναι αυτή με κλπ.. ",όπου Χ={1,2,...m-1} ή μπορούμε να βάλουμε ό,τι αριθμό θέλουμε; Εφόσον διαβάζεται από το χρήστη (την ώρα που εκτελείται ο constructor), μπορείς να βάλεις ό,τι θέλεις. Για διευκόλυνση όμως, όταν ελέγχεις αν το πρόγραμμά σου τρέχει σωστά, βάλε συνεχόμενους αριθμούς. Title: Re: [C++] Εργασία B (2011-12) Post by: Niobe on November 24, 2011, 15:05:31 pm βασικα να ρωτησω τα αντικειμενα πως τα δηλωνω στη μαιν αφου δεν υπαρχει δηλωση του στυλ machine[] η for ???
Title: Re: [C++] Εργασία B (2011-12) Post by: princess_of_the_dawn on November 24, 2011, 15:38:34 pm νομίζω τα δηλώνεις σε φάση machine *a,*β κτλ και μετά αφού μάθεις τον αριθμό των μηχανών κάνεις δυναμική δέσμευση μνήμης για τα αντικείμενα σε μια void συνάρτηση που θα υπάρχει στο public μέρος της κλάσης
Τουλάχιστον εγώ αυτό έκανα, αν είναι λάθος πείτε να το διορθώσω Title: Re: [C++] Εργασία B (2011-12) Post by: anchelon on November 24, 2011, 19:23:02 pm Μια λίγο βλακώδης ερώτηση:!
Έστω ότι έχουμε χρησιμοποιήσει constructor για να εκχωρήσουμε τα χαρακτηριστικά μιας μηχανής.Όταν δημιουργούμε πίνακα αντικειμένων τα αντικείμενα παιρνουν αυτοματα με τη σειρά τιμές ή πρέπει να εισάγω τις τιμές αμέσως μετά τη δήλωση??(δν ξέρω γιατί κόλλησα σε αυτή τη βλακεία) Title: Re: [C++] Εργασία B (2011-12) Post by: Kaelthas on November 24, 2011, 20:12:51 pm Και μια απορία απο μένα:
Η συνάρτηση m-short δεχεται σαν ορίσματα έναν πινακα μηχανών (πίνακας τύπου machine) και εναν interger για τον αριθμο των τεμαχίων που θα καταστευαστούν. Για την ταξινομηση όμως με βάση το κόστος σε περιπτωση που υπάρχει ισότητα στους χρονος, θα χρειαστώ και μία μεταβλητή για το κόστος υλικών κάθε τεμαχίου, αλλιώς δεν μπορώ να καλέσω την public συναρτηση της machine που υπολογίζει κοστος. Λάθος του Κορτέση ή δικό μου λάθος;;; Με μια προσθήκη στα ορίσματα της m_short λύνονται όλα τα προβλήματά μου... Τι λέτε να κάνω;;;; Title: Re: [C++] Εργασία B (2011-12) Post by: mafalda on November 24, 2011, 20:49:33 pm Και μια απορία απο μένα: Η συνάρτηση m-short δεχεται σαν ορίσματα έναν πινακα μηχανών (πίνακας τύπου machine) και εναν interger για τον αριθμο των τεμαχίων που θα καταστευαστούν. Για την ταξινομηση όμως με βάση το κόστος σε περιπτωση που υπάρχει ισότητα στους χρονος, θα χρειαστώ και μία μεταβλητή για το κόστος υλικών κάθε τεμαχίου, αλλιώς δεν μπορώ να καλέσω την public συναρτηση της machine που υπολογίζει κοστος. Λάθος του Κορτέση ή δικό μου λάθος;;; Με μια προσθήκη στα ορίσματα της m_short λύνονται όλα τα προβλήματά μου... Τι λέτε να κάνω;;;; Την συνάρτηση που υπολογίζει το κόστος μπορείς να την καλείς όταν είσαι στην main,μόλις μάθεις την τιμή των υλικών,και απλά αυτή να αποθηκεύει τις τιμές σε μεταβλητές που θα ορίσεις στην κλάση(πχ T_ολ,Σ_κοστος).Στην m_short μετά με κλασικές get_cost(),get_time() μπορείς να τις πάρεις... (ή τουλάχιστον έτσι το έκανα εγώ) Title: Re: [C++] Εργασία B (2011-12) Post by: Kaelthas on November 24, 2011, 20:55:46 pm Στην m_short μετά με κλασικές get_cost(),get_time() μπορείς να τις πάρεις... (ή τουλάχιστον έτσι το έκανα εγώ) ναι αλλα αυτό δεν σημαίνει πως αποθηκεύεις προσωρινά το συνολικό κόστος και χρόνο μέσα σε κάθε μηχανή; Για τον ορισμό της κλασης machine, μας ορισε στην εκφώνηση τι μεταβλητές θα έχει. Title: Re: [C++] Εργασία B (2011-12) Post by: mafalda on November 24, 2011, 21:17:08 pm Γενικά,σύμφωνα με τον Συμεωνίδη,αυτά που μας λέει είναι τα ελάχιστα που πρέπει να υπάρχουν,δεν αποκλείει την ύπαρξη άλλων συναρτήσεων/μεταβλητών κλπ...εκτός κι αν δεν κατάλαβα καλά...
Πάντως,τώρα που το παρατήρησα,η m_short,που ταξινιμεί τον πίνακα, θα πρέπει να παίρνει ως όρισμα και το n,το πλήθος των στοιχείων του πίνακα,σωστά; Πώς αλλιώς μπορεί να γίνει η ταξινόμιση; Title: Re: [C++] Εργασία B (2011-12) Post by: Kaelthas on November 24, 2011, 22:21:45 pm Πάντως,τώρα που το παρατήρησα,η m_short,που ταξινιμεί τον πίνακα, θα πρέπει να παίρνει ως όρισμα και το n,το πλήθος των στοιχείων του πίνακα,σωστά; Πώς αλλιώς μπορεί να γίνει η ταξινόμιση; ναι σε αυτό έχεις δίκιο και αναφέρεται στην εκφώνηση. Εγω πάντως σκέφτηκα το εξής: Το πρόγραμμα ζηταει απο τον user 3 πραματα. α) πληθος μηχανών, β) κόστος υλικών τεμαχίου γ) πλήθος τεμαχίων Στη συνέχεια ζητάει να καλέσεις μία συνάρτηση που επεξεργάζεται αυτά τα δεδομένα. Αρα θα πρέπει μαζί με τον πινακα να περιέχει κι αυτές τις μεταβλητές ως ορισματα Title: Re: [C++] Εργασία B (2011-12) Post by: mafalda on November 24, 2011, 22:42:36 pm Στην εκφώνηση πάντως λέει:
"Το λογισμικό να ορίζει τη συνάρτηση m_short(…) η οποία να δέχεται, ως όρισματα, έναν πίνακα από αντικείμενα στον τύπο της κλάσης machine και τον αριθμό των τεμαχίων του προϊόντος που θα παράγει το εργοστάσιο." Επομένως,αν θεωρήσουμε οτι αυτά είναι τα μόνα ορίσματα της m_shοrt,δεν μπορούμε να πάρουμε το πλήθος των μηχανών... Οπότε καταλήγουμε στο "κάνουμε ό,τι θέλουμε εξτρα, αρκεί να δουλεύει" μάλλον,αντί για το "ακολουθούμε ΠΙΣΤΑ τις οδηγείες,δηλώνοντας μόνο ό,τι μας ζητάει-κ κατά πάσα πιθανότητα δεν μπορούμε να κάνουμε το πρόγραμμα να δουλέψει";; Title: Re: [C++] Εργασία B (2011-12) Post by: eleni on November 24, 2011, 22:44:32 pm επειδή λιγάκι δυσκολεύομαι :'( πως ορίζω από τον πίνακα των αντικειμένων ότι θέλω να κάνω σύγκριση των χρόνων κατασκευής των τεμαχίων των αντικειμένων ? με χρήση pointer ή με την tmp? :(
Title: Re: [C++] Εργασία B (2011-12) Post by: Niobe on November 24, 2011, 23:19:47 pm επειδή λιγάκι δυσκολεύομαι :'( πως ορίζω από τον πίνακα των αντικειμένων ότι θέλω να κάνω σύγκριση των χρόνων κατασκευής των τεμαχίων των αντικειμένων ? με χρήση pointer ή με την tmp? :( φτιαξε συναρτησεις κλασης που να επιστρεφουν το χρονο και συγκρινε αυτες... edit:βασικα απλα ο πινακας οριζεται σε φαση machine *mac.... Title: Re: [C++] Εργασία B (2011-12) Post by: elen// on November 25, 2011, 20:08:44 pm αν και εχει αναφερθει και σε παλιοτερο ποστ εξακολουθω να μπερδευομαι...οταν λεει οτι η συναρτηση m short πρεπει να επιστρεφει ενα αντικειμενο, τοτε πρεπει να επιστρεφει το id αυτου του αντικειμενου η ολο το αντικειμενο??αν ειναι ολο το αντικειμενο πως γινεται αυτο??δηλαδη πχ αν δεν επιστρεφει τιποτα ειναι τυπου void ενω αν επιστρεφει αντικειμενο πως γραφεται??ευχαριστω
Title: Re: [C++] Εργασία B (2011-12) Post by: vagouras on November 25, 2011, 21:13:54 pm Στην εκφώνηση πάντως λέει: "Το λογισμικό να ορίζει τη συνάρτηση m_short(…) η οποία να δέχεται, ως όρισματα, έναν πίνακα από αντικείμενα στον τύπο της κλάσης machine και τον αριθμό των τεμαχίων του προϊόντος που θα παράγει το εργοστάσιο." Επομένως,αν θεωρήσουμε οτι αυτά είναι τα μόνα ορίσματα της m_shοrt,δεν μπορούμε να πάρουμε το πλήθος των μηχανών... Οπότε καταλήγουμε στο "κάνουμε ό,τι θέλουμε εξτρα, αρκεί να δουλεύει" μάλλον,αντί για το "ακολουθούμε ΠΙΣΤΑ τις οδηγείες,δηλώνοντας μόνο ό,τι μας ζητάει-κ κατά πάσα πιθανότητα δεν μπορούμε να κάνουμε το πρόγραμμα να δουλέψει";; Για να δούμε την διάσταση του πίνακα δεν υπάρχει άλλος τρόπος απο το να την περάσουμε μέσω των ορισμάτων.Εκτός αν την δηλώσουμε extern οπότε την βλέπει παντού,αλλά αυτό μόνο αντικειμενοστρεφής προγραμματισμός δεν είναι.Επίσης δεν γνωρίζω κάποια συνάρτηση όπως η strlen() που είναι για char,ώστε να μετρήσουμε έμμεσα το μέγεθος.Πιστεύω τα ορίσματα είναι μονόδρομος. Title: Re: [C++] Εργασία B (2011-12) Post by: adianohtos on November 25, 2011, 21:55:39 pm Απο ορισματα μπορουμε μια χαρα. Στο μαθημα ο Συμεωνιδης μας ειπε οτι οι εκφωνησεις των εργασιων αναγραφουν τις συναρτησεις κ τα ορισματα που πρεπει οπωσδηποτε να συμπεριληφθουν στον κωδικα(για να θεωρειται σωστος οταν εξεταζεται απο αυτους)... Απο εκει και περα προσθετουμε συναρτησεις, ορισματα κ οτι θελουμε για να δουλεψει το προγραμμα μας..!
Title: Re: [C++] Εργασία B (2011-12) Post by: adianohtos on November 25, 2011, 22:00:07 pm αν και εχει αναφερθει και σε παλιοτερο ποστ εξακολουθω να μπερδευομαι...οταν λεει οτι η συναρτηση m short πρεπει να επιστρεφει ενα αντικειμενο, τοτε πρεπει να επιστρεφει το id αυτου του αντικειμενου η ολο το αντικειμενο??αν ειναι ολο το αντικειμενο πως γινεται αυτο??δηλαδη πχ αν δεν επιστρεφει τιποτα ειναι τυπου void ενω αν επιστρεφει αντικειμενο πως γραφεται??ευχαριστω Η m_short θα δηλωθει ως machine m_short(....), και στο σωμα της θα εχει μια return paok; οπου paok ενα αντικειμενο τυπου machine που δημιουργηθηκε μεσα στην m_short(..) και περιεχει το αποτελεσμα που μας ζηταει στην εκφωνησηTitle: Re: [C++] Εργασία B (2011-12) Post by: Niobe on November 26, 2011, 14:44:57 pm Εχει καταλαβει κανεις αν οι εκτυπωσεις θα γινονται στην m_short η στη μαιν ???
>:( >:( Title: Re: [C++] Εργασία B (2011-12) Post by: teslaaaa on November 26, 2011, 15:34:56 pm Εχει καταλαβει κανεις αν οι εκτυπωσεις θα γινονται στην m_short η στη μαιν ??? στν main...στν m_short απλα θα κανεις επιστροφη του αντικειμενου με τ μικροτερο κοστος,χρονο η ο,τι αλλο ζητουσε>:( >:( Title: Re: [C++] Εργασία B (2011-12) Post by: Δον on November 26, 2011, 15:42:34 pm Παιδιά, μια ερώτηση.
Αν έχω ορίσεις ας πούμε μια συνάρτηση αρχικών συνθηκών και κάπου δεν θέλω να καλεστεί, υπάρχει καμιά εντολή που να με βοηθάει να το κάνω αυτό? Title: Re: [C++] Εργασία B (2011-12) Post by: Ναταλία on November 26, 2011, 15:49:20 pm Εχει καταλαβει κανεις αν οι εκτυπωσεις θα γινονται στην m_short η στη μαιν ??? >:( >:( το χρονο και το κοστος τα εβαλα να τα εκτυπωνει η m_short ενω το id της μηχανης η main! μπλα μπλα να καλεί τη συνάρτηση m_short(…) για να ταξινομήσει τον πίνακα των αντικειμένων και στη συνέχεια να εκτυπώσει, για τα αντικείμενα του ταξινομημένου πίνακα, το χρόνο, το κόστος και τον λόγο χρόνος /κόστος.. δεν το ξεκαθαριζει και πολυ.... :S Title: Re: [C++] Εργασία B (2011-12) Post by: 4Dcube on November 26, 2011, 16:42:15 pm Παιδιά, μια ερώτηση. η malloc δεν καλεί τους constructorsΑν έχω ορίσεις ας πούμε μια συνάρτηση αρχικών συνθηκών και κάπου δεν θέλω να καλεστεί, υπάρχει καμιά εντολή που να με βοηθάει να το κάνω αυτό? η new ναι πέρα από αυτό. υπάρχει η τεχνική overloading constructors δηλαδή έχεις μια κλάση με έναν κονστράκτορ Code: class machine{ Code: class machine{ Code: machine a(1); Title: Re: [C++] Εργασία B (2011-12) Post by: pepper ann on November 26, 2011, 17:00:10 pm Title: Re: [C++] Εργασία B (2011-12) Post by: pepper ann on November 26, 2011, 22:20:42 pm τα αντικείμενα αυτά η main θα τα διαβάζει ή θα δοθούν αυθαίρετα; λογικα δημιουργουνται στη main με την εντολη user *a; οπου user η κλαση και *a ο πινακας των αντικειμενων! Τί εννοείς δημιουργούνται; Πάντως ο κώδικας: user *a; δεν καλεί constructor. Δε δημιουργείται δηλαδή κάποιο αντικείμενο. ίσα ίσα ο κονστράκτορ γι αυτό το λόγο υπάρχει. Από τη στιγμή που δηλώνεις το αντικείμενο καλείται η συνάρτηση αρχικών συνθηκων. έτσι μας είπαν τουλάχιστον.. Ναι αλλά (νομίζω) ότι δε δηλώνεις αντικείμενο με τον παραπάνω τρόπο. Το a είναι απλός ένας pointer σε αντικείμενο. Οι δηλώσεις των αντικειμένων θα γίνουν σε μια for. Τα αντικείμενά σου θα είναι τόσα όσα και οι μηχανές σου. (αν και μάλλον χρειάζεται -εγώ χρησιμοποίησα- ένα ακόμα αντικείμενο) μπούρδες έλεγα Title: Re: [C++] Εργασία B (2011-12) Post by: gr3gory on November 26, 2011, 22:43:15 pm σε Dev C++
έχω class machine {..} και στη main machine *machs; if ( machs= (machine *)malloc(n*sizeof(machine)))==NULL ) Μου βγάζει expected primary-expression before '==' token expected `;' before ')' token τι λάθος έχω στη συνθήκη; Μπορεί να είναι και προφανές αλλά δεν είμαι σε φάση.. :P Title: Re: [C++] Εργασία B (2011-12) Post by: anchelon on November 26, 2011, 23:20:16 pm Έστω ότι έχω δημιουργήσει μια συνθήκη αρχικων συνθηκών η οποία διαβάζει στοιχεία μηχανής.Όταν δημιουργώ τν πίνακα αντικειμένων ο constructor εκτελειται αυτόματα για κάθε αντικείμενο και διαβάζει τα στοιχεία της καθε μηχανής.Επομένως δν χρειαζεται με κάποιο "for" να διαβάσω ξεχωριστά τα στοιχεία της μηχανής.Σωστά??Πείτε μου αν έχω λάθος please γιατί ο combiler χτυπάει άσχημα :(
Title: Re: [C++] Εργασία B (2011-12) Post by: pentium4 on November 26, 2011, 23:31:55 pm σε Dev C++ έχω class machine {..} και στη main machine *machs; if ( machs= (machine *)malloc(n*sizeof(machine)))==NULL ) Μου βγάζει expected primary-expression before '==' token expected `;' before ')' token τι λάθος έχω στη συνθήκη; Μπορεί να είναι και προφανές αλλά δεν είμαι σε φάση.. :P αμα το κανεις if ( (machs= (machine *)malloc(n*sizeof(machine)))==NULL ) Title: Re: [C++] Εργασία B (2011-12) Post by: 4Dcube on November 26, 2011, 23:32:39 pm σε Dev C++ νομίζω σου λείπει μια παρένθεση μετά το ιφέχω class machine {..} και στη main machine *machs; if ( machs= (machine *)malloc(n*sizeof(machine)))==NULL ) Μου βγάζει expected primary-expression before '==' token expected `;' before ')' token τι λάθος έχω στη συνθήκη; Μπορεί να είναι και προφανές αλλά δεν είμαι σε φάση.. :P ωπ με πρόλαβαν Έστω ότι έχω δημιουργήσει μια συνθήκη αρχικων συνθηκών η οποία διαβάζει στοιχεία μηχανής.Όταν δημιουργώ τν πίνακα αντικειμένων ο constructor εκτελειται αυτόματα για κάθε αντικείμενο και διαβάζει τα στοιχεία της καθε μηχανής.Επομένως δν χρειαζεται με κάποιο "for" να διαβάσω ξεχωριστά τα στοιχεία της μηχανής.Σωστά??Πείτε μου αν έχω λάθος please γιατί ο combiler χτυπάει άσχημα :( ο κοντστρακτορ εκτελείται για κάθε αντικείμενο, σωστάαλλά πρόσεχε, η μαλλοκ δεν ξεκινάει τον κονστράκτορ Title: Re: [C++] Εργασία B (2011-12) Post by: anchelon on November 26, 2011, 23:54:49 pm Άρα με μια new είμαστε καλά!χωρίς new δν γινεται?(και χωρίς for)
Title: Re: [C++] Εργασία B (2011-12) Post by: christineL on November 27, 2011, 00:02:36 am Γίνεται. Εγώ έφτιαξα ένα νέο αντικείμενο στην κλάση machine , το οποίο το δήλωσα μέσα σε ένα for,και μέσα στο for αποθηκεύω τα στοιχεία που εισήγαγε ο χρήστης στο νέο αντικείμενο στην i-οστή θέση του πίνακα.
Title: Re: [C++] Εργασία B (2011-12) Post by: gr3gory on November 27, 2011, 00:02:45 am αμα το κανεις if ( (machs= (machine *)malloc(n*sizeof(machine)))==NULL ) fail. Τόση ώρα το κοιτούσα και δεν το είδα.. :o Title: Re: [C++] Εργασία B (2011-12) Post by: anchelon on November 27, 2011, 00:04:00 am Γίνεται. Εγώ έφτιαξα ένα νέο αντικείμενο στην κλάση machine , το οποίο το δήλωσα μέσα σε ένα for,και μέσα στο for αποθηκεύω τα στοιχεία που εισήγαγε ο χρήστης στο νέο αντικείμενο στην i-οστή θέση του πίνακα. Να'σαι καλά ευχαριστώ! :) :)Title: Re: [C++] Εργασία B (2011-12) Post by: Earendil on November 27, 2011, 22:07:20 pm m_sHort απο το sΗorting, εξου και bubblesort,quicksort κτλπα
blast from the past: συναρτηση calk , απο το calkulate! Title: Re: [C++] Εργασία B (2011-12) Post by: zisis00 on November 27, 2011, 23:21:37 pm m_sHort απο το sΗorting, εξου και bubblesort,quicksort κτλπα blast from the past: συναρτηση calk , απο το calkulate! ΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΗΑΗΑΗΑΗΑΗΑΗΑΗΑΗΑ ΗΑΗΑ Εdit: Μην ξεχνάς τις ατέρμωνες (οικολογικές) ανακυκλώσεις στην εργασία Α :P |