Révision - Algorithmique I
Module informatique SMIA-S2
2020-2021
Pr. Er-rajy Latifa
Exercice 1
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix
nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera
les nombres de 18 à 27.
Pr. Er-rajy Latifa
Exercice 1 Solution :
Algorithme Dix_Nombres
Var N, i : entier
Début
Ecrire ("Entrez un nombre : ")
Lire (N)
Pour i1 à 10 faire
Ecrire (N+i)
FinPour
Fin
Pr. Er-rajy Latifa
Exercice 2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA,
et qui fournit le prix total TTC correspondant. Faire en sorte que des libelles apparaissent
clairement.
prix total TTC (pttc)= le nombre d’articles (nb) * prix hors taxes (pht) * (1 + taux de TVA (ttva))
Pr. Er-rajy Latifa
Exercice 2 Solution :
Algorithme Prix_TTC
Variables nb, pht, ttva, pttc : entier
Début
Ecrire (”Entrez le prix hors taxes :”)
Lire (pht)
Ecrire (”Entrez le nombre d’articles :”)
Lire (nb)
Ecrire (”Entrez le taux de TVA :”)
Lire (ttva)
pttc nb * pht * (1 + ttva)
Ecrire (”Le prix toutes taxes est : ”, pttc)
Fin
Pr. Er-rajy Latifa
Exercice 3
Ecrire un algorithme qui demande l’ âge d’un enfant `a l’utilisateur. Ensuite,
il l’informe de sa catégorie :
”Poussin” de 6 `a 7 ans
”Pupille” de 8 `a 9 ans
”Minime” de 10 `a 11 ans
”Cadet” après 12 ans.
Pr. Er-rajy Latifa
Exercice 3 Solution :
Algorithme Age
Variable age : Entier
Début
Ecrire (”Entrez l’âge de l’enfant : ”)
Lire (age)
Si age >= 12 Alors
Ecrire (”Catégorie Cadet”)
SinonSi age >= 10 Alors
Ecrire(”Catégorie Minime”)
SinonSi age >= 8 Alors
Ecrire (”Catégorie Pupille”)
SinonSi age >= 6 Alors
Ecrire (”Catégorie Poussin”)
Finsi
Fin
Pr. Er-rajy Latifa
Exercice 4
Ecrire les fonctions permettant :
1. Le calcul du nombre d'occurrences d'un élément donnée dans un tableau.
2. Le calcul de la moyenne et du minimum des éléments d'un tableau.
3. De tester si un tableau est trie.
Ecrire le programme principal.
Pr. Er-rajy Latifa
Exercice 4 Solution :
Fonction Nb_occurences (N: entier par valeur, Tableau T: entier par référence, nb : entier par valeur) : entier
VAR i,nb_occ : entiers
nb_occ 0
Pour i 0 à N-1 Faire
Si T[i] = nb Alors
nb_occ nb_occ + 1
FinSi
FinPour
retourner nb_occ
FinFonction
Fonction Moyenne (N: entier par valeur, Tableau T: réel par référence) : réel
VAR somme, i: entiers
moyenne : réel
somme 0
Pour i 0 à N-1 Faire
somme somme + T[i]
FinPour
moyenne somme / N
retourner moyenne
FinFonction
Pr. Er-rajy Latifa
Exercice 4 Solution :
Fonction Est_trie (N: entier par valeur, Tableau T: entier par référence) :booléen
VAR i : entier
est_trie : Booléen
est-trie faux
Pour i0 à N-1 faire
Si T[i] <= T[i+1] alors
est-trievrai
FinSi
FinPour
retourner est_trie
FinFonction
Pr. Er-rajy Latifa
Exercice 4 Solution :
Algorithme fonct_tab
Var N, i, nb : entier
Var tri :booléen
Tableau T[N]: entier
Début
Ecrire(" Veuillez saisir la taille de tableau:")
Lire(N)
Pour i0 à N-1 faire
Ecrire(" Veuillez saisir l’élément:", i+1)
Lire (T[i])
FinPour
Ecrire(" Veuillez saisir le nombre cherché: ")
Lire(nb)
Ecrire(" le nombre d’occurrences est :", Nb_occurences(N,T,nb))
Ecrire(" la moyenne est: ", Moyenne(N,T))
tri Est_trie(N,T)
Si tri=faux alors
Ecrire(« le tableau est trié »)
Sinon
Ecrire(« le tableau n’est créer »)
FinSi
Fin
Pr. Er-rajy Latifa
Exercice 5.
Ecrivez un algorithme permettant à l’utilisateur de saisir un nombre quelconque de valeurs,
qui devront être stockées dans un tableau. Une fois la saisie terminée, le programme
affichera le nombre de valeurs négatives et le nombre de valeurs positives.
Pr. Er-rajy Latifa
Solution :
Exercice 5. Algorithme Positif_Nigatif
Var N, i, Pos, Nig : entier
Tableau T[N] : réel
Début
Pos0
Nig0
Ecrire(" Veuillez saisir N :")
Lire(N)
Pour i allant de 0 à N-1
Ecrire("Donner l’élément:",i+1, " de T:")
Lire(T[i])
FinPour
Pour i allant de 0 à N-1
Si T[i]>=0 Alors
PosPos+1
Sinon
NigNig+1
FinSi
FinPour
Ecrire("Nombre d’éléments positifs est: ", Pos)
Ecrire(" Nombre d’éléments négatifs est: ", Nig)
Fin Pr. Er-rajy Latifa
Exercice 6. (Retour aux Matrices)
Soient deux matrices A et B (NxM). Ecrire un algorithme qui permet de calculer:
1- La matrice S somme des deux matrices A et B
2- La matrice P produit des deux matrices A et B.
3- Écrire un algorithme qui donne la transposé d'une matrice NxM.
Pr. Er-rajy Latifa
Solution :
ALGORITHME SOM2MATRICES
Tableau A[N][M], B[N][M], S[N][M]: réel // somme de A et B
variables i, j, N,M: entier Pour i allant de 0 à N-1
DEBUT Pour j allant de 0 à M-1
Ecrire(" Veuillez saisir la taille :") S[i][j] ←A[i][j]+B[i][j]
Lire(N,M) FinPour
Pour i allant de 0 à N-1 FinPour
Ecrire("Donner la ligne:",i+1, “ de A:”) //affichage de la matrice S
Pour j allant de 0 à M-1 Pour i allant de 0 à N-1
Lire(A[i][j]) Pour j allant de 0 à M-1
FinPour Ecrire(S[i][j]," ")
FinPour FinPour
Pour i allant de 0 à N-1 FinPour
Ecrire("donner la ligne ",i+1"de B") FIN
Pour j allant de 0 à M-1
Lire(B[i][j])
FinPour
FinPour
Pr. Er-rajy Latifa
Exercice 6. (Retour aux Matrices)
Soient deux matrices carrées A et B (NxM). Ecrire un algorithme qui permet de
calculer:
2- La matrice P produit des deux matrices A et B.
Pr. Er-rajy Latifa
Solution :
ALGORITHME Produit2MATRICES
Tableau A[N][M], B[N][M],P[N][M]: réel // Produit P = A*B tel que pij= somme des
VAR i, j, k, N, M, S : entier aik*bkj
DEBUT Pour i allant de 0 à N-1
Ecrire(" Veuillez saisir la taille:") Pour j allant de 0 à M -1
Lire(N,M) S ←0
Pour i allant de 0 à N-1 Pour k allant de 0 à N-1
Ecrire("Donner la ligne:",i+1, “ de A”) S ←S + A[i][k]*B[k][j]
Pour j allant de 0 à M-1 FinPour
Lire(A[i][j]) P[i][j] ←S
FinPour FinPour
FinPour FinPour
Pour i allant de 0 à N-1 //affichage de la matrice P
Ecrire("donner la ligne ",i+1"de B") Pour i allant de 0 à N-1
Pour j allant de 0 à M-1 Pour j allant de 0 à M-1
Lire(B[i][j]) Ecrire(P[i][j]," ")
FinPour FinPour
FinPour FinPour
Fin
Pr. Er-rajy Latifa
Exercice 6. (Retour aux Matrices)
Soient deux matrices A et B (NxM). Ecrire un algorithme qui permet de calculer:
3- Écrire un algorithme qui donne la transposé d'une matrice NxM.
Pr. Er-rajy Latifa
Solution :
ALGORITHME TRANSPOSE
Tableau A[N][M], T[N][M]: réel //affichage de la matrice T
VAR i, j, N, M : entier Pour i allant de 0 à N-1
DEBUT Pour j allant de 0 à M-1
Ecrire(" Veuillez saisir la taille :") Ecrire(T[i][j]," ")
Lire(N,M) FinPour
Pour i allant de 0 à N-1 FinPour
Ecrire("Donner la ligne:",i+1, “ de A”) Fin
Pour j allant de 0 à M-1
Lire(A[i][j])
FinPour
FinPour
Pour i allant de 0 à N-1
Pour j allant de 0 à M-1
T[i][j]A[j][i]
FinPour
FinPour
Pr. Er-rajy Latifa