Informatică, întrebare adresată de ytchannelclaudiu, 8 ani în urmă

Cerința
Se dă un număr natural x, reprezentând mărimea în grade sexagesimale a unui unghi. Să se afișeze sin(x) și cos(x).

Date de intrare
Programul citește de la tastatură numărul x.

Date de ieșire
Programul va afișa pe ecran două numere separate printr-un spațiu, reprezentând sin(x) și cos(x).

Restricții și precizări
1 ≤ x ≤ 180;
se recomandă afișarea rezultatelor cu cel puțin trei zecimale;

Răspunsuri la întrebare

Răspuns de ovdumi
3

Răspuns:

#define _USE_MATH_DEFINES

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

int x;

cout << "x = "; cin >> x;

cout << sin(x * M_PI / 180) << " " << cos(x * M_PI / 180) << endl;

       return 0;

}

Explicație:

Am folosit functia define pentru a defini numarul \pi, care in C++ este notat cu M_PI. x reprezinta numarul de grade al unghiului, dar daca am face direct sin(x), valoarea memorata de x este considerata a fi exprimata in radiani, caz in care nu ar fi afisata valoarea corecta (la fel e si cu cos(x)). Asadar, trebuie sa transformam gradele in radiani. Iata cum :

180 grade ........... \pi radiani

x grade .............. n radiani

Conform regulii de 3 simpla, n = (x*\pi/180), deci trebuie sa calculam sin(n) si cos(n).


DFAforReal20: Metoda e interesanta si pare corecat , insa site-ul PBInfo ofera 0 puncte!
Incearca-o si tu!
DFAforReal20: https://www.pbinfo.ro/probleme/3458/sin-cos
ovdumi: #include
#include
#include
using namespace std;
int main()
{
int x;
cin >> x;
cout << fixed << setprecision(3) << sin(x * 2 * acos(0) / 180) << " " << cos(x * 2 * acos(0) / 180) << endl;
return 0;
}
ovdumi: m-am interesat si am incercat metoda asta, pe care mi-a dat 100 de puncte. Aici, acos(0)=pi/2 (pentru ca cos(pi/2)=0) si daca inmultim cu 2 ne da chiar pi. Probabil nu accepta pe pbinfo functia asta de a defini o anumita constanta matematica, precum pi, si de aceea se pare ca trebuia sa il scriu pe pi in alt mod
DFAforReal20: Da , probabil asta era , insa ce trebuie inclus pe langa iostream si cmath? Banuiesc ca ceva care da posibilitatea setprecision-ului sa functioneze , nu?
Alte întrebări interesante