#include <iostream>
#include <string>
#include <math.h>
using namespace std;
namespace kalk{
void suma()
{
int a,b;
cout<<"podaj liczbe a: "; cin>>a;
cout<<"\npodaj liczbe b: "; cin>>b;
cout<<"\nsuma a i b wynosi: "<<a+b;
};
void roznica()
{
int a,b;
cout<<"podaj liczbe a: "; cin>>a;
cout<<"\npodaj liczbe b: "; cin>>b;
cout<<"roznica a i b wynosi: "<<a-b;
};
void iloczyn()
{
int a,b;
cout<<"podaj liczbe a: "; cin>>a;
cout<<"\npodaj liczbe b: "; cin>>b;
cout<<"iloczyn a i b wynosi: "<<a*b;
};
void iloraz()
{
int a,b;
cout<<"podaj liczbe a: "; cin>>a;
cout<<"\npodaj liczbe b: "; cin>>b;
cout<<"iloraz a i b wynosi: "<<a/b;
};
}
namespace geo{
namespace kwadrat
{
void pole()
{
cout<<"podaj dlugosc boku"<<endl;
double a;
cin>>a;
cout<<"pole tego kwadratu wynosi:"<<endl;
cout<<a*a<<endl;
}
void obwod()
{
cout<<"podaj dlugosc boku"<<endl;
double a;
cin>>a;
cout<<"obwod tego kwadratu wynosi:"<<endl;
cout<<4*a<<endl;
}
void przek()
{
cout<<"podaj dlugosc boku"<<endl;
double a;
cin>>a;
cout<<"dlugosc przekatnej tego kwadratu (W ZAOKRAGLENIU) wynosi:"<<endl;
cout<<round(a*sqrt(2))<<endl;
}
}
namespace trojkat
{
void pole()
{
cout<<"podaj dlugosc podstawy"<<endl;
double a, h;
cin>>a;
cout<<"podaj dlugosc wysokosci"<<endl;
cin>>h;
cout<<"pole tego trojkata wynosi:"<<endl;
cout<<(a*h)/2<<endl;
}
void obwod()
{
cout<<"podaj dlugosc boku a"<<endl;
double a, b, c;
cin>>a;
cout<<"podaj dlugosc boku b"<<endl;
cin>>b;
cout<<"podaj dlugosc boku c"<<endl;
cin>>c;
cout<<"obwod tego trojkata wynosi:"<<endl;
cout<<a+b+c<<endl;
}
}
namespace kolo
{
void pole()
{
cout<<"podaj dlugosc promienia"<<endl;
double r;
cin>>r;
cout<<"pole tego kola wynosi:"<<endl;
cout<<round(M_PI*r*r)<<endl;
}
void obwod()
{
cout<<"podaj dlugosc promienia"<<endl;
double r;
cin>>r;
cout<<"obwod tego kola wynosi:"<<endl;
cout<<round(2*M_PI*r)<<endl;
}
}
namespace trapez
{
void pole()
{
cout<<"podaj dlugosc pierwszej podstawy"<<endl;
double a, b, h;
cin>>a;
cout<<"podaj dlugosc drugiej podstawy"<<endl;
cin>>b;
cout<<"podaj dlugosc wysokosci"<<endl;
cin>>h;
cout<<"pole tego trapezu wynosi:"<<endl;
cout<<((a+b)*h)/2<<endl;
}
void obwod()
{
double a, b, c, d;
cout<<"podaj dlugosc pierwszego boku"<<endl;
cin>>a;
cout<<"podaj dlugosc drugiego boku"<<endl;
cin>>b;
cout<<"podaj dlugosc trzeciego boku"<<endl;
cin>>c;
cout<<"podaj dlugosc czwartego boku"<<endl;
cin>>d;
cout<<"obwod tego trapezu wynosi:"<<endl;
cout<<a+b+c+d<<endl;
}
}
namespace rowno
{
void pole()
{
double a, h;
cout<<"podaj dlugosc podstawy"<<endl;
cin>>a;
cout<<"podaj dlugosc wysokosci"<<endl;
cin>>h;
cout<<"pole tego rownolegloboku wynosi:"<<endl;
cout<<a*h<<endl;
}
void obwod()
{
double a, b;
cout<<"podaj dlugosc pierwszego boku"<<endl;
cin>>a;
cout<<"podaj dlugosc drugiego boku"<<endl;
cin>>b;
cout<<"obwod tego rownolegloboku wynosi:"<<endl;
cout<<2*a+2*b<<endl;
}
}
namespace romb
{
void pole_1()
{
rowno::pole();
}
void pole_2()
{
double e, f;
cout<<"podaj dlugosc pierwszej przekatnej"<<endl;
cin>>e;
cout<<"podaj dlugosc drugiej przekatnej"<<endl;
cin>>f;
cout<<"pole tego rombu wynosi:"<<endl;
cout<<(e*f)/2<<endl;
}
void obwod()
{
cout<<"podaj dlugosc boku"<<endl;
double a;
cin>>a;
cout<<"obwod tego rombu wynosi:"<<endl;
cout<<4*a<<endl;
}
}
namespace pros
{
void pole()
{
double a, b;
cout<<"podaj dlugosc pierwszego boku"<<endl;
cin>>a;
cout<<"podaj dlugosc drugiego boku"<<endl;
cin>>b;
cout<<"pole tego prostokatu wynosi:"<<endl;
cout<<a*b<<endl;
}
void obwod()
{
double a, b;
cout<<"podaj dlugosc pierwszego boku"<<endl;
cin>>a;
cout<<"podaj dlugosc drugiego boku"<<endl;
cin>>b;
cout<<"obwod tego prostokatu wynosi:"<<endl;
cout<<2*a+2*b<<endl;
}
void przek()
{
double a, b;
cout<<"podaj dlugosc pierwszego boku"<<endl;
cin>>a;
cout<<"podaj dlugosc drugiego boku"<<endl;
cin>>b;
cout<<"przekatna tego prostokatu wynosi:"<<endl;
cout<<sqrt(pow(a, 2)+pow(b, 2))<<endl;
}
}
}
int main()
{
int a,b,zam,ex;
do{
cout<<"co chcesz zrobic? \n1. dodac\n2. odjac\n3. pomnozyc\n4. podzielic\n5. pracowac na figurach plaskich\n";
int wyb; cin>>wyb;
if(wyb == 1){
kalk::suma();
}
if(wyb == 2){
kalk::roznica();
}
if(wyb == 3){
kalk::iloczyn();
}
if(wyb == 4){
kalk::iloraz();
}
if(wyb == 5){
do
{
cout<<"wybierz figure:\nkwadrat - 1\ntrojkat - 2\nkolo - 3\ntrapez - 4\nrownoleglobok - 5\nromb - 6\nprostokat - 7\n";
string fig;
cin>>fig;
if(fig=="kwadrat" || fig=="1")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)\tprzekatna (3)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
geo::kwadrat::pole();
}
else if(licz=="obwod" || licz=="2")
{
geo::kwadrat::obwod();
}
else if(licz=="przekatna" || licz=="3")
{
geo::kwadrat::przek();
}
}
else if(fig=="trojkat" || fig=="2")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
geo::trojkat::pole();
}
else if(licz=="obwod" || licz=="2")
{
geo::trojkat::obwod();
}
}
else if(fig=="kolo" || fig=="3")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
geo::kolo::pole();
}
else if(licz=="obwod" || licz=="2")
{
geo::kolo::obwod();
}
}
else if(fig=="trapez" || fig=="4")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
geo::trapez::pole();
}
else if(licz=="obwod" || licz=="2")
{
geo::trapez::obwod();
}
}
else if(fig=="rownoleglobok" || fig=="5")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
geo::rowno::pole();
}
else if(licz=="obwod" || licz=="2")
{
geo::rowno::obwod();
}
}
else if(fig=="romb" || fig=="6")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
cout<<"co masz podane?"<<endl;
cout<<"dlugosci boku i wysokosci (1)\tdlugosci przekatnych (2)"<<endl;
int dl;
cin>>dl;
if(dl == 1)
{
geo::romb::pole_1();
}
else if(dl == 2)
{
geo::romb::pole_2();
}
}
else if(licz=="obwod" || licz=="2")
{
geo::romb::obwod();
}
}
else if(fig=="prostokat" || fig=="7")
{
cout<<"co chcesz obliczyc?"<<endl;
cout<<"pole (1)\tobwod (2)\tprzekatna (3)"<<endl;
string licz;
cin>>licz;
if(licz=="pole" || licz=="1")
{
geo::pros::pole();
}
else if(licz=="obwod" || licz=="2")
{
geo::pros::obwod();
}
else if(licz=="przekatna" || licz=="3")
{
geo::pros::przek();
}
}
}while(ex==2);
} // konczy if{... z 282 linijki
cout<<"\n\tczy chcesz zamknac program?\n1. tak\t2. nie\n";
cin>>zam;
}while(zam == 2); // konczy do{... z 260 linijki
return 0;
}