Upload
sysy-shady
View
223
Download
0
Embed Size (px)
DESCRIPTION
exercices analyse I
Citation preview
Ecole préparatoire en Sciences & Techniques d’Oran
Module : Algorithmique & Programmation
Intitulé : Informatique
1ère
année, Semestre 2, 2011/2012
Page 1 sur 6
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 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
Ecole préparatoire en Sciences & Techniques d’Oran
Module : Algorithmique & Programmation
Intitulé : Informatique
1ère
année, Semestre 2, 2011/2012
Page 2 sur 6
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
Ecole préparatoire en Sciences & Techniques d’Oran
Module : Algorithmique & Programmation
Intitulé : Informatique
1ère
année, Semestre 2, 2011/2012
Page 3 sur 6
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
Ecole préparatoire en Sciences & Techniques d’Oran
Module : Algorithmique & Programmation
Intitulé : Informatique
1ère
année, Semestre 2, 2011/2012
Page 4 sur 6
Exercice 6 :Soit une matrice carrée. Ecrire l’algorithme qui permet de faire la somme de la
diagonale principale de cette matrice exp :
4610
052
123 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
Début Lire (n)
Lecture (n,L) Ecrire (" la somme de la diagonale de la matrice est ", somme (n,L)) ;
Fin
Ecole préparatoire en Sciences & Techniques d’Oran
Module : Algorithmique & Programmation
Intitulé : Informatique
1ère
année, Semestre 2, 2011/2012
Page 5 sur 6
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
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 éléments pairs P = ", P) Ecrire (" le nombre d éléments pairs R = ", R) fin
Ecole préparatoire en Sciences & Techniques d’Oran
Module : Algorithmique & Programmation
Intitulé : Informatique
1ère
année, Semestre 2, 2011/2012
Page 6 sur 6
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
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