Inregistrare • Cautare • FAQ • Membri • Grupuri • Autentificare
lab 5

 
Raspunde la subiect    Pagina de start a forumului MiniZone » programming Subiectul anterior
Subiectul urmator

lab 5
Autor Mesaj
Zappu
Administrator
Administrator
Zappu

Data inscrierii: 10/Noi/2007
Mesaje: 718
Localitate: Cluj

Mesaj lab 5 Raspunde cu citat (quote)
/*1.Sa se scrie o aplicatie C/C++ care foloseste o structura de date cu numele Cerc care contine
raza ca si o variabila de tip întreg. Într-un program C/C++, declarati doua variabile c1, c2 de
tip Cerc si calculati aria si circumferinta lor pentru valori ale razei introduse de la tastatura cu
doua metode definite. Aceleasi cerinte vor fi implementate într-o aplicatie folosind o clasa
numita Cerc cu atributul raza privat, clasa ce va contine pe lânga metodele de calcul ale ariei
si perimetrului un constructor explicit cu parametru, un destructor si o metoda de afisare raza.
Extindeti aplicatia astfel încât sa definiti mai numeroase obiecte de tip Cerc la care sa accesati
metodele specifice folosind obiectele instantiate, pointeri la obiecte, referinte la obiecte.*/

#include<iostream>
using namespace std;

class Cerc{

private:
int Raza;

public:
Cerc(int);
void Afisare(void);
float Aria(void);
float Perimetru(void);
~Cerc(void);
};

Cerc::Cerc(int r)//definirea cosntructorului implicit
{
Raza=r;
}

Cerc::~Cerc(void)
{
Raza=0;
}

void Cerc::Afisare(void)//fct membra pt afisare
{
cout<<"Raza cercului este : "<<Raza<<endl;
}

float Cerc::Aria(void)//fct membra pt calculul ariei
{
return(3.1416*Raza*Raza);
}

float Cerc::Perimetru(void)//fct membra pt calculul circumferintei
{
return(2*3.1416*Raza);
}

void main(void)
{
Cerc c1(5),*c2,&c3=c1;//initializarea unui obiect, a unui pointer de la obiect si o referinta
c2=&c1;

cout<<"\nRaza cu care a fost initializat obiectul este:";
c1.Afisare();
cout<<"\nAria cercului este:"<<c1.Aria();
cout<<"\nCircumferinta cercului este:"<<c1.Perimetru();
cout<<endl;

cout<<"\nAcelasi fapt cu pointeri:";
cout<<"\nRaza cercului este:";
c2->Afisare();
cout<<"\nAria cercului este:"<<c2->Aria();
cout<<"\nCircumferinta cercului este:"<<c2->Perimetru();
cout<<endl;

cout<<"\nAcelasi lucru cu referinta:";
cout<<"\nAria cercului este:";
c3.Afisare();
cout<<"\nAria cercului:"<<c3.Aria();
cout<<"\nCircumferinta cercului:"<<c3.Perimetru();
cout<<endl;

}







/*3.Sa se defineasca o clasa numita String (intr-un fisier numit strClass.h) care sa fie compusa din
functiile specifice care efectueaza urmatoarele operatii pe siruri de caractere:
- determina mărimea sirului primit pe intrare;
- determina ultima pozitie de aparitie a unui anumit caracter din sirul de intrare;
- returneaza sirul primit pe intrare, scris cu caractere majuscule;
- returneaza sirul primit pe intrare, scris cu caractere minuscule;
- returneaza numarul de aparitii ale unui anumit caracter din sirul primit;*/


#include<iostream>
using namespace std;
#include<string.h>


class String{
private:
char *sir;
int DIM;

public:
String(void);
~String(void);
void Init(void);//fct pt initializarea sirului
int Len(void);//fct pt det lungimii
int Ultim(int,char);//fct pt det ultimei pozitii pe care apare un caracter c
void Afisare(int);//afisare cu majuscule
void afisare(int);//afisare cu minuscule
int Aparitii(int,char);//fct pt determinarea nr de aparitii a unu caracter c
};

String::String(void)//constructor ce aloca memorie pt 50 caractere
{
DIM=50;
sir=new char[DIM];
}

String::~String(void)
{
delete []sir;
}

void String::Init(void)
{
cout<<"\nIntroduceti sirul:";
cin>>sir;
}

int String::Len(void)
{
int k;

k=strlen(sir);

return(k);
}

int String::Ultim(int n, char c)
{
int i,poz;

for(i=0;i<n;i++)
{
if(sir[i]==c)
poz=i+1;
}

return(poz);
}


void String::Afisare(int n)
{
int i;

for(i=0;i<n;i++)
cout<<(char)toupper(sir[i]);
}


void String::afisare(int n)
{
int i;

for(i=0;i<n;i++)
cout<<(char)tolower(sir[i]);
}


int String::Aparitii(int n, char c)
{
int i,k=0;

for(i=0;i<n;i++)
{
if(sir[i]==c)
k++;
}
return(k);
}



void main(void)
{
String s1;
int n;

s1.Init();
n=s1.Len();

cout<<"\nLungimea sirului introdus este:"<<n;

cout<<"\nSirul introdus este(cu majuscule):";
s1.Afisare(n);

cout<<"\nSirul introdus este(cu minuscule):";
s1.afisare(n);

cout<<"\nUltima pozitie pe care apare caracterul a este:"<<s1.Ultim(n,'a');


cout<<"\nNumarul de aparitii a caracterului a este:"<<s1.Aparitii(n,'a');

}





/*4. Sa se scrie programul care citeste de la tastatura un sir de maxim 10 caractere si care, pe baza
clasei implementate anterior, efectueaza asupra sirului de intrare operatiile definite în cadrul
clasei.*/


#include<iostream>
using namespace std;
#include<string.h>


class String{
private:
char *sir;
int DIM;

public:
String(void);
~String(void);
void Init(void);//fct pt initializarea sirului
int Len(void);//fct pt det lungimii
int Ultim(int,char);//fct pt det ultimei pozitii pe care apare un caracter c
void Afisare(int);//afisare cu majuscule
void afisare(int);//afisare cu minuscule
int Aparitii(int,char);//fct pt determinarea nr de aparitii a unu caracter c
};

String::String(void)//constructor ce aloca memorie pt 50 caractere
{
DIM=50;
sir=new char[DIM];
}

String::~String(void)
{
delete []sir;
}

void String::Init(void)
{
int i;
char buff[60];
cout<<"\nIntroduceti sirul:";
cin>>buff;
strncpy(sir,buff,10);
sir[10]='\0';


}

int String::Len(void)
{
int k;

k=strlen(sir);

return(k);
}

int String::Ultim(int n, char c)
{
int i,poz;

for(i=0;i<n;i++)
{
if(sir[i]==c)
poz=i+1;
}

return(poz);
}


void String::Afisare(int n)
{
int i;

for(i=0;i<n;i++)
cout<<(char)toupper(sir[i]);
}


void String::afisare(int n)
{
int i;

for(i=0;i<n;i++)
cout<<(char)tolower(sir[i]);
}


int String::Aparitii(int n, char c)
{
int i,k=0;

for(i=0;i<n;i++)
{
if(sir[i]==c)
k++;
}
return(k);
}



void main(void)
{
String s1;
int n;

s1.Init();
n=s1.Len();

cout<<"\nLungimea sirului introdus este:"<<n;

cout<<"\nSirul introdus este(cu majuscule):";
s1.Afisare(n);

cout<<"\nSirul introdus este(cu minuscule):";
s1.afisare(n);

cout<<"\nUltima pozitie pe care apare caracterul a este:"<<s1.Ultim(n,'a');


cout<<"\nNumarul de aparitii a caracterului a este:"<<s1.Aparitii(n,'a');

}




/*5. Sa se scrie programul care implementeaza clasa Suma si care, în cadrul functiei main, declara
un obiect de tipul clasei si apoi un pointer la acesta, prin intermediul carora se va afisa pe
ecran rezultatul adunarii a doua numere preluate de la tastatura. Încercati implementarea
functiei suma în cadrul clasei si în exteriorul acesteia.*/

#include<iostream>
using namespace std;

class Suma{
public:
int Suma1(int,int);//functie definita ulterior
int Suma2(int a,int b)//functie definita in clasa
{
return(a+b);
}
};

int Suma::Suma1(int a, int b)
{
return(a+b);
}


void main(void)
{
Suma n,*p;
p=NULL;
int a,b;

cout<<"\na:";
cin>>a;
cout<<"\nb:";
cin>>b;

cout<<"\nFolosind Suma1 a+b="<<n.Suma1(a,b);
cout<<"\nFolosind Suma2 si pointer spre tipul clasei a+b="<<p->Suma2(a,b);
cout<<endl;
}





/*6. Sa se defineasca o clasa care implementeaza functiile:
- int plus(int x, int y), care returneaza suma valorilor primite la apelul metodei;
- int minus(int x, int y), care returneaza diferenta valorilor primite la apelul metodei;
- int inmultit(int x, int y), care returneaza produsul valorilor primite la apelul metodei;
- int impartit(int x, int y), care returneaza catul impartirii valorilor primite la apelul metodei;
si apoi sa se scrie aplicatia care utilizeaza aceasta clasa.*/

#include<iostream>
using namespace std;

class Operatii{
public:

int plus(int x, int y)
{
return(x+y);
}

int minus(int x, int y)
{
return(x-y);
}

int inmultit(int x, int y)
{
return(x*y);
}

int impartit(int x, int y)
{
if(y==0)
{
cout<<"\nImpartirea nu se poate efecuta!";
exit(-1);
}
else
return(x/y);
}
};


void main(void)
{
Operatii *p;
p=NULL;
int x, y;

cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;


cout<<"\nSuma celor 2 numere este:"<<p->plus(x,y);
cout<<"\nDiferenta dintre cele 2 numere este:"<<p->minus(x,y);
cout<<"\nProdusul dintre cele 2 numere este:"<<p->inmultit(x,y);
cout<<"\nCatul impartirii dintre cele 2 numere este:"<<p->impartit(x,y);
cout<<endl;
}











/*7.Sa se creeze o clasa care sa modeleze numerele complexe. Scrieti un program care utilizeaza
aceasta clasa.*/




#include<iostream>
using namespace std;
#include<math.h>


class Complex{

private:
int a;
int b;

public:
Complex();
Complex(int , int );
void Set_values(int , int);
void Afisare(void);
float Modul(void);
Complex Suma(Complex);
};


Complex::Complex()
{
a=1;
b=1;
}


Complex::Complex(int ia, int ib)
{

a=ia;
b=ib;

}


void Complex::Set_values(int ia, int ib)
{
a=ia;
b=ib;
}

void Complex::Afisare(void)
{
cout<<"\nNumarul complex este:\t"<<a<<"+j"<<b<<"\t";
}

float Complex::Modul(void)
{


return(sqrt((float)(a*a)+(float)(b*b)));
}

Complex Complex::Suma(Complex z2)
{
Complex z3;
z3.a=a+z2.a;
z3.b=b+z2.b;
return(z3);
}



void main(void)
{
Complex z1,z2(2,2),z3;

cout<<"\nNumarul complex implicit z1 e:";
z1.Afisare();
cout<<"\nModulul numarului complex implicit este:"<<z1.Modul();

z1.Set_values(3,5);
cout<<"\nNumarul complex z1 cu numere oarecare e:";
z1.Afisare();
cout<<"\nModulul numarului complec oarecare este:"<<z1.Modul();

cout<<"\nNumarul complex z2:";
z2.Afisare();

z3=z1.Suma(z2);
cout<<"\nSuma celor doua numere complexe este:";
z3.Afisare();


}

_________________
Detinator MiniZone
www.zappdivercity.blogspot.com
25/03/2014 22:25 Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:    

Raspunde la subiect    Pagina de start a forumului MiniZone » programming Ora este GMT + 3 ore
Pagina 1 din 1

 
Mergi direct la: 
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2005 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro