Documente Academic
Documente Profesional
Documente Cultură
Considerații teoretice:
O clasa reprezinta o metoda logica de organizare a datelor si functiilor unei aceleiasi familii.
Avind la dispozitie o clasa, un programator poate sa creeze obiecte din acea clasa. Un obiect(sau
o instanta) este o instantiere a unei clase. Instantierea reprezinta crearea unui obiect concret pe
baza unei difinitii sau a unui model.
O clasa se declara cu ajutorul cuvintului cheie: class. O clasa poate contine in membrii sai si
functii.
Sintaxa de declarare a unei clase:
class nume_clasa
{ private://specificator de acces
//date si functii private
public:// specificator de acces
//date si functii publice
private:// specificator de acces
//date si functii private
};
unde:
nume_clasa – reprezinta numele clasei(tip definit de utilizator).
Corpul clasei poate contine membrii care pot fi atit declaratii de date cit si declaratii de functii.
Optional etichetele de permisiune, care pot fi una din urmatoare cuvinte cheie:
*private-membrii clasei sunt accesibili numai din cadrul altor membri alei aceleiasi clase sau din
clase prietene.
*protected- membrii clasei sunt accesibili numai din cadrul altor membri alei aceleiasi clase sau
din clase prietene si totodata din membrii claselor derivate.
*public-membrii sunt accesibili de oricunde clasa este vizibila .
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
3. O clasa contine un singur destructor.
4. Destructorul nu are parametri si nu intoarce valori.
5. Daca programatorul nu a definit nici un destructor, compilatorul genereaza automat un
destructor pentru clasa respectiva.
6. Destructorii se apeleaza la incheierea timpului de viata a obiectelor.
Varianta8:
Sa se implimenteze o clasa la alegere ce va mosteni informatie de la minim 3 clase diferite.
Listingul programului:
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
//mostenire
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<math.h>
#define pi 3.14159265
class hexagon_regulat
{
protected :
float l;
public:
hexagon_regulat();
int verific_figura()
{
if((l<=0))
{return(0);}else {
return 1;} }
float perimetru();
float aria();
float cerc_inscris();
float cerc_circumscris();
float aria_inel();
void afis();
};
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
public:
float h;
public:
cilindru();
void aria_laterala_cilindru_circumscris()
{
cout<<"\nDatele despre cilindru cu inaltimea:"<< h;
cout<<"\nAria laterala a cilindrului circumscris:
"<<2*pi*l*h;};
void aria_totala_cc(){cout<<"\nAria totala a
cilindrului circumscris: "<<(2*pi*l*h)+2*(pi*l*l);};
} ;
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
a=(4*pi*l)+2*h;
cout<<"\nPerimetru suprafetei laterale:"<<a;
cout<<"\
n------------------------------------------------------
-----------";}
} ;
void volum(){
cout<<"\nDatele despre sfera" ;
g=0.2*h; cout<<"\nVolumul sferei cu raza= 1/5*h: "<<
(4/3)*(pow(g,3)*pi);}
void aria (){g=0.2*h; cout<<"\nAria sferei cu raza
1/5*h: "<<4*pi*pow(g,2);
cout<<"\
n------------------------------------------------------
-----------\n" ;}
} ;
hexagon_regulat::hexagon_regulat()
{
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
cout<<"Introdu latura hexagonului regulat:";
cin>>l;
}
cilindru::cilindru()
{cout<<"Introdu inaltimea:";
cin>>h;
}
float hexagon_regulat::perimetru()
{float p;
if(verific_figura())
{
p=6*l;
return(p);
}
else return(0);
}
float hexagon_regulat::aria()
{float a;
if(verific_figura())
{
a=(perimetru()* ((sqrt(3)/2)*l))/2;
return(a);
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
}
else return 0;
}
float hexagon_regulat::cerc_inscris()
{float aci,r,lci;
if(verific_figura())
{
r=(sqrt(3)/2)*l;
aci=pi*(r*r);
lci=2*pi*r;
cout<<"\nRaza cercului inscris: "<<r;
cout<<"\nAria cercului inscris: "<<aci;
}
else {return(0);}
return(lci);
}
float hexagon_regulat::cerc_circumscris()
{
float acc,R,lcc ;
if(verific_figura())
{
R=l;
acc=pi*(R*R);
lcc=2*pi*R;
cout<<"\nRaza cercului circumscris: "<<R;
cout<<"\nAria cercului circumscris: "<<acc;
}
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
else {return (0);}
return(lcc);
}
void hexagon_regulat::afis()
{
if(verific_figura() )
{cout<< "\nHexagonul este format cu latura: "<<l;
cout<<"\nPerimetru: "<<perimetru();
cout<<"\nAria: "<<aria();
cout<<"\
n------------------------------------------------------
-----------";
cout<<"\nDatele despre cercul inscris:" ;
cout<<"\nLungimea cercului inscris: "<<cerc_inscris();
cout<<"\
n------------------------------------------------------
-----------";
cout<<"\nDatele despre cercul circumscris:" ;
cout<<"\nLungimea cercului
circumscris:"<<cerc_circumscris();
cout<<"\
n------------------------------------------------------
-----------";
}
else{cout<<"Hexagonul nu se formaza!";}
}
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
void main()
{
printf("\
n--------------------------------------------");
printf("\n| Lucrarea de laborator SEMESTRUL II |");
printf("\n| Efectuat: Beleniuc Cristina
|");
printf("\n| Studenta grupei: TLC-152
|");
printf("\n--------------------------------------------\
n");
hexagon_regulat h;
cilindru c;
perimetru_ariei_laterale p ;
sfera s ;
clrscr();
h.afis();
c.aria_laterala_cilindru_circumscris();
c.aria_totala_cc();
c.aria_bazei_mari();
c.volumul_cilindru();
p.perimetru_al();
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
s.volum();
s.aria();
getch();
Rezultatul executiei:
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3
Concluzia:
În urma efectuării acestei lucrări de laborator am obținut deprinderea practică de
elaborare şi depanare a programelor utilizind clase. Totodată am utilizat tehnicile de bază
prelucrarea si modificarea claselor. Efectuind laboratorul dat am obtinut deprinderi practice
ce tin de declararea claselor, prelucrarea si modificarea acestora, deasemenea la accesarea
datelor din clase. Am utilizat specificatorii de acces private și public și am observat ca cei
din private pot fi accesați numai din funcțiile membre, iar din public – din orice punct al
programului. Am folosit si operatorul :: pentru a defini un membru în afara clasei. Am
observat că clasele se aseamănă puțin cu structurile, însă sunt mai avansate și ne facilitează
lucrul în volum mare de informație.
Am observat ca cu ajutorul claselor derivate pot fi folosite una siaceiasi variabile in mai mlte
contexte,fiind o problema inainte de a „mosteni” o variabila din alta functie. Totodata am
observat mai clar efectul specificatorilor de access.
Condiția problemei presupunea ca să caclculăm mai multe date despre un corp geometric.
După rezultatele execuției vedem că toate condițiile au fost îndeplinite, iar rezultate sunt
corespunzătoare cerințelor. Astfel in cursul acestui laborator am aplicat in practica
cunostintele privind clase, dar și instrucțiuni și procedee utilizate anterior.
Coala
SDE 525.3 152 03 ME
Mod Coala Nr. document Semnat. Data 3