Program: obliczający pola.
Możliwe obliczenie:
- kwadratu po podaniu długości boku,
- dowolnego czworokąta po podaniu długości dwóch przekątnych oraz kąta między nimi.
Kompilator: Dev C++
Kod programu:
//Obliczanie pól figur - klasy, funkcje, dziedziczenie
#include <math.h>
#include <iostream>
#include <cstdlib>
#define PI 3.14159265
using namespace std;
class pole
{public:
double oblicz(double p1, double p2, double kat);
};
double pole::oblicz(double p1, double p2, double kat)
{return (p1 * p2 * sin(kat*PI/180))/2;
};
class czworokat
{
public:
double a,b,c,d;
double kat1, kat2, kat3, kat4;
czworokat(double bok1, double bok2, double bok3, double bok4,double k1, double k2, double k3, double k4)
: a(bok1), b(bok2), c(bok3), d(bok4), kat1(k1), kat2(k2), kat3(k3), kat4(k4) {}
inline void zmien_boki(double bok1, double bok2, double bok3, double bok4)
{
a=bok1;
b=bok2;
c=bok3;
d=bok4;
}
};
class kwadrat : public czworokat, public pole
{
public:
kwadrat(double x): czworokat(x,x,x,x,90,90,90,90){}
double oblicz(void)
{
return pole::oblicz(a*sqrt(2), a*sqrt(2), 90);
}
};
void kw()
{
cout << "Podaj bok kwadratu: ";
int bok;
cin>>bok;
kwadrat figura(bok);
cout << "Pole wynosi: " << figura.oblicz() << endl;
}
void czw()
{
cout << "Dlugosc pierwszej przekatnej: ";
int przek1;
cin >> przek1;
cout << "Dlugosc drugiej przekatnej: ";
int przek2;
cin >> przek2;
cout << "Podaj kat miedzy nimi: ";
int katprz;
cin >> katprz;
pole czworokat;
cout << "Pole czworokata wynosi: " << czworokat.oblicz(przek1,przek2,katprz) << endl;
}
int main()
{
cout << "1.Pole kwadratu." << endl;
cout << "2.Pole dowolnego czworokata." << endl<<"\n";
cout << "Co chcesz obliczyc: ";
int operacja;
cin >> operacja;
switch(operacja)
{
case 1:
kw();
break;
case 2:
czw();
break;
default:
cout<<"Zly operator\n";
break;
}
system("PAUSE");
return EXIT_SUCCESS;
}