841060333 28/05/2017 11:26:00
A. Bolopion I.E.G.
1
D11: Corrigés des exercices d'algorithmique ( Sujet dans D10_Algo1_Suj.rtf )
1) Algorithme produitScalaire( nelem,t1,t2, scal )
Calcule le produit scalaire de deux vecteurs
Interface d'entrée:
nelem : entier, taille des deux vecteurs
t1 , t2 : tableaux de réels, contenant les valeurs des
composantes des vecteurs
Interface de sortie:
scal : réel, produit scalaire des deux vecteurs
Variables locales: i : entier, compteur de boucles
Début
scal <-- 0.0
Pour i variant de 0 à (nelem-1) répéter
| scal <-- scal + t1[ i ] * t2[ i ]
Fin pour
Fin de l'algorithme
2) Fonction entière
cosinusVecteurs (taille,v1,v2,eps, valcos)
Calcule le cosinus de l'angle de deux vecteurs.
Interface d'entrée:
taille : entier, nombre de composantes des vecteurs
v1 , v2 : tableaux de réels, contenant les valeurs des
composantes des vecteurs
eps : réel, précision du zéro (valeur en dessous
de laquelle on pourra considérer le carre de la
norme d'un vecteur comme nulle).
Interface de sortie:
valcos : réel, cosinus de l'angle de v1 et v2. Cette
valeur n'est définie que lorsque la fonction
retourne une valeur nulle.
Valeur de retour : un entier, valant
0 si le calcul a été fait, et
1 sinon (une des normes a un carre
inférieur ou égal à eps).
Variables locales:
n1 , n2 : réels, carrés des normes de v1 et v2
s : réel, produit scalaire de v1 et v2
ier : entier, indicateur d'erreur (norme "nulle")
Nb : On suppose disponible la fonction racineCarrée d'un
réel.
Début
produitScalaire (taille,v1,v1, n1)
Si ( n1 <= eps ) alors
| ier <-- 1
Sinon
| produitScalaire (taille,v2,v2, n2)
| Si ( n2 <= eps ) alors
| | ier <-- 1
| Sinon
| | produitScalaire (taille,v1,v2, s)
| | valcos <-- s / racineCarrée( n1 ) /
racineCarrée( n2 )
| | ier <-- 0
| Fin Si
Fin Si
Retourner la valeur de ier
Fin de l'Algorithme
3) Programme de test
Ecrire un programme principal permettant de vérifier le bon
fonctionnement des algorithmes précédents.
Variables locales
nt : constante entière valant 2
v1 , v2 : tableaux de nt réels
n1 , n2 : réels, carrés des normes des vecteurs v1 et
v2
cos1 : réel, cosinus de l'angle de ces deux
vecteurs
Début
v1[ 0 ] = 1.0
v1[ 1 ] = 0.0
v2[ 0 ] = 1.0
v2[ 1 ] = 1.0
841060333 28/05/2017 11:26:00
A. Bolopion I.E.G.
2
produitScalaire (nt,v1,v1, n1)
produitScalaire (nt,v2,v2, n2)
Ecrire(à l'écran) "Norme de v1 : ", racineCarrée( n1 )
Ecrire(à l'écran) "Norme de v2 : ", racineCarrée( n2 )
Si ( cosinusVecteurs (nt,v1,v2,1.0e-3, cos1) = 0 )
alors
| Ecrire(à l'écran) "Cosinus de leur angle : " , cos1
Sinon
| Ecrire (à l'écran) "Cosinus pas défini"
Fin Si
v1[ 0 ] = 0.0
Si ( cosinusVecteurs (nt,v1,v2,1.0e-3, cos1) = 0 )
alors
| Ecrire(à l'écran) "Cosinus de leur angle : " , cos1
Sinon
| Ecrire (à l'écran) "Cosinus pas défini"
Fin Si
Fin de l'Algorithme
4) Utilisation d’un algorithme fourni:
En utilisant l’algorithme lireVecteur spécifié ci-dessous, écrire
un programme principal qui calcule et affiche à l’écran le cosinus
de deux vecteurs de taille au plus égale à 4 éléments.
Algorithme 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
Interface de sortie:
a : tableau de réels, contenant les valeurs lues
Variables locales: i : entier, compteur de boucles
Début
Ecrire (à l'écran) "Entree du tableau"
Pour i variant de 0 à (n-1) répéter
| Ecrire (à l'écran) "Composante N0. " , (i+1)
| Lire (au clavier) a[ i ]
Fin Pour
Fin de l'Algorithme
Programme principal
Variables locales
nt : constante entière valant 4
v1 , v2 : tableaux de nt réels
n1 , n2 : réels, carrés des normes des vecteurs v1 et v2
cos1 : réel, cosinus de l'angle de ces deux vecteurs
Début
lireVecteur (nt, v1)
lireVecteur (nt, v2)
produitScalaire (nt,v1,v1, n1)
produitScalaire (nt,v2,v2, n2)
Ecrire(à l'écran) "Norme de v1 : ", racineCarrée( n1 )
Ecrire(à l'écran) "Norme de v2 : ", racineCarrée( n2 )
Si ( cosinusVecteurs (nt,v1,v2,1.0e-3, cos1) = 0 )
alors
| Ecrire(à l'écran) "Cosinus de leur angle : " , cos1
Sinon
| Ecrire (à l'écran) "Cosinus pas défini"
Fin Si
Fin de l'Algorithme
5) Algorithme transposer (taille, a )
Calcule la transposée de la matrice carrée a .
Interface d'entrée:
taille : (entier) taille de la matrice carrée
Interface d'entrée-sortie:
a : tableau de réels
en entrée: contient les éléments de la matrice donnée
en sortie: contient les éléments de la matrice transposée
Variables locales
i , j : entiers, indices de boucles.
aux : réel auxiliaire, utilisé pour l'échange des
termes de la matrice.
Début
Pour i variant de 0 à ( taille - 1 ) répéter
| Pour j variant de 0 à ( i-1 ) répéter
| | aux <-- a[ i , j ]
| | a[ i , j ] <-- a[ j , i ]
| | a[ j , i ] <-- aux
| Fin Pour
Fin Pour
Fin de l'algorithme
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !