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

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

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

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

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

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

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

Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33: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]

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

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

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

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

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

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

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426689
Total Topics: 31710
Online Today: 200
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 83
Guests: 99
Total: 182
diamantis
Local Rider
lefterish
Captain
giorgos_skl
Bill g
giannisdomu
asemas
mimaki
Spyrtos14
TMNF pro
folas
nikpamp
george polymeros
ඞ
pxanthob
mkoutsouk
apapagd
abiki
drimagm
oak456
johnmout
angelos
evgeniaz
savvastzan
MikriTulipa
mrotskos
Kv
Apostolos adam
mark
antwnis
pliroforikarios
Notac
Vromofona Kathikia
ioannisfa
Νικηφόρος Πατσιούρας
nikos.a
harischris
kmargaritis
Billyskotsikas
dem05
DimKaratzas
evtrents
Leftor
okatapo
Zoifouka
dimant
DLHERRO
Fotis Roukoutakis
Stathiss
salonikios
Arsen
marilita
Sotirisbikos
stefpapa21
dirac1
chris s
Emilios
fpapat
koulikas
gmout
Fenia04
xanthosp
chatzikys
msandr
theodorevic
Louisa
panapasc05
soph553
vpoug
IBOURAS
idchatzi
Nekt
kstavroulis
despoina15
aachmet
Εμφάνιση

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

Νέα!
  Όταν ανεβάζουμε φωτογραφίες στις Ανακοινώσεις και Έκτακτα νέα, βάζουμε τη μεγαλύτερη πλευρά 400 (width=400 ή height=400 ). π.χ. [img height=400 (κλείνει η αγκύλη) 
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 ... 6 Go Down Print
Author Topic: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01  (Read 10443 times)
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
[C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« on: December 13, 2012, 20:15:25 pm »

Συζήτηση και απορίες για την έκτη εργασία. Να μένετε εντός θέματος.

Άσκηση F
Μια παραγγελία που έφτασε σε ένα χυτήριο αποτελείται από έναν αριθμό τεμαχίων τα οποία χωρίζονται σε κατηγορίες ανάλογα με το σχήμα τους ενώ τα τεμάχια κάθε κατηγορίας χωρίζονται σε ομάδες ανάλογα με τις διαστάσεις τους. Για κάθε τεμάχιο έχει οριστεί μια τιμή πώλησης από την οποία, για να υπολογιστεί το τελικό κέρδος, αφαιρείται το κόστος του μετάλλου που θα χρησιμοποιηθεί.

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

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

Να γραφεί το λογισμικό στο οποίο να ορίζονται:
α) Η κλάση metal τα αντικείμενα της οποίας να υλοποιούν τα διάφορα μέταλλα που υπάρχουν στο χυτήριο. Με τη δημιουργία αντικειμένων στον τύπο της κλάσης να διαβάζονται η ποσότητα, το ειδικό βάρος και η αξία μιας μονάδας βάρους του μετάλλου.
β) Για κάθε κατηγορία τεμαχίων να οριστεί και μία κλάση η οποία να υλοποιεί τα τεμάχια της κατηγορίας. Κάθε αντικείμενο στον τύπο της κλάσης να ορίζει μια ομάδα για την οποία να διαβάζονται οι διαστάσεις και ο αριθμός των τεμαχίων που την αποτελούν.
γ) Η παραμετρική (template) κλάση product η οποία να δέχεται, ως παράμετρο, τον τύπο μιας κλάσης η οποία ορίζει μια κατηγορία τεμαχίων. Στην κλάση να ορίζεται ένας pointer στον τύπο της παραμέτρου ο οποίος να χρησιμοποιείται από τη συνάρτηση αρχικών συνθηκών της κλάσης για να δεσμευτεί δυναμικά μνήμη για έναν πίνακα από αντικείμενα στον τύπο της κλάσης που δόθηκε ως παράμετρος. Ο αριθμός των αντικειμένων του πίνακα να διαβάζεται από την ίδια συνάρτηση.
Στην κλάση να ορίζεται ακόμη η συνάρτηση b_short() η οποία να ταξινομεί τα αντικείμενα του πίνακα κατά φθίνουσα τάξη της τιμής πώλησης των τεμαχίων των αντίστοιχών ομάδων. Η συνάρτηση να επιστρέφει τη διεύθυνση του ταξινομημένου πίνακα.
δ) Η παραμετρική (template) συνάρτηση production() η οποία να δέχεται ως παράμετρο, τον τύπο μιας κλάσης η οποία ορίζει μια κατηγορία τεμαχίων. Η συνάρτηση να δέχεται ως όρισμα έναν pointer στον τύπο της παραμέτρου ο οποίος να δείχνει σε έναν πίνακα από αντικείμενα στον τύπο της παραμέτρου.

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

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

Ως εφαρμογή να οριστούν οι κλάσεις cylinder και cube οι οποίες να ορίζουν κατηγορίες τεμαχίων με σχήμα κυλίνδρου και κύβου αντίστοιχα. Για κάθε αντικείμενο στον τύπο αυτών των κλάσεων να διαβάζονται οι διαστάσεις και ο αριθμός των τεμαχίων που θα αποτελούν την αντίστοιχη ομάδα.

Η συνάρτηση main() του προγράμματος, αφού ορίσει έναν πίνακα ο οποίος να περιέχει αντικείμενα που να υλοποιούν τα μέταλλα που υπάρχουν στο χυτήριο, να ορίζει ένα αντικείμενο στον τύπο της κλάσης product με παράμετρο τον τύπο cylinder και ένα αντικείμενο στον τύπο της ίδιας κλάσης με παράμετρο τον τύπο cube. Στη συνέχεια, αφού καλέσει τη συνάρτηση b_short() για κάθε ένα από τα αντικείμενα αυτά, να καλέσει τη συνάρτηση production() πρώτα για τον πίνακα με στοιχεία τύπου cylinder που επέστρεψε η b_short() και στη συνέχεια να καλέσει ξανά την production() για τον πίνακα με στοιχεία τύπου cube που επέστρεψε η δεύτερη κλήση της b_short(). Σε κάθε περίπτωση το πρόγραμμα να εκτυπώνει το καθαρό κέρδος που θα υπάρχει από την πώληση των τεμαχίων που κατασκευάστηκαν
 
Βοηθητικές παρατηρήσεις:
Τα τεμάχια που ανήκουν σε μία κατηγορία έχουν όλα το ίδιο σχήμα.
Τα τεμάχια που αποτελούν μια ομάδα έχουν όλα τις ίδιες διαστάσεις. Τεμάχια με ίδιο σχήμα αλλά διαφορετικές διαστάσεις ανήκουν στην ίδια κατηγορία αλλά σε διαφορετικές ομάδες.
« Last Edit: January 07, 2013, 16:57:54 pm by Exomag » Logged

c0ndemn3d
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Posts: 4804


Yarr!


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #1 on: December 19, 2012, 16:39:56 pm »

Θέλει να τη λύσουμε με ανεξαρτησία, έτσι;
Logged

In response, the pirates had to adhere to a doctrine of their own...
war against the world

They took my home, I can't walk away from that; can you?
 Forget me, forget Teach, forget loyalty, compacts, honours, debts, all of it.
The only question that matters is this: Who are you?
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #2 on: December 28, 2012, 00:50:19 am »

Quote from: goddamned on December 19, 2012, 16:39:56 pm
Θέλει να τη λύσουμε με ανεξαρτησία, έτσι;

Ο Συμεωνίδης είπε πως χρειάζεται ανεξαρτησία συνάρτησης (που θα επιτευχθεί μέσω templates), αλλά όχι ανεξαρτησία λογισμικού.

ΥΓ: By far, η χειρότερη εκφώνηση μέχρι τώρα
Logged

thanospr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #3 on: December 28, 2012, 16:53:48 pm »

Οι κλασεις cylinder και cube ειναι public παραγομενες της metal;
Logged
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #4 on: December 28, 2012, 17:27:15 pm »

Quote from: thanospr on December 28, 2012, 16:53:48 pm
Οι κλασεις cylinder και cube ειναι public παραγομενες της metal;

Όχι, δεν έχουν καμία σχέση (από άποψη inheritance) με την κλάση metal.
Logged

heavy melon
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1386


making things complex


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #5 on: December 29, 2012, 00:16:43 am »

ξέρουμε αν είναι η τελευταία κωλοεργασία;
πείτε μου ναι, να πάρω κουράγιο  Roll Eyes
Logged

Μη γκρινιάζεις που δε σου 'ρθε η ζαριά
τζογάρισες στο όνειρο κι είσαι έτοιμος για όλα
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #6 on: December 29, 2012, 01:05:21 am »

Quote from: ~Irida~ on December 29, 2012, 00:16:43 am
ξέρουμε αν είναι η τελευταία κωλοεργασία;
πείτε μου ναι, να πάρω κουράγιο  Roll Eyes

Νομίζω πως θα έχει άλλη μία, τουλάχιστον Sad Sad
Logged

manos
Νεούλης/Νεούλα
*
Posts: 44


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #7 on: December 29, 2012, 15:18:02 pm »

Κατάλαβε κανείς πως υπολογίζεται η τιμή μιας ομάδας?
Logged
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #8 on: December 29, 2012, 15:31:11 pm »

Εξήγησε τι ακριβώς εννοείς, λέει πουθενά στην εκφώνηση για "τιμή μιας ομάδας" ?
Logged

Marco
Καταξιωμένος/Καταξιωμένη
***
Posts: 226



View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #9 on: December 29, 2012, 18:02:45 pm »

Quote from: Exomag on December 29, 2012, 01:05:21 am
Quote from: ~Irida~ on December 29, 2012, 00:16:43 am
ξέρουμε αν είναι η τελευταία κωλοεργασία;
πείτε μου ναι, να πάρω κουράγιο  Roll Eyes

Νομίζω πως θα έχει άλλη μία, τουλάχιστον Sad Sad
Άλλη μία μόνο ...γιατί μετά αρχίζει η εξεταστική.

*βγάλε την τελευταία βδομάδα μαθημάτων που θα γίνουν και τα τελευταία εργαστήρια.
Logged
manos
Νεούλης/Νεούλα
*
Posts: 44


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #10 on: December 29, 2012, 18:09:25 pm »

Quote from: Exomag on December 29, 2012, 15:31:11 pm
Εξήγησε τι ακριβώς εννοείς, λέει πουθενά στην εκφώνηση για "τιμή μιας ομάδας" ?



Η εκφώνηση της άσκησης λέει:

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

Δηλαδή την τιμή κάθε ομάδας μιας κατηγορίας θα την ορίσουμε εμείς;Και η τιμή θα εξαρτάται από το είδος του μετάλλου που θα χρησιμοποιηθεί για την κατασκευή της ομάδας ή μόνο από τις διαστάσεις των τεμαχίων της ομάδας;
Logged
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #11 on: December 29, 2012, 18:35:46 pm »

Quote from: manos on December 29, 2012, 18:09:25 pm
Για κάθε τεμάχιο έχει οριστεί μια τιμή πώλησης
Αυτό το διαβάζεις από τον χρήστη (σταθερή τιμή για κάθε τεμάχιο μιας συγκεκριμένης ομάδας).

Quote from: manos on December 29, 2012, 18:09:25 pm
το κόστος του μετάλλου που θα χρησιμοποιηθεί.
Αυτό εξαρτάται από την αξία του μετάλλου που θα χρησιμοποιηθεί, αλλά και από τον όγκο του τεμαχίου που θα δημιουργηθεί.

Τελικά: Καθαρό Κέρδος = Τιμή Πώλησης - Κόστος Μετάλλου
Logged

thanospr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #12 on: December 29, 2012, 19:02:17 pm »

Αν εχω καταλαβει καλα η παραμετρικη product θα δεσμευει μνημη για ενα πινακα απο κ αντικειμενα τυπου cylinder π.χ. και το κ θα το δινουμε μεσα στην Σ.Α.Σ..Με τις ομαδες καθε κατηγοριας δεν εχω καταλαβει τι παιζει...
Logged
Halfpenny
Ανερχόμενος/Ανερχόμενη
**
Posts: 51


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

Και εγώ δεν καταλαβαίνω πως θα γίνει αυτό με τις ομάδες. Λέει σε κάποιο σημείο

Quote
Κάθε αντικείμενο στον τύπο της κλάσεων (που έχουν δημιουργηθεί για κάθε κατηγορία τεμαχίων) να ορίζει μια ομάδα για την οποία να διαβάζονται οι διαστάσεις και ο αριθμός τεμαχίων που την αποτελούν

και αναφέρει επίσης στις βοηθητικές παρατηρήσεις:

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

Δεν μπορώ να καταλάβω πως θα υλοποιήσω μια τέτοια υποκατηγοριοποίηση. Το να ορίζει κάθε αντικείμενο μια ομάδα, μπορώ να το φανταστώ, αλλά θέλει κάθε αντικείμενο να ελέγχει πρώτα από τις διαστάσεις του αν υπάρχει ήδη τέτοια ομάδα δημιουργημένη για να το εντάξει σε αυτήν ?? αυτό δεν μπορώ να το καταλάβω.. Πως γίνεται να υλοποιήσουμε την δημιουργία των ομάδων?
Logged
manos
Νεούλης/Νεούλα
*
Posts: 44


View Profile
Re: [C++] Άσκηση F - 2012/2013 - Προθεσμία 06/01
« Reply #14 on: December 29, 2012, 19:33:32 pm »

Quote from: Exomag on December 29, 2012, 18:35:46 pm
Quote from: manos on December 29, 2012, 18:09:25 pm
Για κάθε τεμάχιο έχει οριστεί μια τιμή πώλησης
Αυτό το διαβάζεις από τον χρήστη (σταθερή τιμή για κάθε τεμάχιο μιας συγκεκριμένης ομάδας).

Quote from: manos on December 29, 2012, 18:09:25 pm
το κόστος του μετάλλου που θα χρησιμοποιηθεί.
Αυτό εξαρτάται από την αξία του μετάλλου που θα χρησιμοποιηθεί, αλλά και από τον όγκο του τεμαχίου που θα δημιουργηθεί.

Τελικά: Καθαρό Κέρδος = Τιμή Πώλησης - Κόστος Μετάλλου



Δηλαδή η τιμή ενός τεμαχίου μιας ομάδας θα είναι ανεξάρτητη από το μέταλλο από το οποίο θα κατασκευαστεί?Μου φαίνεται κάπως παράλογο.
Logged
Pages: [1] 2 3 ... 6 Go Up Print
Jump to:  

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