Professional Documents
Culture Documents
#include
#include
#include
<stdio.h>
<iostream.h>
<stdlib.h>
<math.h>
class complex
{
public:
float a,b,modul,modulul,unghic,unghis;
int semnc,semns;
complex()
{
a=0;
b=0;
semnc=0;
semns=0;
}
complex(float x,float y)
{
a=x;
b=y;
semnc=0;
semns=0;
}
complex(float mo,float unc,float uns,int sem1,int sem2)
{
modulul=mo;
unghic=unc;
unghis=uns;
semnc=sem1;
semns=sem2;
}
void convert();
complex operator + (complex);
complex operator - (complex);
complex operator * (complex);
complex operator / (complex);
void afisare();
void calc_mod()
{
if(semnc==0)
modul=(float)sqrt(a*a+b*b);
else
{
convert();
modul=(float)sqrt(a*a+b*b);
convert();
}
}
friend FILE * operator >> (FILE *fis1,complex &c)
{
float *ex;
if(c.semnc==0)
{
fread(ex,sizeof(c.a),1,fis1);
c.a=*ex;
fread(ex,sizeof(c.b),1,fis1);
c.b=*ex;
}
else
{
c.convert();
fread(ex,sizeof(c.a),1,fis1);
c.a=*ex;
fread(ex,sizeof(c.b),1,fis1);
c.b=*ex;
c.convert();
}
return fis1;
}
friend FILE * operator << (FILE *fis1,complex c)
{
float *ex;
if(c.semnc==0)
{
ex=&c.a;
fwrite(ex,sizeof(c.a),1,fis1);
ex=&c.b;
fwrite(ex,sizeof(c.b),1,fis1);
}
else
{
c.convert();
ex=&c.a;
fwrite(ex,sizeof(c.a),1,fis1);
ex=&c.b;
fwrite(ex,sizeof(c.b),1,fis1);
c.convert();
}
return fis1;
}
complex conjug()
{
complex t;
if(semnc==0)
{
t.a=a;
t.b=-b;
}
else
{
convert();
t.a=a;
t.b=-b;
convert();
}
return t;
}
};
void complex::convert()
{
}
}
void main()
{
complex z(1,1),t(0,2.5),u;
FILE *fisier;
z.afisare();
t.afisare();
z=z+t;
z.afisare();
u=t;
u.afisare();
fisier=fopen("test","wb");
fisier << u << z;
fclose(fisier);
z.afisare();
fisier=fopen("test","rb");
fisier >> z >> u;
fclose(fisier);
z.afisare();
u.afisare();
z=z.conjug();
z.afisare();
z.calc_mod();
printf("\n%.1f",z.modul);
z.convert();
z.afisare();
t.convert();
t.afisare();
z=z+t;
z.afisare();
z.convert();
z.afisare();
}