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

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

Восстановить пароль Регистрация
 
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 19:02     Найти наименьшую площадь треугольников #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
   //---------------------------------------------------------------------------
 
#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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 19:02     Найти наименьшую площадь треугольников
Посмотрите здесь:

Выяснить, у которого из данных треугольников большая площадь C++
Выяснить, у какого из трех прямоугольных треугольников площадь больше C++
C++ Определить, какой из треугольников имеет большую площадь
Найти суммарную площадь равнобедренных треугольников, имеющих равное основание А, но различные длины боковой стороны C++
Данные двух треугольников, у которых находилась бы площадь и сравнивалась C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rdksoft
 Аватар для rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
18.01.2011, 19:42     Найти наименьшую площадь треугольников #2
Мне кажется площадь не обязательно должна быть целым числом. Не так ли?
barlog
2 / 2 / 0
Регистрация: 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;
}
rdksoft
 Аватар для rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
18.01.2011, 19:58     Найти наименьшую площадь треугольников #4
Я так понимаю площадь треугольника вы считаете по Формуле Герона?тогда у вас ошибка в алгоритме подсчёта там полупериметр а не периметр к строчке где написано p+=a[i]; надо ещё добавить после p=p/2;
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 20:00  [ТС]     Найти наименьшую площадь треугольников #5
ВОТ что у меня вышло...но тут все не так работает(..я уже полдня.над этой задачей сижу.помогите пожалуйста!

Добавлено через 1 минуту
rdksoft, я сначала нахожу периметр потом его делю попалпм и получается поупериметр...с алгоритмом все верно.оно в принципе неправильно округляет и минимальное вообще не находит(((
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 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;
}
Посмотри как у меня. У тебя вообще не понял - что ты складываешь все стороны до конца??
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 20:09  [ТС]     Найти наименьшую площадь треугольников #7
МаксимМВ, не знаю..может и правда они все складываются..

Добавлено через 2 минуты
МаксимМВ, я в твоей проге большинства вещей не знаю..но мысль уловила.пойду попробую переделать под себя...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 20:19     Найти наименьшую площадь треугольников
Еще ссылки по теме:

Площадь треугольников построенных на n точках C++
Максимальная площадь из введенных треугольников. Не получается добавить функцию в программу C++
C++ Отсортировать площадь трех треугольников в порядке возрастания

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

Или воспользуйтесь поиском по форуму:
rdksoft
 Аватар для rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
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;
}
Вот немного переделанная старая вроде работает проверяй.
Yandex
Объявления
18.01.2011, 20:19     Найти наименьшую площадь треугольников
Ответ Создать тему
Опции темы

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