Προς το περιεχόμενο

Ασκηση σε C++


Achillf

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια, σημερα εχω μια ασκηση να λυσω αλλα δεν μπορω καν να καταλαβω την εκφωνηση, μηπως μπορειτε να βοηθησετε εσεις ?

 

Για να διευκολυνθεί η ναυσιπλοΐα σε μια περιοχή έχουν εγκατασταθεί Ν ραδιόφαροι ο κάθε ένας από τους οποίους εκπέμπει ένα σήμα με ισχύ Pi(διαφορετική για κάθε ραδιόφαρο). Η ισχύς του σήματος, για κάθε ραδιόφαρο, που λαμβάνεται από ένα πλοίο που πλέει στην περιοχή υπολογίζεται από τη σχέση P=Pi/d2 όπου Pi η ισχύς με την οποία εκπέμπει ο ραδιόφαρος και d η απόσταση του πλοίου από αυτόν.

 

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

 

 

 

Σημείωση:

 

Για τη σύνταξη του προγράμματος να μη χρησιμοποιηθούν πίνακες.

Ως συντεταγμένες του πλοίου και των ραδιόφαρων θεωρούνται οι καρτεσιανές συντεταγμένες (x,y) σε ένα τοπικό σύστημα αναφοράς.

Δημοσ.

Να μια αδρή σκιαγράφηση της λύσης :

1) το πρόγραμμα διαβάζει

- τις συντεταγμένες του πλοίου xs,ys

- την ελάχιστη αποδεκτή τιμή Pmin για την ισχύ του σήματος

- το πλήθος Ν των φάρων

- την ισχύ Pi με την οποία εκπέμπουν οι φάροι

 

Θέτεις Pfmin=10**10, Pfmax=-10**10 για να ξεκινήσουν οι συγκρίσεις παρακάτω.

 

2) σε ένα βρόγχο DO i=1 ως N

- διαβάζονται oι συντεταγμένες χf,yf του φάρου i

- υπολογίζεται η ισχύς P με την οποία λαμβάνει το πλοίο από τον φάρο i

d=sqrt((xs-xf)**2+(ys-yf)**2)

P=Pi/d2 κλπ

 

if P < Pmin then

Pfmin=P

χfmin=xf, yfmin=yf

end if

if P > Pmax then

Pfmax=P

χfmax=xf, yfmax=yf

end if

 

END DO

 

3) το πρόγραμμα τυπώνει τα

xfmin, yfmin

xfmax, yfmax

 

 

Προφανώς αφού τα δεδομένα δεν πρέπει να αποθηκεύονται (αφού οι πίνακες απαγορεύονται), οι πράξεις γίνονται εν δυνάμει την ώρα που διαβάζονται οι τιμές.

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

Όταν βρόγχος περατώνεται, τα xfmin, yfmin, xfmax, yfmax είναι οι ζητούμενες συντεταγμένες.

Η σχέση P=Pi/d2 που δίνει την ισχύ είναι κάπως ασαφής (το d2 είναι το διπλάσιο του d ή το d στο τετράγωνο ;)

Τα πραπάνω είναι για καθολικό σύστημα αναφοράς.

Αν πρόκειται για τοπικό, θα ληφθεί η θέση του πλοίου ως το (0,0) οπότε τα χs,ys δεν χρειάζονται και οι συντεταγμένες xf,yf των φάρων θα δίνονται ως προς το πλοίο.

 

Τέλος, προσπάθησε να σκέπτεσαι πρώτα πριν ζητήσεις βοήθεια.

Το πρόβλημα είναι πανεύκολο και απορώ που δυσκολεύεσαι...

Δημοσ.

Πολύ καλή περιγραφή.

 

Το d2 στον τύπο της ισχύος πρέπει να είναι τετράγωνο, καθώς κατά κανόνα η ισχύς εξαρτάται από το αντίστροφο του τετραγώνου της απόστασης.

 

Να μια αδρή σκιαγράφηση της λύσης :

1) το πρόγραμμα διαβάζει

- τις συντεταγμένες του πλοίου xs,ys

- την ελάχιστη αποδεκτή τιμή Pmin για την ισχύ του σήματος

- το πλήθος Ν των φάρων

- την ισχύ Pi με την οποία εκπέμπουν οι φάροι

 

Θέτεις Pfmin=10**10, Pfmax=-10**10 για να ξεκινήσουν οι συγκρίσεις παρακάτω.

 

2) σε ένα βρόγχο DO i=1 ως N

- διαβάζονται oι συντεταγμένες χf,yf του φάρου i

- υπολογίζεται η ισχύς P με την οποία λαμβάνει το πλοίο από τον φάρο i

d=sqrt((xs-xf)**2+(ys-yf)**2)

P=Pi/d2 κλπ

 

if P < Pmin then

Pfmin=P

χfmin=xf, yfmin=yf

end if

if P > Pmax then

Pfmax=P

χfmax=xf, yfmax=yf

end if

 

END DO

 

3) το πρόγραμμα τυπώνει τα

xfmin, yfmin

xfmax, yfmax

 

 

Προφανώς αφού τα δεδομένα δεν πρέπει να αποθηκεύονται (αφού οι πίνακες απαγορεύονται), οι πράξεις γίνονται εν δυνάμει την ώρα που διαβάζονται οι τιμές.

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

Όταν βρόγχος περατώνεται, τα xfmin, yfmin, xfmax, yfmax είναι οι ζητούμενες συντεταγμένες.

Η σχέση P=Pi/d2 που δίνει την ισχύ είναι κάπως ασαφής (το d2 είναι το διπλάσιο του d ή το d στο τετράγωνο ;)

Τα πραπάνω είναι για καθολικό σύστημα αναφοράς.

Αν πρόκειται για τοπικό, θα ληφθεί η θέση του πλοίου ως το (0,0) οπότε τα χs,ys δεν χρειάζονται και οι συντεταγμένες xf,yf των φάρων θα δίνονται ως προς το πλοίο.

 

Τέλος, προσπάθησε να σκέπτεσαι πρώτα πριν ζητήσεις βοήθεια.

Το πρόβλημα είναι πανεύκολο και απορώ που δυσκολεύεσαι...

Δημοσ.
Πολύ καλή περιγραφή.

 

Χαίρομαι αν βοήθησα.

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

Και όταν επιμένεις σ' αυτό σου λένε ότι πουλάς εξυπνάδα...

Δημοσ.
θα ηθελα να ξερω , γιατι το λες αυτο ? :confused::P

 

:lol:

 

Διότι κάποιος από εδώ μου το είπε - δεν έχει σημασία ποιος.

Ο άνθρωπος πιστεύει ότι επειδή εδώ είναι προγραμματιστικό forum, επιτρέπεται να κάνεις απαράδεκτα ορθογραφικά και εκφραστικά λάθη,

να δίνεις κακογραμμένα κείμενα και να λιβανίζεις όποιον γράφει κάτι απλώς και μόνον επειδή έγραψε και ανεξάρτητα αν είναι αξιόλογο ή άχρηστο.

Δεν θα δώσω συνέχεια στο θέμα, δεν έχει νόημα, και εξάλλου όσοι έχουν νοημοσύνη καταλαβαίνουν αρκετά...

Αρχειοθετημένο

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

  • Δημιουργία νέου...