1815 - Unghi
La geometrie, domnul profesor de matematică le-a vorbit elevilor săi despre unghiuri. Pentru a fi sigur că aceștia au înțeles noțiunile predate, le-a dat o listă cu n probleme.
Cerinţa
Fiind date numărul de ore în variabila h și numărul de minute în variabila m, să se determine câte grade avea unghiul dintre orarul și minutarul unui ceas clasic, la ora h şi m minute?
Date de intrare
Fișierul unghi.in va conține pe prima linie un număr natural n, reprezentând numărul de probleme date ca temă, iar pe a doua linie, două numere h și m, separate printr-un spațiu, cu semnificațiile din cerință.
Date de ieşire
Fișierul unghi.out va conține pe câte o linie numărul de grade corespunzător unghiului format de orar și minutar, pentru fiecare dintre cele n probleme din temă.
Restricții și precizări
- n este număr natural, 1 ⩽ n ⩽ 100
- h este număr natural, 0 ⩽ h ⩽ 24h
- m este număr natural, 0 ⩽ m ⩽ 60
- Dimensiunea unui unghi se măsoară în grade. Un cerc are 360 de grade.
Exemplu
- unghi.in
- 3
- 8 20
- 1 10
- 5 15
- unghi.out
- 130
- 25
- 67.5
Rezolvare
<syntaxhighlight lang="python" line>
- Deschidem fisierul de intrare
with open('unghi.in', 'r') as intrare:
n = int(intrare.readline()) # Initializam o lista pentru a stoca rezultatele rezultate = [] # Parcurgem fiecare problema for _ in range(n): # Citim ora si minutul pentru fiecare problema h, m = map(int, intrare.readline().split()) if h == 12: h = 0 # Daca minutul este 60, il setam la 0 si incrementam ora cu 1 if m == 60: m = 0 h += 1 # Calculam pozitia orarului in grade ora = 0.5 * (h * 60 + m) # Calculam pozitia minutarului in grade minut = 6 * m # Calculam unghiul absolut dintre orar si minutar unghi = abs(ora - minut) # Daca unghiul este mai mare de 180 de grade, folosim complementul sau in cerc (360 - unghi) unghi = min(360 - unghi, unghi) # Adaugam unghiul calculat in lista de rezultate rezultate.append(unghi)
- Deschidem fisierul de iesire
with open('unghi.out', 'w') as iesire:
# Scriem fiecare unghi calculat pe cate o linie noua in fisierul de iesire for unghi in rezultate: iesire.write(str(unghi) + '\n')
</syntaxhighlight>