Vous êtes sur la page 1sur 3

D11: Corrigés des exercices d'algorithmique ( Sujet dans D10_Algo1_Suj.

rtf )

1) Algorithme produitScalaire( nelem,t1,t2, scal ) Variables locales:


n1 , n2 : réels, carrés des normes de v1 et v2
Calcule le produit scalaire de deux vecteurs s : réel, produit scalaire de v1 et v2
ier : entier, indicateur d'erreur (norme "nulle")
Interface d'entrée:
nelem : entier, taille des deux vecteurs Nb : On suppose disponible la fonction racineCarrée d'un
t1 , t2 : tableaux de réels, contenant les valeurs des réel.
composantes des vecteurs
Début
Interface de sortie: produitScalaire (taille,v1,v1, n1)
scal : réel, produit scalaire des deux vecteurs Si ( n1 <= eps ) alors
| ier <-- 1
Variables locales: i : entier, compteur de boucles Sinon
| produitScalaire (taille,v2,v2, n2)
Début | Si ( n2 <= eps ) alors
scal <-- 0.0 | | ier <-- 1
Pour i variant de 0 à (nelem-1) répéter | Sinon
| scal <-- scal + t1[ i ] * t2[ i ] | | produitScalaire (taille,v1,v2, s)
Fin pour | | valcos <-- s / racineCarrée( n1 ) /
Fin de l'algorithme
racineCarrée( n2 )
2) Fonction entière | | ier <-- 0
cosinusVecteurs (taille,v1,v2,eps, valcos) | Fin Si
Fin Si
Calcule le cosinus de l'angle de deux vecteurs. Retourner la valeur de ier
Fin de l'Algorithme
Interface d'entrée:
taille : entier, nombre de composantes des vecteurs 3) Programme de test
v1 , v2 : tableaux de réels, contenant les valeurs des
composantes des vecteurs Ecrire un programme principal permettant de vérifier le bon
eps : réel, précision du zéro (valeur en dessous fonctionnement des algorithmes précédents.
de laquelle on pourra considérer le carre de la
norme d'un vecteur comme nulle). Variables locales
nt : constante entière valant 2
Interface de sortie: v1 , v2 : tableaux de nt réels
valcos : réel, cosinus de l'angle de v1 et v2. Cette n1 , n2 : réels, carrés des normes des vecteurs v1 et
valeur n'est définie que lorsque la fonction v2
retourne une valeur nulle. cos1 : réel, cosinus de l'angle de ces deux
vecteurs
Valeur de retour : un entier, valant Début
0 si le calcul a été fait, et v1[ 0 ] = 1.0
1 sinon (une des normes a un carre v1[ 1 ] = 0.0
inférieur ou égal à eps). v2[ 0 ] = 1.0

734229210.rtf JJ/九/A 金 〇一:一〇:〇〇 午後 1


A. Bolopion I.E.G.
v2[ 1 ] = 1.0 Fin de l'Algorithme
produitScalaire (nt,v1,v1, n1) Programme principal
produitScalaire (nt,v2,v2, n2)
Ecrire(à l'écran) "Norme de v1 : ", racineCarrée( n1 ) Variables locales
Ecrire(à l'écran) "Norme de v2 : ", racineCarrée( n2 ) nt : constante entière valant 4
Si ( cosinusVecteurs (nt,v1,v2,1.0e-3, cos1) = 0 ) v1 , v2 : tableaux de nt réels
alors n1 , n2 : réels, carrés des normes des vecteurs v1 et v2
| Ecrire(à l'écran) "Cosinus de leur angle : " , cos1 cos1 : réel, cosinus de l'angle de ces deux vecteurs
Sinon Début
| Ecrire (à l'écran) "Cosinus pas défini" lireVecteur (nt, v1)
Fin Si lireVecteur (nt, v2)
produitScalaire (nt,v1,v1, n1)
v1[ 0 ] = 0.0 produitScalaire (nt,v2,v2, n2)
Si ( cosinusVecteurs (nt,v1,v2,1.0e-3, cos1) = 0 ) Ecrire(à l'écran) "Norme de v1 : ", racineCarrée( n1 )
alors Ecrire(à l'écran) "Norme de v2 : ", racineCarrée( n2 )
| Ecrire(à l'écran) "Cosinus de leur angle : " , cos1 Si ( cosinusVecteurs (nt,v1,v2,1.0e-3, cos1) = 0 )
Sinon alors
| Ecrire (à l'écran) "Cosinus pas défini" | Ecrire(à l'écran) "Cosinus de leur angle : " , cos1
Fin Si Sinon
Fin de l'Algorithme | Ecrire (à l'écran) "Cosinus pas défini"
Fin Si
4) Utilisation d’un algorithme fourni: Fin de l'Algorithme

En utilisant l’algorithme lireVecteur spécifié ci-dessous, 5) Algorithme transposer (taille, a )


écrire un programme principal qui calcule et affiche à l’écran
le cosinus de deux vecteurs de taille au plus égale à 4 Calcule la transposée de la matrice carrée a .
éléments.
Interface d'entrée:
Algorithme lireVecteur (n, a) taille : (entier) taille de la matrice carrée

Lecture au clavier de nombres réels, et rangement dans le Interface d'entrée-sortie:


tableau a a : tableau de réels
en entrée: contient les éléments de la matrice donnée
Interface d'entrée: en sortie: contient les éléments de la matrice
n : ( entier ) nombre de valeurs à lire transposée

Interface de sortie: Variables locales


a : tableau de réels, contenant les valeurs lues i , j : entiers, indices de boucles.
aux : réel auxiliaire, utilisé pour l'échange des
Variables locales: i : entier, compteur de boucles termes de la matrice.
Début
Début Pour i variant de 0 à ( taille - 1 ) répéter
Ecrire (à l'écran) "Entree du tableau" | Pour j variant de 0 à ( i-1 ) répéter
Pour i variant de 0 à (n-1) répéter | | aux <-- a[ i , j ]
| Ecrire (à l'écran) "Composante N0. " , (i+1) | | a[ i , j ] <-- a[ j , i ]
| Lire (au clavier) a[ i ] | | a[ j , i ] <-- aux
Fin Pour | Fin Pour
734229210.rtf JJ/九/A 金 〇一:一〇:〇〇 午後 2
A. Bolopion I.E.G.
Fin Pour
Fin de l'algorithme

734229210.rtf JJ/九/A 金 〇一:一〇:〇〇 午後 3


A. Bolopion I.E.G.

Vous aimerez peut-être aussi