Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить треугольник. Трудная (для меня) задача 
:(
    Опции темы
relike
Дата 9.12.2013, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 9.12.2013

Репутация: нет
Всего: нет



Ребята HELP. У меня задание по программированию на с++. Мне нужно написать программу которая будет определять невырожденный треугольник (равноб. равностр. прямоуг.). По двум сторонам a и b и углу β. Скажие мне какие условия должны выполняться чтобы треугольник соответствовал какому либо типу?
PM MAIL   Вверх
rudolfninja
Дата 9.12.2013, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Если предполагать, что betta (значение вводится в градусах) - угол между a и b, то
Равносторонний: a == b && betta == 60
Прямоугольный: (b == a * cos(betta) || betta == 90)- из теоремы синусов и формул приведения sin(90 - alpha) == cos(alpha)
Равнобедренный: (a == b && betta != 60 || a * sin(2 * betta) = b * sin(betta)) - из теоремы синусов и формулы приведения sin(180 - alpha) == sin(alpha)

Вроде ничего не перепутал

Это сообщение отредактировал(а) rudolfninja - 9.12.2013, 19:41
PM MAIL Skype   Вверх
relike
Дата 9.12.2013, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 9.12.2013

Репутация: нет
Всего: нет



rudolfninja, вот сделал, но с прямоугольными что-то не так...
Код

#include <cstdlib>
#include <iostream>
#include <Math.h>
using namespace std;

int main(int argc, char *argv[])
{
    float a, b, betta;
    cout<<"Vvedeite storony treugol'nika a i b i ugol betta megdu nimi : \n";
    cout<<"a = "; cin>>a;
    cout<<"b = "; cin>>b;
    cout<<"betta = "; cin>>betta;
    
    if(a == b && betta == 60) cout<<"Treugol'nik ravnostoronnyi.";
    else {
        if(b == a * cos(betta) || betta == 90) cout<<"Treugol'nik pryamougol'nyi.";
        else {
            if(a == b && betta != 60 || a * sin(2 * betta) == b * sin(betta)) cout<<"Treugol'nik ravnobedrennyi.";
            else cout<<"treugol'nik raznostoronnyi.";
            }
        }
    cout<<"\n";
    system("pause");
    return EXIT_SUCCESS;
}


PM MAIL   Вверх
rudolfninja
Дата 9.12.2013, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



relike, а какие значения для теста вводил?
PM MAIL Skype   Вверх
relike
Дата 9.12.2013, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 9.12.2013

Репутация: нет
Всего: нет



rudolfninja, я только что понял, что тупанул не запомнив их. Дай мне несколько значений, если не лень, на каждый случай. Или подскажи как подобрать. 
PM MAIL   Вверх
smalcom
Дата 10.12.2013, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



программу не вы писали: в ней ошибка.


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
xvr
Дата 10.12.2013, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



sin и cos принимают углы в радианах, а не в градусах. Вы этого не учли


PM MAIL   Вверх
relike
Дата 10.12.2013, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 9.12.2013

Репутация: нет
Всего: нет



smalcom, Программу я писал. Где ошибка?

xvr, т.е. нужно забацать перевод туда-обратно?
PM MAIL   Вверх
bsa
Дата 10.12.2013, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(relike @  10.12.2013,  14:58 Найти цитируемый пост)
xvr, т.е. нужно забацать перевод туда-обратно? 

Зачем в обе стороны? Достаточно только в одну: r = d * (M_PI / 180.0)
PM   Вверх
smalcom
Дата 10.12.2013, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Цитата

Где ошибка?

Math.h - с большой буквы


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
feodorv
Дата 11.12.2013, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Замечу, что идёт прямое сравнение чисел с плавающей точкой.

Если учесть, что sin( 2 * x ) есть 2 * sin( x ) * cos( x ), то формула сравнения несколько упрощается.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1437 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.