2782 - Parada

From Bitnami MediaWiki
Revision as of 18:01, 22 April 2023 by Vardai Erwin (talk | contribs) (→‎Date de ieșire)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerință[edit | edit source]

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[edit | edit source]

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

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și 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. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări[edit | edit source]

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

Exemplul 1[edit | edit source]

Intrare
30
20
50
Ieșire
Datele de intrare corespund restricțiilor impuse.
20

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<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>