Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++]Вычисление площади и объема однотипных фигур


Автор: jmp 15.12.2008, 22:23
Здравствуйте!

Нужна помощь в решении вот такого задания:

Сочинить Функцию:
Разработка алгоритма и программы решения задачи о вычислении площади и объема составленные из однотипных геометрических фигур, с одной точкой соприкосновения.


На мой взгляд формулировка какая-то туманная, я никак немогу врубится. Если кто понимает что надо делать, очень прошу помощи.

Автор: Dmi3ev 16.12.2008, 04:59
шар касается шара, или на углу куба стоит куб, подключи воображение и продолжай... А дальше тебе видней...
а алгоритм такой:
1. выясняешь у юзера, что за простая фигура лежит в основе этой составной фигуры
предположим юзер указал куб
2. сколько их???
допустим 2
3. одинаковые они, или имеют разные параметры??? допустим они разные
значит тебе нужно сначала узнать длину ребра одного, допустим а1 и второго - а2
4. все параметры введены, теперь дело техники
что мы имеем:
1. фигура - куб
2. количество -2
3. ребро1 - а1, ребро2 - а2
4. V=a1^3+a2^3 - посчитал объем этой составной фигуры
    S=а1^2*6+а2^2*6=6*(а1^2+а2^2) - посчитал площадь
____________________________________________

я так это представляю)))
_____________________________________________
вот так примерно это реализуется, взял фигуры попроще, чтобы меньше писать, да и яснее так, а можно и усеченные пирамиды брать и тд, что по душе)))
Код

//---------------------------------------------------------------------------

#include <iostream.h>
#include <math.h>

//---------------------------------------------------------------------------

int main()
{
int k=0;
int n=0;
double v=0.0;
double ss=0.0;
double *m;
cout<<"Figura v osnove:"<<endl<<"1. Kub"<<endl<<"2. Shar"<<endl;
cout<<"Dlia vibora vvedite nomer otveta:";
cin>>n;
switch (n)
 {
  case 1:
   cout<<"Vvedite kolichestvo kubov: ";
   cin>>k;
   cout<<endl;
   m=new double[k];
   for (int i=0; i<k; i++)
    {
     cout<<"rebro "<<i+1<<"=";
     cin>>*(m+i);
     v+=pow(*(m+i),3);
     ss+=pow(*(m+i),2)*6;
     cout<<endl;
    }
  break;
  case 2:
   cout<<"Vvedite kolichestvo sharov: ";
   cin>>k;
   cout<<endl;
   m=new double[k];
   for (int i=0; i<k; i++)
    {
     cout<<"radius "<<i+1<<"=";
     cin>>*(m+i);
     v+=(4/3)*M_PI*(pow(*(m+i), 3));
     ss+=4*M_PI*(pow(*(m+i),2));
     cout<<endl;
    }
  break;
 }
cout<<endl;
cout<<"S of this= "<<ss<<endl<<"V of this="<<v<<endl;
return 0;
}
//---------------------------------------------------------------------------

но это моя идея, может у кого покруче будет )))

Добавлено через 2 минуты и 31 секунду
здесь все делается по алгоритму, который я выше описал, главное не задавай много фигур, а то за***т радиусы или ребра указывать...)))) удачи...

Автор: jmp 20.12.2008, 15:30
благодарю

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)