Documente Academic
Documente Profesional
Documente Cultură
Specialitatea Informatica
Data : 17.02.2016
Nota : ________
Chisinau
2016
1) Subcompetene:
3) Listing-ul programului:
#include <iostream>
#include <math.h>
using namespace std;
class paralelogram{ //definirea clasei paralelogram
public: //parametrii publici
float l1;
float l2;
float l3;
float l4;
float u1;
float u2;
float u3;
float u4;
float Per;
float Tip(); //metodele cu care vom lucra
float Inaltime();
float Perimetru();
float Aria();
float Diagonala();
//mai jos urmeaz constructorul paralelogram
paralelogram(float latura1,float latura2,float latura3,float latura4,float
unghi1,float unghi2,float unghi3,float unghi4,float Perim);
~paralelogram();// declararea deconstructorului
private:
friend void Perimetru(); //definirea prietenului Parametru
};
// definirea constructorului explicit paralemogram
//si definirea laturilor si unghiurilor cu care vom lucra
paralelogram::paralelogram(float latura1,float latura2,float latura3,float
latura4,float unghi1,float unghi2,float unghi3,float unghi4,float Perim)
{ l1=latura1;
l2=latura2;
l3=latura3;
l4=latura4;
u1=unghi1;
u2=unghi2;
u3=unghi3;
u4=unghi4;
Per=Perim; }
paralelogram::~paralelogram()//definirea explicit destructorului
{}
float paralelogram::Tip()//metoda Tip , prin definire explicita
{ if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((u1==90)&&(u3==90)&&(u2==90)&&(u4==
90))) cout<<"Paralelogramul este dreptunghi!"<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((u1==90)&&(u2==90)&&(u3==9
0)&&(u4==90)))
cout<<"Paralelogramul este patrat!"<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((((u1>0)&&(u1<90))&&((u2>90)
&&(u2<180))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(
u2==u4)&&(u2!=u3))))
cout<<"Paralelogramul este romb!"<<endl;
else if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((((u1>0)&&(u1<90))&&((u2>90)&&(u2<180
))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(u2==u4)&&
(u3!=u2))))
cout<<"Paralelogramul este oarecare!"<<endl;
}
float paralelogram::Inaltime(){
if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((u1==90)&&(u3==90)&&(u2==90)&&(u4==
90)))
cout<<"Inaltimea paralelogramului:"<<l1<<" cm"<<" sau "<<l2<<"
cm"<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((u1==90)&&(u2==90)&&(u3==9
0)&&(u4==90)))
cout<<"Inaltimea paralelogramului:"<<l1<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((((u1>0)&&(u1<90))&&((u2>90)
&&(u2<180))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(
u2==u4)&&(u3!=u2))))
cout<<"Inaltimea paralelogramului:"<<((l1*l1)*sin(u1))/l1<<endl;
else if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((((u1>0)&&(u1<90))&&((u2>90)&&(u2<180
))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(u2==u4)&&
(u3!=u2))))
cout<<"Inaltimea paralelogramului:"<<((l1*l1)*sin(u1))/l1<<endl;
}
void Perimetru(paralelogram c)//incadram prietenul Perimetru
{
c.Per=(2*c.l1)+(2*c.l2);
cout<<"Perimetrul paralelogramului:"<<c.Per<<" cm"<<endl;
}
float paralelogram::Aria()
{
if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((u1==90)&&(u3==90)&&(u2==90)&&(u4==
90)))
cout<<"Aria paralelogramului:"<<l1*l2<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((u1==90)&&(u2==90)&&(u3==9
0)&&(u4==90)))
cout<<"Aria paralelogramului:"<<l1*l1<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((((u1>0)&&(u1<90))&&((u2>90)
&&(u2<180))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(
u2==u4)&&(u3!=u2))))
cout<<"Aria paralelogramului:"<<((l1*l1)*sin(u1))<<endl;
else if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((((u1>0)&&(u1<90))&&((u2>90)&&(u2<180
))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(u2==u4)&&
(u3!=u2))))
cout<<"Aria paralelogramului:"<<((l1*l1)*sin(u1))<<endl; }
float paralelogram::Diagonala(){
if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((u1==90)&&(u3==90)&&(u2==90)&&(u4==
90))) cout<<"Diagonalele paralelogramului:"<<sqrt((l1*l1)+(l2*l2))<<" cm si
"<<sqrt((l1*l1)+(l2*l2))<<" cm;"<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((u1==90)&&(u2==90)&&(u3==9
0)&&(u4==90)))
cout<<"Diagonalele paralelogramului:"<<sqrt((l1*l1)+(l2*l2))<<" cm si
"<<sqrt((l1*l1)+(l2*l2))<<" cm;"<<endl;
else if
(((l1==l2)&&(l2==l3)&&(l3==l4)&&(l4==l1))&&((((u1>0)&&(u1<90))&&((u2>90)
&&(u2<180))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(
u2==u4)&&(u3!=u2))))
cout<<"Diagonala 1="<<(l1*l2)*sin(u1/2)<<" si diagonala
2="<<(l2*l3)*sin(u2/2)<<";"<<endl;
else if
(((l1==l3)&&(l2==l4)&&(l2!=l3))&&((((u1>0)&&(u1<90))&&((u2>90)&&(u2<180
))&&((u3>0)&&(u3<90))&&((u4>90)&&(u4<180)))&&((u1==u3)&&(u2==u4)&&
(u3!=u2)))) cout<<"Diagonala 1="<<(l1*l2)*sin(u1/2)<<" si diagonala
2="<<(l2*l3)*sin(u2/2)<<";"<<endl;
}
int main() {
float lat1;
float lat2;
float lat3;
float lat4;
float ung1;
float ung2;
float ung3;
float ung4;
float Pe;
cout<<"------------------------"<<endl;
cout<<"Dati lungimea laturii 1:";
cin>>lat1;
cout<<"Dati lungimea laturii 2:";
cin>>lat2;
cout<<"Dati lungimea laturii 3:";
cin>>lat3;
cout<<"Dati lungimea laturii 4:";
cin>>lat4;
cout<<"------------------------"<<endl;
cout<<"Masura 1 unghi :";
cin>>ung1;
cout<<"Masura 2 unghi :";
cin>>ung2;
cout<<"Masura 3 unghi :";
cin>>ung3;
cout<<"Masura 4 unghi :";
cin>>ung4;
paralelogram p(lat1,lat2,lat3,lat4,ung1,ung2,ung3,ung4,Pe);
p.Tip();
p.Inaltime();
Perimetru(p);//prietenul clasei Perimetru
p.Aria();
p.Diagonala(); }
4) Tabel de valori :
5) Teste:
1 Test
2 Test
3 Test
4 Test
6) Concluzie:
Participnd la acest proect, am fcut cunotin cu noi tehnici de
programare (POO-Programarea Orientata pe Obiecte). Acest tip te
programare este unul mai complicat, dar interesant , care ii dezvolta
ambiia de lucru cu aceast. Aici am descoperit o nou tehnic, de lucru cu
Constructorii, Distructorii, Clasele si Prietenii, care ntr-un final creeaz
caracteristicele unor obiecte virtuale. M-ia placut s particip la aceast
proiect, i am descoperit multe lucruri noi.
7) Bibliografie:
Caetul la Programarea Orientata pe Obiecte.