Cours:TdComplexe : Différence entre versions
Ligne 1 : | Ligne 1 : | ||
− | ==[[Cours:tdComplexe| | + | ==[[Cours:tdComplexe|Travail sur les complexes en C++]]== |
On cherche à écrire un programme permettant le calcul arithmétique de base sur les nombres complexes | On cherche à écrire un programme permettant le calcul arithmétique de base sur les nombres complexes | ||
Ligne 34 : | Ligne 34 : | ||
<source lang=cpp> | <source lang=cpp> | ||
+ | ... | ||
z1.pr=3; | z1.pr=3; | ||
z1.pi=4; | z1.pi=4; | ||
+ | ... | ||
</source> | </source> | ||
+ | |||
+ | On peut bien évidemment faire un calcul en utilisant les champs de la structure : | ||
+ | <source lang=cpp> | ||
+ | ... | ||
+ | // ex d'une rotation de ??? | ||
+ | z2.pr=-z1.pi; | ||
+ | z2.pi=z1.pr; | ||
+ | ... | ||
+ | </source> | ||
+ | |||
=== Exercice=== | === Exercice=== |
Version du 16 novembre 2020 à 11:43
Travail sur les complexes en C++
On cherche à écrire un programme permettant le calcul arithmétique de base sur les nombres complexes
Or, on ne peut stocker un complexe dans une variable car il n’existe pas en langage C de type complexe. En définissant une structure représentant les complexes, on peut alors créer un "nouveau" type de variable pour y stocker des complexes.
Utilisons, par exemple, la représentation cartésienne d’un complexe: partie réelle et partie imaginaire. Le code suivant décrit la structure complexe et déclare trois variables: z1, z2, et r.
struct Complexe {
double pr;
double pi;
};
int main()
{
struct Complexe z1, z2, r;
return 0;
}
Cette structure est donc constituée de deux champs: le champs pr (resp. pi), de type double et qui peut contenir la partie réelle (resp. partie imaginaire) d’un nombre complexe.
L’utilisation de cette structure est simple: si l’on veut stocker 3+4i dans z1, il suffit d’écrire:
...
z1.pr=3;
z1.pi=4;
...
On peut bien évidemment faire un calcul en utilisant les champs de la structure :
...
// ex d'une rotation de ???
z2.pr=-z1.pi;
z2.pi=z1.pr;
...
Exercice
Ecrire le gestionnaire de menu permettant d’afficher et de gérer l’écran suivant:
A R I T H M E T I Q U E C O M P L E X E ------------------------------------------- 1 ... Entrée du 1er nb complexe 2 ... Entrée du 2ième nb complexe A ... Affichage du résultat + ... Somme - ... Soustraction * ... Multiplication C ... Carré U ... Cube
Ce gestionnaire de menu aiguillera le traitement suivant le choix désiré de la façon représentée sur le tableau suivant.
Choix Fonction appelée Rôle ------- ------------------ ---------------------------------- 1 entree1() entre un complexe dans z1 2 entree2() entre un complexe dans z2 A affichage() affiche r + somme() calcule z1+z2, range dans r - diff() calcule z1-z2, range dans r * mult() calcule z1*z2, range dans r C carre() calcule z1*z1, range dans r U cube() calcule z1 au cube, range dans r
On notera que pour simplifier, on déclarera z1, z2, et r en variables globales ( cad connues par toutes les fonctions). Ecrire les différentes fonctions référencées dans le tableau ci-dessus.