Vous êtes sur la page 1sur 37

Instructions répétitives (Les

boucles)

 Exemple 3: Ecrire un algorithme qui lit les noms des athlètes désirant
participer à un marathon et s’arrête lorsqu’il rencontre deux noms
consécutifs identiques. L’algorithme doit afficher à la fin le nombre des
participants.

Nbre_noms_lus:
Noms lus
nbr

 Entrées: Ancien nom (anc_nom) et nouveau nom (nov_nom).

 Sorties : Nombre de participants (Nbr).


1
Instructions répétitives (Les
boucles)

 Algorithme Nbre_noms_lus;
Var
anc_nom, nov_nom: chaine de 15
caractères;
Nbr: entier;
Début
 Exemple 3: Lire (anc_nom);
Lire (nov_nom);
Nbr 2;
Tantque anc_nomnov_nom Faire
anc_nom nov_nom;
Lire (nov_nom);
Nbr Nbr+1;
FinTantque
Fin 2
Instructions répétitives (Les
boucles)

- L’instruction Répéter…jusqu’à:

Répéter
Instructions
Jusqu’à Condition

3
Instructions répétitives (Les
boucles)

- L’instruction Répéter…jusqu’à:

 Les instructions délimitées par Répéter et jusqu’à seront exécutées jusqu’à


ce que la condition soit vérifiée (valeur booléenne Vrai).

 Le test est effectuée à la fin de la boucle, donc les instructions sont


exécutées au moins une fois même si la condition est fausse dés l’entrée de
la boucle.

4
Instructions répétitives (Les
boucles)

- Exemple 4:

 Dans un cinéma, on désire calculer la moyenne d’âges de personnes


s’intéressant à voir un film particulier.

 Pour finir, l’utilisateur doit répondre par ‘N’ à la question posée par
l’algorithme: « Encore une autre personne (O/N)? »

 On doit également afficher la moyenne d’âges des personnes à l’écran.

5
Instructions répétitives (Les
boucles)

- Exemple 4:

age Moyenne_ages M_age

 Entrées: Ages de personnes (age).

 Sorties : Nombre de participants (Nbr).

6
Instructions répétitives (Les
boucles)

- Exemple 4:

   Objets intermédiaires: La somme des ages : S_age.


Compteur du nombre de personnes: NP
Réponse à la question: rep

 Formules : S_age S_age + age


NP NP + 1, jusqu’à rep= ‘N’
M_age S_age/NP

7
 Algorithme Moyenne_ages;
Var
Age, S_age, NP: entiers;
M_age: réel;
rep : caractère;
Début
S_age 0;
NP 0; Bloc d’initialisation Bloc de processus
Répéter itératif
Lire (age);
 Exemple 4: NP NP+1;
S_age S_age + age;
Ecrire (‘Encore une autre personne (O/N)’);
Lire (rep);
Jusqu’à rep= ‘N’;
M_age S_age/NP; Bloc de processus
Ecrire (M_age); itératif
Fin
Bloc de test de
continuation 8
Instructions répétitives (Les
boucles)

- Exemple 5:

 Ecrire un algorithme permettant de calculer la somme et la moyenne des N


premiers nombres entiers.
S= 1+ 2+ 3+…+N

S
N Somme_Moyenne
Moy

9
Instructions répétitives (Les
boucles)

- Exemple 5:

   Entrées: Le nombre N

 Sorties: La somme S et la moyenne M

 Formules : S S + i, i=1 jusqu’à N fois


Moy S/N

Dans ce cas, on a besoin d’un compteur i qui doit s’ajouter à chaque fois à
et variant entre 1 et N.
10
 Algorithme Somme_Moyenne;
Var
N, S, i: entiers;
Moy: réel;
Début
Lire (N);
S 0;
 Exemple 5: i 0;
Répéter
i i + 1;
S S + i;
Jusqu’à i= N;
Moy S/N;
Ecrire (S);
Ecrire (Moy);
Fin

11
Instructions répétitives (Les
boucles)

- Deuxième cas: nombre d’itération est connu à l’avance


- Lorsque le nombre d’itération est connu à l’avance, on utilise
l’instruction Pour…Faire…FinPour.

 Pour Variable de contrôle borne1 à borne2 Faire


Instructions;
FinPour

- Remarque: Lorsque borne1 est inférieur à borne2, il s’agit d’une boucle


progressive (incrémentation). Dans le cas contraire, il s’agit d’une boucle
régressive (décrémentation).
12
Instructions répétitives (Les
boucles)

- Les instructions seront répétés un


  iB1 à B2
nombre connu de fois.
- En effet, la progression ou la régression
de la valeur de la variable de contrôle
Instructions (ici I) se fait automatiquement et
s’incrémente par défaut de 1.

Sortie de la boucle
- Remarques: La variable de contrôle doit être déclarée; et la valeur de la
variable de contrôle à la sortie de la boucle est la valeur finale (borne2).
13
Instructions répétitives (Les
boucles)

- Les étapes d’exécution de la boucle ‘Pour’ sont les suivantes:

1- Affectation de borne1 à la variable de contrôle.

2- Comparaison de la variable de contrôle à borne2, si elle est


supérieure alors fin de la boucle,

3- Sinon, exécution des instructions de la boucle,

4- Incrémentation de la variable de contrôle,

5- Aller à l’étape 2 14
Instructions répétitives (Les
boucles)

Début

I= B1

 Organigramme:
  IB2

Oui

Instructions

I= I + 1

Fin 15
Instructions répétitives (Les
boucles)

 Exemple 6:
- Ecrire un algorithme permettant de calculer la factorielle d’un nombre
entier positif N. N= 1 *2 * 3…* N

N Factorielle Fact

  - Entrées: Le nombre N
- Sorties : La factorielle: Fact
- Formules : Fact Fact * i, i allant de I jusqu’à N

16
 Algorithme Factorielle;
Var
N, i, Fact: entiers;
Début
Lire (N);
 Algorithme: Fact 1;
Pour i 1 à N Faire
Fact Fact * i;
FinPour i
Ecrire (Fact);
Fin

17
Début

Lire(N)

Fact=1

Pour i = 1
 Organigramme: àN

Fact= Fact
*i

Ecrire(Fact)

Fin
18
Instructions répétitives (Les
boucles)

 Exemple 7:
  - Pour avoir une idée sur le niveau des élèves d’une classe, on a décidé de
calculer la moyenne de la classe à partir des moyennes générales de tous
les élèves qui sont au nombre de 30.

NT Moyenne Moy

- Entrées: Les notes des élèves: NT - Intermédiaires: La somme des


- Sorties : La moyenne: Moy notes SN et le compteur i.
19
 Algorithme Moyenne;
Var
NT, SN, Moy: réels;
i: entier;
Début
SN 0;
 Exemple 7: Pour i 1 à 30 Faire
Ecrire (‘Entrer la moyenne de notes de l’élève N’, i);
Lire (NT);
SN SN+ NT;
FinPour i
Moy SN/30;
Ecrire (‘la moyenne de la classe est:’, Moy);
Fin

20
Exercices avec solutions

 Exercice 1: Entiers entre deux réels


- Ecrire un algorithme qui affiche tous les entiers compris entre deux réels
a et b, saisis au clavier.
- Schématisation du problème à l’aide d’un exemple.
Soit deux réels: X= 3.25 et Y= 8.32
Les nombres entiers compris entre ces deux réels sont: 4, 5, 6, 7 et 8.

3 4 5 6 7 8

X= 3.25 Y= 8.32
21
Exercices avec solutions

 Exercice 1: Entiers entre deux réels


- Les nombres entiers sont compris dans l’intervalle fermé [A, B].

- On va commencer d’abord par calculer les valeurs de 1 et B:


A= partie entière (X) +1
B= partie entière (Y)
- Faire une boucle entre A et B pour afficher les entiers.

- Le nombre d’itérations étant connu à l’avance, on va utiliser la boucle


POUR.

22
Exercices avec solutions

 Exercice 1: Entiers entre deux réels


- Objets d’entrée:
Premier nombre réel: X
Deuxième nombre réel: Y
- Objets de sortie:
Les nombres entiers compris entre X et Y

- Objets intermédiaires:
Partie entière de X+1: A
Partie entière de Y : Y
Compteurs :I
23
 Algorithme Entiers_entre_2_reels;
Var
X, Y: Réels;
A, B, I: Entiers;
Début
Ecrire (‘Entrer le premier nombre réel:’);
Lire (X);
Ecrire (‘Entrer le deuxième nombre réel:’);
 Algorithme: Lire (Y);
A= Ent(X) + 1;
B= Ent(Y);
Ecrire (‘Les nombres réels compris :’ ,X, ‘et:’, Y,’ Sont:’);
Pour i A à B Faire
Ecrire (i);
FinPour i
Fin

24
Exercices avec solutions

 Exercice 2: Maximum et minimum d’une liste

- Ecrire un algorithme permettant de retrouver le maximum, le minimum


ainsi que la somme d’une liste de nombres positifs saisis par l’utilisateur.
La fin de la liste est indiquée par un nombre négatif. La longueur de la
liste n’est pas limitée.
- Objets d’entrée: Les éléments de la liste X

- Objets de sortie: Le minimum de la liste: Min


Le maximum de la liste: Max
La somme de la liste: S
25
 Algorithme Min_Max_Liste; FinSi
Var FinSi
X, S, Min, Max: Réels; Ecrire (‘Entrer un nouvel
Début élément de la liste:’);
Ecrire (‘Entrer le premier élément de la Lire (X);
liste:’); FinTantque
Lire (X); Ecrire (‘Le minimum de la liste est : ‘,
S 0; Min);
Max X; Ecrire (‘Le maximum de la liste est :’,
Min X; Max);
Tantque X0 Faire Ecrire (‘La somme des éléments de la liste
S S + X; est’, S);
Si XMax Alors Fin
Max X;
Sinon
Si XMin Alors
Min X;

26
Exercices avec solutions

 Exercice 3: Calcul d’âge

- Ecrire un algorithme permettant de calculer l’âge d’une personne à partir


de son année de naissance. L’utilisateur peut recommencer autant de
fois qu’il désire.
- Objets d’entrée: Années de naissances: An_naiss
Confirmations : Conf
Volonté de recalculer: Rep
- Objets de sortie: Age de la personne: Age
- Objets constants: Année en cours: An_cours= 2021

- Formule: Age= An_cours- An_naiss


27
 Algorithme calcul_age;
Const
An_cours= 2008;
Var
An_naiss, age: entiers
Rep, Conf: caractère;
Début
Répéter
Répéter
Ecrire (‘Entrer une année de naissance:’);
Lire (An_naiss);
Ecrire (‘Confirmer votre saisie (O/N)?’);
Lire (Conf);
Jusqu’à (Conf=‘O’) et (An_naissAn_cours);
Age An_cours – An_naiss;
Ecrire (‘Votre âge est: ‘, age);
Ecrire (‘Voulez-vous calculer un autre âge (O/N)?’);
Lire (Rep);
jusqu’à Rep= ‘N’;
Fin 28
Exercices avec solutions

 Exercice 4: Calcul d’une somme


  - On donne un nombre réel X et un nombre entier N positif. Ecrire un
algorithme permettant de calculer la somme suivant:

- Objets d’entrée: Nombre réel : X


Nombre entier: N
Volonté de recalculer: Rep

29
Exercices avec solutions

 Exercice 4: Calcul d’une somme

- Objets de sortie: La somme :S

- Objets intermédiaires: Compteur: i,j


Puissance de X: PX
Factoriel de i: FI

- Formules: PX= PX * X
FI= FI * i
S= S + (PX/FI)

30
 Algorithme Somme;
Var
i, j, N: entier;
X, PX, S: réel;
FI: entier long;
Début
Ecrire (‘Calcul d’une somme’);
Ecrire (‘Entrer un nombre réel:’);
Lire (X);
Ecrire (‘Entrer un nombre entier:’);
Lire (N);
S1;
PX 1;
FI 1;
Pour i 1 à N Faire
(*Calcul de la puissance ième de X*)
PX PX * X;
(*Calcul du factoriel de i*)
FI FI * i;
(*Calcul de la somme S*)
S S +(PX/FI);
FinPour i
Ecrire (‘La somme est:’ , S);
Fin 31
Exercices avec solutions

 Exercice 5: Calcul d’un intégral


  - Considérant la fonction suivante:

  - Ecrire un algorithme permettant de calculer numériquement l’intégrale


de cette fonction sur un intervalle [a, b] inclus dans l’intervalle ∞[ en
utilisant la méthode des rectangles.

32
Exercices avec solutions

 Exercice 5: Calcul d’un intégral


  - Méthode de résolution:
Entrer les bornes a et b,
Entrer le nombre de subdivisions,
Calculer la subdivision dx,
Boucler sur l’intervalle [a, b] pour calculer l’intégrale sous forme
d’une somme de rectangles de largeurs et de hauteur f(x):
* dx

- Objets d’entrée:
Première borne: a
Deuxième borne: b
Nombre de subdivisions: N 33
Exercices avec solutions

 Exercice 5: Calcul d’un intégral


- Objets de sortie: L’intégrale I

- Objets intermédiaires:
Compteur: j
Subdivision: dx
Valeur de la fonction en X: FX

  - Formules:
FX= (2*X*LOG(X))/
X= X + dx
I= I+ FX*dx 34
 Algorithme Intégrale;
Var
N, a, b, x: entiers;
dx, FX, I: réels;
Début
Ecrire (‘Calcul d’une intégrale’);
Ecrire (‘Entrer la première borne:’);
Lire (a);
I 0;
Répéter
Ecrire (‘Entrer la deuxième borne:’);
Lire (b);
Jusqu’à ba
Répéter
Ecrire (‘Entrer le nombre de subdivisions:’);
Lire (N);
Jusqu’à N0
dx= (b-a)/N;
xa;
Tantque xb faire
FX (2*X*LOG(X))/[(𝟏+𝑿^𝟐)]^𝟐
I I + FX * dx ;
X X + dx ;
Fin tantque 35
Ecrire (‘L’intégrale de cette fonction entre: ‘a, et:’, b,’ est:’, I)
Exercices avec solutions

 Exercice 6: Nombre parfait


- Ecrire un algorithme qui détermine si un nombre est parfait. Un nombre
est parfait s’il est égal à la somme de ses diviseurs. Exemple: 28= 1+ 2+
4+ 7+ 14

36
Algorithme NombreParfait;
var
nbre,cpt,i: entier;
Début
Répéter
Ecrire('Entrez un nombre qui sera testé: ');
Lire(nbre);
Jusqu’à(nbre>=0);
cpt<-0;
Pour i de 1 à (nbre div 2)faire
Si(nbre mod i =0)alors
cpt<-cpt+i
Finsi
Finpour
Si(cpt=nbre)alors
Ecrire('Ce nombre est parfait')
Sinon
Ecrire('Ce nombre n est pas parfait');
Finsi
Fin 37

Vous aimerez peut-être aussi