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

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

Войти
Регистрация
Восстановить пароль
 
vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
#1

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

15.11.2012, 00:08. Просмотров 726. Ответов 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
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;           
 }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 00:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить радиус круга, вписанного в равнобедренный треугольник (C++):

Центр вписанного круга в треугольник - C++
Ребят, подскажите формулу для нахождения координат ценра вписаного круга, если известны координаты вершин триугольника

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

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

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

Вычислить площать S, радиус R треугольника, если заданы сторона, угол, радиус описанного круга - C++
в треугольнике заданы сторона b, угол А радиус описаного круга R. Вычеслить и вывести на экран все остальные лементы треугольника площать...

Вычислить длины вписанного и описанного около треугольника круга - C++
1)даны стороны треугольника а,в,с.Вычислить длины вписанного и описанного около этого треугольника круга. 2)Цена подписки на газету...

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

Добавлено через 2 минуты
а по-твоему существуют только равносторонние треугольники?
Нет.
Более того, даже если бы floatы можно было точно проверять на равенство,
ты никогда в жизни не ввёл такие координаты вершин треуг-ка, что стороны окажутся точно равны.
Поэтому он и выдаёт, что треугольник не существует.
0
vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:22  [ТС] #6
ребята вместо того чтоб матюкать меня, лучше помогите. это первое приложение создано мной. и уже мозги плавятся если честно.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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))
0
vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:27  [ТС] #8
здесь сначала идет проверка на существование отрезков, потом на существование треугольника, потом на то что он равнобедренный, а потом вычисляется радиус окружности.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
15.11.2012, 00:27 #9
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
ребята вместо того чтоб матюкать меня, лучше помогите. это первое приложение создано мной. и уже мозги плавятся если честно.
Это не лучший кандидат на первую программу. Хоть и кажется, что она из одного ряда с "найди большее из двух чисел", я уже перечислил в ней несколько хитрых моментов.
Тут массивы, операции с дробями, мат. вычисления.
Напиши Hello World 2+2=4. сначала.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
15.11.2012, 00:27 #10
Цитата Сообщение от vitaxa3581 Посмотреть сообщение
здесь сначала идет проверка на существование отрезков, потом на существование треугольника, потом на то что он равнобедренный, а потом вычисляется радиус окружности.
Я в курсе, что ты хотел сделать.
0
vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 00:41  [ТС] #11
я бы рад писать "ХЭЛОВ" но препод сказал пиши это!!!
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
15.11.2012, 01:00 #12
можно точное его задание услышать? Ты уверен, что учитель информатики сказал вводить дробные координаты (x, y) каждой вершины?
Кстати, какие ты координаты вводишь? Дюже интересно узнать, может треугольник и правда неравнобедренный.

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

Добавлено через 1 минуту
сам хочу
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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;           
 }
1
vitaxa3581
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 75
15.11.2012, 02:10  [ТС] #15
спасибо огромное!!!!!!! но все равно изучать без подсказок нелегко.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 02:10
Привет! Вот еще темы с ответами:

Зная радиус, диаметр или длину окружности вычислить площадь круга - C++
2) Пусть элементами круга является радиус (первый элемент) , диаметр (второй элемент) и длина окружности (третий элемент). Составить...

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

Напишите программу, которая считывает радиус круга и печатает диаметр круга, длину окружности и площадь - C++
Добрый день. Продолжаю потихоньку решать задачи. Вот следующая. Напишите программу, которая считывает радиус круга и печатает диаметр...

Равнобедренный треугольник C++ - C++
Помогите пожалуйста написать программу в консоли, которая выводит на экран равнобедренный треугольник, заполняя его символом &quot;*&quot;. Размер...


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

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

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