Problem zamiany radianów na stopnie i minuty

0

Mam problem z zamianą kąta otrzymanego w radianach na stopnie i minuty.Tzn. liczba stopni jest wyliczana prawidłowo lecz przy minutach jest już problem ponieważ liczba ta jest zapisywana w systemie dziesiątkowym. Z matematycznego punktu widzenia wystarczyło by zmienić mianownik na 60 i wszystko byłoby ok, ale tutaj nie można zbytnio takiej operacji zrobić.

 
 #include <iostream>
 #include <cstdlib>
 #include <cmath>
 #include <iomanip>
 #include <windows.h>
 #include <string>
 #include <stdlib.h>
using namespace std;

int main()
{
          double modul;
          double srzew;
          cout<<"Podaj srednice zewnetrzna slimaka: \n";
          cin>> srzew;
          cout<<"Podaj modul: \n";
          cin>> modul;
          double srpodz= (srzew-2*(modul));
          double krotnosc;
          cout<<"Podaj krotnosc slimaka: \n";
          cin>> krotnosc;
          double kat=(krotnosc*modul)/srpodz;
          double kat2 = (atan(kat)* 180) / M_PI;
          cout<<"Kat pochylenia slimacznicy wynosi: \n";
          cout<<kat2<<"\n";
         
          int wybor3;
          cout<<"Jesli nie chcesz konczyc program wcisnij: 1 \n W przeciwnym razie wcisnij dowolny klawisz i nacisnij ENTER...\n";
          cin>>wybor3;
          switch (wybor3)
          {
          case 1: main();break;
          default: exit (0); ;
          }
           
}



0

Część ułamkową tej liczby, która reprezentuje stopnie musisz pomnożyć przez 60 i będą to minuty. Część ułamkowa minut pomnożona przez 60 to sekundy.

Poczytaj tutaj: http://www.cplusplus.com/reference/clibrary/cmath/modf/

cout<<"Kat pochylenia slimacznicy wynosi: \n";

Czy tylko mnie to śmieszy? ;-)

0

Zrobiłem tak jak powiedziałeś jednak znowu wychodza jakieś głupoty

 
          double modul;
          double srzew;
          cout<<"Podaj srednice zewnetrzna slimaka: \n";
          cin>> srzew;
          cout<<"Podaj modul: \n";
          cin>> modul;
          double srpodz= (srzew-2*(modul));
          double krotnosc;
          cout<<"Podaj krotnosc slimaka: \n";
          cin>> krotnosc;
          double kat=(krotnosc*modul)/srpodz;
          double kat2 = (atan(kat)* 180) / M_PI;
          double ulamek;
          double stopnie= modf( kat2, &ulamek); 
          
          cout<<"Kat pochylenia slimacznicy wynosi: \n";
          double minuty= cz*60;
          cout<<stopnie<<"stopni"<<minuty<<"minut";
0

Kod, który wyjaśnia o co mi chodzi, zrozum jak działa a potem zastosuj u siebie:

  double rad = 1.3567;
 
  double deg = rad * (180/M_PI);
 
  double degrees = 0.0;
  double minutes = modf(deg, &degrees);
 
  cout << rad << " radianow to " << degrees << "*" << ceil(minutes * 60) << "'" << endl;

Tutaj możesz zobaczyć jak działa: http://ideone.com/5BMlx

0

Dzięki wielkie, teraz wszystko działa jak należy ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1