Documente Academic
Documente Profesional
Documente Cultură
STUDENT:
Anul II , gr 2
Timişoara 2011
//P8_1
/* Definiti si implementati clasa Dreptunghi, avand ca date membri: lungimea si latimea si ca functii
#include<stdio.h>
class Dreptunghi
public:
Dreptunghi();
int getLungime();
int getLatime();
int Arie();
int Perimetru();
};
Dreptunghi:: Dreptunghi()
(*this).lungime=0;
(*this).latime=0;
return (*this).lungime;
(*this).lungime=lungime;
}
return (*this).latime;
(*this).latime=latime;
int arie;
return arie=lungime*latime;
int perimetru;
return perimetru=2*(lungime+latime);
int main()
Dreptunghi d;
d.setLungime(4);
d.setLatime(3);
return 0;
#include <iostream>
#include <cmath>
class Punct3 {
public:
double x;
double y;
double z;
public:
Punct3()
(*this).x=0;
(*this).y=0;
(*this).z=0;
void setX(double x)
(*this).x=x;
void setY(double y)
(*this).y=y;
}
void setZ(double z)
(*this).z=z;
double getX()
return (*this).x;
double getY()
return (*this).y;
double getZ()
return (*this).z;
Punct3 rotatieX(float u)
Punct3 q=Punct3();
q.x=(*this).x;
q.y=(*this).y*cos(u)-(*this).z*sin(u);
q.z=(*this).y*sin(u)+(*this).z*cos(u);
return q;
Punct3 rotatieY(float u)
Punct3 q=Punct3();
q.x=(*this).x*cos(u)+(*this).z*sin(u);
q.y=(*this).y;
q.z=-((*this).y)*sin(u)+(*this).z*cos(u);
return q;
Punct3 rotatieZ(float u)
Punct3 q=Punct3();
q.x=(*this).x*cos(u)-(*this).y*sin(u);
q.y=(*this).x*sin(u)+(*this).y*cos(u);
q.z=(*this).z;
return q;
};
double k;
k=abs(p.x-q.x)+abs(p.y-q.y)+abs(p.z-q.z);
return k;
return 1;
else return 0;
/*void operator<<(Punct3 p)
}*/
int main()
float t;
Punct3 p=Punct3();
p.setX(1);
p.setY(2);
p.setZ(3);
cout<<"Dati un unghi";
cin>>t;
Punct3 r=p.rotatieX(t);
Punct3 s=p.rotatieY(t);
Punct3 v=p.rotatieZ(t);
//supraincarcarea operatorului ==
if(operator==(p,p)==1)
printf("\nPunctele coincid.\n");
return 0;
/* operator<<(p);*/
}
//P8_3
(samanta * inmultitor + increment) % modul se genereaza cate un numar aleator, care devine
- schimbarea samantei;
*/
#include<stdio.h>
class Aleator
private:
public:
int getSamanta();
int getInmultitor();
int getIncrement();
int getModul();
int generare();
};
Aleator:: Aleator(int s,int i, int in, int m)
(*this).samanta=s;
(*this).inmultitor=i;
(*this).increment=in;
(*this).modul=m;
return (*this).samanta;
return (*this).inmultitor;
return (*this).increment;
return (*this).modul;
void Aleator:: setSamanta(int samanta) //samanta este noua samanta, (*this).samanta=samanta initiala
(*this).samanta=samanta;
int s;
return s;
int main()
Aleator nr1=Aleator(6,3,4,5);
printf("Samanta=%d\nInmultitor=%d\nIncrement=%d\nModul=
%d\n",nr1.getSamanta(),nr1.getInmultitor(),nr1.getIncrement(), nr1.getModul());
scanf("%d",&n);
printf("Numerele sunt:\n");
do
nr1.setSamanta(nr1.generare());
printf("%d ",nr1.getSamanta());
n=n-1;
} while(n!=0);
return 0;
//P8_5
#include<iostream>
int reprezentant;
unsigned char*p;
multime(int);
multime(multime&m);
~multime();
};
multime::multime(int rep=1)
{int i;
reprezentant=rep;
p[i]=0;
multime::multime(multime&m)
{int i;
reprezentant=m.reprezentant;
for(i=0;i<reprezentant;i++)
p[i]=m.p[i];}
multime::~multime()
{delete p;}
int multime::apartine(int k)
int nr_octet=k/8;
masca=masca<<nr_bit;
if(p[nr_octet]&masca) return 1;
else return 0;
int nr_octet=k/8;
masca=masca<<nr_bit;
p[nr_octet]=p[nr_octet] | masca;
}
void multime::scoate(int k)
int nr_octet=k/8;
masca=masca<<nr_bit;
masca=~masca;
int i;
if(m.reprezentant>reprezentant)
for(i=0;i<reprezentant;i++)
p1[i]=p[i]| m.p[i];
for(i=reprezentant; i<m.reprezentant;i++)
p1[i]=m.p[i];
reprezentant=m.reprezentant;
delete p;
p=p1;
else
for(i=0;i<m.reprezentant;i++)
p[i]=p[i]| m.p[i];
int i;
if(m.reprezentant>reprezentant)
for(i=0;i<reprezentant;i++)
p[i]=p[i]& m.p[i];
else
{for(i=0;i<m.reprezentant;i++)
p[i]=p[i]| m.p[i];
reprezentant=m.reprezentant;
{multime m=m1;
m+=m2;
return m;
{multime m=m1;
m*=m2;
return m;
//P8_6
#include<iostream>
class Parabola
{double a,b,c;
public:
void parabola()
{a=b=c=0;}
float reta();
double retb();
double retc();
int nr_rad();
};
{(*this).a=a;
(*this).b=b;
(*this).c=c;
{return a;}
double Parabola::retb()
{return b;}
double Parabola::retc()
{return c;}
double Parabola::eval(double x)
{return a*x*x+b*x+c;}
int Parabola::nr_rad()
{double delta;
if(a!=0)
{delta=b*b-4*a*c;
if(delta>=0)
return 2;
else
return 0;
{Parabola pp;
pp.a=p1.a+p2.a;
pp.b=p1.b+p2.b;
pp.c=p1.c+p2.c;
return pp;
{Parabola pp;
pp.a=k*p.a;
pp.b=k*p.b;
pp.c=k*p.c;
return pp;
int main()
{}
//P8_7
#include <iostream>
class vector
public:
int d;
int v[20];
public:
vector()
(*this).d=10;
for(int i=0;i<10;i++)
(*this).v[i]=0;
vector(int d)
int i;
(*this).d=d;
for(i=0;i<d;i++)
(*this).v[i]=0;
int i;
(*this).d=m.d;
for(i=0;i<d;i++)
(*this).v[i]=m.v[i];
}
~vector();
int getD()
return (*this).d;
void setD(int d)
(*this).d=d;
vector operator+=(vector u)
vector rez;
if(u.d==d)
rez.d=d;
for(int i=0;i<d;i++)
rez.v[i]=v[i]+u.v[i];
return rez;
vector operator-=(vector u)
vector rez;
if(u.d==d)
{
rez.d=d;
for(int i=0;i<d;i++)
rez.v[i]=v[i]-u.v[i];
return rez;
void afisare()
for(int i=0;i<(*this).d;i++)
friend istream & operator >> (istream & fl, vector &v);
};
fl >> v.d;
fl >> v.v[i];
return fl;
fl<<endl;
return fl;
if(v1.d!=v2.d)
return 0;
else
for(int i=0;i<v1.d;i++)
if(v1.v[i]!=v2.v[i])
return 0;
return 1;
vector rez;
if(v1.d==v2.d)
rez.d=v1.d;
for(int i=0;i<v1.d;i++)
rez.v[i]=v1.v[i]+v2.v[i];
return rez;
vector rez;
if(v1.d==v2.d)
rez.d=v1.d;
for(int i=0;i<v1.d;i++)
rez.v[i]=v1.v[i]-v2.v[i];
return rez;
double rez=0;
if(v1.d==v2.d)
for(int i=0;i<v1.d;i++)
rez=rez+v1.v[i]*v2.v[i];
return rez;
int main()
vector v1,v2,reza,rezs,v3,v4,vect;
double prodscalar;
v1.afisare();cout<<endl;
v2=vector();v2.afisare();cout<<endl;
cout<<"dati elementele vectorului, incepand cu d-dimensiunea vectorului ";cin>>v2;cout<<endl;
v3=v1+=v2;
v4=v1-=v2;
vect=vector(v1);vect.afisare();cout<<endl;
if(v1==vect)
return 0;
//P8_8
#include <iostream>
#include<math.h>
class Matrice
public:
int n;
float m[10][10];
Matrice(int n)
(*this).n=n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
m[i][j]=0;
Matrice()
(*this).n=10;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
(*this).m[i][j]=0;
~Matrice(){}
(*this).n=sursa.n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
(*this).m[i][j]=sursa.m[i][j];
void citire()
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("m[%d][%d]=",i,j);
scanf("%f",&m[i][j]);
void afisare()
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("%7.2f ",m[i][j]);
printf("\n");
int getDim()
return (*this).n;
}
void setDim(int n)
(*this).n=n;
int i,n;
n=sursa.getDim();
Matrice d=Matrice(sursa);
for(i=0;i<n;i++)
int c=indice2;
while(c<n)
d.m[i][c]=d.m[i][c+1];
c++;
for(i=0;i<n;i++)
int c=indice1;
while(c<n)
d.m[c][i]=d.m[c+1][i];
c++;
}
d.setDim(n-1);
return d;
{ float rez=0;
int p=sursa.getDim();
switch(p){
default:{
for(int i=0;i<p;i++)
Matrice s=sursa.submatrice(sursa,0,i);
rez=rez+sursa.m[0][i]*pow((-1),i)*s.det(s);
return rez;
break;
if(d!=0)
{
(*this).n=sursa.n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
(*this).m[j][i]=sursa.m[i][j];//calculul transpusei
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
(*this).m[i][j]=(1/d)*pow(-1,(i+j))*s.det(s);//calculul inversei
return *this;
int i,j;
Matrice rez;
if(alta.n!=(*this).n)
else
rez.n=(*this).n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
rez.m[i][j]=alta.m[i][j]+(*this).m[i][j];
return rez;
int i,j;
Matrice rez;
if(alta.n!=(*this).n)
else
rez.n=(*this).n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
rez.m[i][j]=(*this).m[i][j]-alta.m[i][j];
return rez;
int i,j,k;
float sum=0;
Matrice rez;
if(alta.n!=(*this).n)
else
{
rez.n=(*this).n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
sum=0;
for(k=0;k<n;k++)
sum=sum+((*this).m[i][k]*alta.m[k][j]);
rez.m[i][j]=sum;
return rez;
friend istream & operator >> (istream & fl, Matrice &m);
};
int i,j;
if(a.n!=b.n) return 0;
else
for(i=0;i<a.n;i++)
for(j=0;j<a.n;j++)
if(a.m[i][j]!=b.m[i][j]) return 0;
return 1;
{
int i,j;
Matrice rez;
if(a.n!=b.n)
else
rez.n=a.n;
for(i=0;i<a.n;i++)
for(j=0;j<b.n;j++)
rez.m[i][j]=a.m[i][j]+b.m[i][j];
return rez;
int i,j;
Matrice rez;
if(a.n!=b.n)
else
rez.n=a.n;
for(i=0;i<a.n;i++)
for(j=0;j<b.n;j++)
rez.m[i][j]=a.m[i][j]-b.m[i][j];
return rez;
}
Matrice operator*(Matrice a,Matrice b)
int i,j,k;
float sum=0;
Matrice rez;
if(a.n!=b.n)
else
rez.n=a.n;
for(i=0;i<a.n;i++)
for(j=0;j<a.n;j++)
sum=0;
for(k=0;k<a.n;k++)
sum=sum+(a.m[i][k]*b.m[k][j]);
rez.m[i][j]=sum;
return rez;
int i,j;
fl >> m.n;
fl >> m.m[i][j];
return fl;
int i, j;
fl<<endl;
return fl;
int main()
Matrice m=Matrice(4);
m.citire();
m.afisare();
Matrice n=Matrice(m);
n.afisare();
reza.afisare();
Matrice rezs=(m-=n);
rezs.afisare();
Matrice rezi=(m*=n);
rezi.afisare();
Matrice trans=trans.inversa(m);
trans.afisare();
Matrice v;
cout<<v;
return 0;
//P_9
#include <iostream>
#define pi 3.14
class Forma
protected:
double x,y;
public:
(*this).x=h;
(*this).y=v;
};
public:
double getX()
return (*this).x;
void setX(double x)
(*this).x=x;
}
double getY()
return (*this).y;
void setY(double y)
(*this).y=y;
double Perimetru()
double x=(*this).x;
double y=(*this).y;
return 2*(x+y);
double Arie()
return (*this).x*(*this).y;
};
protected:
double raza;
public:
(*this).raza=r;
}
void setRaza(double raza)
(*this).raza=raza;
double getRaza()
return (*this).raza;
double Perimetru()
return 2*pi*raza;
double Arie()
return pi*(*this).raza*(*this).raza;
};
int main()
Dreptunghi d=Dreptunghi(10,15);
Cerc c=Cerc(10,15,5);
d.setX(10);
d.setY(20);
return 0; }
//P8_10
#include <iostream>
class Dreptunghi
public:
double lungime,latime;
(*this).lungime=lung;
(*this).latime=lat;
return 2*((*this).lungime+(*this).latime);
return 0;
};
public:
double inaltime;
(*this).inaltime=h;
}
double Arie()
return
2*(*this).lungime*(*this).lungime+2*(*this).inaltime*(*this).latime+2*(*this).inaltime*(*this).lungime;
double Volum()
return (*this).lungime*(*this).latime*(*this).inaltime;
};
int main()
Dreptunghi d=Dreptunghi(20,10);
Paralelipiped p=Paralelipiped(20,10,5);
printf("paralelipipedul cu lungimea %.2f, latime %.2f si inaltimea %.2f are\n aria %.2f si volumul
%.2f\n",p.lungime,p.latime,p.inaltime,p.Arie(),p.Volum());
return 0;