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≤24
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
Explicație
Aşa cum se vede şi în figura de mai sus unghiul dintre orar şi minutar este de 130
grade pentru prima pereche de valori din fişierul de intrare. Asemănător se obţin şi celelalte valori corespunzătoare următoarelor perechi.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Unghi:
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("unghi.in");
ofstream g("unghi.out");
int main()
{
int n,h,m,i;
float uh,um,u;
f>>n;
for(i=1;i<=n;i++)
{
f>>h>>m;
h=h%12;
if(m==60)
{
m=0;
h++;
}
uh=(h*60+m)*0.5;
um=6*m;
if(uh>um)
u=uh-um;
else
u=um-uh;
if(u<360-u)
g<<u<<endl;
else
g<<360-u<<endl;
//u=fabs(uh-um);
//g<<min(360-u,u)<<'\n';
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1815 Unghi
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1815 Unghi de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!