Vous êtes sur la page 1sur 21

TD3- Algorithmique I

Module informatique SMIA-S2


2020-2021

Pr. Er-rajy Latifa


Exercice 1
1.Écrivez un algorithme qui affiche 200 fois la phrase : "je ne dois pas
arriver en retard en TD/TP".
2.Écrivez un algorithme qui affiche les entiers de 1 à 100.
3.Écrivez un algorithme qui affiche les entiers pairs de 1 à 100.

• Si nous savons la valeur de N, nous utilisons


la boucle POUR.
• Sinon, nous utilisons la boucle TantQue et
Répéter.
exemple:
Ecrire un algorithme qui permet de faire le contrôle de saisie d'une
lettre majuscule O pour Oui ou N pour Non, jusqu’à ce que le
caractère entré soit valable.
Pr. Er-rajy Latifa
Exercice 1

1.Écrivez un algorithme qui affiche 200 fois la phrase : "je ne dois pas
arriver en retard en TD/TP".
Solution :
Si le PAS=1, on est
pas obligé de
Algorithme PUNITION l’écrire
Var i : entier Pour i1 jusqu’à 200 PAS 1
Début

Pour i Allant de i=1 à 200 par PAS 1

Ecrire("je ne dois pas arriver en retard en TD/TP")

FinPour
Fin

Pr. Er-rajy Latifa


Exercice 1

2. Écrivez un algorithme qui affiche les entiers de 1 à 100.

Solution :

Algorithme Affiche_1_à_100

Var i : entier
Début

Pour i allant de 1 à 100

Ecrire(i)

FinPour

Pr. Er-rajy Latifa


Exercice 1

3. Écrivez un algorithme qui affiche les entiers pairs de 1 à 100.

Solution :

Algorithme AFFICHE_PAIR_1_À_100

Var i : entier
Début

Pour i allant de 2 à 100 Par PAS 2

Ecrire(i)

FinPour

Pr. Er-rajy Latifa


Exercice 2.

1. Écrivez un algorithme qui calcule la somme des n premiers nombres entiers positifs
(1,2,3,…,n). L’algorithme demandera à l’utilisateur d’entrer la valeur de n.

2. Écrivez un algorithme qui calcule la somme des n premiers nombres entiers positifs
pairs (2,4,6,…). L’algorithme demandera à l’utilisateur d’entrer la valeur de n..

Pr. Er-rajy Latifa


Exercice 2.
1.Écrivez un algorithme qui calcule la somme des n premiers nombres
entiers positifs (1,2,3,…,n). L’algorithme demandera à l’utilisateur d’entrer
la valeur de n.
Solution :

Algorithme Somme
Var n, som, i : entier
Début
Ecrire(" Veuillez saisir un nombre : ")
Lire(n)
som0
Pour i allant de 1 à n
som som + i
FinPour
Ecrire(" La somme des 1 à ",n, " est : ", som)
Fin Pr. Er-rajy Latifa
Exercice 2.

2. Écrivez un algorithme qui calcule la somme des n premiers nombres entiers positifs
pairs (2,4,6,…). L’algorithme demandera à l’utilisateur d’entrer la valeur de n.

Solution :

Algorithme SOMME_PAIRS
Var n, som, i : entier
Début
Ecrire(" Veuillez saisir un nombre : ")
Lire(n)
som0
Pour i allant de 2 à n PAS 2
som som + i
FinPour
Ecrire(" La somme des pairs de 2 à ",n, " est : ", som)
Fin Pr. Er-rajy Latifa
Exercice 3.

1. Écrivez un algorithme qui calcule la somme S telle que : S = 1² + 2² + 3² + … + (n-1)² + n²


L’algorithme demandera à l’utilisateur d’entrer la valeur de n.

2.Écrivez un algorithme qui calcule le factoriel de n , avec : n ! = 1 * 2 * 3 …. * (n-1) * n


L’algorithme demandera à l’utilisateur d’entrer la valeur de n.

Pr. Er-rajy Latifa


Exercice 3.

1. Écrivez un algorithme qui calcule la somme S telle que : S = 1² + 2² + 3² + … + (n-1)² + n²


L’algorithme demandera à l’utilisateur d’entrer la valeur de n.
Solution :

Algorithme Somme
Var n, S, i : entier
Début
Ecrire(" Veuillez saisir un nombre : ")
Lire(n)
S0
Pour i allant de 1 à n
S S + i*i
FinPour
Ecrire(" La somme des 1 à ",n, " est : ", S)
Fin Pr. Er-rajy Latifa
Exercice 3.

2.Écrivez un algorithme qui calcule le factoriel de n , avec : n ! = 1 * 2 * 3 …. * (n-1) * n


L’algorithme demandera à l’utilisateur d’entrer la valeur de n.

Solution :
Algorithme FACTORIEL
Var n, FACT, i : entier
Début
Ecrire(" Veuillez saisir un nombre : ")
Lire(n)
si (n = 0) alors
Ecrire(" Le factoriel de 0 est : 1")
Sinon
FACT1
Pour i allant de 1 à n
FACT FACT*i
FinPour
Ecrire(" Le factoriel de ",n, " est : ", FACT)
Finsi
Fin

Pr. Er-rajy Latifa


Exercice 4.

1.Que donne l’algorithme suivant à « l’exécution » :

Var i, j : Entier

Debut

Pour i  1 jusqu’à 5

Ecrire(" i= ", i)

Pour j  1 jusqu’à 3

Ecrire("le produit de",i," et ",j," est:",i*j)

FinPour

FinPour
Fin

Pr. Er-rajy Latifa


Solution :
Exercice 4. i=1
Le produit de 1 et 1 est: 1
Le produit de 1 et 2 est: 2
Le produit de 1 et 2 est: 3
Var i, j : Entier i=2
Le produit de 2 et 1 est: 2
Debut
Le produit de 2 et 2 est: 4
Pour i  1 jusqu’à 5 Le produit de 2 et 3 est: 6
i=3
Ecrire(" i= ", i)
Le produit de 3 et 1 est: 3
Pour j  1 jusqu’à 3 Le produit de 3 et 2 est: 6
Le produit de 3 et 3 est: 9
Ecrire("le produit de",i," et ",j," est:",i*j) i=4
FinPour Le produit de 4 et 1 est: 4
Le produit de 4 et 2 est: 8
FinPour Le produit de 4 et 3 est: 12
Fin
i=5
Le produit de 5 et 1 est: 5
Le produit de 5 et 2 est: 10
Le produit de 5 et 3 est: 15

Pr. Er-rajy Latifa


Exercice 4.

2.Que donne l’algorithme suivant à « l’exécution » :

Var i, j : Entier
Debut
Pour i  1 jusqu’à 5

Ecrire(" i= ", i)

FinPour

Pour j  1 jusqu’à 3

Ecrire("le produit de",i," et ",j," est:",i*j)

FinPour
Fin

Pr. Er-rajy Latifa


Solution :
Exercice 4.

2.Que donne l’algorithme suivant à « l’exécution » :

Var i, j : Entier
Debut i=1
Pour i  1 jusqu’à 5
i=2
Ecrire(" i= ", i)
i=3
FinPour i=4
Pour j  1 jusqu’à 3 i=5
Ecrire("le produit de",i," et ",j," est:",i*j) Le produit de 5 et 1 est: 5
FinPour Le produit de 5 et 2 est: 10
Fin
Le produit de 5 et 3 est: 15

Pr. Er-rajy Latifa


Exercice 5.

Soit l’algorithme suivant :

Var a,b,r : entiers


Début
Ecrire("donner les valeurs de a et b : ")
Lire(a,b)
TantQue b>0 faire
r  a%b // a%b :reste de la division de a par b
ab
br
FinTanQue
Ecrire(a)
Fin

1.Exécuter l’algorithme et donner sa trace (notez dans un tableau les valeurs de a, b, r ...)
pour :
• a = 50 et b = 45
• a = 21 et b = 13
• a = 96 et b = 81

2.Que fait cet algorithme ?. Cet algorithme est connu sous le nom de l’algorithme d’Euclide
Pr. Er-rajy Latifa
Solution :
Exercice 5.
Soit l’algorithme suivant : a b r b>0
L’algorithme affiche : 5  50   45   5 Vrai
Var a,b,r : entiers
Début  45   5   0 Vrai
Ecrire("donner les valeurs de a et b : ")
Lire(a,b) 5 0 ### Faux
TantQue b>0 faire
r  a%b a b r b>0
ab L’algorithme affiche : 1 21  13 8 Vrai
br
FinTanQue  13  8 5 Vrai
Ecrire(a) 8 5 3 Vrai
Fin
5 3 2 Vrai
3 2 1 Vrai
• a = 50 et b = 45 2 1 0 Vrai
• a = 21 et b = 13
• a = 96 et b = 81 1 0 ### Faux
a b r b>0
L’algorithme affiche : 3  96  81 15 Vrai
81 15  6 Vrai
L’algorithme calcule le plus grand commun diviseur 15 6 3 Vrai
(PGCD) de deux entiers, c'est-à-dire le plus grand entier 6 3 0 Vrai
qui divise les deux entiers, en laissant un reste nul. 3 0 ### Faux
Pr. Er-rajy Latifa
Exercice 6.

1. Un nombre entier p (différent de 1) est dit premier si ses seuls diviseurs positifs sont 1 et p.
Ecrivez un algorithme qui effectue la lecture d’un entier p et détermine s’il est premier ou
non.

2.Deux nombres entiers n et m sont qualifiés d’amis, si la somme des diviseurs de n est égale
à m et la somme des diviseurs de m est égale à n. On ne compte pas comme diviseur le
nombre lui même et 1.
• Exemple : les nombres 48 et 75 sont deux nombres amis puisque :

 les diviseurs de 48 sont : 2, 3, 4, 6, 8, 12, 16, 24 et 2 + 3 + 4 + 6 + 8 + 12 + 16 + 24 = 75.


 Les diviseurs de 75 sont : 3, 5, 15, 25 et 3 + 5 + 15 + 25 = 48.

Ecrire un algorithme qui permet de déterminer si deux entiers n et m sont amis ou non.

Pr. Er-rajy Latifa


Exercice 6.

1. Un nombre entier p (différent de 1) est dit premier si ses seuls diviseurs positifs sont 1 et p.
Ecrivez un algorithme qui effectue la lecture d’un entier p et détermine s’il est premier ou
non.

Solution :
Algorithme NomberPermier
Var i, p : entier
Début
Ecrire(" Veuillez saisir la valeur de p différent de 1: ")
Lire(p)
i2
TantQue (p % i <>0) et (i<= p))
i i + 1
FinTantQue
Si (i = p) alors
Ecrire(" Le nombre ", p, "est pas premier ")
Sinon
Ecrire(" Le nombre ", p, " n’est pas premier ")
FinSi
Fin Pr. Er-rajy Latifa
Exercice 6.

2. Deux nombres entiers n et m sont qualifiés d’amis, si la somme des diviseurs de n est
égale à m et la somme des diviseurs de m est égale à n. On ne compte pas comme diviseur le
nombre lui même et 1.
• Exemple : les nombres 48 et 75 sont deux nombres amis puisque :

 les diviseurs de 48 sont : 2, 3, 4, 6, 8, 12, 16, 24 et 2 + 3 + 4 + 6 + 8 + 12 + 16 + 24 = 75.


 Les diviseurs de 75 sont : 3, 5, 15, 25 et 3 + 5 + 15 + 25 = 48.

Ecrire un algorithme qui permet de déterminer si deux entiers n et m sont amis ou non.

Vérifier que Sn= m et Sm=n

Pr. Er-rajy Latifa


Solution :
Algorithme NombresAmis
Var i, n, m, Sn, Sm : entier
Début
Sn0
Sm0
Ecrire("Veuillez saisir deux nombres entier:  ")
Lire(n,m)
Pour i allant de 1 à n-1
Si (n%i = 0) alors
Sn=Sn+i
FinSi
FinPour
Pour i allant de 1 à m-1
Si (m%i =0) alors
Sm= Sm +i
FinSi
FinPour
Si (Sn=m) et (Sm = n) alors
Ecrire(n, " et ", m, "sont amis ")
Sinon
Ecrire(n, "et ", m, " ne sont pas amis ")
FinSi
Fin Pr. Er-rajy Latifa