Οντοκεντρικός Προγραμματισμός II C++ Project Xειμερινό Εξάμηνο Organisms

Σχετικά έγγραφα
Ιεραρχία Οργανισµών Οι οργανισµοί που ζουν στο οικοσύστηµά µας κατατάσσονται σύµφωνα µε την παρακάτω ιεραρχία: Organisms

ΗΥ252 - Οντοκεντρικός Προγραµµατισµός Προγραµµατιστική Εργασία Εαρινού Εξαµήνου 2004 Περιγραφή Παραδοτέων

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Δευτέρα 22 / 11 / 2017 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΗΥ 252 Αντικειμενοστρεφής Προγραμματισμός Προγραμματιστική Εργασία Χειμερινού Εξαμήνου Σκάκι

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2013

Μοντελοποίηση Συστημάτων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

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

2.2 Ειδικά Φύλλα Mahjong Phoenix - Φοίνικας Hund - Σκυλάκια Drache - Δράκος... 5

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Γενικές Αρχές Οικολογίας

ΗΥ215 - Εφαρμοσμένα Μαθηματικά για Μηχανικούς

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 3

Παρουσίαση της εργασίας στο μάθημα Νέες Τεχνολογίες στην Επιστημονική Έρευνα: Διαδίκτυο και Εκπαίδευση (Εαρινό 2016) Β Μέρος. Γιώργος Μικρός ΕΚΠΑ

Τ.Ε.Ι. ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΟΥΣΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΑΚΟΥΣΤΙΚΗΣ ΜΟΥΣΙΚΗ ΑΚΟΥΣΤΙΚΗ- ΟΡΓΑΝΟΛΟΓΙΑ ΟΔΗΓΙΕΣ ΕΡΓΑΣΤΗΡΙΟΥ ΠΑΠΑΔΑΚΗΣ ΝΙΚΟΣ

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Σενάριο 10: Οργάνωση και λειτουργίες του οικοσυστήματος - Ο ρόλος ενέργειας

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

ΗΥ370 Ψηφιακή Επεξεργασία Σήματος

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Μοντελοποίηση Συστημάτων

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Θ.Ε. ΠΛΣ61 ( ) 1 η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ

Προγραμματισμός Χειμερινό Εξάμηνο 2014

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΝΟΝΙΣΜΟΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ

Χειµερινό Εξάµηνο 2013

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

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

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

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

Εργαστήριο 2. Εαρινό Εξάμηνο Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ. Εργαστήριο Λογισµικού (Γλώσσα C++) Ακαδ. Έτος: Εργασία (40%) Το Μπουντρούµι

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Crossword1.txt, Crossword2.txt, Crossword3.txt, Crossword4.txt και Crossword5.txt, $ cat Crossword1.txt $

1 η ΑΣΚΗΣΗ. 1. Θεωρία (Κεφ. 1, 2) ξ = 2 της εξίσωσης fx ( ) = 0 για x

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

Ψηφιακή Σχεδίαση ΙΙ Εισαγωγικό Μάθημα. Δρ. Μηνάς Δασυγένης

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

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

Δηλώσεις Εργαστηρίων

ΑΝΑΚΟΙΝΩΣΗ ΕΓΓΡΑΦΕΣ ΕΡΓΑΣΤΗΡΙΩΝ

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

Οδηγός Διεξαγωγής Εργαστηρίου Ακ. Έτος

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 2. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης

Κεφάλαιο 9. Έλεγχοι υποθέσεων

Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών. Μάθημα: ECE_Υ106 Εισαγωγή στους Υπολογιστές. Εγχειρίδιο Μαθήματος

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ. A. Η συνάρτηση f είναι παραγωγίσιμη στο ΙR. και c πραγματική σταθερά. Να αποδείξετε ότι (c f(x)) =c f (x), x ΙR.

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

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007

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

ΡΟΗ ΕΝΕΡΓΕΙΑΣ. Μεταξύ των οργανισμών ενός οικοσυστήματος αναπτύσσονται ποικίλες σχέσεις, σημαντικότερες από τις οποίες είναι οι τροφικές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Μοντελοποίηση Εστιατορίου (take-away)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ. Οδηγός χρήσης του συστήματος αξιολόγησης μαθημάτων

Προγραµµατιστική Εργασία 2 ο Μέρος

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΟΙΚΟΛΟΓΙΑΣ. Μ ά θ η μ α 8. «Εκπαιδευτικές δραστηριότητες για ΚΠ»

ΑΝΘΡΩΠΟΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝ

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

dtw(a, B) = dtw(a n, B m )

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Ο Προγραμματισμός στην Πράξη

Κεφάλαιο 9. Έλεγχοι υποθέσεων

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

σας δίπλα στον αριθμό που αντιστοιχεί σε κάθε πρόταση τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή Λάθος, αν η πρόταση είναι λανθασμένη.

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

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

Κατανεμημένα Συστήματα Ι

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

Τ και τιµή του Β θετική µετατρέπεται ισοδύναµα στην εντολή Όσο ως εξής:

Οδηγίες Χρήσης της εφαρμογής Class-Web

1. Από το κεντρικό site του Ιδρύματος επιλέγουμε το σύνδεσμο "Γραμματείες Τμημάτων".

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

Transcript:

Οντοκεντρικός Προγραμματισμός II C++ Project Xειμερινό Εξάμηνο 2009-2010 Περιγραφή Project Το project αφορά την προσομοίωση ενός οικοσυστήματος. Το οικοσύστημα μας αποτελείται από διάφορα είδη οργανισμών τα οποία ζουν ή κινούνται μέσα σε έναν προκαθορισμένο χώρο, ο οποίος και θα αποτελεί τον χάρτη του οικοσυστήματός μας. Κάθε οργανισμός καταναλώνει κάποιου είδους τροφή, η οποία το διατηρεί στην ζωή και η οποία μπορεί να διαφέρει ανάλογα με τον οργανισμό. Ιεραρχία Οργανισμών Οι οργανισμοί που ζουν στο οικοσύστημά μας κατατάσσονται σύμφωνα με την παρακάτω ιεραρχία: Organisms Animals Plants Herbivores Carnivores Τα βέλη του σχήματος υποδηλώνουν σχέσεις isa μεταξύ των κλάσεων, οι οποίες αναπαραστώνται από τα ορθογώνια. Πιο συγκεκριμένα για τις κλάσεις έχουμε: Organisms: Ένας οργανισμός έχει τρία κύρια χαρακτηριστικά, την ηλικία του (age), το μέγεθός του (size) και το βαθμό ανάπτυξής του (growth rate). Η ηλικία του οργανισμού μετριέται σε εβδομάδες και αρχικά είναι 0. Το μέγεθος του οργανισμού αρχικά είναι ένας αριθμός μεγαλύτερος του 0 και δίνεται κατά την δημιουργία του οργανισμού. Ο βαθμός ανάπτυξης είναι επίσης ένας αριθμός μεγαλύτερος του 0 και δείχνει το ποσό με το οποίο ο οργανισμός μεγαλώνει ανά εβδομάδα. Αν

κάποια στιγμή το μέγεθος του οργανισμού γίνει ίσος ή μικρότερος του 0 τότε ο οργανισμός πεθαίνει. Animals: Η κλάση αυτή περιέχει όλα τα ζώα του οικοσυστήματος. Ένα ζώο έχει ανάγκη να τραφεί ένα συγκεκριμένο ποσό κάθε εβδομάδα για να μπορέσει να μεγαλώσει σε μέγεθος (foodperweek). Κάθε εβδομάδα λοιπόν καταναλώνει κάποια ποσότητα τροφής καθώς περιπλανιέται στο οικοσύστημα (eatenthisweek). Αν αυτή η ποσότητα που καταναλώνει είναι μεγαλύτερη από την ποσότητα που χρειάζεται για να επιβιώσει τότε το μέγεθος του ζώου μεγαλώνει κατά τον αντίστοιχο βαθμό ανάπτυξής του. Σε αντίθετη περίπτωση, που σημαίνει ότι το ζώο δεν κατάφερε να βρει όση τροφή χρειαζόταν για να επιβιώσει, το μέγεθός του μειώνεται κατά τον αντίστοιχο βαθμό ανάπτυξής του. Plants: Η κλάση αυτή περιέχει όλα τα φυτά του οικοσυστήματος. Το φυτό κάθε εβδομάδα αυξάνει το μέγεθός του πάντα κατά τον αντίστοιχο βαθμό ανάπτυξής του αφού το μόνο που χρειάζεται για να τραφεί είναι ήλιος και νερό τα οποία εμφανίζονται άφθονα στο οικοσύστημά μας. Το μέγεθος των φυτών όμως μπορεί να μειωθεί κατά τον αντίστοιχο βαθμό ανάπτυξής του όταν ένα ζώο τραφεί από αυτό. Herbivores: Η κλάση αυτή περιέχει τα ζώα που είναι φυτοφάγα και που μπορούν μόνο να τραφούν από φυτά που υπάρχουν διασκορπισμένα στο οικοσύστημα. Carnivores: Η κλάση αυτή περιέχει τα ζώα που είναι σαρκοφάγα και που μπορούν να τραφούν κάνοντας επίθεση σε άλλα ζώα (φυτοφάγα και σαρκοφάγα) των οποίων το μέγεθος είναι το μισό του μεγέθους τους, αφού δεν μπορούν να σκοτώσουν μεγαλύτερα ζώα. Το μέγεθος τροφής που λαμβάνουν από τα άλλα ζώα είναι ίσο με το βαθμό ανάπτυξης τους, δηλ. αν μία τίγρη επιτεθεί σε έναν λαγό, ο οποίος έχει βαθμό ανάπτυξης 10, τότε η τίγρη θα πάρει τροφή ίση με 10. Γενικότερα ένα ζώο τρέφεται από ένα άλλο ζώο ή ένα άλλο φυτό, όταν αυτά πλησιάσουν σε μικρή απόσταση μεταξύ τους. Αυτή η απόσταση θα καθοριστεί από τις ομάδες και είναι συσχετισμένη με την υλοποίηση που θα κάνουν για τον χάρτη του οικοσυστήματος (δες παρακάτω). Περιγραφή Εφαρμογής Η εφαρμογή θα αποτελείται από μία σειρά λειτουργιών, έναν χάρτη και μία λίστα αντικειμένων. Πιο συγκεκριμένα: Λειτουργίες: Θα περιέχονται όλες οι γενικές λειτουργίες της προσομοίωσης, όπως αυτές περιγράφονται στο κεφάλαιο Λειτουργίες, και άλλες που πιθανόν να χρειαστεί να προστεθούν από τις ομάδες. Η υλοποίησή της θα μπορούσε να γίνει με την μορφή ενός menu επιλογών. Λίστα Αντικειμένων: Στην λίστα αυτή θα περιέχονται όλες οι ομάδες των οργανισμών του οικοσυστήματός μας. Από αυτή τη λίστα θα μπορεί να γίνεται η εισαγωγή ενός καινούργιου οργανισμού στο οικοσύστημά μας (δες κεφάλαιο Λειτουργίες).

Χάρτης: Θα αποτελεί την περιοχή του οικοσυστήματός μας πάνω στον οποίο θα κινούνται οι οργανισμοί. Ο χάρτης του οικοσυστήματος θα είναι ένας δυσδιάστατος πίνακας. Κάθε οργανισμός θα αντιπροσωπεύεται στον χάρτη από τη θέση του σε κάποιο κενό κελί του πίνακα. Λειτουργίες Οι λειτουργίες που θα υποστηρίζονται από την εφαρμογή θα είναι: Λειτουργίες Προσομοίωσης: Οι λειτουργίες αυτές περιλαμβάνουν την έναρξη (Start), το πάγωμα (Pause), την συνέχιση (Resume) και την επανεκκίνηση (Restart) της προσομοίωσης. Θεωρούμε ότι όταν η προσομοίωση εκτελείται τα ζώα κινούνται με τυχαίο τρόπο. Κάθε ζώο εκτελεί Ν κινήσεις την ημέρα. Η κάθε κίνηση μπορεί να είναι σε ένα από τα 8 γειτονικά κελιά της τρέχουσας θέσης του. Μετά από κάθε κίνηση υπολογίζεται αν το ζώο τρέφεται με κάποιο φυτό ή άλλο ζώο ανάλογα με την κλάση του. Σε κάθε κελί μπορεί να υπάρχει μόνο ένας οργανισμός κάθε χρονική στιγμή. ημιουργία καινούργιου οργανισμού: Η λειτουργία αυτή θα γίνεται επιλέγοντας έναν οργανισμό από τη λίστα αντικειμένων και επιλέγοντας την θέση στην οποία θα μπει ο οργανισμός στο χάρτη. Πληροφορίες ανά πληθυσμό οργανισμών: Πληροφορίες που αφορούν το μέσο όρο μεγέθους των οργανισμών της κατηγορίας που διαλέγουμε, το πλήθος των οργανισμών που ζουν αυτή την στιγμή, την μέση κατανάλωσή τους κατά την τελευταία εβδομάδα, ποσοστά θανάτων των οργανισμών σε σχέση με τους συνολικούς θανάτους κατά την διάρκεια της προσομοίωσης, στατιστικά των ηλικιών ανά οργανισμό. Οι πληροφορίες αυτές θα είναι διαθέσιμες από το μενού επιλογών. Πληροφορίες ανά οργανισμού: Επιλέγοντας έναν οργανισμό από τη λίστα αντικειμένων που υπάρχουν στον χάρτη θα εμφανίζονται τα στοιχεία του οργανισμού (π.χ. ηλικία, μέγεθος, βαθμός ανάπτυξης, foodperweek, eatenthisweek) τα οποία και θα ανανεώνονται καθώς το ζώο κινείται στο χάρτη. Για όλες τις λειτουργίες που υποστηρίζει η εφαρμογή, θα πρέπει να καταγράψετε λεπτομερώς στην αναφορά σας τα βήματα που θα πρέπει να ακολουθεί ο χρήστης για να πραγματοποιήσει τη λειτουργία αυτή (users manual). Φάση 1η - Σχεδιασμός Σε αυτή τη φάση πρέπει να γίνει ο σχεδιασμός της εφαρμογής βάσει των ιδεών και των αρχών που έχετε διδαχθεί. Αποτέλεσμα του σχεδιασμού θα είναι να καθοριστούν οι οντότητες, τα χαρακτηριστικά τους και η συμπεριφορά τους, οι οποίες θα αποτελέσουν δομικά στοιχεία για την υλοποίηση της ζητούμενης εφαρμογής. Το αποτέλεσμα αυτής της φάσης θα είναι να καθοριστεί ακριβώς τι θα γίνει και να σκιαγραφηθεί σε επίπεδο classes και interfaces το πώς θα γίνει. Επιγραμματικά, οι σημαντικότερες εργασίες που πρέπει να γίνουν σε αυτή τη φάση είναι:

Αναγνώριση των κλάσεων. Ποιά είναι τα χαρακτηριστικά του συστήματος και πως μοντελοποιούνται. Αναγνώριση του interface κάθε κλάσης. Εύρεση των χαρακτηριστικών και των ιδιοτήτων κάθε κλάσης. Τι δεδομένα πρέπει να κρατάει κάθε κλάση. Μεθόδους που υποστηρίζει κάθε αντικείμενο. Εύρεση των σχέσεων των αντικειμένων. Πώς επικοινωνούν (εάν επικοινωνούν) μεταξύ τους. Συμπεριφορά (behavior) των αντικειμένων. Αναγνώριση των ευθυνών κάθε κλάσης. Τι ενέργειες πρέπει να κάνει κάθε αντικείμενο. Τι ελέγχους πρέπει να κάνουν στα δεδομένα (pre/post conditions) τα αντικείμενα, μέσω των μεθόδων τους. Interface των κλάσεων, υπογραφές (signatures) των μεθόδων που υποστηρίζει, συναρτήσεις εγκατάστασης (constructors), συναρτήσεις επόπτες (observers), συναρτήσεις μετατροπής (modifiers). Φάση 2η - Υλοποίηση Σε αυτή τη φάση πρέπει να γίνει η υλοποίηση της εφαρμογής, βάσει της σχεδίασης που έχει προηγηθεί (φάση 1). Μολονότι δεν επιβάλλεται να χρησιμοποιηθεί αυτούσια η σχεδίαση της 1ης φάσης, καθότι κάποιες σχεδιαστικές επιλογές αποδεικνύονται στην πορεία άκυρες και χρειάζονται αναθεώρηση, εντούτοις η τελική βαθμολογία θα εξαρτηθεί και από το πόσο απείχε η τελική υλοποίηση από την αρχική σχεδίαση. Σε αυτή τη φάση, παραδίδεται είναι : ο πηγαίος κώδικας που υλοποιεί την ζητούμενη εφαρμογή αναφορά, στην οποία θα αναλύεται : o η -τελική- σχεδίαση της εφαρμογής, o ποιές αλλαγές έγιναν σε σχέση με τη σχεδίαση της 1ης φάσης (και γιατί), o οι αλγόριθμοι που χρησιμοποιήθηκαν, o τα προβλήματα που αντιμετωπίστηκαν, o οι σχεδιαστικές ή προγραμματιστικές αποφάσεις που λήφθηκαν και πώς αυτό αντανακλάται στον τελικό χρήστη (πχ ευκολία/δυσκολία χειρισμού), o πιθανές επεκτάσεις (πχ καινούριες λειτουργίες) και πώς θα μπορούσαν να γίνουν με την παρούσα σχεδίαση, o ποιες αλλαγές θα έπρεπε να γίνουν στην υλοποίηση ή/και την σχεδίαση για να υποστηρίζονται επιπλέον λειτουργίες ή σχήματα. o... γενικά ό,τι άλλο κρίνετε απαραίτητο να αναφέρετε.

Βαθμολογία εργασίας Για την βαθμολογία της εργασίας θα συνεκτιμηθούν εάν (και πόσο) η σχεδίαση της εφαρμογής εφαρμόζει τις έννοιες και τεχνικές του οντοκεντρικού προγραμματισμού που διδάχθηκαν στο μάθημα εάν (και πόσο) υλοποιήθηκαν οι ζητούμενες λειτουργίες της εφαρμογής η πληρότητα της τελικής αναφοράς, η οποία θα καταγράφει και θα τεκμηριώνει την σχεδίαση και υλοποίηση της εφαρμογής Ο ΗΓΙΕΣ παράδοσης εργασίας 1) Η αναφορά της εργασίας θα είναι σε μία από τις μορφές: Acrobat pdf Postscript (ps) Microsoft Word 2000 compatible (doc) Το παραδοτέο αρχείο αναφοράς θα πρέπει να έχει όνομα cpp_υυυυ_υυυ1.xxx Όπου: xxx το κατάλληλο file extension, ΥΥΥΥ, ΥΥΥ1 οι αριθμοί μητρώου των φοιτητών που συμμετέχουν στην κάθε ομάδα εργασίας 2) Στο κείμενο της αναφοράς ΕΝ θα πρέπει να περιλαμβάνεται εκτύπωση του κώδικα 3) Η αναφορά θα περιλαμβάνει στην πρώτη σελίδα το Ονοματεπώνυμο, Αριθμό Μητρώου, Έτος κάθε μέλους της ομάδας. 4) Ο κώδικας θα πρέπει να παρουσιάζεται όλος μαζί και να συνοδεύεται από τα απαραίτητα σχόλια. 5) Ένα c++ project μέσα σε φάκελο με όνομα cppsource που θα περιέχει μόνο μία έκδοση του κώδικα και το αρχείο καταγραφής δεδομένων. Θα περιλαμβάνεται επίσης εκτελέσιμος κώδικας (compiled) ο οποίος εκτελώντας τον δε θα παράγει λάθη. 6) Όλα τα παραπάνω αρχεία θα πρέπει να συμπιεσθούν σε ένα αρχείο ZIP (.zip) με όνομα: ΥΥΥΥ_ΥΥΥ1_ΥΥΥ2_ΥΥΥ3.zip Όπου: ΥΥΥΥ, ΥΥΥ1, ΥΥΥ2, ΥΥΥ3 οι αριθμοί μητρώου των φοιτητών που συμμετέχουν στην κάθε ομάδα εργασίας 7) Το αρχείο ZIP ή RAR θα πρέπει να μετονομαστεί σε.kip ή.kar και θα παραδοθεί μόνο ηλεκτρονικά με email και στις 2 διεύθυνσεις skarlas@ceid.upatras.gr, foka@ceid.upatras.gr έως την ημερομηνία της γραπτής εξέτασης του μαθήματος στην εξεταστική Ιανουαρίου, Φεβρουαρίου με θέμα (subject) Cplusplus και στο κείμενο (body) του email θα αναφέρετε Ονοματεπώνυμο,

Αιρθμό Μητρώου, Έτος κάθε μέλους της ομάδας. (παρακαλούμε δώστε προσοχή στο θέμα, το κείμενο και την προσάρτηση συνημμένου ώστε να παραδοθεί επιτυχώς η εργασία σας) 8) Παράταση στην παράδοση της εργασίας δε θα δωθεί. 9) Οι φοιτητές παλαιότερων ετών θα πρέπει να παραδώσουν εκ νέου την παρούσα εργασία για να περάσουν το μάθημα. 10) Οι ομάδες εργασίας αποτελούνται από ένα (1) έως δύο (2) άτομα 11) Η εργασία λαμβάνει το 30% του τελικού βαθμού μαθήματος και η γραπτή εξέταση το 70%.