Travail pratique d’algorithmique
Q1. Algorithme Produit_Matrices ;
Const m=100
Var A,B,C : tableau[1 ..m] :d’entier ;
n, m, p, i, j, k : entier ;
Début
Afficher("Entrer le nombre de colonnes de A : ") ;
Lire(n) ;
Afficher ("Entrer le nombre de colonnes de A (et lignes de B) : ") ;
Lire(m) ;
Afficher ("Entrer le nombre de colonnes de B : ") ;
Afficher ("Entrer les éléments de la matrice A : ") ;
Pour i ← 0 à n-1 Faire
Pour j ← 0 à m-1 Faire
Lire(A[i][j]) ;
FinPour ;
FinPour ;
Afficher ("Entrer les éléments de la matrice B : ") ;
Pour i ← 0 à m-1 Faire
Pour j ← 0 à p-1 Faire
Lire(B[i][j]) ;
FinPour ;
FinPour ;
Pour i ← 0 à n-1 Faire
Pour j ← 0 à p-1 Faire
C[i][j] ← 0 ;
FinPour ;
FinPour ;
Pour i ← 0 à n-1 Faire
Pour j ← 0 à p-1 Faire
Pour k ← 0 à m-1 Faire
C[i][j] ← C[i][j] + A[i][k] * B[k][j]
FinPour ;
FinPour ;
FinPour ;
Afficher ("La matrice produit C est : ") ;
Pour i ← 0 à n-1 Faire
Pour j ← 0 à p-1 Faire
Afficher (C[i][j]) ;
FinPour ;
FinPour ;
Fin .
Q2. Algorithme Triangle_Pascal ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, j : entier ;
Début
Afficher ("Entrer le nombre de lignes du triangle de Pascal : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Pour j ← 0 à i Faire
Si j = 0 OU j = i Alors
T[i][j] ← 1 ;
Sinon ;
T[i][j] ← T[i-1][j-1] + T[i-1][j] ;
FinSi ;
FinPour ;
FinPour ;
Afficher ("Triangle de Pascal : ") ;
Pour i ← 0 à n-1 Faire
Pour j ← 0 à i Faire
Afficher (T[i][j], " ") ;
FinPour ;
FinPour ;
Fin .
Q3. Algorithme Analyse_Tableau ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i : entier
positif, negatif, nul, somme, minimum, maximum : entier ;
moyenne : réel ;
Début
Afficher("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher ("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
positif ← 0 ;
negatif ← 0 ;
nul ← 0 ;
somme ← 0 ;
minimum ← T[0] ;
maximum ← T[0] ;
Pour i ← 0 à n-1 Faire
somme ← somme + T[i] ;
Si T[i] > 0 Alors
positif ← posi f + 1 ;
Sinon Si T[i] < 0 Alors
negatif ← nega f + 1 ;
Sinon ;
nul ← nul + 1 ;
FinSi ;
Si T[i] < minimum Alors
minimum ← T[i] ;
FinSi ;
Si T[i] > maximum Alors
maximum ← T[i] ;
FinSi ;
FinPour ;
moyenne ← somme / n ;
Afficher ("Nombre d'éléments positifs : ", positif) ;
Afficher ("Nombre d'éléments négatifs : ", negatif) ;
Afficher ("Nombre d'éléments nuls : ", nul) ;
Afficher ("Minimum : ", minimum) ;
Afficher ("Maximum : ", maximum) ;
Afficher ("Moyenne : ", moyenne);
Fin.
Q7. Algorithme Afficher_Element_Position ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, position : entier ;
Début
Afficher("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Afficher ("Entrer la position de l'élément à afficher : ") ;
Lire(position) ;
Si position ≥ 0 ET position < n Alors
Afficher ("L'élément à la position ", position, " est : ", T[position]) ;
Sinon
Afficher ("Position invalide") ;
FinSi ;
Fin.
Q8. Algorithme Modifier_Element_Tableau ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, indice, nouvelle_valeur : entier ;
Début
Afficher ("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i=: 0 à n-1 Faire
Afficher ("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Afficher ("Entrer l'indice de l'élément à modifier : ") ;
Lire(indice) ;
Afficher ("Entrer la nouvelle valeur : ") ;
Lire(nouvelle_valeur) ;
Si indice ≥ 0 ET indice < n Alors
T[indice] =:nouvelle_valeur ;
Sinon ;
Afficher("Indice invalide") ;
FinSi ;
Afficher("Tableau après modification : ") ;
Pour =: 0 à n-1 Faire
Afficher(T[i]) ;
FinPour ;
Fin .
Q9. Algorithme Modifier_Tous_Les_Elements ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, ajout : entier ;
Début
Afficher("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher ("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Afficher ("Entrer la valeur à ajouter à chaque élément : ") ;
Lire(ajout) ;
Pour i ← 0 à n-1 Faire
T[i] ← T[i] + ajout ;
FinPour ;
Afficher ("Tableau après modification : ") ;
Pour i ← 0 à n-1 Faire
Afficher (T[i]) ;
FinPour ;
Fin .
Q10. Algorithme Supprimer_Element_Tableau ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, position : entier ;
Début
Afficher("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher ("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Afficher ("Entrer la position de l'élément à supprimer : ") ;
Lire(position) ;
Si position ≥ 0 ET position < n Alors
Pour i ← posi on à n-2 Faire
T[i] ← T[i+1] ;
FinPour ;
n←n–1;
Afficher ("Tableau après suppression : ") ;
Pour i ← 0 à n-1 Faire
Afficher (T[i]) ;
FinPour ;
Sinon ;
Afficher ("Position invalide") ;
FinSi ;
Fin .
Q11. Algorithme Nombre_Occurrence ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, element, compteur : entier ;
Début
compteur ← 0 ;
Afficher("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Afficher("Entrer l'élément à rechercher : ") ;
Lire(element) ;
Pour i ← 0 à n-1 Faire
Si T[i] = element Alors
compteur ← compteur + 1 ;
FinSi ;
FinPour ;
Afficher("Le nombre d'occurrence de ", element, " est : ", compteur) ;
Fin.
Q13. Algorithme Recherche_Element ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i, element : entier ;
trouve : booléen ;
Début
trouve ← Faux ;
Afficher ("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Afficher("Entrer l'élément à rechercher : ") ;
Lire(element) ;
Pour i ← 0 à n-1 Faire
Si T[i] = element Alors ;
trouve ← Vrai ;
FinSi ;
FinPour ;
Si trouve = Vrai Alors ;
Afficher("L'élément ", element, " se trouve dans le tableau") ;
Sinon ;
Afficher("L'élément ", element, " ne se trouve pas dans le tableau") ;
FinSi ;
Fin ;
Q14. Algorithme Inverser_Tableau ;
Const m=100 ;
Var T :tableau[1..m] d’entier ;
n, i : entier ;
temp : entier ;
Début
Afficher("Entrer la taille du tableau : ") ;
Lire(n) ;
Pour i ← 0 à n-1 Faire
Afficher("Entrer T[", i, "] : ") ;
Lire(T[i]) ;
FinPour ;
Pour i ← 0 à (n ; div 2) - 1 Faire
temp ← T[i ] ;
T[i] ← T[n - 1 - i] ;
T[n - 1 - i] ← temp ;
FinPour ;
Afficher("Tableau après inversion : ") ;
Pour i ← 0 à n-1 Faire
Afficher(T[i]) ;
FinPour ;
Fin.