/* ____________________ IIG : TP :: complexe _______________________*/ Objectif : disposer d'une calculatrice pour les nombres complexes. ____________ 1) Compléter le fichier 'prog_trou.c' 1.1) Implémentez les fonctions de manipulation qui ne le sont pas encore 1.2) Compléter la fonction principale, dont le but est de tester que les fonctions implémentées en 1.1)... font bien ce qu'on attend d'elles ! ! ! ____________ 2) Calculatrice N'oubliez pas votre objectif : disposer d'une calculatrice ! Il faut alors revoir votre fonction principale. Le fonctionnement de votre calculatrice est le suivant : - vous disposez de 2 variables complexes 'expression' et 'operande', ainsi que d'un opérateur 'operateur', représenté par un caractère ; - les opérations disponibles sont '+', '-', '*', '/', 'M' (pour module), 'C' (pour conjugué) et 'R' (pour réinitialiser) ; - initialement, 'expression == 0', 'operande == 0' et 'operateur == 'R'' ; - l'utilisateur peut à tout moment : - quitter le programme ; - modifier l'opérande (partie réelle ou partie imaginaire de l'opérande) ; - évaluer l'opération en cours : - si la valeur de 'operateur' est parmi {'+', '-', '*', '/'}, alors 'expression' prend pour nouvelle valeur 'expression operateur operande' - si la valeur de 'operateur' esr parmi {'M', 'C'}, alors 'expression' prend pour nouvelle valeur 'operateur(expression)' - si 'operateur == 'R'', 'expression' comme 'operande' prennent la valeur complexe 0. Exemple d'exécution du programme (vous pouvez le tester vous-même, l'exécutable est accessible en ligne) : ___________________________________________________________________________ sophie@sophie-laptop:~/boulot/enseignement/cours/iig/complexe$ ./complexe.exe Etat de la calculette : expression = 0.000000 + 0.000000 i operande = 0.000000 + 0.000000 i operateur = R Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) r Saisir une valeur réelle : 1.2 Etat de la calculette : expression = 0.000000 + 0.000000 i operande = 1.200000 + 0.000000 i operateur = R Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) I Saisir une valeur réelle : -5.9 Etat de la calculette : expression = 0.000000 + 0.000000 i operande = 1.200000 + -5.900000 i operateur = R Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) o Saisir un opérateur parmi 1 (+), 2 (-), 3 (*), 4 (/), 5 (module), 6 (conjugue), 7 ('reset') : 2 Etat de la calculette : expression = 0.000000 + 0.000000 i operande = 1.200000 + -5.900000 i operateur = - Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) e Etat de la calculette : expression = -1.200000 + 5.900000 i operande = 1.200000 + -5.900000 i operateur = - Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) e Etat de la calculette : expression = -2.400000 + 11.800000 i operande = 1.200000 + -5.900000 i operateur = - Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) o Saisir un opérateur parmi 1 (+), 2 (-), 3 (*), 4 (/), 5 (module), 6 (conjugue), 7 ('reset') : 6 Etat de la calculette : expression = -2.400000 + 11.800000 i operande = 1.200000 + -5.900000 i operateur = C Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) e Etat de la calculette : expression = -2.400000 + -11.800000 i operande = 1.200000 + -5.900000 i operateur = C Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) O Saisir un opérateur parmi 1 (+), 2 (-), 3 (*), 4 (/), 5 (module), 6 (conjugue), 7 ('reset') : 7 Etat de la calculette : expression = -2.400000 + -11.800000 i operande = 1.200000 + -5.900000 i operateur = R Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) E Etat de la calculette : expression = 0.000000 + 0.000000 i operande = 0.000000 + 0.000000 i operateur = R Vous souhaitez : - modifier la partie Reelle de l'operande ('r' ou 'R') - modifier la partie Imaginaire de l'operande ('i' ou 'I') - modifier l'Operateur ('o' ou 'O') - Evaluer l'opération en cours ('e' ou 'E') - quitter (tout autre choix) l sophie@sophie-laptop:~/boulot/enseignement/cours/iig/complexe$ ___________________________________________________________________________ ____________ 3) Partage... 3.1) Les nombres complexes peuvent être utilisés dans de multiples contextes. Votre âme généreuse vous incite à faire profiter les autres de vos fonctions sur les complexes. Ou encore, vous exercez vous-mêmes en informatique, en math et en physiques, et ces trois matières vous demandent des calculs sur les complexes, mais dans un contexte différent. Pour rendre votre travail accessible, séparer votre programme en 3 fichiers : - complexe.h (fichier d'entête nombres complexes) - complexe.c (fichier source nombres complexes) - cpx_console.c (programme calculatrice pour nombres complexes) Re-générez un exécutable à partir de ces trois fichiers. 3.2) Extraire de votre fonction 'main' les traitements liés à la gestion des E/S : les écrire sous forme de fonctions. 3.3) Extraire de votre fonction 'main' les structures et traitements liés à la calculatrice. Ecrire une biliothèque 'calculette' correspondante. 3.4) Toute proposition d'amélioration du programme est la bienvenue ! ! !