Задача Ю1.2 : Из радианов в градусы. Угол [latex]\alpha[/latex] задан в радианах. Найти его величину в градусах, минутах и секундах
rad | deg | m | s |
3 | 171 | 53 | 14 |
-2.5 | -143 | 14 | 22 |
21 | 123 | 12 | 41 |
-9.1 | -161 | 23 | 30 |
Решение:
Код программы на 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 |
#include <iostream> #include <math.h> using namespace std; int main() { double r, rad, d, m, s; int deg, min, sec; /* Вводим радианы */ cin>>r; if (r<0) {rad=-r;} else {rad=r;} /* Считаем градусы */ d = rad * 180 / M_PI; /* Считает минуты, отбрасывая челую часть от градусов */ m=(d-floor(d))*60; /* Считаем секунды, отбрасывая целую часть от минут*/ s=(m-floor(m))*60; /* Новые переменные для вывода */ int dd = floor(d); deg= dd%360; if ( r < 0 ) {deg=-deg;} int mm = floor(m); min=abs(mm); int ss = round(s); sec=abs(ss); cout<<"Ответ: "<<r<<" радиан =" <<" "<<deg<<"°"<<min<<"'"<<sec<<"˝"; } |
Ссылка на ideone Java: http://ideone.com/PTbhOy
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 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); double r, rad, d, m, s, deg, min, sec; r = in.nextDouble(); if (r<0) rad=-r; else rad=r; d = rad * 180 / Math.PI; m=(d-Math.floor(d))*60; s=(m-Math.floor(m))*60; double dd = Math.floor(d); deg= dd%360; if ( r < 0 ) deg=-deg; double mm = Math.floor(m); min=Math.abs(mm); double ss = Math.round(s); sec=Math.abs(ss); System.out.printf("Ответ: %.0f радиан = %.0f°%.0f'%.0f˝",r,deg,min,sec); } } |
Для вычисления градусов из радиан пользовался формулой:
[latex]Deg=Rad\frac{180}{\pi }[/latex]Далее ищу остаток от деления на [latex]360[/latex] т.к. угол [latex]\alpha < 360[/latex].
Для вычисления минут отбрасываю от градусов целую часть (округляя вниз) и умножаю на [latex]60[/latex]
Для вычисления секунд отбрасываю от минут целую часть (округляя вниз) и умножаю на [latex]60[/latex]
секунды округляю функцией round
Ответ выводит в градусах минута и секундах
— Можно просто ссылаться на номера строк, а не приводить их снова. Но так как Вы делаете намного лучше. Только сохраняйте, пожалуйста нумерацию при цитировании. Я для примера это сделал с 15-й строкой, когда вы её повторяете отдельно.
— Добавьте ссылку на программу в IDEone, чтобы я мог проверить её работу.
Оценку я поставил, поскольку уверен, что Вы внесёте эти несложные исправления.
— Ссылку на ideOne нужно делать выделив текст, который станет ссылкой и нажав кнопку link
— Просто удалили отдельные строки кода оставив только номера? Можно и так.
Напрасно я старался и показывал как задать нужный номер. Поленились сделать красиво 🙁
Засчитана Java-версия!