Vous êtes sur la page 1sur 6

Ecole prparatoire en Sciences & Techniques dOran

Module : Algorithmique & Programmation

Intitul : Informatique
1re anne, Semestre 2, 2011/2012

Fiche TD 6 : Tableaux & matrices


Fonctions & procedures
Exercice1 : Ecrire un algorithme en utilisant une fonction pour sommer des lments d'un
tableau d'entiers
Correction
Algorithme Exo1
Type : tab=tableau [1..50] de entier
Variable T :tab ; Som, n,i : entier ;
fonction somme( T:tab, max_indice: entier):entier;
variable s:entier;
dbut
s0;
pour i de 1 max_indice faire
ss+T[i]
finpour
retourner(s)
fin
Debut
Lire (n);
pour i de 1 n faire
lire (T[i]) ;
fin pour
somsomme(T,n) ;
ecrire (som) ;
Fin

Page 1 sur 6

Ecole prparatoire en Sciences & Techniques dOran


Module : Algorithmique & Programmation

Intitul : Informatique
1re anne, Semestre 2, 2011/2012

Exercice2 : Ecrire deux fonctions : une de calcul de moyenne dun tableau et lautre pour
extraire le minimum des lments dans un tableau.
Correction

Fin
Exercice3 Ecrire une fonction qui calcule le nombre doccurrences dun lment donn dans
un tableau.
Correction

Page 2 sur 6

Ecole prparatoire en Sciences & Techniques dOran


Module : Algorithmique & Programmation

Intitul : Informatique
1re anne, Semestre 2, 2011/2012

Exercice 4 : Ecrire lalgorithme qui saisit deux matrices A et B (2,3) par des nombres rels,
calcule la somme suivante C = 2*A-3*B puis affiche C.
Correction
Algorithme Somme_Matrices
Type M=tableau [1..2,1..3] de entier
Variables : A, B, C : M ; i, j en entier
Procdure lecture (S X :M)
Dbut
Pour i de 1 2 Faire
Pour j de 1 3 Faire
Lire X(i,j)
Fin Pour
Fin Pour
Fin
Procedure calcul (E A,B:M, S C :M)
Debut
Pour i de 1 2 Faire
Pour j de1 3 Faire
C[i, j]2*A[i,j]-3*B[i,j]
Ecrire ("C[", i, j, "]"=C[i,j])
Fin Pour
Fin Pour
Fin
Debut
Lecture(A)
Lecture(B)
Calcul(A,B,C)
fin
Exercice 5 : Ecrire sous forme dune procdure la somme de deux matrices relles
Correction
Procedure sommeMatrice(E :M1,M2:mat,E n, m : entier, S M :mat)
Variable i,j:entier;
dbut
pour i de 1 n faire
pour j de 1 m faire
M[i][j]M1[i][j]+M2[i][j];
finpour
finpour
fin

Page 3 sur 6

Ecole prparatoire en Sciences & Techniques dOran

Intitul : Informatique
1re anne, Semestre 2, 2011/2012

Module : Algorithmique & Programmation

Exercice 6 :Soit une matrice carre. Ecrire lalgorithme qui permet de faire la somme de la
diagonale principale de cette matrice exp :

3 2 1
2 5 0

10 6 4

la diagonale principale est : 3+5+4

Correction
Algorithme somme_diagonale
Type mat=tableau [1..50,1..50] de entier
Variables : i, j,n en entier ; L :mat ;
Procedure lecture (E n:entier, S L :mat)
Debut
Pour i de 1 n Faire
Pour j de 1 n Faire
Ecrire ("L [", i, j, "]")
Lire (L[i,j])
Fin Pour
Fin
Fonction somme (n :entier, A : mat) :entier
Variable D : entier
Debut
D0
Pour i de 1 n Faire
DD+A[i,i]
Fin Pour
Retourner D
Fin
Dbut
Lire (n)
Lecture (n,L)
Ecrire (" la somme de la diagonale de la matrice est ", somme (n,L)) ;
Fin

Page 4 sur 6

Ecole prparatoire en Sciences & Techniques dOran


Module : Algorithmique & Programmation

Intitul : Informatique
1re anne, Semestre 2, 2011/2012

Exercice 7 : Ecrire un algorithme qui permet de :


- Saisir une matrice T(2,4) dentiers.
- Calculer P le nombre des lments pairs.
- Calculer R le nombre des lments impairs.
- Afficher P et R.
Correction
Algorithme pairs_impairs
Type mat=tableau [1..2,1..4] de entier
Variable Tableau : M en mat
i, j, P, R en entier
Procedure lecture (S M :mat)
Dbut
Pour i de 1 2 Faire
Pour j de 1 4 Faire
Ecrire ("M [", i, j, "]")
Lire M(i,j)
Fin Pour
Fin Pour
Fin
Procedure calcul (E M :mat, S P,R :entier)
Debut
P0 ; R0 ;
Pour i de 1 2 Faire
Pour j de 1 4 Faire
Si (M[i,j]mod2 =0) Alors PP+1
Sinon RR+1
Fin Si
Fin Pour
Fin Pour
Fin
Debut
Lecture (M)
Calcul (E,P,R)
Ecrire (" le nombre d lments pairs P = ", P)
Ecrire (" le nombre d lments pairs R = ", R)
fin

Page 5 sur 6

Ecole prparatoire en Sciences & Techniques dOran


Module : Algorithmique & Programmation

Intitul : Informatique
1re anne, Semestre 2, 2011/2012

Exercice 8
Soit une matrice M de 200 lignes et 100 colonnes valeurs entires . donner une fonction qui
dtermine la ligne dont la somme ddes elements est maximale
Correction
Fonction SommeLigne (M :Mat) : entier
variable som,lignemax, max, i, j :entier
debut
som0 ;
Pour j de 1 100 Faire
som som+M[1,j]
ffaire
maxsom ;
lignemax1 ;
Pour i de 2 200 Faire
som 0
Pour j de 1 100 Faire
som som+M[i,j]
ffaire
si som>max alors
max som ;
lignemax i
fsi
ffaire
retourner (lignemax)
Fin

Page 6 sur 6