Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2010, 20:21   #1
SwitchOFF
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 25
Злость Задача с радианами и градусами (Borland C)

Всем привет -)
Вот такая задачка у меня:
Даны 3 стороны треугольника, вевести его углы.

Ввожу для прямоугольного треугольника стороны: 3,4,5
Выдаёт 39,47,57

*Смотрел в данном разделе тему о переводе радианов в градусы:
http://programmersforum.ru/showthread.php?t=15604

Но программа работает неверно -(
Подскажите, что не так ?

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

void main ()
{
  float a,b,c,y1,y2,y3;
  clrscr();

  printf("Input A,B,C \n");
  scanf("%f%f%f",&a,&b,&c);

  y1=cos((pow(c,2)+pow(b,2)-pow(a,2))/(2*c*b));
  y2=cos((pow(a,2)+pow(c,2)-pow(b,2))/(2*a*c));
  y3=cos((pow(a,2)+pow(b,2)-pow(c,2))/(2*a*b));

  printf(" %f %f %f",y1,y2,y3);

  y1=y1*180/M_PI;
  y2=y2*180/M_PI;
  y3=y3*180/M_PI;

  printf(" %f %f %f",y1,y2,y3);

  getch();
}
SwitchOFF вне форума Ответить с цитированием
Старый 07.10.2010, 20:42   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Код:
y1=cos((pow(c,2)+pow(b,2)-pow(a,2))/(2*c*b));
  y2=cos((pow(a,2)+pow(c,2)-pow(b,2))/(2*a*c));
  y3=cos((pow(a,2)+pow(b,2)-pow(c,2))/(2*a*b));
Код:
 y1=y1*180/M_PI;
  y2=y2*180/M_PI;
  y3=y3*180/M_PI;
Вы сначала находите косинусы углов, а потом переводите их в радианы.. Интересно.

Последний раз редактировалось _-Re@l-_; 07.10.2010 в 20:44.
_-Re@l-_ вне форума Ответить с цитированием
Старый 07.10.2010, 20:55   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Я вообще ничего не понял. Чего вы там находите. Откуда такие формулы дикие?

По теореме косинусов a^2=b^2+c^2-2*b*c*cosA.
Отсюда cosA=(b^2+c^2-a^2)/2bc.
Отсюда - угол A=arccos((b^2+c^2-a^2)/2bc)

А чего вы считаете, я не понимаю. Математики, поправьте, если я не прав.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 08.10.2010, 10:16   #4
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Взял отсюда :
http://programmersforum.ru/showthread.php?p=170533

Код:
#include <iostream.h>
#include <math.h>
double a,b,c,alfa,beta,gamma;
int main(){
    cin>>a>>b>>c;
    double p=(a+b+c)/2;
    double S=sqrt(p*(p-a)*(p-b)*(p-c));
    alfa=asin(2*S/(a*b))*180/M_PI;
    beta=asin(2*S/(b*c))*180/M_PI;
    gamma=asin(2*S/(c*b))*180/M_PI;
    cout<<"alfa="<<alfa<<" beta="<<beta<<" gamma="<<gamma;
    return 0;
}
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 08.10.2010, 23:24   #5
SwitchOFF
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 25
По умолчанию

Спасибо, разобрался ))
Надо было арки считать ))
SwitchOFF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Borland С++! Vitaxxxa Помощь студентам 3 20.10.2012 07:39
Задача в BORLAND C++ Agent[PNZ] Помощь студентам 23 25.10.2010 20:51
Задача на Borland C++ Помогите пожалуйста(( artos63 Помощь студентам 2 18.06.2009 11:47
Задача на массив [Borland C++] conqueror Помощь студентам 14 02.06.2008 14:10