Universit´e Bordeaux 1 Licence Informatique 2006/2007
Initiation `a l’algorithmique
TD 3
Exercice 3.1
On se propose de repr´esenter sous forme alg´ebrique un nombre complexe zen utilisant le type
complexe :
complexe = structure
a: r´eel;
b: r´eel;
finStructure
avec apartie r´eelle d’un nombre complexe, bpartie imaginaire. On a donc z=a+ib.
1. ´
Ecrivez les fonctions d’addition de deux nombres complexes et de multiplication d’un
nombre complexe par un r´eel.
2. ´
Ecrivez les fonctions de calcul du module d’un nombre complexe z(|z|=√a2+b2) et
de l’argument d’un nombre complexe z(arg(z) = arccos a
|z|).
Exercice 3.2
Nous voulons maintenant repr´esenter un nombre complexe sous sa forme exponentielle
z=reiθ , avec rmodule de zet θargument. Proposez un nouveau type complexeExp per-
mettant cette repr´esentation.
1. ´
Ecrivez une fonction de conversion d’un nombre complexe de sa forme alg´ebrique vers
sa forme exponentielle.
2. ´
Ecrivez une fonction de multiplication d’un nombre complexe repr´esent´e sous forme
alg´ebrique avec un autre nombre complexe repr´esent´e sous forme exponentielle. Le
r´esultat sera donn´e sous forme exponentielle.
Exercice 3.3
On cherche `a repr´esenter un point dans l’espace. Proposez une structure de donn´ees point
ad´equate.
1. ´
Ecrivez une fonction ´echangeant la valeur de deux points pass´es en param`etres.
2. ´
Ecrivez une fonction calculant la distance entre deux points.
3. ´
Ecrivez une fonction prenant trois points a,b,cen param`etres et stockant dans cle
point tel que le vecteur −→
oc soit ´egal au vecteur −→
ab.
4. ´
Ecrivez une fonction prenant trois points a,b,cen param`etres et stockant dans cle
point tel que le vecteur −→
oc soit ´egal au vecteur −→
ab si aest plus proche de l’origine que
b,−→
ba sinon.
1