Le programme présenté ici définit et teste des opérateurs
élémentaires de calcul en nombres complexes. Un premier module
contiendra la définition des fonctions AdditionComplexe
et ProduitComplexe
, et un second module contiendra un
programme de test appelant ces deux fonctions.
Tout d'abord, la structure de données Complexe
doit être
définie et incluse dans les deux modules, ainsi que les
prototypes des deux fonctions. Nous aurons donc un fichier
que nous nommerons Complexe.h
, dont le contenu est le
suivant :
typedef struct { double Re; double Im; } Complexe; void AdditionComplexe(Complexe C1, Complexe C2, Complexe &Somme); void ProduitComplexe(Complexe C1, Complexe C2, Complexe &Produit);
Le premier module, qui se trouve dans un fichier nommé ComplexOperation.C, se présente comme suit :
#include "Complexe.h" void AdditionComplexe(Complexe C1, Complexe C2, Complexe &Somme) { Somme.Re = C1.Re + C2.Re; Somme.Im = C1.Im + C2.Im; } void ProduitComplexe(Complexe C1, Complexe C2, Complexe &Produit) { Produit.Re = (C1.Re * C2.Re) - (C1.Im * C2.Im); Produit.Im = (C1.Im * C2.Re) + (C2.Im * C1.Re); }
Notez les guillemets utilisés dans la directive
#include "Complexe.h"
, en remplacement des <>
que
vous avez l'habitude d'employer pour les bibliothèques standard.
Ces guillemets indiquent que le fichier à inclure doit se trouver
dans le répertoire courant.
Voici maintenant le module contenant le programme principal qui fait appel aux procédures du module ci-dessus, et qui se trouve dans le fichier nommé TestComplex.C :
#include <iostream.h> #include "Complexe.h" Complexe A, B; void main() { A.Re = 1; A.Im = 2; AdditionComplexe(A, A, B); ProduitComplexe(B, B, A); cout << "Re = " << A.Re << " Im = " << A.Im << "\n"; }
La compilation de fichiers ne devant pas immédiatement donner lieu à
la production d'un exécutable s'effectue avec la directive -c
:
CC ComplexOperation.C -c CC TestComplex.C -c
Le compilateur produira s'il n'y a pas d'erreur des fichiers nommés
dans ce cas ComplexOperation.o
et TestComplex.o
,
non exécutables (o est une abréviation du mot objet,
qui désigne un fichier de code compilé non exécutable).
Vous pourrez alors les lier pour en faire un seul exécutable en lançant l'éditeur de liens de la façon suivante :
CC ComplexOperation.o TestComplex.o -o TestComp -lm
Notez qu'ici, la directive -lm
n'est pas indispensable
(nos programmes d'exemple ne font pas usage de fonctions de la bibliothèque
mathématique). Néanmoins,
c'est dans cette étape d'édition de liens qu'il
faut l'inclure en cas de nécessité.