841061064 28/05/2017 13:22:00
Exercices de programmation structurée en méta-langage D10
1) Ecrire un algorithme paramétré qui calcule le produit scalaire de
deux vecteurs v1 et v2 (un vecteur est traité comme un tableau de
réels à une dimension égale à n). Les dimensions des vecteurs seront
supposées égales (le programme ne fera aucun contrôle).
Rappel: le produit scalaire de deux vecteurs de même dimension n se
calcule par:
v1.v2 = Somme, pour i variant de 0 à n-1, du produit (v1[i] * v2[i])
2) En utilisant cet algorithme, écrire un algorithme paramétré (ou une
fonction) qui calcule le cosinus de l'angle de deux vecteurs.
NB: cet algorithme devra tenir compte de la possibilité que la norme
d'un des vecteurs soit voisine de zéro.
Rappels: cosinus = ( v1 . v2 ) / ( || v1 || * || v2 || )
la norme de v étant: || v || = racine_carrée ( v . v )
On suppose connue la fonction racine_carrée d'un réel.
3) Ecrire un programme principal permettant de vérifier le bon
fonctionnement des algorithmes précédents.
4) On suppose connu l'algorithme suivant:
lireVecteur(n, a)
Lecture au clavier de nombres réels, et rangement dans le tableau a
Interface d'entrée:
n : ( entier ) nombre de valeurs à lire
Paramètre pour l’interface de sortie:
a : tableau de réels. Ce tableau est “ rempli ” par la fonction avec
les valeurs qu’elle lit au clavier. C’est le programme appelant
qui doit dimensionner ce tableau.
En utilisant ce qui précède, écrire l'algorithme d'un programme
principal qui:
- lise au clavier les composantes de deux vecteurs de dimension 4
- calcule leurs normes, et leur cosinus
- écrive à l'écran ces trois nombres
5) Ecrire un algorithme paramétré permettant d'obtenir la transposée
d'une matrices carrée; la matrice devra être traitée comme un
paramètre d'entrée-sortie.
NB: cet algorithme ne devra pas comporter de variable locale de type
tableau