Académique Documents
Professionnel Documents
Culture Documents
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 ) …
D2 (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
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) …
PP*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
Page 4 / 4