2782 - Parada
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">
- 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
- 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>