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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.61
ola312
0 / 0 / 0
Регистрация: 14.10.2008
Сообщений: 11
#1

Найти углы треугольника - C++

14.10.2008, 22:16. Просмотров 4429. Ответов 13
Метки нет (Все метки)

imeem 3 boka triugolnika, naiti ugly etogo triugolnika. vot sto ja imeju:
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
39
40
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
 
    double a,b,c,k1,k2,k3,x;
    cout<<"Iveskite krastines a ilgi"<<endl;
    cout<<"a=";
    cin>>a;
    cout<<"Iveskite krastines b ilgi"<<endl;
    cout<<"b=";
    cin>>b;
    cout<<"Iveskite krastines c ilgi"<<endl;
    cout<<"c=";
    cin>>c;
    
if ((a+b<c) & (a+c<b) & (b+c<a))
cout<<"Tokio trikampio neegzistoja"<<endl;
else
{
cout<<"Skaiciuojame kampa tarp krastiniu a ir b"<<endl;
k1==acos(((a*a)+(b*b)-(c*c))/(2.*a*b));
cout<<k1 <<" "<<endl;
printf("k1= %f\n",k1);
cout<<"Skaiciuojame kampa tarp krastiniu a ir c"<<endl;
k2==acos(((a*a)+(c*c)-(b*b))/(2.*a*c));
cout<<k2 <<" "<<endl;
cout<<"Skaiciuojame kampa tarp krastiniu c ir b"<<endl;
k3==acos(((c*c)+(b*b)-(a*a))/(2.*c*b));
cout<<k3 <<" "<<endl;
}
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2008, 22:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти углы треугольника (C++):

С клавиатуры вводятся три числа, считая их сторонами треугольника найти углы этого треугольника - C++
с клавиатуры вводятся три числа, считая их сторонами треугольника найти углы этого треугольника, можно это как-то просто написать, без...

Найти все углы треугольника со сторонами a , b , c - C++
Найти все углы треугольника со сторонами a , b , c . Предусмотреть в программе перевод радианной меры угла в градусы, минуты и секунды....

Найти углы треугольника с заданными на плоскости координатами - C++
Составить программу вычисления величин: Углы треугольника с вершинами A(0;1.7), B(2;1.7), C(1.5;0,85) Пожалуйста если не трудно...

Найти (в радианах и в градусах) все углы треугольника со сторонами a,b и c - C++
1.Найти (в радианах и в градусах) все углы треугольника со сторонами a,b и c.

Найти (в радианах в градусах) все углы треугольника со сторонами а, Ь, с - C++
вот сами задания: 21. Найти (в радианах в градусах) все углы треугольника со сторонами а, Ь, с. ЭТО ЗАДАЧКИ В С++

Треугольник АВС задан длинами своих сторон. Найти углы треугольника - C++
помогите составить программу в С++ Треугольник АВС задан длинами своих сторон. Найти углы треугольника.

13
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
14.10.2008, 23:30 #2
О ужс! В "cout"-ах там что а язык?
Во-первых, в условии if стоит поразрядное И, хотя по моей логике должно стоять логическое ИЛИ.
Во-вторых, там где считаешь углы, у тебя стоит оператор сравнения, вместо оператора присваивания.
В-третьих, в ретурне проще написать 0;
В-четвертых, лучше не смешивать вывод с помощью "cout" и "printf".
0
Lord_Voodoo
Супер-модератор
8590 / 2205 / 61
Регистрация: 07.03.2007
Сообщений: 10,960
Завершенные тесты: 1
15.10.2008, 11:27 #3
попробуй так:
Код
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{

    double a,b,c,k1,k2,k3,x;
    cout<<"Iveskite krastines a ilgi"<<endl;
    cout<<"a=";
    cin>>a;
    cout<<"Iveskite krastines b ilgi"<<endl;
    cout<<"b=";
    cin>>b;
    cout<<"Iveskite krastines c ilgi"<<endl;
    cout<<"c=";
    cin>>c;
    
if ((a+b<c) && (a+c<b) && (b+c<a)) 
cout<<"Tokio trikampio neegzistoja"<<endl;
else
{
cout<<"Skaiciuojame kampa tarp krastiniu a ir b"<<endl;
k1=acos(((a*a)+(b*b)-(c*c))/(2.*a*b));
cout<<"K1 = "<<k1 <<" "<<endl;
//printf("k1= %f\n",k1);
cout<<"Skaiciuojame kampa tarp krastiniu a ir c"<<endl;
k2=acos(((a*a)+(c*c)-(b*b))/(2.*a*c));
cout<<"K2="<<k2 <<" "<<endl;
cout<<"Skaiciuojame kampa tarp krastiniu c ir b"<<endl;
k3=acos(((c*c)+(b*b)-(a*a))/(2.*c*b));
cout<<"K3="<<k3 <<" "<<endl;
}
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
ola312
0 / 0 / 0
Регистрация: 14.10.2008
Сообщений: 11
15.10.2008, 19:25  [ТС] #4
spasibo. vrose vsio rabotajet, no vot drugaja problemka: mnie ugal nie scitajet. vot sto vybivajet:
Iveskite krastines a ilgi
a=5
Iveskite krastines b ilgi
b=12
Iveskite krastines c ilgi
c=13
Skaiciuojame kampa tarp krastiniu a ir b
5.34651e+036
Skaiciuojame kampa tarp krastiniu a ir c
2.29204e-036
Skaiciuojame kampa tarp krastiniu c ir b
7.89725e+033
Jusu trikampis yra bukas
Для продолжения нажмите любую клавишу . . .
Kak s etim barotca? kakta ja slysala sto kompjutar scitajet v rad, a kak pereiti na gradusy?
P.S. v cont'ax litovskii jazyk prostite za gramaticheskije osibki...
0
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
15.10.2008, 20:26 #5
Для пересчета в градусы умножь на 180 и подели на пи.

Прога в целом работает норм..
Только в условии должны быть логические ИЛИ вместо И!!!

Добавлено через 31 минуту 34 секунды
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
#include <iostream>
#include <math.h>
using namespace std;
 
int main(){
    double a, b, c, k1, k2, k3;
    cout << "Enter the side "a" of the triangle" << endl;
    cin >> a;
    cout << "Enter the side "b" of the triangle" << endl;
    cin >> b;
    cout << "Enter the side "c" of the triangle" << endl;
    cin >> c;
    if ((a+b<c) || (a+c<b) || (b+c<a)) cout << "Triangle with this sides dont exist" << endl;
    else{
         k1 = acos(((a*a)+(b*b)-(c*c))/(2.*a*b));
         k1 = (k1*180)/M_PI;
         cout << "The angle between the sides "a" and "b" - " << k1 << endl;
         k2 = acos(((a*a)+(c*c)-(b*b))/(2.*a*c));
         k2 = (k2*180)/M_PI;
         cout << "The angle between the sides "a" and "c" - " << k2 << endl;
         k3 = acos(((c*c)+(b*b)-(a*a))/(2.*c*b));
         k3 = (k3*180)/M_PI;
         cout << "The angle between the sides "c" and "b" - " << k3 << endl;
         }
    cout << endl;
    system("pause");
    return 0;
}
вот как-то так
0
ola312
0 / 0 / 0
Регистрация: 14.10.2008
Сообщений: 11
17.10.2008, 15:31  [ТС] #6
ogromnoje spasibo!!!

Добавлено через 7 минут 16 секунд
pravdu govoria, ja v programiryvanje polnyj 0 porchti nechego ni ponimaju, za iskluchenijem samyx elementarnyx vescej :'( no ja pravda starajus, vsiakije knizki bieru chitaju, sama probuju kakijeta programki pisat', kaneshno ni ochen' poluchajetca . Tak vot, objesnite pozaluista kak vot v etu moju programku vpisac funkciju, kotoraja budet scitat' ugly? moja uchitelnica skazala shto obizatelno dolzna byt' eta funkcija, stoby 3 raza nie pisat' formulu, tak kak eto nie krasivo vygledit.
0
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
17.10.2008, 16:37 #7
Эмм... если честно, не понял, что нужно сделать =)

Третий угол можно сосчитать, как "k3 = 180 - k1 - k2". Это спасет? =)
0
Lord_Voodoo
Супер-модератор
8590 / 2205 / 61
Регистрация: 07.03.2007
Сообщений: 10,960
Завершенные тесты: 1
17.10.2008, 16:47 #8
вроде бы так:
Код
#include <math.h>
using namespace std;
double ddd(double a, double b, double c){
  return acos(((a*a)+(b*b)-(c*c))/(2.*a*b));
}
int main(){
    double a, b, c, k1, k2, k3;
    cout << "Enter the side \"a\" of the triangle" << endl;
    cin >> a;
    cout << "Enter the side \"b\" of the triangle" << endl;
    cin >> b;
    cout << "Enter the side \"c\" of the triangle" << endl;
    cin >> c;
    if ((a+b<c) || (a+c<b) || (b+c<a)) cout << "Triangle with this sides dont exist" << endl;
    else{
         cout << "The angle between the sides \"a\" and \"b\" - " << 
(ddd(a, b, c)*180)/M_PI << endl;
         cout << "The angle between the sides \"a\" and \"c\" - " << 
(ddd(a, c, b)*180)/M_PI  << endl;
         cout << "The angle between the sides \"c\" and \"b\" - " << 
(ddd(b, c, a)*180)/M_PI  << endl;
         }
    cout << endl;
    system("pause");
    return 0;
}
0
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
17.10.2008, 20:24 #9
аа.. все понял =)

вот так еще можно..
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 <iostream>
#include <math.h>
using namespace std;
 
void angles(double a, double b, double c, double& ka, double& kb, double& kc){
    kc = acos(((a*a)+(b*b)-(c*c))/(2.*a*b));
    kc = (kc*180)/M_PI;
    kb = acos(((a*a)+(c*c)-(b*b))/(2.*a*c));
    kb = (kb*180)/M_PI;
    ka = acos(((c*c)+(b*b)-(a*a))/(2.*c*b));
    ka = (ka*180)/M_PI;       
}
 
int main(){
    double a, b, c, ka = 0, kb = 0, kc = 0;
    cout << "Enter the side "a" of the triangle" << endl;
    cin >> a;
    cout << "Enter the side "b" of the triangle" << endl;
    cin >> b;
    cout << "Enter the side "c" of the triangle" << endl;
    cin >> c;
    if ((a+b<c) || (a+c<b) || (b+c<a)) cout << "Triangle with this sides dont exist" << endl;
    else{
         angles(a, b, c, ka, kb, kc);
         cout << "The angle between the sides "a" and "b" - " << kc << endl;
         cout << "The angle between the sides "a" and "c" - " << kb << endl;
         cout << "The angle between the sides "c" and "b" - " << ka << endl;
         }
    cout << endl;
    system("pause");
    return 0;
}
Здесь угол "ka" - находится напротив стороны "а", "kb" напротив b, "kc" напротив "c".
0
ola312
0 / 0 / 0
Регистрация: 14.10.2008
Сообщений: 11
18.10.2008, 12:17  [ТС] #10
jasninka, budu probyvat' rozbiratca vsem uzasna blagodarna.!! ogromnoje spasibo!!

Добавлено через 14 часов 13 минут 10 секунд
Vot u menja rodilsia vopros k “Ranoferu“: zachem nuzen znak & vot v etoi strokie:

void angles(double a, double b, double c, double& ka, double& kb, double& kc)??

nikak nie mogu ponjat...
0
Lord_Voodoo
Супер-модератор
8590 / 2205 / 61
Регистрация: 07.03.2007
Сообщений: 10,960
Завершенные тесты: 1
18.10.2008, 12:18 #11
ola312, туда будут записаны результаты вычислений, т.к. функция возвращает три угла...
0
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
19.10.2008, 00:28 #12
Цитата Сообщение от ola312 Посмотреть сообщение
Vot u menja rodilsia vopros k “Ranoferu“: zachem nuzen znak & vot v etoi strokie:

void angles(double a, double b, double c, double& ka, double& kb, double& kc)??

nikak nie mogu ponjat...
Знак & в этом случае, нужен для того, чтобы передать в функцию адрес переменной, то есть функция, получив адрес переменной, может изменить саму переменную. Если же ты уберешь & то в функцию уйдет копия значения переменной, которая в функции изменится, а сама переменная останется равна нулю.
0
ola312
0 / 0 / 0
Регистрация: 14.10.2008
Сообщений: 11
19.10.2008, 01:04  [ТС] #13
Ochen' stydno vas snovo sprashyvat', no pravda ni imieju k komu bolshe obrotitca . u menia kak vsigda problemy s etoj programkoj. Ja vzela programku “WooDooMan'a“:
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
#include <math.h>
using namespace std;
double ddd(double a, double b, double c){
  return acos(((a*a)+(b*b)-(c*c))/(2.*a*b));
}
int main(){
    double a, b, c, k1, k2, k3;
    cout << "Enter the side "a" of the triangle" << endl;
    cin >> a;
    cout << "Enter the side "b" of the triangle" << endl;
    cin >> b;
    cout << "Enter the side "c" of the triangle" << endl;
    cin >> c;
    if ((a+b<c) || (a+c<b) || (b+c<a)) cout << "Triangle with this sides dont exist" << endl;
    else{
         cout << "The angle between the sides "a" and "b" - " << 
(ddd(a, b, c)*180)/M_PI << endl;
         cout << "The angle between the sides "a" and "c" - " << 
(ddd(a, c, b)*180)/M_PI  << endl;
         cout << "The angle between the sides "c" and "b" - " << 
(ddd(b, c, a)*180)/M_PI  << endl;
         }
    cout << endl;
    system("pause");
    return 0;
}
i pieredelala niemnogo na svoj lad, vot shto u menja poluchilos:
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
39
#include <iostream>
#include <math.h>
 
using namespace std;
 
double ddd(int a, int b, int c, float& k1, float& k2, float& k3)
{ float k1, k2, k3;
  k1=((acos(((a*a)+(b*b)-(c*c))/(2.*a*b)))*180)/M_PI;
  return k1, k2, k3;
}
int main(){
    int a, b, c, k1, k2, k3;
    cout << "Enter the side "a" of the triangle" << endl;
    cin >> a;
    cout << "Enter the side "b" of the triangle" << endl;
    cin >> b;
    cout << "Enter the side "c" of the triangle" << endl;
    cin >> c;
    
    if ((a+b<c) || (a+c<b) || (b+c<a))
    cout << "Triangle with this sides dont exist" << endl;
    else
    {
    cout << "The angle between the sides "a" and "b" - " << k1=ddd(a, b, c)<< endl;
    cout << "The angle between the sides "a" and "c" - " << k2=ddd(a, c, b)<< endl;
    cout << "The angle between the sides "c" and "b" - " << k3=ddd(b, c, a)<< endl;
         }
    cout << endl;
    
    if(k1==90 || k2==90 || k3==90)
    cout<<"vash triugolnik priamougolnyj"<<endl;
    if(k1<90 && k2<90 && k3<90)
    cout<<"vash triugolnik ostrougolnyj"<<endl;
    if(k1>90 || k2>90 || k3>90)
    cout<<"Vash triugolnik tupougolnyj"<<endl;
    
    system("pause");
    return 0;
}
no, kak vy uze naverna dogodalis, ona u menja nie robotajet...:'( pomogite pozaluista, nadejus chto v poslednij raz vas biezpokoju...
0
Ranofer
2 / 2 / 0
Регистрация: 04.09.2008
Сообщений: 20
19.10.2008, 13:54 #14
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
39
40
41
#include <iostream>
#include <math.h>
 
using namespace std;
 
double ddd(double a, double b, double c){
    return ((acos(((a*a)+(b*b)-(c*c))/(2.*a*b)))*180)/M_PI;
}
 
int main(){
    double V_Null = 0.00001;
    double a, b, c, k1, k2, k3;
    cout << "Enter the side "a" of the triangle" << endl;
    cin >> a;
    cout << "Enter the side "b" of the triangle" << endl;
    cin >> b;
    cout << "Enter the side "c" of the triangle" << endl;
    cin >> c;
 
    if ((a+b<c) || (a+c<b) || (b+c<a))
       cout << "Triangle with this sides dont exist" << endl;
    else{
        k1 = ddd(a, b, c);
        k2 = ddd(a, c, b);
        k3 = ddd(b, c, a);
        cout << "The angle between the sides "a" and "b" - " << k1 << endl;
        cout << "The angle between the sides "a" and "c" - " << k2 << endl;
        cout << "The angle between the sides "c" and "b" - " << k3 << endl;
    }
    cout << endl;
 
    if((k1-90<V_Null && k1-90> -V_Null) || (k2-90<V_Null && k2-90> -V_Null) || (k3-90<V_Null && k3-90> -V_Null))
        cout<<"vash triugolnik priamougolnyj"<<endl;
    if(k1<90 && k2<90 && k3<90)
        cout<<"vash triugolnik ostrougolnyj"<<endl;
    if(k1>90 || k2>90 || k3>90)
        cout<<"Vash triugolnik tupougolnyj"<<endl;
 
    system("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2008, 13:54
Привет! Вот еще темы с ответами:

Найти внутрение углы треугольника,заданного координатами своих вершин на площаде. - C++
Найти внутрение углы треугольника,заданного координатами своих вершин на площаде. Заранее спасибо!!!!

Найти стороны треугольника, зная его углы и радиус описанной окружности - C++
2)Треугольник задан величинами своих углов и радиусом описанной окружности. Найти стороны треугольника.

Углы треугольника - C++
Дан треугольник. Определите величину самого большого из его углов. Входные данные Координаты трех вершин треугольника (сначала...

Вычислить углы треугольника зная его стороны. - C++
Задание написать прогу но вместо переменной использовать ссылку на неё.Вычислить углы треугольника зная его стороны.Решил писать через...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
19.10.2008, 13:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru