Programmation de complexe sous C
Bonsoir mes amis, je suis entrein de faire un exercice sur les complexe pour me preparer pour un exam et j'aimerais bien savoir votre avis des mon programme j'ai des question que j'ai du mal à faire.
1) Structure complexe.
2) Somme de complexe.
3) multiplication complexe.
Code:
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
|
typedef struct complexe
{
int Partie_Re;
int Partie_Im;
}complexe;
complexe somme(complexe *z1, complexe *z2)
{
int somme_Re;
int somme_Im;
complexe *somme_Total;
somme_Re = z1->Partie_Re + z2->Partie_Re;
somme_Im = z1->Partie_Im + z2->Partie_Im;
somme_Total-> Partie_Re = somme_Re;
somme_Total->Partie_Im = somme_Im;
return somme_Total;
}
complexe multiplication( complexe *z1, complexe *z2)
{
int multi_Re, multi_Im;
complexe *multi_Total;
multi_Re = (z1->Partie_Re * z2->Partie_Re) + (z1->Partie_Im * z2->Partie_Im);
multi_Im = (z1->Partie_Re * z2->Partie_Im) + (z1->Partie_Im * z2->Partie_Re);
multi_Total->Partie_Re = multi_Re;
multi_Total->Partie_Im = multi_Im;
return multi_Total;
} |
Problème découlant de la situation précédente
Bonjour à tous !
Pour un calcul assez bourrin, j'ai besoin d'utiliser les complexes. A ce que j'ai compris, en C, on ne peut pas y couper: il faut les implémenter. N'ayant pas trouver de bout de code tout prêt tout chaud, je me suis rabattu sur le fils de discussion actuel. En reprenant les bouts de codes et les corrections de chacun, j'ai fait ça:
Code:
1 2 3 4 5 6 7 8 9 10
|
#include "Test.h"
Complex somme(Complex *z1, Complex *z2)
{
Complex *somme_Total;
somme_Total->reel = z1->reel + z2->reel;
somme_Total->imag = z1->imag + z2->imag;
return *somme_Total;
} |
Dans test j'ai mis :
Code:
1 2 3 4 5 6 7
|
typedef struct Complex Complex;
struct Complex {
double reel;
double imag;
};
Complex somme(Complex*, Complex*); |
Et dans ma main, qui fait d'autres choses mais qui ne plantait pas avant que j'introduise au tout début de la main un test de la fonction somme (donc c'est à cause de somme que le programme plante je pense), j'ai:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "Test.h"
int main()
{
printf("Programme de calcul des valeurs a fournir a l Eprom\n");
// Test de la structure Complex
Complex za = {3,4};
Complex zb = {6,-4};
printf("za.reel: %f et za.imag: %f", za.reel, za.imag);
somme(&za,&zb); |
Voilà voilou, NB: le printf se fait sans problème.
Bon été à tous !