Форум программистов, компьютерный форум CyberForum.ru

Перевести радианную меру угла в градусы, минуты и секунды - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
19.12.2012, 21:27     Перевести радианную меру угла в градусы, минуты и секунды #1
Перевести радианную меру угла в градусы, минуты и секунды.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 21:27     Перевести радианную меру угла в градусы, минуты и секунды
Посмотрите здесь:

C++ Перевод угла из радиан в градусы, минуты и секунды
C++ Как перевести секунды в часы, минуты и секунды
Перевод значений угла из градусной меры в радианную C++
Перевод секунд в часы,минуты и секунды C++
Преобразовать координаты из десятичного представления в градусы минуты секунды C++
C++ Определить текущий день недели, год, месяц, число, а также текущее время-часы, минуты, секунды, сотые доли секунды.
C++ Часы, минуты, секунды - операция сложения
C++ Перевод градусной меры угла в радианную

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
19.12.2012, 22:42     Перевести радианную меру угла в градусы, минуты и секунды #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include "windows.h"
#include <math.h>
using namespace std;
 
 
struct DegreeNumber{
    int degree;
    int minute;
    int second;
};
 
DegreeNumber toDegreeNumber(double num){
      DegreeNumber newNumber;
  //в одной секунде 4,8481368Е-6 радиан  , в одном градусе 3600 секунд
      newNumber.degree = num/4.8481368*1E6/3600;
  // в одной минуте  2,9088821Ев€’4 радиан , в одном градусе 60 секунд
      newNumber.minute = (num/4.8481368*1E6/3600 - newNumber.degree)/2.9088821*1E4/60;
      newNumber.second = 60*((num/4.8481368*1E6/3600 - newNumber.degree)/2.9088821*1E4/60
                          -newNumber.minute)/4.8481368;
      cout<<  newNumber.degree << " degree " << newNumber.minute  << " ' " ;
      cout<<  newNumber.second << " '' " <<endl;
}
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    toDegreeNumber(2);
    toDegreeNumber(3);
    toDegreeNumber(M_PI);
    toDegreeNumber(0);
    system("pause");
    return 0;
}
вроде не накосячил

Добавлено через 7 минут
код с дополнительной проверкой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include "windows.h"
#include <math.h>
using namespace std;
 
 
struct DegreeNumber{
    int degree;
    int minute;
    int second;
};
 
DegreeNumber toDegreeNumber(double num){
      cout<< " исходное число = " <<  num << endl;
      DegreeNumber newNumber;
  //в одной секунде 4,8481368Е-6 радиан  , в одном градусе 3600 секунд
      newNumber.degree = num/4.8481368*1E6/3600;
  // в одной минуте  2,9088821Ев€’4 радиан , в одном градусе 60 секунд
      newNumber.minute = (num/4.8481368*1E6/3600 - newNumber.degree)/2.9088821*1E4/60;
      newNumber.second = 60*((num/4.8481368*1E6/3600 - newNumber.degree)/2.9088821*1E4/60
                          -newNumber.minute)/4.8481368;
      cout<<  newNumber.degree << " degree " << newNumber.minute  << " ' " ;
      cout<<  newNumber.second << " '' " <<endl;
      cout<< " обратное привидение числа = " <<  newNumber.degree*M_PI/180+
                                      newNumber.minute*2.9088821*1E-4+
                                      newNumber.second*4.8481368*1E-6<< endl <<endl;
}
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    toDegreeNumber(2);
    toDegreeNumber(3);
    toDegreeNumber(M_PI);
    toDegreeNumber(0);
    system("pause");
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
19.12.2012, 22:49     Перевести радианную меру угла в градусы, минуты и секунды #3
Цитата Сообщение от hacker13a Посмотреть сообщение
Перевести радианную меру угла в градусы, минуты и секунды.
- вот очень просто и сердито (как бонус - защита от некорректного ввода)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    double DEG   = 90/asin(1.0);//Коэфф перевода радиан в градусную меру
    double angle = 0;
    double ipart = 0;//Целая часть от angle
    double fpart = 0;//Дробная часть от angle
    int minutes  = 0;
    int seconds  = 0;
    while(true)
    {
        cout<<"Enter angle in radians : ";
        if(!(cin>>angle))
        {
            //Обрабатываем некорректный ввод
            cin.clear();
            cin.sync();
            cout<<"Incorrect input"<<endl;
        }
        else
        {
            fpart = modf(angle*DEG, &ipart);
            minutes = int(60*fpart);
            seconds = int(60*(60*fpart - minutes));
            cout<<ipart<<" deg "<<minutes<<"\'"<<seconds<<"\""<<endl;
        }
    }
    return 0;
}
Миниатюры
Перевести радианную меру угла в градусы, минуты и секунды  
Yandex
Объявления
19.12.2012, 22:49     Перевести радианную меру угла в градусы, минуты и секунды
Ответ Создать тему
Опции темы

Текущее время: 04:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru