Ecole Nationale Polytechnique d’Oran Classes Préparatoires Sciences Techniques, Module Informatique1
Fiche TD n°5 (Corrigé): Algorithmique (partie2) Exercice 1 Ecrire un algorithme constituant un tableau, à partir de deux tableaux de même longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de départ. Tableau 1 : 4
8
7
9
1
5
4
6
7
6
5
2
1
3
7
4
Tableau à constituer : 11 14
12
11
2
8
11
10
Tableau 2 :
Algorithme Somme Variables i, N : entier ; entier T1[ 50], T2[50], T3[50] ; Début Ecrire (« Entrer la taille du tableau ») ; Lire(N) ; Pour i ← 0 à N – 1 alors T3[i] ← T1[i] + T2[i] ; FinPour Fin.
Exercice 2 Ecrire un algorithme qui calcule le produit scalaire de deux vecteurs d'entiers U et V (de même dimension). U: 4
8
7
9
1
5
4
6
7
6
5
2
1
3
7
4
V:
Produit scalaire=4*7+8*6+7*5+9*2+1*1+5*3+4*7+6*4=U[0]*V[0]+U[1]*V[1]+…. Algorithme Produit scalaire Variables entier U[50], V[50] ; i, N :entier ; PS :entier ; Début écrire("Entrer la dimension des tableaux (max.50) : ") ; lire(N ) ; 1
écrire(" Premier tableau ") pour i0 à N-1 faire écrire("Elément : ", i) ; lire(U[i]) ; finpour écrire("** Deuxième tableau **") pour i0 à N-1 faire écrire("Elément : ", i) ; lire(V[i]) ; fin pour PS←0 ; pour i0 à N-1 faire PS PS + U[i]*V[i]; Finpour écrire("Produit scalaire =", PS) ; Fin.
Exercice 3 Ecrire un algorithme qui détermine la plus grande et la plus petite valeur dans un tableau d'entiers A. Afficher ensuite la valeur et la position du maximum et du minimum. Si le tableau contient plusieurs maxima ou minima, l’algorithme retiendra la position du premier maximum ou minimum rencontré. Algorithme max_min Variables entier A[50]; /* tableau donné */ N : entier ; /* dimension */ I : entier ; /* indice courant */ MIN : entier ; /* position du minimum */ MAX : entier ; /* position du maximum */ Début Ecrire("Entrer la dimension du tableau (max.50) : ") ; Lire(N) ; pour I0 à N-1 faire Ecrire("Elément ", I) ; Lire(A[I]) ; Finpour /* Affichage du tableau */ pour I0 à N-1 faire Ecrire( A[I]) ; Finpour /* Recherche du maximum et du minimum */ MIN0 ; MAX0 ; pour I1 à N-1 faire si(A[I]>A[MAX]) MAXI ; si(A[I]<A[MIN]) MINI ; Finpour /* Edition du résultat */ Ecrire("Position du minimum :", MIN) ; Ecrire("Position du maximum :", MAX) ; Ecrire("Valeur du minimum :", A[MIN]) ; Ecrire("Valeur du maximum :", A[MAX]) ; Fin. 2
Exercice 4 Ecrire un algorithme qui recherche dans un tableau d'entiers A une valeur VAL entrée au clavier. Afficher la position de VAL si elle se trouve dans le tableau, sinon afficher un message correspondant. La valeur POS qui est utilisée pour mémoriser la position de la valeur dans le tableau, aura la valeur -1 aussi longtemps que VAL n'a pas été trouvée. Comparer successivement les valeurs du tableau avec la valeur donnée. Algorithme Recherche Variables entier A[50] ;/* tableau donné */ VAL : entier ; /* valeur à rechercher */ POS : entier ; /* position de la valeur */ N : entier ; /* dimension */ I : entier ; /* indice courant */ Début /* Saisie des données */ Ecrire("Entrer la dimension du tableau (max.50) : ") ; Lire(N ) ; pour I0 à N-1 faire Ecrire("Elément : ", I) ; Lire(A[I]) ; Finpour Ecrire("Elément à rechercher : ") ; Lire(VAL ) ; pour I0 à N-1 faire Ecrire( A[I]) ; Finpour /* Recherche de la position de la valeur */ POS -1 ; I0 ; Tantque ((I<N)&&(POS=-1)) faire si (A[I]=VAL) alors POSI ; Finsi FinTantque si (POS=-1) Ecrire("La valeur recherchée ne se trouve pas dans le tableau.") ; sinon Ecrire("La valeur=", VAL, "Elle se trouve à la position : ", POS) ; Fin.
Exercice 5 Ecrire un algorithme qui permet de remplir et d’afficher deux tableaux d’entiers T1 et T2 et qui calcule le schtroumpf de ces deux tableaux T1 et T2. Pour calculer le schtroumpf, il faut multiplier chaque élément du tableau 1 par chaque élément du tableau 2, et additionner le tout. Par exemple si l'on a : Tableau 1 : 4
8
7
3
6
12
Tableau 2 :
3
Le Schtroumpf sera : 3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 279 4*3+4*6+8*3+8*6+7*3+7*6+12*3+12*6=279 T1[0]*T2[0]+T1[0]*T2[1]+T1[1]*T2[0]+T1[1]T2[1]…. Algorithme Schtroumpf Variables i, j, N1, N2, S : entier ; entier T1[100], T2[100] ; Début Ecrire(« Entrer la dimension du tableau T1 ») ; Lire(N1) ; Ecrire(« Entrer la dimension du tableau T2 ») ; Lire(N2) ; pour I0 à N-1 faire Ecrire("Elément : ", I) ; Lire(T1[I]) ; Finpour pour I0 à N-1 faire Ecrire("Elément : ", I) ; Lire(T2[I]) ; Finpour pour I0 à N-1 faire Ecrire( T1[I]) ; Finpour pour I0 à N-1 faire Ecrire( T2[I]) ; Finpour S←0; Pour i ← 0 à N1 – 1 faire Pour j ← 0 à N2 – 1 faire S ← S + T1[i] * T2[j] ; FinPour FinPour Ecrire ("Le schtroumpf est : ", S) Fin.
4