Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
1

Определить прямоугольность треугольника по трём сторонам

04.10.2010, 13:31. Показов 3103. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделал сам, но работает только при том условии, когда сторона "А" - это гипотенуза.
Помогите, плз, чтоб программа работала для трёх любых введённых сторон.


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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// bl.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "math.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    float A;
    do
    {
        printf("\n BBeDuTe cTopoHy A: ");
        scanf("%f",&A);
        if(A<=0)
        {
            printf("OIIIu6Ka");
        }
    }while(A<=0);
    printf("CTOPOHA A=%f",A);
 
    float B;
    do
    {
        printf("\n BBeDuTe cTopoHy B: ");
        scanf("%f",&B);
        if(B<=0)
        {
            printf("OIIIu6Ka");
        }
    }while(B<=0);
    printf("CTOPOHA B=%f",B);
 
    float C;
    do
    {
        printf("\n BBeDuTe cTopoHy C: ");
        scanf("%f",&C);
        if(C<=0)
        {
            printf("OIIIu6Ka");
        }
    }while(C<=0);
    printf("CTOPOHA C=%f",C);
 
    do
    {
        if(A==sqrt(B*B+C*C))
        {
            printf("\n TpeyroJIbHuK IIp9IMoyroJIbHblu");
        }
    }while(A==sqrt(B*B+C*C));
        printf("\n TpeyroJIbHuK HE IIp9IMoyroJIbHblu");
    getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2010, 13:31
Ответы с готовыми решениями:

Найти площадь пятиугольника (определить функцию для расчёта площади треугольника по трём сторонам)
даны вещественные числа a.b.c.d.e Найти площадь пятиугольника ,(определить функцию для расчёта...

Функция вычисляющая площадь треугольника по трем сторонам
Нужна функция вычисляющая площадь треугольника по трем сторонам используя формулу...

Нахождение углов треугольника по трем его сторонам
На данный момент у меня получается вот так.. На форуме есть подобная тема но она на языке паскаль...

Построение треугольника по трем сторонам, найти площадь
Запутался с написанием программы Помогите! Даны три числа. Если они могут быть длинами сторон...

28
Day
1179 / 989 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
04.10.2010, 13:41 2
C
1
if(A==sqrt(B*B+C*C) || B==sqrt(A*A+C*C) || C==sqrt(B*B+A*A))
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2010, 13:48 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool isRect(double hyp, double cat1, double cat2)
{
    return (hyp*hyp == cat1*cat1 + cat2*cat2);
}
 
int main()
{
    double  a, b, c;
    std::cin>>a>>b>>c;
    if(a > b && a > c)
        std::cout<<(isRect(a, b, c) ? "true" : "false");
    else if(b > a && b > c)
        std::cout<<(isRect(b, a, c) ? "true" : "false");
    else if(c > a && c > b)
        std::cout<<(isRect(c, a, b) ? "true" : "false");
}
Day, ну и зачем так нагружать процессор ненужными расчетами?
0
Day
1179 / 989 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
04.10.2010, 13:54 4
M128K145, мой процессор выдерживает. Даже не пищит.
А у тебя чуток не получится, ежели пара сторон одинаковые.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.10.2010, 13:56 5
C++
1
return (a*a==b*b+c*c)|(a*a+c*c==b*b)|(a*a+b*b==c*c);
. И никаких гвозёв.
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2010, 13:58 6
Day, читайте мою подпись.
Мне не сложно поставить после 15 строки запись
C++
1
2
else
    std::cout<<"false";
А если ваш код в цикле запустить?


Цитата Сообщение от taras atavin Посмотреть сообщение
C++
1
return (a*a==b*b+c*c)|(a*a+c*c==b*b)|(a*a+b*b==c*c);
taras atavin, к чему битовые операции?
0
Day
1179 / 989 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
04.10.2010, 14:01 7
А чтоб не греть процессор
C
1
2
3
4
A2 = A*A;
B2 = B*B;
C2 = C*C;
return (A2==B2+C2) |  (B2==A2+C2) | (C2==B2+A2)
Но совершенству нет предела...
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.10.2010, 14:03 8
M128K145, а к чему задача? Любая из сторон может быть гипотенузой, тогда её квадрат равен сумме квадратов катетов. Вот я и проверяю все три варианта. А если ни один не проходит, то это всё, что угодно, но не прямоугольный треугольник.

Добавлено через 37 секунд
Цитата Сообщение от Day Посмотреть сообщение
А чтоб не греть процессор
А мой вариант греет?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
04.10.2010, 20:11  [ТС] 9
Так что в итоге является оптимальным вариантом?)
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2010, 21:38 10
<<FIRsT BLooD>>, оптимальным с точки зрения чего?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
05.10.2010, 11:34  [ТС] 11
Цитата Сообщение от M128K145 Посмотреть сообщение
<<FIRsT BLooD>>, оптимальным с точки зрения чего?
В целом. Какой вариант мне взять?
Напишите, плз, готовый вариант полной программы.
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
07.10.2010, 07:13  [ТС] 12
?????
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.10.2010, 08:32 13
<<FIRsT BLooD>>, у вас проблемы со вставкой двух строк в код?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
08.10.2010, 10:29  [ТС] 14
Какой из вышеперечисленных вариантов вставить?
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
08.10.2010, 10:45 15
Вот так должно работать шустрее
C
1
2
3
4
A2 = A*A;
B2 = B*B;
C2 = C*C;
return ((A2-B2-C2)&(B2-A2-C2)&(C2-B2-A2))==0;
0
72 / 71 / 8
Регистрация: 04.08.2010
Сообщений: 434
08.10.2010, 12:42 16
Цитата Сообщение от <<FIRsT BLooD>> Посмотреть сообщение
В целом. Какой вариант мне взять?
Напишите, плз, готовый вариант полной программы.
Есть подозрение, что стартовая программа написана кем то другим\
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
08.10.2010, 12:54 17
Очень интересный цикл у него
C
1
2
3
4
5
6
7
do
        {
                if(A==sqrt(B*B+C*C))
                {
                        printf("\n TpeyroJIbHuK IIp9IMoyroJIbHblu");
                }
        }while(A==sqrt(B*B+C*C));
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
08.10.2010, 13:19  [ТС] 18
murderer, нам препод показал шаблоны, вот я и составил по ним, как ты сказал, "стартовую программу". Он всем разные задачи раздал.

LineStown, ок, а его в конец вставлять?
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
08.10.2010, 13:25 19
Короче

C
1
2
3
4
5
6
7
A2 = A*A;
B2 = B*B;
C2 = C*C;
if (((A2-B2-C2)&(B2-A2-C2)&(C2-B2-A2))==0)
    printf("\n TpeyroJIbHuK IIp9IMoyroJIbHblu");
else
   printf("\n TpeyroJIbHuK HE IIp9IMoyroJIbHblu");
Так понятно?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
26.10.2010, 19:13  [ТС] 20
Нет.
вставляю в конце, он мне 13 ошибок выдаёт.
И вообще у меня вроде как нет if/else...
С++ надо, а не просто С.

Оч прошу вставить что куда надо в мою недопрогу в 1 посте, буду очень признателен.

Добавлено через 1 час 50 минут
+
чем быстрее, тем лучше)
0
26.10.2010, 19:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2010, 19:13
Помогаю со студенческими работами здесь

Функция для вычисления площади треугольника по трем сторонам
В файле записаны длины сторон(a1-a12) треугольников. Напишите функцию для вычисления площади...

Реализовать функцию нахождения площади треугольника по трём известным сторонам
Народ, решите пожалуйста! Сам не успеваю, очень прошу! Разработать функцию f(x, у, z), которая...

Вычисление площади треугольника по трем сторонам (с использованием перегрузки функций)
Выполнить реализацию проекта по вычеслению площади треугольника по трём сторонам и нахождению...

Упростить код вычисления трёх высот треугольника по трём сторонам
Здравствуйте! Имеется код вычисления трёх высот треугольника по трём сторонам. Можно ли упростить...

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

Составить программу нахождения длины медианы треугольника по трем его сторонам
Составить программу нахождения длины медианы треугольника по трем его сторонам.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru