2782 - Parada

From Bitnami MediaWiki
Revision as of 14:43, 15 April 2023 by Tuca Liviu Razvan (talk | contribs) (Pagină nouă: ==Cerință== Pe un câmp orizontal se află doi stâlpi perpendiculari pe sol în punctele '''A''' și '''B'''. În vârful fiecărui stâlp se află o pasăre de pradă. Pe dreapta '''d''' determinată de punctele '''A''' si '''B''' apare un șoarece în punctul '''C'''. Cele două păsări zboară spre șoarece în linie dreaptă cu aceeași viteză. Cunoscând '''HA''' = înălțimea primului stâlp, '''HB''' = înălțimea celui de-al doilea stâlp, '''D''' = distanța...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerință

Pe un câmp orizontal se află doi stâlpi perpendiculari pe sol în punctele A și B. În vârful fiecărui stâlp se află o pasăre de pradă. Pe dreapta d determinată de punctele A si B apare un șoarece în punctul C. Cele două păsări zboară spre șoarece în linie dreaptă cu aceeași viteză.

Cunoscând HA = înălțimea primului stâlp, HB = înălțimea celui de-al doilea stâlp, D = distanța dintre cei doi stâlpi, să se afle distanța X dintre șoarece și baza stâlpului mai înalt astfel încât păsările să ajungă la șoarece în același timp și să-l împartă frățește.

Date de intrare

Programul citește de la tastatură numerele naturale HA, HB și D.

Date de ieșire

Programul va afișa pe ecran numărul X, reprezentând distanța dintre șoarece și baza stâlpului mai înalt astfel încât păsările să ajungă la șoarece în același timp și să-l împartă frățește.

Restricții și precizări

  • Se garantează că HA, HB, D, X sunt naturale si mai mici sau egale cu 1000

Exemplul 1

Intrare
30 20 50
Ieșire
20

Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1">

  1. Definim functia de validare pentru input

def validare(ha, hb, d, x):

   if 0 < ha <= 1000 and 0 < hb <= 1000 and 0 < d <= 1000 and 0 < x <= 1000:
       return True
   return False


  1. Definim functia de calcul a distantei dintre soarece si baza

def distanta_soarece_baza(ha, hb, d):

   # Rearanjam valorile lui ha si hb, astfel incat ha sa fie mai mare sau egal cu hb
   if ha < hb:
       ha, hb = hb, ha
   # Calculam distanta dintre soarece si baza, folosind teorema lui Pitagora si aplicand formula generala
   c = ((hb ** 2 + d ** 2 - ha ** 2) / (2 * d))
   # Returnam valoarea absoluta a distantei
   return abs(c)


if __name__ == "__main__":

   # Primește input-ul de la utilizator
   ha = int(input("Introduceti inaltimea primului stalp: "))
   hb = int(input("Introduceti celui de-al doilea stalp: "))
   d = int(input("Introduceti distanta dintre cei doi stalpi: "))
   # Calculam distanta dintre soarece si baza si o salvam in variabila x
   x = distanta_soarece_baza(ha, hb, d)
   # Verifică dacă input-ul este valid și afișează rezultatul
   if validare(ha, hb, d, x):
       print("Datele de intrare corespund restricțiilor impuse.")
       print(int(x))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>