С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 2 / 1
Регистрация: 03.11.2009
Сообщений: 227
1

Найти наименьшую площадь треугольников

18.01.2011, 19:02. Показов 1980. Ответов 7
Метки нет (Все метки)

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
57
58
59
   //---------------------------------------------------------------------------
 
#include <vcl.h>
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
  const n=3;
 
 void FunTochki ( int a[ ] )
 {
  cout<<"Vvedite dliny storon :\n";
 for(int i=0;i<n;i++)
 { cout<<" a["<<i<<"]= ";
   cin>>a[i]; }
   }
 
 
int My_Ploshad ( int a[ ] )
{ int p=0 ;
int S1=1 ;
int S2, S;
   for(int i=0;i<n;i++)
    {p+=a[i]; }
    for(int i=0;i<n;i++)
  { S1*=(p-a[i])  ; }
 S2=S1*p;
 S= sqrt ( S2);
 
 
 return S ;
 
}
 
 
 
 int main()
 {
    int N , s ;
   int a[n];
 
 
cout<<"Vvedite kol-vo treygolnikov N= " ;
cin>>N;
 
 FunTochki ( a) ;
 s=My_Ploshad ( a);
 
  cout<<a<<endl ;
 
 
getch();
return 0;
Добавлено через 56 секунд
Площадь по формуле Герона..все вроде верно...а считает не так((

Добавлено через 25 минут
я вообще не пойму!Помогите!!!

Добавлено через 8 минут
ВСЕ ЖЕ ВЕРНО!....я уже не знаю что подправить...
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2011, 19:02
Ответы с готовыми решениями:

В шестиугольнике найти площадь одного из треугольников
Помогите пожалуйста наити ошибку, помоиму, неправильно что-то во вспомогательной функции, ищу...

Дано н прямоугольных треугольников с а и б катетами, причем а + б = 9. Составить программу, которая вычисляет суммарную площадь этих треугольников
Дано н прямоугольных треугольников с а и б катетами, причем а + б = 9. Составить программу,...

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

Найти, у какого из заданных треугольников площадь наибольшая
Создайте структуру Треугольник с тремя элементами a, b, c – длины 3-х сторон. Дано L треугольников,...

7
24 / 24 / 6
Регистрация: 24.12.2008
Сообщений: 88
18.01.2011, 19:42 2
Мне кажется площадь не обязательно должна быть целым числом. Не так ли?
1
2 / 2 / 1
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 19:58  [ТС] 3
да если даже все на float поменять все равно считает как целое!

Добавлено через 1 минуту
а потом еще проблема с выбором минимального...помогите пожалуйста!хоть кто-нибудь!

Добавлено через 11 минут
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 <vcl.h>
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
 
 void FunTochki ( int n ,float a[ ] )
 {
  cout<<"Vvedite dliny storon :\n";
 for(int i=0;i<n;i++)
 { cout<<" a["<<i<<"]= ";
   cin>>a[i]; }
   }
 
 
int My_Ploshad (int n ,float a[ ] )
{ float p=0 ;
   float S1=1 ;
   float S2 , S ;
   for(int i=0;i<n;i++)
    {p=p+a[i]; }
   p/=2;
    for(int i=0;i<n;i++)
     { S1*=(p-a[i]) ;
     }
   S2=p*S1 ;
   S=sqrt(S2);
 
 return S ;
 
}
 
 
 
 int main()
 {  const n=3 ;
    int N ;const w=100; 
     float s[w];
      float My_Min;
   float A[n];
  cout<<"Vvedite kol-vo treygolnikov N= " ;
cin>>N;
 
 for(int w=1 ; w<=N ; w++)
 {
 FunTochki ( n,A) ;
 s[w]=My_Ploshad ( n,A);
   cout<<"s["<<w<<"]="<<s[w]<<endl ;
  }
 for(int w=0 ; w<N ; w++)
 { float My_Min=s[0] ;
  if (s[w]<My_Min )
     My_Min=s[w] ;
 
 }
cout<<"Min : "<<My_Min;
getch();
return 0;
}
0
24 / 24 / 6
Регистрация: 24.12.2008
Сообщений: 88
18.01.2011, 19:58 4
Я так понимаю площадь треугольника вы считаете по Формуле Герона?тогда у вас ошибка в алгоритме подсчёта там полупериметр а не периметр к строчке где написано p+=a[i]; надо ещё добавить после p=p/2;
1
2 / 2 / 1
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 20:00  [ТС] 5
ВОТ что у меня вышло...но тут все не так работает(..я уже полдня.над этой задачей сижу.помогите пожалуйста!

Добавлено через 1 минуту
rdksoft, я сначала нахожу периметр потом его делю попалпм и получается поупериметр...с алгоритмом все верно.оно в принципе неправильно округляет и минимальное вообще не находит(((
0
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
18.01.2011, 20:02 6
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
#include <iostream>
#include <vector>
#include <cmath>
 
using namespace std;
 
struct triangle
{
    int a,b,c;
};
 
int area(triangle mt)
{
    double p=(mt.a+mt.b+mt.c)/2;
    return sqrt(p*(p-mt.a)*(p-mt.b)*(p-mt.c));
}
 
int main(int argc, char *argv[])
{
    vector<triangle> myvect;
    int num;
    cout<<"Enter number triangles: ";
    cin>>num;
    for (int i=0; i<num; i++)
    {
        triangle temp;
        cout<<"Enter sides of triangle: ";
        cin>>temp.a>>temp.b>>temp.c;
        myvect.push_back(temp);
    }
    int min=area(myvect[0]);
    for (int i=0; i<num; i++)
        if (area(myvect[i])<min)
            min=area(myvect[i]);
    cout<<"Result: "<<min<<endl;
    return 0;
}
Посмотри как у меня. У тебя вообще не понял - что ты складываешь все стороны до конца??
1
2 / 2 / 1
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 20:09  [ТС] 7
МаксимМВ, не знаю..может и правда они все складываются..

Добавлено через 2 минуты
МаксимМВ, я в твоей проге большинства вещей не знаю..но мысль уловила.пойду попробую переделать под себя...
0
24 / 24 / 6
Регистрация: 24.12.2008
Сообщений: 88
18.01.2011, 20:19 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
   //---------------------------------------------------------------------------
 
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 using namespace std;
 
 void FunTochki ( int n ,float a[ ] )
 {
  cout<<"Vvedite dliny storon :\n";
 for(int i=0;i<n;i++)
 { cout<<" a["<<i<<"]= ";
   cin>>a[i]; }
   }
 
 
float My_Ploshad (int n ,float a[ ] )
{ float p=0 ;
   float S1=1 ;
   float S2 , S ;
   for(int i=0;i<n;i++)
    {p=p+a[i]; }
   p/=2;
    for(int i=0;i<n;i++)
     { S1*=(p-a[i]) ;
     }
   S2=p*S1 ;
   S=sqrt(S2);
 
 return S ;
 
}
 
 
 
 int main()
 {  const int n=3 ;
    int N ;
     
      float My_Min; My_Min=99999;
   float A[n];
  cout<<"Vvedite kol-vo treygolnikov N= " ;
cin>>N;
 float s[100];
 for(int i=0;i<100;i++)
     s[i]=9999999;
 for(int w=1 ; w<=N ; w++)
 {
 FunTochki ( n,A) ;
 s[w]=My_Ploshad ( n,A);
   cout<<"s["<<w<<"]="<<s[w]<<endl ;
  }
 
 for(int w=0 ; w<N ; w++)
 {  if (s[w]<=My_Min )
     My_Min=s[w] ;
 }
cout<<"Min : "<<My_Min;
getch();
return 0;
}
Вот немного переделанная старая вроде работает проверяй.
1
18.01.2011, 20:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2011, 20:19
Помогаю со студенческими работами здесь

Найти суммарную площадь равнобедренных треугольников, имеющих равное основание А, но различные длины боковой стороны
Условие задачи: Найти суммарную площадь равнобедренных треугольников, имеющих равное основание А,...

Площадь треугольников построенных на n точках
Ребят, нужна помощь. дана такая задачка: Известны координаты n точек. Написать программу,...

Площадь по координатам для нескольких треугольников
Здравствуйте! Помогите пожалуйста с задачей: нужно реализовать программу с помощью классов, которая...

Отсортировать площадь трех треугольников в порядке возрастания
Ребят,написал программу для нахождения площади и периметра треугольника,можно ли как то...


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

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