Siema, to znowu ja z kolejnym pytaniem. Jak ogarnąć w ostatniej części kodu, aby program sumował momenty kolejnych figur a na końcu wyrzucał wynik ?
#include <iostream>
#include <math.h>
using namespace std;
//srodek ciezkosci prostokata
double cprostokat()
{
double a, b;
cout << "Podaj bok a(os x): ";
cin >> a;
cout << "Podaj bok b(os y): ";
cin >> b;
return (a * b * (b / 2)) / (a * b);
}
//moment bezwladnosci prostokata wzgledem Ox
double xmprostokat(double a, double b)
{
double m;
m = ((b * b * b) * a) / 3;
return m;
}
//moment bezwladnosci prostokata wzgledem Oy
double ymprostokat(double a, double b)
{
double m;
m = ((a * a * a) * b) / 3;
return m;
}
//srodek ciezkosci trojkata
double ctrojkat()
{
double a, h;
cout << "Podaj podstawe trojkata(os x): ";
cin >> a;
cout << "Podaj wysokosc trojkata: ";
cin >> h;
return (((a * h) / 2) * (h / 3)) / ((a * h) / 2);
}
//moment bezwladnosci trojkata Ox
double xmtrojkat(int ax, int ay, int bx, int by, int cx, int cy)
{
int a, b, c;
double s, h, m, p;
a = sqrt((((bx - ax) * (bx - ax)) + ((by - ay) * (by - ay))));
b = sqrt((((cx - bx) * (cx - bx)) + ((cy - by) * (cy - by))));
c = sqrt((((ax - cx) * (ax - cx)) + ((ay - cy) * (ay - cy))));
p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
h = (2 * s) / a;
m = (a * (h * h * h)) / 12;
return m;
}
//moment bezwladnosci trojkata Oy
double ymtrojkat(int ax, int ay, int bx, int by, int cx, int cy)
{
int a, b, c;
double s, h, m, p;
a = sqrt((((bx - ax) * (bx - ax)) + ((by - ay) * (by - ay))));
b = sqrt((((cx - bx) * (cx - bx)) + ((cy - by) * (cy - by))));
c = sqrt((((ax - cx) * (ax - cx)) + ((ay - cy) * (ay - cy))));
p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
h = (2 * s) / a;
m = (h * (a * a * a)) / 12;
return m;
}
//srodek ciezkosci kola
double ckolo()
{
double d;
cout << "Podaj srednice kola: ";
cin >> d;
return ((M_PI * (d * d) / 4) * (d / 2)) / (M_PI * (d * d) / 4);
}
//moment bezwladnosci kola
double mkolo(double d)
{
double m;
m = (M_PI * pow(d, 4)) / 64;
return m;
}
int main()
{
double a, b, h, d,w=0;
int ax, ay, bx, by, cx, cy,t,j,i;
char figura,os;
cout << "**********************" << endl;
cout << "*M O M E N T ver. 0.1*" << endl;
cout << "**********************" << endl;
cout << endl;
cout << "Witam w programie MOMENT." << endl;
cout << "Aby policzyc moment bezwladnosci dla pojedynczej figury plaskiej wpisz '1'." << endl;
cout << "W celu liczenia zlozen figur nacisnij '2'." << endl;
cin >> t;
if (t == 1) {
{
cout << "Podaj typ figury do obliczenia momentu bezwladnosci" << endl;
cout << "(p=prostokat, t=trojkat, k=kolo): ";
cin >> figura;
if (figura == 'p' || figura == 'P') {
cout << "Podaj bok a(os x): ";
cin >> a;
cout << "Podaj bok b(os y): ";
cin >> b;
cout << "Moment bezwladnosci wzgledem osi x:" << xmprostokat(a, b) << endl;
cout << " i osi y: " << ymprostokat(a, b) << endl;
}
else if (figura == 't' || figura == 'T') {
cout << "Podaj wspolrzedne wierzcholka 1" << endl;
cout << "Podaj x :";
cin >> ax;
cout << "Podaj y :";
cin >> ay;
cout << "Podaj wspolrzedne wierzcholka 2" << endl;
cout << "Podaj x :";
cin >> bx;
cout << "Podaj y :";
cin >> by;
cout << "Podaj wspolrzedne wierzcholka 3" << endl;
cout << "Podaj x :";
cin >> cx;
cout << "Podaj y :";
cin >> cy;
cout << "Moment bezwladnosci wzgledem osi x:" << xmtrojkat(ax, ay, bx, by, cx, cy) << endl;
cout << " i osi y: " << ymtrojkat(ax, ay, bx, by, cx, cy) << endl;
}
else if (figura == 'k' || figura == 'K') {
cout << "Podaj srednice kola: ";
cin >> d;
cout << "Moment bezwladnosci tej figury: " << mkolo(d) << endl;
}
else
cout << "Nacisnij wlasciwy klawisz"<<endl;
}
}
else if (t == 2) {
cout << "Ile figur chcesz zlozyc?"<<endl;
cin >> j;
for(i=0;i<=j;i++)
{
cout << "Podaj typ figury do obliczenia momentu bezwladnosci" << endl;
cout << "(p=prostokat, t=trojkat, k=kolo): ";
cin >> figura;
if (figura == 'p' || figura == 'P') {
cout << "Podaj bok a(os x): ";
cin >> a;
cout << "Podaj bok b(os y): ";
cin >> b;
cout << "Wzgledem jakiej osi ?(wybierz x lub y)" <<endl;
cin >> os;
if (os == 'x' || os == 'X')
cout << "Moment bezwladnosci prostokata wzgledem osi x:" << xmprostokat(a, b) << endl;
else if (os == 'y' || os == 'Y')
cout << "Moment bezwladnosci prostokata wzgledem osi y:" << ymprostokat(a, b) << endl;
}
else if (figura == 't' || figura == 'T') {
cout << "Podaj wspolrzedne wierzcholka 1" << endl;
cout << "Podaj x :";
cin >> ax;
cout << "Podaj y :";
cin >> ay;
cout << "Podaj wspolrzedne wierzcholka 2" << endl;
cout << "Podaj x :";
cin >> bx;
cout << "Podaj y :";
cin >> by;
cout << "Podaj wspolrzedne wierzcholka 3" << endl;
cout << "Podaj x :";
cin >> cx;
cout << "Podaj y :";
cin >> cy;
cout << "Wzgledem jakiej osi ?(wybierz x lub y)" <<endl;
cin >> os;
if (os == 'x' || os == 'X')
cout << "Moment bezwladnosci trojkata wzgledem osi x:" << xmtrojkat(ax, ay, bx, by, cx, cy) << endl;
else if (os == 'y' || os == 'Y')
cout << "Moment bezwladnosci trojkata wzgledem osi y:" << ymtrojkat(ax, ay, bx, by, cx, cy) << endl;
}
else if (figura == 'k' || figura == 'K') {
cout << "Podaj srednice kola: ";
cin >> d;
cout << "Moment bezwladnosci kola : " << mkolo(d) << endl;
}
else
cout << "Nacisnij wlasciwy klawisz"<<endl;
}
}
}