Vous êtes sur la page 1sur 10

Université Moulay Ismail Environnement et

ENSAM -Meknès Outils Informatiques

Correction du TD3 : Les boucles


Exercice 1 : Somme et produit (voir le cours)
Q1 : Ecrire un algorithme qui calcule la somme S et le produit P des N premiers termes
positifs avec N donné par l’utilisateur 𝑆 = ∑𝑁 𝑁
𝑖=1 𝑖 et 𝑃 = ∏𝑖=1 𝑖
Q2 : Modifier l’algorithme pour calculer la somme des N premiers termes positifs impaires.
Q3 : Modifier l’algorithme pour calculer la somme des N premiers termes positifs pairs non
multiple de 3.
Q4 : Donner un algorithme qui calcule la somme suivante 1/2 + 1/4 + 1/8 +…+1/2N (N Є
IN*).
Exercice 2 : Nombre premier
Q1 : Donner un algorithme qui demande d’entrer un nombre entier N, puis il affiche si le
nombre est premier ou non. Un nombre premier est un nombre qui accepte que deux
diviseurs 1 et lui-même.
Solution Question 1
Algorithme premier
Variables N, nb, i: entiers
Debut
Ecrire("donner un nombre N")
lire(N)
nb 0
pour i 1 à N faire
si N mod i = 0 alors
nb nb+1
finsi
finpour

si nb=2 alors //Faire le test sur le nombre de diviseur de N nb


Ecrie (N, "est premier")
sinon
Ecrie (N, "est non premier")
finsi
Fin

Q2 : Ajouter les instructions qui permettent d’afficher tous les nombres premiers inférieurs
à un nombre entier N donné par l’utilisateur.
Solution Question 2

Algorithme premier
var N, nb, i,p: entier
debut
Ecrire("donner un nombre entier N")
lire(N)
Mohamed Hosni, Brahim Bakkas & Samir Amri Page 1 / 10
Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques
pour p 1 à N faire // pour tt nombre p entre 1 et N
nb 0
pour i 1 à p faire
si p mod i = 0 alors
nb nb+1
finsi
finpour
si nb=2 alors
Ecrie (p) // affiche le nombre p premier
Finsi
Finpour
Fin

Q3 : Changer l’algorithme pour qu’il affiche tous les nombres premiers entre a et b donné
par l’utilisateur.
Solution Question 3 :
Algorithme PremierQ3
var N, nb, i, a, b: entier
debut
Ecrire("donner a :")
lire(a)
Ecrire("donner b :")
lire(b)
pour N a à b faire
nb 0
pour i 1 à N faire
si N mod i = 0 alors
nb nb+1
finsi
finpour
si nb=2 alors
Ecrie (N) // affiche le nombre p premier
Finsi
Finpour
Fin

Q4 : Ajouter les instructions qui permettent de faire la somme des nombres premiers entre
a et b.
Solution Question4
Algorithme PremierQ4
var N, nb, i, a, b, Som: entiers
debut
Ecrire("donner a :")
lire(a)
Ecrire("donner b :")
lire(b)

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 2 / 10


Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques
Som 0 // initialiser une variable Som à 0
pour N a à b faire
nb 0
pour i 1 à N faire
si N mod i = 0 alors
nb nb+1
finsi
finpour
si nb=2 alors
Som Som + N // ajouter à som le nombre premier N
Finsi
Finpour
Ecrire(" Somme des nombres premiers entre", a , "et ", b , "est :", Som)
Fin

Exercice 3 : Nombre parfait


Un nombre est dit parfait s'il est égal à la somme de tous ses diviseurs stricts.
Par exemple, 28 est parfait car 28=1+2+4+7+14.
Q1 : Ecrire un algorithme qui permet de saisir un nombre entier et détermine s’il parfait.
Solution Question 1 : Pour réaliser cet algorithme on doit calculer la somme des diviseurs
stricte d’un nombre N, puis on compare N avec cette somme.
Algorithme Parfait
Variables N, S, i: entiers
Debut
Ecrire("donner un nombre N")
lire(N)
S 0 // somme initialiser à 0
pour i 1 à N-1 faire
si N mod i = 0 alors
S S+i // on ajoute à la somme S le i qui devise N
finsi
finpour
// Faire le test sur le nombre de diviseur de N
si S=N alors
Ecrie (N, "est parfait")
sinon
Ecrie (N, "est non parfait")
finsi
Fin

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 3 / 10


Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques

Q2 : Donner un algorithme qui permet d’afficher tous les parfaits premiers inférieurs ou
égaux à un nombre P saisi au clavier.
Solution Q2
Algorithme NombresParfait
Variables N, S, i, P: entiers
Debut
Ecrire("donner un nombre N")
lire(N)
pour P 1 à N faire
S 0 // somme initialiser à 0
pour i 1 à P-1 faire
si P mod i = 0 alors
S S+i // on ajoute à la somme S le i qui devise N
finsi
FinPour
si S=P alors
Ecrie (P) // on affiche le nombre parfait P
Finsi
FinPour
Fin

Q3 : Modifier l’algorithme précédent pour qu’il affiche tous les nombres parfaits compris
entre les entiers a et b et affiche leurs nombres.
Solution Q3 :
Algorithme PremierQ4
Variables p, i, a, b, S: entiers
debut
Ecrire("donner a :")
lire(a)
Ecrire("donner b :")
lire(b)
pour p a à b faire
S 0 // somme initialiser à 0
pour i 1 à p-1 faire
si p mod i = 0 alors
S S+i // on ajoute à la somme S le i qui devise p
finsi
FinPour
si S=p alors
Ecrie (p) // on affiche le nombre p parfait
Finsi
FinPour

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 4 / 10


Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques

Exercice 4 : Les suites


Soit la suite suivante :
U0=3
Un= 2*Un-1
Q1 : Donner un algorithme qui demande un nombre entier n et qui calcule et affiche la valeur
de terme Un.
Solution Question 1
Algorithme Suite
Variables U, i, n : entiers
Début
Ecrire("donner n :")
lire(n)
U 3 // on intialise une variable U avec la valeur initiale de Un
pour i 1 à n faire
U 2*U // on écrit la formule de la suite Un en fct de U
FinPour
Ecrire( "Un", U)
Fin
Q2 :
Les nombres de Fibonacci sont caractérisés par la série suivante :
U0=0
U1=1
Un= Un-1+ Un-2
Donner un algorithme qui calcule et affiche le Nième terme de cette suite. N sera saisi au
clavier.
Solution Q2 :
Algorithme SuiteFibonacci
Variables U, I ,A,,B, n: entiers
Début
Ecrire("donner n :")
lire(n)
A 0 // on initialise A par la valeur de U0 1er terme
A 0 // on initialise B par la valeur de U1 2ème terme
pour i 2 à n faire
U A+B
A B
B U
FinPour
Ecrire( "Un", U)
Fin

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 5 / 10


Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques

Exercice 5 : chiffres d’un nombre


Q1 : Ecrire un algorithme qui affiche les chiffres d’un nombre entier N saisi par l’utilisateur.
Solution Q1 :
Algorithme Chiffres
Variables N : entiers
Début
Ecrire("donner N :")
lire(N)
TantQue N <>0 faire // tant que N est différent de 0
Ecrire( N mod 10) // on affiche le reste de N sur 10
N N div 10 // on met à jour N par le div sur 10
FinTantQue
Fin

Q2 : Modifier l’algorithme pour calculer la somme des chiffres d’un nombre entier
Exemple si N= 4523 l’algorithme calculera la somme suivante S =4+5+2+3= 14
Solution Question 2 :
Algorithme SommeChiffres
Variables N,Som : entiers
Début
Ecrire("donner N :")
lire(N)
P N // on sauvegarde la valeur de N
Som 0 // initialiser la som par 0
TantQue N <>0 faire // tant que N est différent de 0
Som Som+ N mod 10 // on affiche le reste de N sur 10
N N div 10 // on met à jour N par le div sur 10
FinTantQue
Ecrire ("Somme des chiffres de", P , "est : ", Som)
Fin
Exercice 6 : Ecrire un algorithme qui permet d’afficher le premiers rang N tel que la somme
S= 1+1/2-1/3+1/4- 1/5+…±1/N soit proche de 1,33 (avec erreur de 1/100 près).
Solution Exercice 6 :
Algorithme LimiteSuite
Variables N: entiers
S , Epsilon : réel
Début
Epsilon 1/100 // précision
S 1 // initialiser la som par 0
N 1 // valeur de N initiale est 0
TantQue abs(S -1.33) >Epsilon faire
N N +1 // on incrémente N par 1
S S+( (-1)^(N))/N // on met à jour S
FinTantQue
Ecrire ("La valeur de N est ", N)
Mohamed Hosni, Brahim Bakkas & Samir Amri Page 6 / 10
Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques
Fin
Exercice 7 Ecrire un algorithme qui permet de saisir deux nombres entiers A et B et d’afficher
leur PGDC en utilisant la méthode euclidienne : A B R
- Mettre dans R le reste de la division de A par B 324 228 96
228 96 36
- Remplacer A par B et B par R. 96 36 24
- Répéter jusqu’à ce que le reste soit nul 36 24 12
24 12 0
- Le PGDC est le dernier reste non nul. 12 0 0
Exemple : Donner A et B : 324 228
------------------------------ Solution Exercice 7-------------------------------------- PGCD=12
Solution Exercice 7 :
Algorithme PGCD_Version1
Variables A,B, R: entiers

Début
Ecrire ("donner A :")
Lire (A)
Ecrire ("donner B :")
Lire (B)
R A mod B // on met dans R le reste de A sur B
TantQue R <> 0 faire
A B // on met dans A la valeur de B
B R // on met à jour B avec la valeur de R
R A mod B // on met dans R le reste de A sur B
FinTantQue
Ecrire ("PGCD ", B)
Fin
Algorithme PGCD_Version2
Variables A,B, R: entiers

Début
Ecrire ("donner A :")
Lire (A)
Ecrire ("donner B :")
Lire (B)
TantQue B <> 0 faire
R A mod // on met dans R le reste de A sur B
A B // on met dans A la valeur de B
B R // on met à jour B avec la valeur de R
FinTantQue
Ecrire ("PGCD ", A)
Fin

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 7 / 10


Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques
Exercice 8 : Soit un montant m donné déposé dans une caisse d’épargne à un taux d'intérêt annuel
t donné. Elaborez un algorithme qui calcule :
- Le montant épargné après 10 ans.
- Le nombre d’années nécessaires pour que ce montant atteigne 1 000 000 DH.
------------------------------ Solution Exercice 8 ------------------------------------------------------
Algorithme Epargne
Variables montant, taux: réels
Début
Ecrire ("donner montant m :")
Lire (m)
Ecrire ("donner taux d’épargne :")
Lire (taux)
// Question1
montant m // initialiser une variable montant par la valeur de m
Pour i 1 à 10
montant montant * (1+ taux)
FinPour
Ecire("le montant d’épargne après 10 ans est : ", montant)
// Question 2
A 0
Tantque m <10000000 faire
m m*taux
A <A +1
FinTantque
Ecrire(" Nombre d’années nécessaires pour attendre 1000000 DH est : ", A)

Exercice 9 : calculer la racine carrée d’un nombre X par La suite suivante :


1 𝑋
𝑈0 = 1 𝑒𝑡 𝑈𝑛+1 = ∗ (𝑈𝑛 + )
2 𝑈𝑛
Ecrire un algorithme qui permet de lire un nombre X et une valeur entière n puis affiche tous les
termes de la suite 𝑈𝑛 , On remarquera que 𝑈𝑛 converge vers √𝑋
------------------------------ Solution Exercice 9 ------------------------------------------------------
Algorithme SuiteConverge
Variables i, n : entiers
U, x : réels
Début
Ecrire("donner X :")
lire(X)
Ecrire("donner n :")
lire(n)

U 1 // on initialise une variable U avec la valeur initiale de Un


pour i 1 à n faire
U (U+X/U)/2 // on écrit la formule de la suite Un en fct de U
FinPour
Ecrire( "Approximation de racine de ", X, "est : ", U)
Fin
Mohamed Hosni, Brahim Bakkas & Samir Amri Page 8 / 10
Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques
Exercice 10 :
Nous nous intéressons à une suite de nombres entiers terminée par la saisie d’un zéro qui
ne fait pas partie de la suite. Exemple : 1, 5, 2, 8, 9, 3, 4, 0.
Ecrire un algorithme permettant de réaliser les tâches suivantes :
1) Détermination du plus grand élément de la suite,
2) Détermination du plus petit élément de la suite,
3) Calcul de la somme des éléments de la suite,
4) Calcul de la moyenne des éléments de la suite,
5) Calcul de la somme des éléments pairs de la suite,
6) Prévoir un affichage à l’écran de tous les résultats calculés.
//------------------------------ Solution Exercice 10 ------------------------------------------------------
Algorithme SuiteNombres
Variables N, Nb, Som, SomP, Max, Min : entiers
Moy : réel
Début
Ecrire("donner N :")
lire(N)
Nb 0
Som 0
Max N
Min N
TantQue N <>0 faire // tant que N est différent de 0

Nb Nb+1 // Augmenter le nombre de nombre saisie Nb par 1


// Si N est sup à Max, on change la valeur de Max par celle de N
Si N > Max alors
Max N
FinSi
// Si N est min à Min, on change la valeur de Min par celle de N
Si N < Min alors
Min N
FinSi

Som Som +N // Ajouter N à la somme Som


Moy Som / Nb // Calcule de la moyenne

Si N mod 2 = 0 alors // Si N est pair


SomP SomP+N // Ajouter N à la somme SomP
FinSi
// lire le nombre N suivant et refaire le teste
Ecrire("donner N :")
lire(N)
FinTantQue

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 9 / 10


Université Moulay Ismail Environnement et
ENSAM -Meknès Outils Informatiques
// Après la boucle Tant que ( saisie d’un Zéro) on vérifier est ce que le nombre Nb est
//différent de 0 pour faire l’affichage des résultats sinon l’utilisateur n’a pas saisie aucune
//nombre diff de 0
Si Nb<>0 alors
Ecrire (" Vous avez Entré Nombres", Nb, "Nombre non nul")
Ecrire ("Val max est : ", Max)
Ecrire ("Val min est : ", Min)
Ecrire ("Somme des nombres est :" , Som)
Ecrire ("Moyenne des nombres est : ", moy)
Ecrire ("Somme des nombres pairs est :", SomP)
Sinon
Ecrire (" Aucune nombre non nul n’est pas saisie")
FinSi
Fin

Mohamed Hosni, Brahim Bakkas & Samir Amri Page 10 / 10

Vous aimerez peut-être aussi