Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
#1

проверка треугольника - C++

10.09.2011, 22:11. Просмотров 2057. Ответов 24
Метки нет (Все метки)

Всем привет!
Народ, а как правильно проверить существует ли треугольник, у меня в этом ошибка
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
#include<iostream.h>
#include<conio.h>
 
class Triangle
{
   private:
 float seta,setc;
   public:
 Triangle(float seta,float setc);
 float run()
 { return 2*seta+setc; }
};
 
 Triangle::Triangle(float a,float c)
 {
   seta=a;
   setc=c;
 }
 
int main()
{
 float a,b,c;
 cout<<"Вычисление периметра равнобедренного треугольника.\n\n";
 cout<<"Введите боковую сторону треугольника: ";
 cin>>a;
 a==b;
 cout<<"Введите основание треугольника: ";
 cin>>c;
 if((a>0)&&(c>0))
 {
    if(a<=b+c && b<=a+c && c<=a+b)
    {
      Triangle tr(a,c);
      cout<<"Периметр равнобедренного треугольника равен: "<<tr.run()<<endl;
    }
    else
         {
           textcolor(RED);
           cprintf("\n\rНеправильно введены параметры боковых сторон.");
           cprintf("\n\n\rНарушено свойство треугольника: ");
           cprintf("\n\rлюбая сторона треугольника меньше двух других сторон и больше их разности.");
           getch();
         }
 }
 else
      {
        textcolor(RED);
        cprintf("\n\rВведенное Вами значение неверно!!!");
        cprintf("\n\n\rЗначение введенных переменных должно быть отлично от нуля.");
        getch();
      }
 
 puts("\n\nДля выхода нажмите любую клавишу...");
 getch();
 return 0;
}
Добавлено через 1 минуту
Заранее всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 22:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос проверка треугольника (C++):

Проверка условия существования треугольника
нужно написать программу Даны 3 числа, определить могут ли эти числа являться...

Проверка треугольника через исключения
Есть код который проверяет возможность создания треугольника из 3х...

Проверка треугольника через исключения
Есть код который проверяет возможность создания треугольника из 3х...

матрица разделена диагоналями на 4 треугольника, элементы верхнего и нижнего треугольника нулевые
Задание матрица разделена диагоналями на 4 треугольника, элементы верхнего и...

Известна гипотенуза С и противолежащий угол B прямоугольного треугольника. Найти периметр треугольника
Помогите написать данную программу: Известна гипотенуза С и противолежащий...

Даны длины сторон треугольника, определить тип этого треугольника
Даны длины сторон треугольника, определить тип этого треугольника

24
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.09.2011, 22:15 #2
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
Всем привет!
Народ, а как правильно проверить существует ли треугольник
А можно подробнее. А так, существует, и не один
1
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:19  [ТС] #3
а почему и не один
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
10.09.2011, 22:21 #4
Врде треугольник существует, если длина любой его стороны строго меньше суммы двух других.

Добавлено через 2 минуты
Это надо находить длины его сторон и сравнивать.
1
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:22  [ТС] #5
спасибо, но у меня ошибка в if(a<=b+c && b<=a+c && c<=a+b), не понимаю, почему некорректно работает
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.09.2011, 22:24 #6
Цитата Сообщение от Dani Посмотреть сообщение
Врде треугольник существует, если длина любой его стороны строго меньше суммы двух других.
Именно так и есть. Если для каждого числа верно свойство, что оно меньше суммы двух других, то это треугольник (ВСЕГДА)

Добавлено через 1 минуту
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
спасибо, но у меня ошибка в if(a<=b+c && b<=a+c && c<=a+b), не понимаю, почему некорректно работает
Неравенства должны быть строгими
1
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:24  [ТС] #7
а как мне правильно написать провеку
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
10.09.2011, 22:28 #8
Добавьте using namespace std, cprintf замените на cout. А textcolor уберите.

Добавлено через 22 секунды
так хотябы компилится
0
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:29  [ТС] #9
а толк какой, это ж для красоты
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
10.09.2011, 22:33 #10
a==b, вероятно a=b?

Добавлено через 2 минуты
В 26 строке
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.09.2011, 22:33 #11
Замените строку
C++
1
a==b;
на
C++
1
 b = a;
0
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:33  [ТС] #12
Мимо, Dani, не угадал, не там ошибочка
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
10.09.2011, 22:35 #13
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
Мимо, Dani, не угадал, не там ошибочка
Ошибка там и еще где-то
1
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.09.2011, 22:39 #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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<iostream.h>
#include<conio.h>
 
class Triangle
{
   private:
 float seta,setc;
   public:
 Triangle(float seta,float setc);
 float run()
 { return 2*seta+setc; }
};
 
 Triangle::Triangle(float a,float c)
 {
   seta=a;
   setc=c;
 }
 
int main()
{
 float a,b,c;
 cout<<"Вычисление периметра равнобедренного треугольника.\n\n";
 cout<<"Введите боковую сторону треугольника: ";
 cin>>a;
 b = a; // ЗДЕСЬ
 cout<<"Введите основание треугольника: ";
 cin>>c;
 if((a>0)&&(c>0))
 {
        if(a<b+c && b<a+c && c<a+b)
        {
          Triangle tr(a,c);
          cout<<"Периметр равнобедренного треугольника равен: "<<tr.run()<<endl;
        }
        else
                 {
                   textcolor(RED);
                   cprintf("\n\rНеправильно введены параметры боковых сторон.");
                   cprintf("\n\n\rНарушено свойство треугольника: ");
                   cprintf("\n\rлюбая сторона треугольника меньше двух других сторон и больше их разности.");
                   getch();
                 }
 }
 else
          {
                textcolor(RED);
                cprintf("\n\rВведенное Вами значение неверно!!!");
                cprintf("\n\n\rЗначение введенных переменных должно быть отлично от нуля.");
                getch();
          }
 
 puts("\n\nДля выхода нажмите любую клавишу...");
 getch();
 return 0;
}
1
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:42  [ТС] #15
ай, затупил, присвоить надо было, вот это я слепой, всем спасибо
Dani, извини что был не прав
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.09.2011, 22:44 #16
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
ай, затупил, присвоить надо было, вот это я слепой, всем спасибо
Dani, извини что был не прав
Так правильно b = a, а не a = b
1
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 22:47  [ТС] #17
да я понял, не заметил просто, не туда смотрел

Добавлено через 21 секунду
Всем спасибо, тему можно закрывать
0
Zumaster
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 17
10.09.2011, 22:50 #18
У меня под студию вариант не запустился, по этому свой накатал:
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
#include<iostream>
using namespace std;
 
class Triangle
{
    float a,c;
public:
    Triangle(float seta,float setc);
    float run() { return 2*a+c; }
};
 
 Triangle::Triangle(float seta,float setc)
 {
   a = seta;
   c = setc;
 }
 
int main()
{
    setlocale(LC_ALL,"");
    float a,b,c;
    cout<<"Вычисление периметра равнобедренного треугольника.\n\n";
    cout<<"Введите боковую сторону треугольника: ";
    cin>>a;
    b = a;
    cout<<"Введите основание треугольника: ";
    cin>>c;
    if((a>0)&&(c>0))
    {
        if(a<b+c && b<a+c && c<a+b)
        {
          Triangle tr(a,c);
          cout<<"Периметр равнобедренного треугольника равен: "<<tr.run()<<endl;
        }
        else
        {
          cout<<"\nНеправильно введены параметры боковых сторон.";
          cout<<"\n\nНарушено свойство треугольника: ";
          cout<<"\n\любая сторона треугольника меньше двух других сторон и больше их разности.";
        }
    }
    else
    {
                
          cout<<"\nВведенное Вами значение неверно!!!";
          cout<<"\n\n\rЗначение введенных переменных должно быть отлично от нуля.";
    }
    cin.get();
    return 0;
}
0
Mr. Pyatachok
8 / 8 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.09.2011, 23:42  [ТС] #19
извините, но еще один нубский вопросик, захотелось чтобы программа работала столько, сколько захочу делаьт вычисления, если нет, то выходила бы
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include<iostream.h>
#include<conio.h>
 
class Triangle
{
   private:
 float seta,setc;
   public:
 Triangle(float seta,float setc);
 float run()
 { return 2*seta+setc; }
};
 
 Triangle::Triangle(float a,float c)
 {
   seta=a;
   setc=c;
 }
 
int main()
{
 float a,b,c;
 char countinue=0;
 
 cout<<"Вычисление периметра равнобедренного треугольника.\n\n";
 cout<<"Введите боковую сторону треугольника: ";
 cin>>a;
 b=a;
 cout<<"Введите основание треугольника: ";
 cin>>c;
 
 do
{
 if(a>0 && c>0)
 {
    if(a<=b+c && b<=a+c && c<=a+b)
    {
      Triangle tr(a,c);
      cout<<"Периметр равнобедренного треугольника равен: "<<tr.run()<<endl;
    }
    else
         {
           textcolor(RED);
           cprintf("\n\rНеправильно введены параметры боковых сторон.");
           cprintf("\n\n\rНарушено свойство треугольника: ");
           cprintf("\n\rлюбая сторона треугольника меньше двух других сторон и больше их разности.");
           getch();
         }
 }
 else
      {
        textcolor(RED);
        cprintf("\n\rВведенное Вами значение неверно!!!");
        cprintf("\n\n\rЗначение введенных переменных должно быть отлично от нуля.");
        getch();
      }
}while(countinue=='Y' || countinue=='y');
 
 cout<<"\n\nПродолжить работу с программой? (Y/N)";
 cin>>countinue;
 if(countinue=='Y' || countinue=='y')
 {
   clrscr();
 
 }
 else cout<<"\n\nДля выхода нажмите любую клавишу...";
 
 
 getch();
 return 0;
}
помогите как сделать
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
11.09.2011, 00:02 #20
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
cout<<"\n\nПродолжить работу с программой? (Y/N)";
cin>>countinue;
if(countinue=='Y' || countinue=='y')
{
clrscr();
}
Это поместите внутри цикла.

Добавлено через 29 секунд
И на будущее:
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
cout<<"\n\nДля выхода нажмите любую клавишу...";
getch();
То же самое, что и
C++
1
system ("pause");
1
11.09.2011, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2011, 00:02
Привет! Вот еще темы с решениями:

Заданы координаты вершин треугольника. Вывести их в порядке обхода треугольника по часовой стрелке
Заданы координаты вершин треугольника.Вывести их в порядке обхода треугольника...

С клавиатуры вводятся три числа, считая их сторонами треугольника найти углы этого треугольника
с клавиатуры вводятся три числа, считая их сторонами треугольника найти углы...

Зная площадь прямоугольного треугольника и угол при основании, найти все стороны треугольника
Требования к программе: - Входные данные ввести с помощью стандартных процедур...

Заданы длины двух сторон треугольника и угол между ними. найти площадь треугольника?
Заданы длины двух сторон треугольника и угол между ними. найти площадь...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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