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

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

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

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


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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2010, 13:31
Ответы с готовыми решениями:

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

Функция вычисляющая площадь треугольника по трем сторонам
Нужна функция вычисляющая площадь треугольника по трем сторонам используя формулу s=sqrt(p*(p-a)*(p-b)*(p-c)) , где p=(a+b+c)/2 -...

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

28
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
04.10.2010, 13:41
C
1
if(A==sqrt(B*B+C*C) || B==sqrt(A*A+C*C) || C==sqrt(B*B+A*A))
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2010, 13:48
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
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
04.10.2010, 13:54
M128K145, мой процессор выдерживает. Даже не пищит.
А у тебя чуток не получится, ежели пара сторон одинаковые.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.10.2010, 13:56
C++
1
return (a*a==b*b+c*c)|(a*a+c*c==b*b)|(a*a+b*b==c*c);
. И никаких гвозёв.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2010, 13:58
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
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
04.10.2010, 14:01
А чтоб не греть процессор
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
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.10.2010, 14:03
M128K145, а к чему задача? Любая из сторон может быть гипотенузой, тогда её квадрат равен сумме квадратов катетов. Вот я и проверяю все три варианта. А если ни один не проходит, то это всё, что угодно, но не прямоугольный треугольник.

Добавлено через 37 секунд
Цитата Сообщение от Day Посмотреть сообщение
А чтоб не греть процессор
А мой вариант греет?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
04.10.2010, 20:11  [ТС]
Так что в итоге является оптимальным вариантом?)
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.10.2010, 21:38
<<FIRsT BLooD>>, оптимальным с точки зрения чего?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
05.10.2010, 11:34  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
<<FIRsT BLooD>>, оптимальным с точки зрения чего?
В целом. Какой вариант мне взять?
Напишите, плз, готовый вариант полной программы.
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
07.10.2010, 07:13  [ТС]
?????
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.10.2010, 08:32
<<FIRsT BLooD>>, у вас проблемы со вставкой двух строк в код?
0
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 19
08.10.2010, 10:29  [ТС]
Какой из вышеперечисленных вариантов вставить?
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
08.10.2010, 10:45
Вот так должно работать шустрее
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
 Аватар для LineStown
72 / 71 / 8
Регистрация: 04.08.2010
Сообщений: 434
08.10.2010, 12:42
Цитата Сообщение от <<FIRsT BLooD>> Посмотреть сообщение
В целом. Какой вариант мне взять?
Напишите, плз, готовый вариант полной программы.
Есть подозрение, что стартовая программа написана кем то другим\
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
08.10.2010, 12:54
Очень интересный цикл у него
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  [ТС]
murderer, нам препод показал шаблоны, вот я и составил по ним, как ты сказал, "стартовую программу". Он всем разные задачи раздал.

LineStown, ок, а его в конец вставлять?
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
08.10.2010, 13:25
Короче

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  [ТС]
Нет.
вставляю в конце, он мне 13 ошибок выдаёт.
И вообще у меня вроде как нет if/else...
С++ надо, а не просто С.

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

Добавлено через 1 час 50 минут
+
чем быстрее, тем лучше)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2010, 19:13
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru