suivant: À propos de ce
Université Bordeaux 1 Licence Informatique 2006/2007
Initiation à l'algorithmique
TD 3
Exercice 3.1
On se propose de représenter sous forme algébrique un nombre complexe
en utilisant le type :
complexe = structure
a: réel;
b: réel;
finStructure
avec partie réelle d'un nombre complexe, partie
imaginaire. On a donc .
- Écrivez les fonctions d'addition de deux nombres
complexes et de multiplication d'un nombre complexe par
un réel.
- Écrivez les fonctions de calcul du module d'un
nombre complexe (
) et de l' argument d'un nombre complexe (
).
Exercice 3.2
Nous voulons maintenant représenter un nombre complexe sous sa forme
exponentielle
, avec module de et
argument. Proposez un nouveau type permettant
cette représentation.
- Écrivez une fonction de conversion d'un nombre complexe de sa
forme algébrique vers sa forme exponentielle.
- Écrivez une fonction de multiplication d'un nombre complexe
représenté sous forme algébrique avec un autre nombre complexe
représenté sous forme exponentielle. Le résultat sera donné sous
forme exponentielle.
Exercice 3.3
On cherche à représenter un point dans l'espace. Proposez une
structure de données adéquate.
- Écrivez une fonction échangeant la valeur de deux points passés
en paramètres.
- Écrivez une fonction calculant la distance entre deux points.
- Écrivez une fonction prenant trois points , , en
paramètres et stockant dans le point tel que le vecteur
soit égal au vecteur
.
- Écrivez une fonction prenant trois points , , en
paramètres et stockant dans le point tel que le vecteur
soit égal au vecteur
si
est plus proche de l'origine que ,
sinon.
Exercice 3.4
On s'intéresse ici à des segments de droites en 3D. Ils ne prennent
pas en compte la direction, et sont définis par leur deux points
extrémités. Proposez un type pour représenter un segment de droite.
- Écrivez une fonction prenant en paramètre deux segments de
droite qui teste si les deux segments sont égaux ou non.
- Écrivez une fonction renvoyant le segment de droite le plus
court parmi les deux segments en paramètres.
Exercice 3.5
Soit la fonction suivante :
fonction deuxPiecesFace (val n:entier):booléen;
var i: entier;
var f, g: lancé;
début
pour i allant de 1 à n faire
f = résultat_lancer_pièce();
g = résultat_lancer_pièce();
si (f == face et g == face) alors
retourner(VRAI)
finsi
finpour
retourner(FAUX)
fin
finFonction
Déterminez sa complexité dans le pire des cas et sa complexité dans le
meilleur des cas.
suivant: À propos de ce
Maylis Delest
2007-01-23