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