# TP 8 – Structures, tableaux dynamiques ## Exercice 1 - Nombres complexes ### Version bis Objectifs : * Aborder la modularité logicielle * Comprendre la notion de fichier source `.c` et fichier d'en-tête (ou _header_) `.h`. * Développer une "librairie" utilisable dans une application ### Architecture logicielle Créez tros fichiers nommés respectivement `application.c`, `Complexe.c` et `Complexe.h`. Le fichier `application.c` ne contient qu'une seule fonction : le `main()`. Son seul rôle est de tester les fonctionnalités apportées par les deux autres fichiers. Le fichier `Complexe.h` ne contient que les **déclarations** du type `Complexe` (sous forme d'une structure, cf ex1) des fonctions liées à ce type. Il ne contient aucune définition de fonction. Le fichier `Complexe.c` contient toutes les définitions des fonctions associées au type `Complexe`. Il n'y a pas de fonction `main()` dans ce fichier. ### Fonctions implémentées Vous devrez fournir dans les fichiers `Complexe.h` et `Complexe.c` les fonctionnalités suivantes : * `afficherComplexe()` : affichage d'un `Complexe` sous la forme `real + i*imag` * `additionnerComplexe()` : retourne la somme de deux `Complexe` * `multiplierComplexe()` : retourne le produit de deux `Complexe` * `module()` : retourne le module d'un `Complexe` * `argument()` : retourne l'argument d'un `Complexe` Dans le fichier `application.c`, vous devez tester chacune des fonctionnalités présentées ci-dessus. Note : il est conseillé de développer une fonction, de la tester et de la valider, avant de passer à la fonction suivante. ### Commande de compilation Pour compiler plusieurs fichiers sources `.c` en un seul exécutable : ```shell gcc application.c Complexe.c -o mon_application_complexe ./mon_application_complexe ```