Vous êtes sur la page 1sur 4

‫جامعة محمد الصديق بن يحيى – جيجل‬

2022 / 2021 – ‫السداسي األول‬ ‫كلية العلوم الدقيقة واإلعالم اآللي‬


( MI ) ‫قسم التعليم األساسي للرياضيات واإلعالم اآللي‬

Examen Algorithmique – Le 23/02/2022


Corrigé type

Exercice 1 (4 points) : Déroulement d’un algorithme


Q1) (3 pts)
a) 1, 2 (0.50 pt) d) 8, 4 (0.50 pt)
N B NB C P N B NB C P
1 2 0 1 1 8 4 0 0 1
0 1 10 2 0 2 10
0 20 1000
b) 2, 2 (0.50 pt)
N B NB C P e) 8, 6 (0.50 pt)
2 2 0 0 1 N B NB C P
1 0 1 10 8 6 0 2 1
0 10 100 1 2 1 10
0 12 1000
c) 8, 2 (0.50 pt)
N B NB C P f) 8, 8 (0.50 pt)
8 2 0 0 1 N B NB C P
4 0 0 10 8 8 0 0 1
2 0 0 100 1 0 1 10
1 0 1 1000 0 10 1000
0 1000 10000

Q2) (1 pt) Cet algorithme permet de convertir un nombre N écrit en décimal vers une base B
(2 ≤ B ≤ 9).
Exercice 2 (7 points) : Les Diviseurs d’un Nombre
Q1) (3 pts) Algorithme ListeDiviseurs
Var N, D : Entier
Début
Répéter
Lire( N ) (0.25 pt) // N est un entier strictement positif.
Jusqu’à ( N > 0 ) (0.25 pt)
Ecrire(" Les diviseurs de ", N, " sont : 1") (0.50 pt) // Afficher le 1ier diviseur : 1
Pour D  2 à N Div 2 Faire (0.50 pt)
Si ( N Mod D = 0 ) Alors (0.50 pt)
Ecrire( D ) (0.50 pt)
FSi
FPour

Page 1 / 4
Si ( N  1 ) Alors (0.50 pt) // Pour éviter d’afficher le un ( 1 ) deux fois si N = 1.
Ecrire( N )
FSi
Fin
Q2) (4 pts) Algorithme DiviseursPetitEtGrand // Solution 2
Var N, D, DPetit, DGrand : Entier Var N, D, DGrand : Entier
Début DExiste : Booléen
Répéter …
// N est un entier strictement positif. …
Lire( N ) (0.25 pt) …
Jusqu’à ( N > 1 ) …
D2 (0.25 pt) …
DPetit  0 (0.25 pt) DExiste  Faux
TQ ( D  N Div 2) et ( DPetit = 0 ) Faire (0.75 pt) TQ … ( DExiste = Faux ) Faire
Si ( N Mod D = 0 ) Alors (0.25 pt) …
// Un diviseur différent de 1 est trouvé. …
DPetit  D (0.25 pt) DExiste = Vrai
Sinon …
D  D + 1 // Aller au diviseur suivant …
FSi  (0.25 pt) …
FTQ  (0.25 pt) …
Si ( DPetit = 0 ) Alors // ou Si ( D > N Div 2) Alors Si ( DExiste = Faux ) Alors
Ecrire(N, " n’a pas de diviseurs, il est premier ") Ecrire …
Sinon  (0.25 pt) Sinon
DGrand  N Div DPetit (0.25 pt) DGrand  N Div D
Si ( DPetit = DGrand ) Alors (0.25 pt) Si (D = DGrand) Alors

Ecrire( N, " a un seul diviseur = ", DPetit ) Ecrire( … , D)

Sinon  (0.25 pt) Sinon


Ecrire( N, " a plusieurs diviseurs ") …
Ecrire( " Le plus petit = ", DPetit ") Ecrire( … , D)

Ecrire( " et le plus grand = ", DGrand ) Ecrire( … , DGrand)

FSi  (0.50 pt) Fsi


FSi FSi
Fin

Page 2 / 4
Exercice 3 (5 points) : Codage
Algorithme Codage
Var N, NCopie, B, S, Chiffre, P : Entier
Début
Répéter
Lire( N, B ) (0.50 pt)
Jusqu’à ( N  0 ) et ( B  2 ) et ( B  9 ) (0.50 pt)
NCopie  N // Sauvegarder la valeur de N.
S  0 (0.50 pt)
P  1 (0.50 pt) // Solution 2
TQ ( N  0 ) Faire (0.75 pt) Répéter
Chiffre  N Mod 10 (0.50 pt) …
N  N Div 10 (0.50 pt) …
S  S + Chiffre * P (0.50 pt) …
PP*B (0.50 pt) …
FTQ Jusqu’à ( N = 0 )
Ecrire( NCopie, " en base ", B, " = ", S, " en décimal – Base 10" ) (0.25 pt)
Fin
Exercice 4 (4 points) : Décalage circulaire vers la gauche
Algorithme DecalageCirculaireVersLaGauche
Const N = 10 (0.25 pt)
Var TAB : Tableau[ 1 .. N ] d’Entier (0.25 pt)
i, Valeur1 : Entier
Début
Pour i  1 à N Faire // Lecture du tableau
Ecrire ( "Donner la valeur de l’élément N°", i )
Lire( TAB[ i ] ) (0.25 pt)
FPour
// Sauvegarder la valeur de la case N°1.
Valeur1  TAB[ 1 ] (0.50 pt)
// Décalage vers la gauche des autres éléments // Solution 2
Pour i  1 à (N – 1) Faire Pour i  2 à N Faire
TAB[ i ]  TAB[ i + 1] (2 pts) TAB[ i – 1]  TAB[ i ]
FPour FPour

Page 3 / 4
// Copie du 1er élément vers la fin du tableau
TAB[ N ]  Valeur1 (0.50 pt)
// Affichage du tableau
Pour i  1 à N Faire
Ecrire( TAB[ i ] ) (0.25 pt)
FPour
Fin

*** Fin du corrigé-type ***

Page 4 / 4

Vous aimerez peut-être aussi