Vous êtes sur la page 1sur 6

Ecole préparatoire en Sciences & Techniques d’Oran Intitulé : Informatique

Module : Algorithmique & Programmation 1ère année, Semestre 2, 2011/2012

Fiche TD 6 : Tableaux & matrices


Fonctions & procedures

Exercice1 : Ecrire un algorithme en utilisant une fonction pour sommer des éléments 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;
début
s0;
pour i de 1 à max_indice faire
ss+T[i]
finpour
retourner(s)
fin
Debut
Lire (n);
pour i de 1 à n faire
lire (T[i]) ;
fin pour
somsomme(T,n) ;
ecrire (som) ;
Fin

Page 1 sur 6
Ecole préparatoire en Sciences & Techniques d’Oran Intitulé : Informatique
Module : Algorithmique & Programmation 1ère année, Semestre 2, 2011/2012

Exercice2 : Ecrire deux fonctions : une de calcul de moyenne d’un tableau et l’autre pour
extraire le minimum des éléments dans un tableau.
Correction

Fin

Exercice3 Ecrire une fonction qui calcule le nombre d’occurrences d’un élément donné dans
un tableau.

Correction

Page 2 sur 6
Ecole préparatoire en Sciences & Techniques d’Oran Intitulé : Informatique
Module : Algorithmique & Programmation 1ère année, Semestre 2, 2011/2012

Exercice 4 : Ecrire l’algorithme qui saisit deux matrices A et B (2,3) par des nombres réels,
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

Procédure lecture (S X :M)


Début
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 d’une procédure la somme de deux matrices réelles
Correction

Procedure sommeMatrice(E :M1,M2:mat,E n, m : entier, S M :mat)


Variable i,j:entier;
début
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 préparatoire en Sciences & Techniques d’Oran Intitulé : Informatique
Module : Algorithmique & Programmation 1ère année, Semestre 2, 2011/2012

Exercice 6 :Soit une matrice carrée. Ecrire l’algorithme qui permet de faire la somme de la
 3 2 1
diagonale principale de cette matrice exp :  2 5 0 la diagonale principale est : 3+5+4
 
 10 6 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
D0
Pour i de 1 à n Faire
DD+A[i,i]
Fin Pour
Retourner D
Fin

Début
Lire (n)
Lecture (n,L)
Ecrire (" la somme de la diagonale de la matrice est ", somme (n,L)) ;
Fin

Page 4 sur 6
Ecole préparatoire en Sciences & Techniques d’Oran Intitulé : Informatique
Module : Algorithmique & Programmation 1ère année, Semestre 2, 2011/2012

Exercice 7 : Ecrire un algorithme qui permet de :


- Saisir une matrice T(2,4) d’entiers.
- Calculer P le nombre des éléments pairs.
- Calculer R le nombre des éléments 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)


Début
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
P0 ; R0 ;
Pour i de 1 à 2 Faire
Pour j de 1 à 4 Faire
Si (M[i,j]mod2 =0) Alors PP+1
Sinon RR+1
Fin Si
Fin Pour
Fin Pour
Fin
Debut
Lecture (M)
Calcul (E,P,R)
Ecrire (" le nombre d éléments pairs P = ", P)
Ecrire (" le nombre d éléments pairs R = ", R)
fin

Page 5 sur 6
Ecole préparatoire en Sciences & Techniques d’Oran Intitulé : Informatique
Module : Algorithmique & Programmation 1ère année, Semestre 2, 2011/2012

Exercice 8
Soit une matrice M de 200 lignes et 100 colonnes à valeurs entiéres . donner une fonction qui
détermine la ligne dont la somme ddes elements est maximale
Correction
Fonction SommeLigne (M :Mat) : entier
variable som,lignemax, max, i, j :entier
debut
som0 ;
Pour j de 1 à 100 Faire
som som+M[1,j]
ffaire
maxsom ;
lignemax1 ;
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

Vous aimerez peut-être aussi