Ю1.1

Задача.

Из градусов в радианы. Угол α задан в градусах, минутах и секундах. Найти его величину в радианах(с максимально возможной точностью).

Тесты.

Ввод Вывод
градусы(grad) минуты(min) Секунды(sec) радианы(rad)
0 0 0 0
90 0 0 1.570796326794897
179 59 60 3.141592653589793
-270 0 0 -4.7123889803847

 

 

 

 

Решение.

Обозначим через переменные grad, min,  sec  число градусов, минут, секунд.

1 градус= 60 минут= 3600 секунд.

Сначала проверяем число градусов больше 3600  или нет. Если меньше то ничего не меняем, а если больше то от числа градусов отнимаем 360 до тех пор пока оно не станет меньше 360. После используем формулы перевода градусов, минут и секунд в радианы:

[latex]\mathit{rad=grad\frac{\pi }{180}}[/latex]

 

[latex]\mathit{rad=min\frac{\pi }{180}/60}[/latex]

 

[latex]\mathit{rad=sec\frac{\pi }{180}/3600}[/latex]

Если число градусов положительно то используем конечную формулу:

[latex]\mathit{rad=grad\frac{\pi }{180}+min\frac{\pi }{180}/60+sec\frac{\pi }{180}/3600}[/latex]

Если же оно отрицательно то используем другую формулу:

[latex]\mathit{rad=grad\frac{\pi }{180}-min\frac{\pi }{180}/60-sec\frac{\pi }{180}/3600}[/latex]

 

Ковальський Олександр Дмитрович
Ковальський Олександр Дмитрович

Latest posts by Ковальський Олександр Дмитрович (see all)

3 thoughts on “Ю1.1

  1. В задании написано «с максимально возможной точностью», а используете наименее точный тип float.
    Кроме первого теста, остальные сложно проверить в уме. Как считали ответ? На калькуляторе?
    Зачем дополнительно объявлять pi, если все равно используете значение M_PI.
    В формулах не нужно звездочек, пи должно быть маленькой греческой буквой.

  2. — Тема «Линейные вычисления» не предполагает условных операторов. Точно без них нельзя обойтись?
    — Пожалуйста, сделайте такие тесты для положительных и отрицательных углов в которых встречались бы градусы, минуты, секунды. Исправьте тест в котором 60 секунд. Вы наверное в курсе, что такое количество секунд задавать не принято?
    — Строки 14-15 это попытка вычисления остатка от деления на 360 причём только для неотрицательных чисел? Замените, пожалуйста, на grad %= 360 или что-то подобное.
    — Сделайте симметричные тесты (+361 и -361). Убедитесь, что результат отличается только знаком.
    — При задании отрицательных углов знак «-» ставится только перед градусами, но предполагается отрицательным весь угол. Я правильно понял?