#Complex Number exercice (C TRACK)

9 messages · Page 1 of 1 (latest)

bright juniper
#

Hello someone can help me for solving the exercise please

#
#include <stdio.h>

#include <math.h>

typedef struct {
   double a;
   double b;
} complex_t;

complex_t c_add(complex_t z1, complex_t z2);
complex_t c_sub(complex_t a, complex_t b);
complex_t c_mul(complex_t a, complex_t b);
complex_t c_div(complex_t a, complex_t b);
double c_abs(complex_t x);
complex_t c_conjugate(complex_t x);
double c_real(complex_t x);
double c_imag(complex_t x);
complex_t c_exp(complex_t x);

complex_t c_add(complex_t z1, complex_t z2)
{
   complex_t result;
   result.a = z1.a + z2.a;
   result.b = z1.b + z2.b;

   return result;
}

complex_t c_sub(complex_t z1, complex_t z2)
{
   complex_t result;
   result.a = z1.a - z2.a;
   result.b = z1.b - z2.b;

   return result;
}

//Il faut utiliser la formule de multiplicaton (a+ib)(c+id)=(ac−bd)+i(ad+bc)
complex_t c_mul(complex_t z1, complex_t z2)
{
   complex_t result;
   result.a = (z1.a * z2.a) - (z1.b * z2.b);
   result.b =  (z1.a * z2.b) + (z1.b * z2.a);
    
   return result;
}

//Y'a aussi une formule pour la division 
complex_t c_div(complex_t z1, complex_t z2)
{
   complex_t result;
   double denom = z2.a * z2.a + z2.b * z2.b;

   result.a = (z1.a * z2.a) + (z1.b * z2.b) / denom;
   result.b = (z1.b * z2.a) - (z1.a * z2.b) / denom;

   return result;
}

double c_abs(complex_t x)
{
   return sqrt(x.a*x.a + x.b*x.b);
}

complex_t c_conjugate(complex_t x)
{
   complex_t result;
   result.a = x.a;
   result.b = x.b;
   
   return result;
}

double c_real(complex_t x)
{
   return x.a;
}

double c_imag(complex_t x)
{
   return x.b;
}

complex_t c_exp(complex_t x)
{
   complex_t result;

   result.a = exp(x.a) * cos(x.b);
   result.b = exp(x.a) * sin(x.b);

   return result;
}
#

This is all the functions i did

hazy cove
#

Do the tests pass? If not, what fails?

bright juniper
#

Maybe it's because I changed the default variable names?

glacial patio
#

The tests expect a struct called complex_t with at least two fields called real and imag. No test would pass if you have anything else

bright juniper
#

Lol i have to change everything