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

Вычислить радиус круга, вписанного в равнобедренный треугольник - C++

Восстановить пароль Регистрация
 
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:08     Вычислить радиус круга, вписанного в равнобедренный треугольник #1
Господа программисты подскажите пожалуйста где ошибка?
создать программу для вычисления радиуса круга вписанного в равнобедренный треугольник
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
int main()
{
  float tr[1][3];
  float r;
  float xa, ya,
        xb, yb,
        xc, yc;
  float a, b, c;
  int i;
  printf("vvedite kordinati tochek:");
  for (i=0; i<3; i++)
  {   printf("\nkordinati: %d-y tochki: x=", i+1);
      scanf("%f", &tr[i][0]);
      printf("                       y=");
      scanf("%f", &tr[i][1]);
  }
  xa=tr[1][1];
  xb=tr[1][2];
  ya=tr[2][1];
  yb=tr[2][2];
  xc=tr[3][1];
  yc=tr[3][2];
  a= (float) sqrt((xa-xb)*(xa-xa) + (ya-yb)*(ya-yb));
  b= (float) sqrt((xb-xc)*(xb-xc) + (yb-yc)*(yb-yc));
  c= (float) sqrt((xa-xc)*(xa-xc) + (ya-yc)*(ya-yc));
  
  if (a>0 && b>0 && c>0)
     {
          if ( a < b + c && b < a + c && c < a + b)
           { 
                if (a == b || b == c || c == a)
                    {
                            if (a==c && !(a==b))
                               {
                                  float r = (b/2)*sqrt((2*a-b)/(2*a+b));
                                  printf ("radius raven %f\n");
                               }
                            if (a==b && !(b==c))
                               {
                                     float r = (c/2)*sqrt((2*a-c)/(2*a+c));
                                     printf ("radius raven %f\n");
                                }
                            if  (c==b && !(b==a))
                               {
                                    float r = (a/2)*sqrt((2*b-a)/(2*b+a));
                                    printf("radius raven %f\n");
                                } 
                    }
                    else
                            printf ("treugolnik ne ravnobedrenniy!");
                    getch ();
                    return 0;
             }
             else
                printf ("treugolnik ne suchestvuet !");
             getch ();
             return 0;
      
      }
      else
            printf ("Kordinati dvuh ili bolee tochek sovpadayt!");
      getch ();
      return 0;           
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 00:08     Вычислить радиус круга, вписанного в равнобедренный треугольник
Посмотрите здесь:

Найти площадь круга, вписанного в треугольник с заданными сторонами C++
C++ Найти площадь круга, вписанного в треугольник с заданными сторонами. напишите программу которая работала бы )
C++ Требуется найти площадь вписанного в треугольник круга
Вычислить площать S, радиус R треугольника, если заданы сторона, угол, радиус описанного круга C++
C++ Напишите программу, которая считывает радиус круга и печатает диаметр круга, длину окружности и площадь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
15.11.2012, 00:13     Вычислить радиус круга, вписанного в равнобедренный треугольник #2
Ну а по-твоему, где ошибка? А может быть её и нет вовсе?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 00:15     Вычислить радиус круга, вписанного в равнобедренный треугольник #3
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
printf ("radius raven %f\n");
Что по-твоему он должен вывести? чему равен радиус ты так эту переменную и не передал на вывод.
Или ты думаешь, что printf сам догадается, что в предыдущей строчке у тебя float r вычислен?
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:16  [ТС]     Вычислить радиус круга, вписанного в равнобедренный треугольник #4
приложение запускается, но любые кординаты выдают "treugolnik ne suchestvuet !"
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 00:20     Вычислить радиус круга, вписанного в равнобедренный треугольник #5
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
приложение запускается, но любые кординаты выдают "treugolnik ne suchestvuet !"
Вот это да! А я так надеялся что оно научит тебя параметры в printf передавать

Добавлено через 2 минуты
а по-твоему существуют только равносторонние треугольники?
Нет.
Более того, даже если бы floatы можно было точно проверять на равенство,
ты никогда в жизни не ввёл такие координаты вершин треуг-ка, что стороны окажутся точно равны.
Поэтому он и выдаёт, что треугольник не существует.
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:22  [ТС]     Вычислить радиус круга, вписанного в равнобедренный треугольник #6
ребята вместо того чтоб матюкать меня, лучше помогите. это первое приложение создано мной. и уже мозги плавятся если честно.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 00:25     Вычислить радиус круга, вписанного в равнобедренный треугольник #7
C++
1
if (a == b || b == c || c == a)
надо так
const float eps=1e-3;
if ((fabs(a-b)<eps)&&(fabs(a-c)<eps)&&(fabs(c-b)<eps))
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:27  [ТС]     Вычислить радиус круга, вписанного в равнобедренный треугольник #8
здесь сначала идет проверка на существование отрезков, потом на существование треугольника, потом на то что он равнобедренный, а потом вычисляется радиус окружности.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 00:27     Вычислить радиус круга, вписанного в равнобедренный треугольник #9
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
ребята вместо того чтоб матюкать меня, лучше помогите. это первое приложение создано мной. и уже мозги плавятся если честно.
Это не лучший кандидат на первую программу. Хоть и кажется, что она из одного ряда с "найди большее из двух чисел", я уже перечислил в ней несколько хитрых моментов.
Тут массивы, операции с дробями, мат. вычисления.
Напиши Hello World 2+2=4. сначала.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 00:27     Вычислить радиус круга, вписанного в равнобедренный треугольник #10
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
здесь сначала идет проверка на существование отрезков, потом на существование треугольника, потом на то что он равнобедренный, а потом вычисляется радиус окружности.
Я в курсе, что ты хотел сделать.
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:41  [ТС]     Вычислить радиус круга, вписанного в равнобедренный треугольник #11
я бы рад писать "ХЭЛОВ" но препод сказал пиши это!!!
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 01:00     Вычислить радиус круга, вписанного в равнобедренный треугольник #12
можно точное его задание услышать? Ты уверен, что учитель информатики сказал вводить дробные координаты (x, y) каждой вершины?
Кстати, какие ты координаты вводишь? Дюже интересно узнать, может треугольник и правда неравнобедренный.

Добавлено через 42 секунды
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
я бы рад писать "ХЭЛОВ" но препод сказал пиши это!!!
А сам то ты учиться программированию хочешь? Или для препода это делаешь?
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 01:03  [ТС]     Вычислить радиус круга, вписанного в равнобедренный треугольник #13
a:2 2 b:5 5 c:8 2

Добавлено через 1 минуту
сам хочу
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
15.11.2012, 01:22     Вычислить радиус круга, вписанного в равнобедренный треугольник #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
57
58
59
60
61
62
63
64
65
66
67
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
 
int main()
{
  float tr[3][1];
  float r;
  float xa, ya,
        xb, yb,
        xc, yc;
  float a, b, c;
  int i;
  //Лучше упростить программу, чтоб она была без массивов
  printf("vvedite kordinati tochek:");
  printf("\nkordinati: 1-y tochki: (x y)");
  scanf("%f%f", &xa, &ya);
  printf("\nkordinati: 2-y tochki: (x y)");
  scanf("%f%f", &xb, &yb);
  printf("\nkordinati: 3-y tochki: (x y)");
  scanf("%f%f", &xc, &yc);
  
  //a= (float) sqrt((xa-xb)*(xa-xa) + (ya-yb)*(ya-yb));//WTF? xa-xa=0
  a= (float) sqrt((xb-xa)*(xb-xa) + (yb-ya)*(yb-ya));
  b= (float) sqrt((xb-xc)*(xb-xc) + (yb-yc)*(yb-yc));
  c= (float) sqrt((xa-xc)*(xa-xc) + (ya-yc)*(ya-yc));
  
 // if (a>0 && b>0 && c>0)  //ясен пеь больше. Это же корень! (правда может быть 0, но это учтётся)
          if (( a < b + c )&&( b < a + c )&&( c < a + b))
          { 
                if ( (a==b) ||(c==b) || (a==c))
                    {
                            if (a==c)
                               {
                                  r = (b/2.0)*sqrt((2.0*a-b)/(2.0*a+b));
                                  printf ("radius raven %f\n", r);
                               }
                            if (a==b)
                               {
                                     r = (c/2.0)*sqrt((2.0*a-c)/(2.0*a+c));
                                     printf ("radius raven %f\n", r);
                                }
                            if  (b==c)
                               {
                                    r = (a/2.0)*sqrt((2.0*b-a)/(2.0*b+a));
                                    printf("radius raven %f\n", r);
                                } 
                    }
                else{
                    printf ("treugolnik ne ravnobedrenniy!");
                    getch ();
                    return 0;
                }
          }
          else{
                   printf ("treugolnik ne suchestvuet !");
                   getch ();
                   return 0;
          }
 
       /*  }
         else
            printf ("Kordinati dvuh ili bolee tochek sovpadayt!");*/
      getch ();
      return 0;           
 }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 02:10     Вычислить радиус круга, вписанного в равнобедренный треугольник
Еще ссылки по теме:

C++ Зная радиус, диаметр или длину окружности вычислить площадь круга
Пустой равнобедренный треугольник C++
Центр вписанного круга в треугольник C++

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

Или воспользуйтесь поиском по форуму:
vitaxa3581
 Аватар для vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 02:10  [ТС]     Вычислить радиус круга, вписанного в равнобедренный треугольник #15
спасибо огромное!!!!!!! но все равно изучать без подсказок нелегко.
Yandex
Объявления
15.11.2012, 02:10     Вычислить радиус круга, вписанного в равнобедренный треугольник
Ответ Создать тему
Опции темы

Текущее время: 16:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru