24.2.3.24011020. Napisati dvije preopterećene verzije funkcije “pretvorba” koje pretvaraju radijane u stepene. Prva verzija prihvata dva realna parametra “alfa“ i “stepeni”, dok druga verzija prihvata četiri parametra nazvana “alfa”, “stepeni”, “minute“ i “sekunde”, od kojih je prvi realan a ostali cjelobrojni. U oba slučaja prvi parametar predstavlja neki ugao u radijanima. Prva verzija funkcije treba da pretvori tu vrijednost u stepene (kao realan broj) i smjesti pretvorenu vrijednost u drugi parametar. Druga verzija funkcije treba da pretvori vrijednost ugla u stepene, minute i sekunde i da smjesti pretvorenu vrijednost redom u drugi, treći i četvrti parametar. Na primjer, ukoliko se izvrše naredbe pretvorba(1.326, s); pretvorba(1.326, x, y, z); u promjenljive “s”, “x”, “y” i “z” (pod pretpostavkom da su ispravno deklarirane) treba da se smjeste brojevi 75.9742, 75, 58 i 27, jer je 1.326 rad = 75.9742 = 75 58' 27". Napisati i kratki glavni program u kojoj ćete demonstrirati napisanu funkciju.

Opis rješenja:

Listing programa:

//pretvara radijane u stepene, (min i sekunde)
#include <iostream>
#include <conio.h>
using namespace std;

void pretvorba(double,double &);
void pretvorba(double,int &,int &,int &);
int main(){
double alfa,stepen;
int st,m,s;
cin>>alfa;
pretvorba(alfa,stepen);
pretvorba(alfa,st,m,s);
cout<<endl<<stepen<<endl;
cout<<st<<"  "<<m<<"  "<<s;
getch();
return 0;
}
void pretvorba(double x,double &st){
const double PI(3.14159265);
st=x*180/PI;
}
void pretvorba(double x,int &st,int &m,int &s){
const double PI(3.14159265);
x=x*180/PI;
st=int(x);
m=int((x-st)*3600)/60;
s=int((x-st)*3600)%60;
}

Ispis na ekranu:

Riješeni zadaci 2    Index