1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#include<stdio.h>
#include<math.h>
#include<malloc.h>
#include<conio.h>
#define infini 10000000000000000000
#define epsilon 0.0000000000000000001
typedef struct complexe{long double re,img;} complexe;
long double *module(complexe *);
complexe *add_complexe(complexe *,complexe *);
complexe *div_complexe(complexe *,complexe *);
int main(int argc,char *argv[])
{
complexe u[1]={1,0},*z1,*z2,*z3,Z[4]={{5000,0},{5000,0},{epsilon,0},{epsilon,0}};
long double *f;
z1=div_complexe(add_complexe(Z,Z+1),Z+3);
z2=div_complexe(add_complexe(Z,Z+1),Z+4);
z3=add_complexe(z1,z2);
z1=add_complexe(z3,u);
f=module(z1);
printf("%f \n %f \n %f\n",z1->re,z1->img,1/(*f));
printf("%f",sqrt(pow(((4/epsilon)+1),2)));
getch();
}
long double *module(complexe *z)
{
long double *result=(long double *)malloc(sizeof(long double));
*result=sqrt(pow(z->re,2)+pow(z->img,2));
return result;
}
complexe *add_complexe(complexe *z1,complexe *z2)
{
complexe *result=(complexe *)malloc(sizeof(complexe));
result->re=z1->re+z2->re;
result->img=z1->img+z2->img;
return result;
}
complexe *div_complexe(complexe *z1,complexe *z2)
{
complexe *result=(complexe *)malloc(sizeof(complexe));
result->re=((z1->re)*(z2->re)+(z1->img*z2->img))/pow((*module(z2)),2);
result->img=((z1->img)*(z2->re)-(z2->img*z1->re))/pow((*module(z2)),2);
return result;
} |
Partager