3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

Σχετικά έγγραφα
4 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 6 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 6 η

ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΑΣΚΗΣΗ

2 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ Κλάσεις, Αντικείμενα & Δομητές (Constructors)

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΑΣΚΗΣΗ

4 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ (επανάληψη στη γλώσσα C & εισαγωγή στη γλώσσα C++)

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

2 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ (επανάληψη στη γλώσσα C & εισαγωγή στη γλώσσα C++)

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Μεθόδων Επίλυσης Προβλημάτων

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΑΕΠΠ 6o Επαναληπτικό Διαγώνισμα

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

Διαδικασιακός Προγραμματισμός

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Δομημένος Προγραμματισμός

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στον Προγραμματισμό με C++

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

Διαδικασιακός Προγραμματισμός

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

Προγραμματισμός ΙI (Θ)

12. Συναρτήσεις (Μέρος ΙI)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ομή Επανάληψης

ΕΚΦΩΝΗΣΕΙΣ. β. Να γράψετε αναλυτικά τα μειονεκτήματα της χρήσης των πινάκων. γ. Να γράψετε ονομαστικά τις τυπικές επεξεργασίες των πινάκων.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Προγραμματισμός Η/Υ (ΤΛ2007 )

Να το ξαναγράψετε χρησιμοποιώντας αντί για την εντολή Για Τέλος_επανάληψης: α. την εντολή Όσο Τέλος_επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ

Α1. Να γράψετε τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη.

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2015 Β ΦΑΣΗ ÁÈÇÍÁ ΕΚΦΩΝΗΣΕΙΣ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Α.3 Να αναφέρετε τα πλεονεκτήματα του δομημένου προγραμματισμού (Μον. 6)

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ Γ ΗΜΕΡΗΣΙΩΝ

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

ΑΡΧΗ 2ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ Γ ΗΜΕΡΗΣΙΩΝ

Εισαγωγή στην πληροφορική

Δομές Επανάληψης. Εισαγωγή στη C++

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αντικειμενοστρεφής Προγραμματισμός

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ Γ ΗΜΕΡΗΣΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ Γ ΗΜΕΡΗΣΙΩΝ

καθώς και το παρακάτω τμήμα αλγορίθμου γραμμένο σε «ΓΛΩΣΣΑ»:

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

γραπτή εξέταση στo μάθημα ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ' ΛΥΚΕΙΟΥ

Κλάσεις και αντικείμενα #include <iostream.h<

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ


Προγραμματισμός ΙI (Θ)

ΔΕΟ13 - Επαναληπτικές Εξετάσεις 2010 Λύσεις

Εργαστήριο 3 Εντολή for while, do while

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Θέμα Α

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Πίνακες (Arrays) Εισαγωγή στη C++

Χρονικές σειρές 4 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ

Η άσκηση μπορεί να γίνει με συνεργασία το πολύ δυο φοιτητών, οι οποίοι θα λάβουν τον ίδιο βαθμό στην εργασία.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Υλοποίηση Εφαρμογής Εστιατορίου (take-away)

Εισαγωγή στην πληροφορική

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΘΕΜΑ 1 ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ 3 ΩΡΕΣ

ΑΣΚΗΣΕΙΣ ΔΥΝΑΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

Transcript:

Δημοκρίτειο Πανεπιστήμιο Θράκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2016-2017 Τομέας Συστημάτων Παραγωγής Εξάμηνο Γ Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης 29 ΝΟΕ 2016 ΜΑΘΗΜΑ : ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΑΣΚΗΣΗ - 1 Να δημιουργήσετε ένα header file με όνομα "statistics.h" καθώς και το αντίστοιχο αρχείο υλοποίησης (implementation file) "statistics.cpp" που θα περιέχουν τις συναρτήσεις "average(...)" και "standard_deviation(...)". Οι συναρτήσεις θα πρέπει να επιστρέφουν τη μέση τιμή και την τυπική απόκλιση Ν αριθμών τύπου double (περισσότερες πληροφορίες να αντλήσετε από την Άσκηση 9 του 1 ου Φυλλαδίου Ασκήσεων). Να δημιουργήσετε ένα header file με όνομα "random.h" καθώς και το αντίστοιχο αρχείο υλοποίησης ( implementation file) "random.cpp" που θα περιέχουν τις συναρτήσεις "create_random( )" και "print_random( )". Οι συναρτήσεις θα δημιουργούν και θα εμφανίζουν τυχαίους αριθμούς τύπου double στο διάστημα [a,b] (περισσότερες πληροφορίες να αντλήσετε από τις Ασκήσεις 10 και 11 του 1 ου Φυλλαδίου). Στη συνέχεια να γράψετε ένα πρόγραμμα που θα δημιουργεί τυχαίους αριθμούς και θα εμφανίζει τους αριθμούς, τη μέση τιμή τους και την τυπική τους απόκλιση, επαναληπτικά, μέχρι ότου να επιλεγεί ο τερματισμός της διαδικασίας μέσω επιβεβαίωσης από τον χρήστη. ΑΣΚΗΣΗ 2 Να γράψετε μια βιβλιοθήκη συναρτήσεων για πίνακες ακεραίων με όνομα header file "IntegerArray.h" και όνομα του αρχείου υλοποίησης (implementation file) "IntegerArray.cpp", που θα περιέχουν τις παρακάτω συναρτήσεις: Μια συνάρτηση "input_array(a,n,k1,k2)" που θα επιτρέπει στο χρήστη να εισάγει τιμές για τα πρώτα n στοιχεία του πίνακα a και επιτρεπτές τιμές στο διάστημα [k1,k2]. Μια συνάρτηση "display_array(a,n)" που θα εμφανίζει στην οθόνη τις τιμές των n πρώτων στοιχείων του πίνακα a. Μια συνάρτηση "copy_array(a1,a2,n)" που θα αντιγράφει τα n πρώτα στοιχεία του πίνακα a2 στα αντίστοιχα n πρώτα στοιχεία του πίνακα a1. Μια συνάρτηση "standard_deviation(a,n)" που θα επιστρέφει την τυπική απόκλιση των n πρώτων στοιχείων του a. Στη συνέχεια να γράψετε το κατάλληλο πρόγραμμα για τον έλεγχο αυτών των συναρτήσεων. 1 C++, 3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ, ΑΚΑΔ. ΕΤΟΣ 2016-2017

ΑΣΚΗΣΗ 3 Χρησιμοποιώντας κατάλληλα τις συναρτήσεις δημιουργίας τυχαίων αριθμών (rand() και srand()) να δημιουργήσετε τα δεδομένα για τις παραγγελίες προϊόντων ενός βιομηχανικού ομίλου που διαθέτει συνολικά 10 γραμμές παραγωγής. Κάθε γραμμή δεδομένων περιέχει τον κωδικό της γραμμής παραγωγής ( κωδικοί 1-10), την ποσότητα παραγγελίας και την ποσότητα που τελικά παραδόθηκε. Για λόγους που αφορούν είτε τη διαθέσιμη ποσότητα της κάθε γραμμής παραγωγής είτε τη δυναμικότητά της οι ποσότητες που παραδόθηκαν μπορούν να διαφέρουν από τις ποσότητες που παραγγέλθηκαν. Όλες οι τιμές είναι θετικοί ακέραιοι αριθμοί ή μηδέν. Ο κωδικός της κάθε γραμμής παραγωγής πρέπει να υπάρχει περισσότερες από μία φορές στα δεδομένα. Μια μορφή ορισμένων γραμμών των δεδομένων είναι : ΚΩΔΙΚΟΣ ΓΡΑΜΜΗΣ ΠΑΡΑΓΩΓΗΣ ΠΟΣΟΤΗΤΑ ΠΑΡΑΓΓΕΛΙΑΣ ΠΟΣΟΤΗΤΑ ΠΟΥ ΠΑΡΑΔΟΘΗΚΕ 5 45 70 1 500 300 2 27 20 1.. 1500 2000 Ζητούνται να υλοποιηθούν τα παρακάτω : 1. Να γραφεί ο ορισμός μιας κλάσης με όνομα order που θα περιέχει ως private μέλη δεδομένα τις πληροφορίες που περιγράφονται παραπάνω. 2. Στη συνάρτηση main( ) να οριστεί ένας πίνακας αντικειμένων της κλάσης order N θέσεων ( η τιμή του Ν να οριστεί ως σταθερά στην αρχή του προγράμματος). 3. Να γραφεί ένας δομητής (constructor) της κλάσης order για την εισαγωγή δεδομένων στον πίνακα αντικειμένων της κλάσης, καθώς και ο default constructor. 4. Όταν η ποσότητα παραγγελίας είναι μεγαλύτερη από αυτήν που παραδόθηκε τότε η υπολειπόμενη ποσότητα (δηλ. αυτή που παραγγέλθηκε αλλά δεν παραδόθηκε) θα εισάγεται σε έναν νέο δυναμικό πίνακα με όνομα n1. Διαφορετικά (δηλ. όταν η ποσότητα που παραδόθηκε είναι μεγαλύτερη της ποσότητας παραγγελίας) τότε η επιπλέον της παραγγελίας ποσότητα που παραδόθηκε θα εισάγεται αντίστοιχα σε έναν άλλο νέο μονοδιάστατο δυναμικό πίνακα με όνομα n2. Σε κάθε περίπτωση ο κωδικός της γραμμής παραγωγής θα εισάγεται σε έναν τρίτο πίνακα με όνομα n3. 5. Να γίνει εμφάνιση των περιεχομένων των δυναμικών πινάκων n1, n2 και n3. 6. Χρησιμοποιώντας τα στοιχεία των δυναμικών πινάκων να βρείτε και να εμφανίσετε τις αντίστοιχες συνολικές ποσότητες για κάθε γραμμή παραγωγής (δηλ. 20 συνολικά τιμές, ανά 10 για τους πίνακες n1 και n2). 2 C++, 3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ, ΑΚΑΔ. ΕΤΟΣ 2016-2017

ΑΣΚΗΣΗ 4 Μια παραγωγική μονάδα σχεδιάζει να παράγει ορισμένα νέα προϊόντα. Για να επιλέξει πόσα και ποια από αυτά τελικά θα ξεκινήσει να παράγει έχει προβεί σε έρευνα αγοράς σε 10 διαφορετικές γεωγραφικές περιφέρειες για τις αναμενόμενες πωλήσεις και τα αναμενόμενα κέρδη. Για κάθε υποψήφιο νέο προϊόν (για την αποφυγή επαναλαμβανόμενης χρήση της εντολής cin) δημιουργούνται μέσω κατάλληλης χρήσης της συνάρτησης rand() οι εξής πληροφορίες δεδομένα της έρευνας : Κωδικός υποψήφιου νέου προϊόντος (θετικός διψήφιος ακέραιος αριθμός). Κατά τη δημιουργία του θα πρέπει να ελέγχεται εάν έχει ήδη δημιουργηθεί, και θα πρέπει να είναι μοναδικός. Αναμενόμενες πωλήσεις (σε χιλιάδες τεμάχια) σε κάθε μία από τις 10 γεωγραφικές περιφέρειες (δέκα αριθμοί τύπου float >0.0 ) Αναμενόμενα κέρδη (ανά χίλια τεμάχια) σε κάθε μία από τις 10 γεωγραφικές περιφέρειες (δέκα αριθμοί τύπου float >0.0 ) Μια τυχαία σειρά δεδομένων θα μπορούσε να είναι : ΚΩΔ.ΥΠΟΨ. ΠΡΟΪΟΝΤΟΣ ΑΝΑΜΕΝΟΜΕΝΕΣ ΠΩΛΗΣΕΙΣ ΑΝΑΜΕΝΟΜΕΝΑ ΚΕΡΔΗ 34 1.3 3.3 2.9 5.0 8.5 4.4 2.9 7.9 0.6 6.8 3.2 4.9 1.7 8.0 5.0 6.9 7.7 7.4 7.8 8.0 Ζητούνται να υλοποιηθούν τα παρακάτω : 1. Να γραφεί ο ορισμός μιας κλάσης με όνομα product που θα περιέχει ως private μέλη δεδομένα όλα τα στοιχεία μιας γραμμής του αρχείου. 2. Στη συνάρτηση main( ) να οριστεί ένας πίνακας αντικειμένων της κλάσης product 20 θέσεων. Κάθε θέση του πίνακα αντιστοιχεί σε ένα υποψήφιο νέο προϊόν. Να αρχικοποιηθούν όλες οι θέσεις του πίνακα με χρήση default constructor, σύμφωνα με τα παραπάνω, θέτοντας ως εξ ορισμού μηδενικές τιμές για όλα τα δεδομένα. 3. Να γραφεί ένας δομητής (constructor) της κλάσης product για την εισαγωγή δεδομένων στον πίνακα αντικειμένων της κλάσης. 4. Για να εισαχθεί ένα υποψήφιο νέο προϊόν στον πίνακα αντικειμένων πρέπει : a. να έχει συνολικές αναμενόμενες πωλήσεις και στις 10 γεωγρ. περιφέρειες τουλάχιστον 55.0 (σε χιλιάδες τεμάχια) ΚΑΙ b. να έχει μέσον όρο αναμενόμενων κερδών και στις 10 γεωγρ. περιφέρειες τουλάχιστον 3.0 (ανά χίλια τεμάχια) Αν δεν ικανοποιούνται οι παραπάνω δύο προϋποθέσεις τότε ο κωδικός του υποψήφιου νέου προϊόντος και ο μέσος όρος των πωλήσεων στις 10 περιφέρειες που προέκυψαν κατά την εισαγωγή των δεδομένων θα καταχωρούνται αντιστοίχως σε δύο μονοδιάστατους δυναμικούς πίνακες. 5. Χρησιμοποιώντας όλα τα αντικείμενα του πίνακα αντικειμένων να βρεθούν και να εμφανιστούν οι κωδικοί των υποψηφίων νέων προϊόντων που έχουν αναμενόμενες πωλήσεις τουλάχιστον 7.0 σε 4 τουλάχιστον περιφέρειες 6. Χρησιμοποιώντας τα στοιχεία των δυναμικών πινάκων να βρεθούν και να εμφανιστούν οι κωδικοί των υποψηφίων νέων προϊόντων που έχουν μέσον όρο πωλήσεων και στις 10 περιφέρειες μεγαλύτερο από 3.5. 3 C++, 3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ, ΑΚΑΔ. ΕΤΟΣ 2016-2017

ΑΣΚΗΣΗ 5 Μια ανεμογεννήτρια διαθέτει 10 υποσυστήματα (ηλεκτρικό, υδραυλικό κλπ). Για κάθε εξάρτημα που ανήκει σε ένα υποσύστημα είναι γνωστά τα εξής δεδομένα: κωδικός εξαρτήματος (int) [όρια 1-99] κωδικός υποσυστήματος στο οποίο ανήκει (int) [όρια 1-10] μέσος χρόνος μεταξύ δύο διαδοχικών βλαβών σε ημέρες (θετικός int) ημερομηνία επισκευής/αντικατάστασης στη μορφή ΜΜΕΕ (ΜΜ = μήνας, ΕΕ = έτος). Επιτρεπτές τιμές : 1<=ΜΜ<=12 για τους μήνες και για το έτος το εύρος [2003-2013]. Να γραφεί μια κλάση με όνομα wind_turb και private μέλη δεδομένα τα παραπάνω. Στη συνάρτηση main( ) : 1. να οριστεί ένας πίνακας αντικειμένων της κλάσης wind_turb Ν θέσεων (Ν = γνωστό, 100<= Ν <=999) και να αρχικοποιηθούν όλες οι θέσεις του πίνακα με χρήση default constructor, θέτοντας μηδενικές τιμές για όλα τα αριθμητικά δεδομένα. 2. Να γίνει εισαγωγή δεδομένων στον πίνακα αντικειμένων της wind_turb μέσω δομητή (constructor) της κλάσης, χρησιμοποιώντας μόνον τυχαίους αριθμούς, στα όρια τιμών που έχουν δοθεί. Κάθε εξάρτημα μπορεί να εμφανίζεται περισσότερες από μία φορές σε κάθε υποσύστημα και να υπάρχει και σε περισσότερα του ενός υποσυστήματα. 3. Χρησιμοποιώντας όλα τα αντικείμενα του πίνακα: a. Να βρείτε και να εμφανίσετε, για κάθε έτος [2003-2013] το πλήθος των επισκευών/αντικαταστάσεων για κάθε υποσύστημα. b. Να βρείτε και να εμφανίσετε για κάθε υποσύστημα το εξάρτημα με τον μικρότερο και τον μεγαλύτερο μέσο χρόνο μεταξύ δύο διαδοχικών βλαβών. Σε περίπτωση που υπάρχουν περισσότερα από ένα εξαρτήματα να εμφανίζονται όλα. c. Να δημιουργήσετε και να εμφανίσετε έναν μονοδιάστατο δυναμικό πίνακα που θα περιλαμβάνει, σε μορφή ζευγών, τον κωδικό του εξαρτήματος και το μέσο χρόνο μεταξύ δύο διαδοχικών βλαβών για ένα υποσύστημα, η τιμή του οποίου δίνεται στη συνάρτηση main() μέσω της εντολής cin. 4 C++, 3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ, ΑΚΑΔ. ΕΤΟΣ 2016-2017

ΑΣΚΗΣΗ 6 Η εξυπηρέτηση των κινητών συσκευών γίνεται μέσω σταθμών βάσης (κεραίες). Λόγω εξασθένησης του σήματος από το σταθμό βάσης μέχρι την κινητή συσκευή καθώς και λόγω χωρικών περιορισμών κάθε σταθμός βάσης μπορεί να καλύψει κινητές συσκευές μέχρι μια μέγιστη απόσταση από αυτόν και μόνον μέχρι ένα μέγιστο όγκο μεταφερόμενων δεδομένων. Τα δεδομένα των σταθμών βάσης μιας εταιρείας είναι: Κωδικός σταθμού βάσης (τύπου int, όρια 1-999) Επιφανειακές συντεταγμένες του σταθμού βάσης (αριθμοί τύπου double) Πλήθος κινητών συσκευών που μπορεί να εξυπηρετεί (θετικός ακέραιος τύπου int) Συνήθης όγκος δεδομένων (θετικός αριθμός τύπου double) Μέγιστος όγκος δεδομένων (θετικός αριθμός τύπου double) Να γράψετε μία κλάση με όνομα base_st που θα έχει ως private μέλη δεδομένα τα παραπάνω. Στη συνάρτηση main( ) : 1. Να οριστεί ένας πίνακας αντικειμένων της κλάσης base_st Ν θέσεων (Ν = γνωστό, 100<= Ν <=999) και να αρχικοποιηθούν όλες οι θέσεις του πίνακα με χρήση default constructor, θέτοντας μηδενικές τιμές για όλα τα αριθμητικά δεδομένα. 2. Να γίνει εισαγωγή δεδομένων στον πίνακα αντικειμένων της base_st μέσω δομητή (constructor) της κλάσης, χρησιμοποιώντας μόνον τυχαίους αριθμούς, στα όρια τιμών που έχουν δοθεί. Κάθε κωδικός σταθμού βάσης θα δημιουργείται μόνον μία φορά από τη γεννήτρια των τυχαίων αριθμών και δεν θα πρέπει να χρησιμοποιείται εάν δημιουργηθεί εκ νέου κατά τη διάρκεια της επαναληπτικής διαδικασίας. Θα πρέπει επίσης να φροντίσετε ο συνήθης όγκος δεδομένων να είναι μικρότερος ή το πολύ ίσος με το μέγιστο όγκος δεδομένων. 3. Χρησιμοποιώντας όλα τα αντικείμενα του πίνακα: a. Να βρείτε και να εμφανίσετε για όλους τους σταθμούς βάσης το συνολικό πλήθος κινητών συσκευών που μπορούν να εξυπηρετούν καθώς και το συνολικό μέγιστο όγκο δεδομένων που μπορούν να μεταφέρουν. b. Μία νέα κινητή συσκευή που θα βρίσκεται σε ένα σταθερό σημείο πρόκειται να απαιτήσει εξυπηρέτηση από την εταιρεία. Οι επιφανειακές συντεταγμένες του σημείου αυτού καθώς και ο μέγιστος όγκος δεδομένων που θα απαιτήσει η συσκευή αυτή είναι γνωστά και δίνονται μέσω της εντολής cin (απαιτείται έλεγχος εγκυρότητας). Να δημιουργήσετε και να εμφανίσετε έναν μονοδιάστατο δυναμικό πίνακα που θα περιλαμβάνει, υπό μορφή ζευγών, τους κωδικούς των σταθμών βάσης που μπορούν να εξυπηρετούν αυτή τη νέα συσκευή και τις αποστάσεις τους από το σημείο αυτό με : i. την προϋπόθεση της διαθεσιμότητας του σταθμού για την κάλυψη του μέγιστου όγκου δεδομένων που απαιτεί η συσκευή και ii. του περιορισμού η απόσταση d i από το σταθμό βάσης i να είναι d 25.0. Η απόσταση δύο σημείων ( x1, y 1) και ( x2, y2) στο δισδιάστατο χώρο δίνεται από τη σχέση: i 2 2 d x x y y 1 2 1 2 5 C++, 3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ, ΑΚΑΔ. ΕΤΟΣ 2016-2017