THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: George_RT on May 02, 2015, 19:05:20 pm



Title: [Δομημένος Προγραμματισμός] Άσκηση D (Hμ/νία λήξης :10/05/2015)
Post by: George_RT on May 02, 2015, 19:05:20 pm
Άσκηση D

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

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

Να γραφεί το πρόγραμμα το οποίο να διαβάζει, για κάθε ύφαλο, μια ταυτότητα, τις συντεταγμένες του και την απόσταση ασφαλείας που ορίστηκε για αυτόν. Το πρόγραμμα να διαβάζει ακόμη τις συντεταγμένες του ραδιόφαρου και την απόσταση R που ορίζει τον κύκλο επαγρύπνησης γύρο από τον ραδιόφαρο.

Στο πρόγραμμα να ορίζεται η συνάρτηση navigator η οποία να δέχεται τις συντεταγμένες της θέσης ενός πλοίου και να υπολογίζει την απόστασή του από τον πιο κοντινό ύφαλο. Αν η απόσταση αυτή είναι μεγαλύτερη από την απόσταση ασφαλείας που ορίστηκε για τον συγκεκριμένο ύφαλο η συνάρτηση να επιστρέφει την τιμή 0. Σε διαφορετική περίπτωση, αν το πλοίο βρίσκεται σε απόσταση μικρότερη ή ίση από το 70% της απόστασης ασφαλείας, να επιστρέφεται η τιμή 1 ενώ αν η απόσταση είναι μεγαλύτερη από το 70% να επιστρέφει την τιμή 2. Η συνάρτηση να επιστρέφει ακόμη, σε κάθε περίπτωση, την απόσταση του πλοίου από τον ύφαλο.

Η συνάρτηση main του προγράμματος να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας να διαβάζονται οι συντεταγμένες της θέσης του πλοίου και εφόσον αυτό βρίσκεται στο εσωτερικό του κύκλου επαγρύπνησης που ορίζεται από τον ραδιόφαρο, να καλείται η συνάρτηση navigator. Αν η συνάρτηση επιστρέψει την τιμή 1 να εκτυπώνεται το μήνυμα «Κόκκινος συναγερμός» ενώ αν επιστρέψει την τιμή είναι 2 να εκτυπώνεται το μήνυμα «Κίτρινος συναγερμός» Σε κάθε περίπτωση να εκτυπώνεται η απόσταση του πλοίου από τον κοντινότερο ύφαλο που επέστρεψε η συνάρτηση καθώς και η ταυτότητα του υφάλου.

Να θεωρηθεί ότι το πρόγραμμα ξεκινά με την αναχώρηση του πλοίου από το λιμάνι και τερματίζεται με την επιστροφή του σε αυτό.

Σημείωση: Να μην χρησιμοποιηθούν πουθενά γενικές μεταβλητές.

Η συνάρτηση navigator να μη διαβάζει δεδομένα και να μην εκτυπώνει αποτελέσματα.

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

Οι ταυτότητες που θα δοθούν στους υφάλους να είναι string με 10 το πολύ χαρακτήρες.