0% ont trouvé ce document utile (0 vote)
2K vues21 pages

Cours Informatique S2 Version Complete PDF

Transféré par

mortada
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2K vues21 pages

Cours Informatique S2 Version Complete PDF

Transféré par

mortada
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique : Introduction

Exemple 1.1 : Mode d’emploi d’un télécopieur

Extrait du mode d’emploi d’un t´el´ecopieur concernant l’envoi d’un document.


1. Ins´erez le document dans le chargeur automatique.
2. Composez le numero de fax du destinataire `a l’aide du pave numérique.
3. Enfoncez la touche envoi pour lancer l’´emission.
Ce mode d’emploi précise comment envoyer un fax. Il est compose d’une suite ordonnée
d’instructions

Algorithme ?
Un algorithme est une suite ordonnée d’instructions qui indique la démarche à suivre pour
résoudre une série de problèmes équivalents
Un algorithme exprime la structure logique d’un programme informatique et de ce fait est
indépendant du langage de programmation utilise. Par contre, la traduction de l’algorithme
dans un langage particulier dépend du langage choisi et sa mise en oeuvre dépend également
de la plateforme d’exécution.

Algorithmique ?
L’algorithmique est la science des algorithmes.
L’algorithmique s’intéresse `a l’art de construire des algorithmes ainsi qu’`a caractériser leur
validite, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.

Démarche et méthodologie :

L’écriture d’un programme obéit d’une façon général aux trois étapes majeures dans les
sciences de l’ingénieur, à savoir :

Spécification LE QUOI
Conception LE COMMENT
Réalisation LA SOLUTION

Avant de penser à développer un programme, on doit commencer par spécifier le problème,


en le formalisant, et aussi identifier les données d’entrées et de sortie (Les Input et les
Output).
Dans l’étape conception, on s’intéresse à l’écriture des algorithmes et leur validation.
Dans la phase réalisation, on traduit les algorithmes en programmes, l’éxécution de ses
derniers sur ordinateurs fournit la solution.
Les conventions d’un algorithme

Historiquement, plusieurs types de notations ont représenté des algorithmes. Il y a eu


notamment une représentation graphique, avec des carrés, des losanges, etc. qu’on
appelait des organigrammes. Aujourd’hui, cette représentation est quasiment
abandonnée, pour deux raisons.
D’abord, parce que dès que l’algorithme commence à grossir un peu, ce n’est plus
pratique du tout du tout. Ensuite parce que cette représentation favorise le glissement vers
un certain type de programmation, dite non structurée (nous définirons ce terme plus
tard), que l’on tente au contraire d’éviter. C’est pourquoi on utilise généralement une
série de conventions appelée «pseudocode », qui ressemble à un langage de
programmation authentique dont on aurait évacué
la plupart des problèmes de syntaxe. Ce pseudo-code est susceptible de varier légèrement
d’un
livre (ou d’un enseignant) à un autre. C’est bien normal : le pseudocode, encore une fois,
est purement conventionnel ; aucune machine n’est censée le reconnaître
Les Structures de Données : Notions de base

1- Présentation Sommaire de la Structure d’un Algorithme

Dans un algorithme, on trouve deux parties essentielles :


 Une partie déclarative contenant tous les objets qui seront impliqués par les
différentes actions de l’algorithme (constantes, types, variables, etc.).
 Une partie réservée aux actions (en programmation, on dit les instructions) ;
elle est délimitée par les deux mots-clés Début et Fin.

En outre, un algorithme est caractérisé par son nom qui devrait être significatif.

Remarque :
Le nom d’un algorithme et d’une manière générale le nom d’un objet impliqué dans les
actions de l’algorithme doivent respecter lors de leur définition les règles d’un
identificateur qui disent :
Un identificateur doit être significatif.
Un identificateur doit être écrit sur 8 positions (Taille <= 8 caractères).
Un identificateur doit commencer obligatoirement par une lettre.
Un identificateur ne doit pas comporter le caractère « espace ».
Un identificateur ne doit pas comporter de caractères spéciaux autre que le tiret de
soulignement (_).
Un identificateur doit être unique dans un algorithme

2- Notion de Variable
On rappelle que l’exécution d’un programme doit impliquer les données qui sont liées à
ce programme. Ces données se trouvent à ce moment au niveau de la mémoire centrale et
chacune occupe une case mémoire.
Une variable est donc un espace mémoire qui va contenir des données au fur et à mesure
que le programme avance dans son exécution. Cependant, à un instant donné, une
variable ne peut contenir qu’une seule donnée (valeur).

Remarques :
- une variable est caractérisée par son nom qui doit être significatif et respecter les
règles d’un identificateur.
- une variable est également identifiée par son adresse en mémoire centrale ; cette
adresse sera intéressante à un stade avancé de l’algorithmique (les pointeurs).
- une variable est caractérisée par son contenu : les valeurs qu’elle peut prendre lors de
l’exécution d’un programme.
- une variable possède un type c’est à dire un ensemble contenant toutes les valeurs
possibles qu’elle peut prendre.

3- Notion de Type
Une variable utilisé dans un algorithme ne peut prendre qu’un ensemble de valeurs
connues à
l’avance ; toute variable possède un domaine de définition. En terme informatique, ce
domaine
est appelé le Type de la variable.

Un type est alors caractérisé par :


ses valeurs
les opérations qui peuvent s’effectuer sur des variables ayant ce type.

On distingue deux familles de types :


les types simples : ce sont des types qui sont supportés et reconnus par la majorité des
langages de programmation. Lors de l’écriture de l’algorithme ou du programme, ce n’est
pas la peine de les déclarer dans la partie déclarative réservée aux types.
Les types composés ou complexes : ce sont des types qui sont construits à partir des
types
simples mais qu’il faut les déclarer dans la partie réservée aux types : tableaux, chaînes,
enregistrements, etc.

4- Notion de Constante
Une constante est une variable qui ne change pas de valeurs lors de l’exécution d’un
programme.
Par exemple :
La constante PI = 3.14
La constante e=2.7
Les Types Simples

les types simples sont au nombre de quatre :

Le Type Entier.
Le Type Réel.
Le Type Caractère.
Le Type Booléen ou Logique.

I Le Type Entier

1. Définition
Le type Entier comprend un sous ensemble fini de nombres entiers, dont la taille varie en
fonction des performances techniques de la machine et celles du langage de
rogrammation utilisé.

2. Représentation Algorithmique
Le type entier étant reconnu automatiquement, il n’est pas nécessaire de le déclarer dans
la partie des types. Il suffit d’indiquer devant le nom de la variable son type.

Var
Nomvar : Entier (Nomvar étant la variable qui sera utilisée
dans l’algorithme)

Si on plusieurs variables en même temps, ce n’est pas la peine de les déclarer


séparément ; on peut les regrouper en les séparant par une virgule.

Var
Nomvar1, Nomvar2, ……., NomvarN : Entier

3. Les Opérations de base sur le type Entier


Sur le type Entier, on distingue deux catégories d’opérations :
les opérations arithmétiques
les opérations algorithmiques telles que la lecture, l’écriture, etc .

II- Le Type Réel


1. Définition
Le type Réel comprend un sous ensemble fini de nombres réels, dont la taille varie en
fonction des performances techniques de la machine et celles du langage de
programmation utilisé.

2. Représentation Algorithmique
Le type Réel étant reconnu automatiquement, il n’est pas nécessaire de le déclarer dans la
partie des types. Il suffit d’indiquer devant le nom de la variable son type.

Var
Nomvar : Réel (Nomvar étant la variable qui sera utilisée dans l’algorithme)

Si on plusieurs variables en même temps, ce n’est pas la peine de les déclarer séparément;
on peut les regrouper en les séparant par une virgule.

Var
Nomvar1, Nomvar2, ……., NomvarN : Réel

Les Opérations de base sur le type Réel


Sur le type Réel, on distingue deux catégories d’opérations :
les opérations arithmétiques
les opérations algorithmiques telles que la lecture, l’écriture, etc

III- Le Type Caractère

1. Définition
Le type Caractère est ensemble de caractères comportant :
les 26 lettres alphabétiques en majuscules (‘A’ jusqu’à ‘Z’)
les 26 lettres alphabétiques en minuscules (‘a’ jusqu’à ‘z’)
les 10 chiffres arabes (‘0’ jusqu’à ‘9’).
quelques caractères spéciaux.

Remarque :
Chaque valeur d’un caractère est délimitée par deux apostrophes ’ ’.

2. Représentation Algorithmique
Le type Caractère étant reconnu automatiquement, il n’est pas nécessaire de le déclarer
dans la partie des types. Il suffit d’indiquer devant le nom de la variable son type.

Var
Nomvar : Caractère (Nomvar étant la variable qui sera
utilisée dans l’algorithme)

Si on plusieurs variables en même temps, ce n’est pas la peine de les déclarer séparément;
on peut les regrouper en les séparant par une virgule.
Var
Nomvar1, Nomvar2, ……., NomvarN : Caractère

Remarque :
Une variable de type caractère contient à un instant donnée un seul caractère. À défaut, on
ne parle plus de caractère mais de chaîne de caractères

3. Ordre d’apparition des éléments du type Caractère


L’apparition des différentes valeurs du type caractère suit l’ordre suivant :

4. Les Opérations de base sur le type Caractère


Sur le type Caractère, on distingue deux catégories d’opérations :
les opérations propres aux caractères
es opérations algorithmiques telles que la lecture, l’écriture, etc.

Remarques :
Les opérations successeur et prédécesseur respectent l’ordre d’apparition des caractères
mentionné ci-dessus.
la fonction successeur et prédécesseur s’appliquent sur des variables de type caractère ou
des constantes caractères.
Exemple : succ (‘A’) envoie ‘B’ par contre succ (A) avec A variable contenant le
caractère ‘C’ renvoie ‘D’.

IV. Le Type Booléen ou Logique

1. Définition
Un type booléen dit également logique est un ensemble qui est constitué de deux éléments
dont la
valeur de l’un contredit celle de l’autre.
Les valeurs attribuées à ces éléments varient d’un contexte à un autre.
Pour représenter des nombres binaires, on déclare un type booléen formé de 0 et 1.
Pour représenter une variable réponse, on déclare un type booléen formé de Oui et Non.
Pour représenter une variable logique, on déclare un type booléen formé de Vrai et Faux.
Pour représenter l’état d’une lampe, on déclare un type booléen formé de Allumée et
Éteinte.
Pour représenter l’état d’un interrupteur, on déclare un type booléen formé de Ouvert et
Fermé.
Var
Nomvar : Booléen (Nomvar étant la variable qui sera utilisée
dans l’algorithme)

Si on a plusieurs variables en même temps, ce n’est pas la peine de les déclarer


séparément on peut les regrouper en les séparant par une virgule.

Var
Nomvar1, Nomvar2, ……., NomvarN : Booléen

3. Opérateurs Logiques
Sur le type booléen, on applique des opérateurs logiques pour constituer une expression
logique ;
ces opérateurs sont
Non
Et
Ou
En les appliquant sur des variables booléennes, voilà ce que ça donne :

Exemple
Var2 va contenir la valeur faux

Algorithme Essai
Var Var1, Var2 : Booléen
Début
Var1 vrai
Var2 Non(Var1)
Fin.
Les Actions/ Les instructions Simples
On rappelle qu’un algorithme comporte deux parties : une partie déclarative et une partie
réservée aux actions. Parmi ces actions, on cite les actions simples qui couvrent l’action
de Lecture,l’action d’Écriture et l’action d’Affectation.

L’Action de Lecture
La lecture est une opération d’entrée qui s’effectue des périphériques d’entrée (clavier,
souris, stylo optique, etc.) vers la mémoire centrale. Elle permet à l’utilisateur
d’introduire les données au programme pour qu’il produise les résultats attendus.

Une action de Lecture est représentée par le terme ‘Lire’ ; elle peut concerner une
variable ou plusieurs variables. Pour une variable l’action de lecture ou encore la
primitive de lecture doit se présenter comme suit :

Lire (Nomvariable).

Pour plusieurs variables, deux formats de lecture peuvent être appliqués


soit une lecture de toutes les variables ensemble

Lire(Nomvariable1, Nomvariable2, ………., NomvariableN).

soit une lecture pour chaque variable et dans ce cas on a le schéma suivant

Lire(Nomvariable1)
Lire(Nomvariable2)
……
Lire(NomvariableN)

Remarques :
Il est interdit de lire une constante.
Si PI=3.14 déclarée comme constante, Lire (PI) est impossible.

Il est interdit de lire une expression arithmétique ou logique.


Lire (a+b) est impossible.
Il est interdit de lire un message .
Lire (‘Bonjour’) est impossible.
Dans certains problèmes à résoudre, certains étudiants trouvent parfois des difficultés
pour se décider s’ils vont lire la variable ou faire autre chose.
Dans ce qui suit, on va présenter les phrases ayant le contexte de lecture :
Saisir des données à partir du clavier : il s’agit d’une lecture.
Entrer des données à partir du clavier : il s’agit d’une lecture.
Introduire les données : il s’agit d’une lecture.
Exploiter les données stockées dans une disquette pour résoudre tel problème.
Écouter un morceau sonore revient à lire un fichier son.
L’Action d’Écriture
L’écriture est une opération de sortie (de la mémoire ou du microprocesseur vers les
périphériques de sortie). Elle permet à l’utilisateur d’afficher les résultats d’un
programme sur le(s) périphérique(s) de sortie, tels que : écran, imprimante, traceur, etc.

Une action d’écriture, parfois dite une primitive d’écriture peut se faire :
-sur une ou plusieurs variables,
-sur des constantes,
-sur des expressions arithmétiques et logiques,
-sur des messages.

Une action d’écriture peut être mixte, c’est à dire qu’elle regroupe des variables, des
constantes, des expressions et des messages.

a) Écriture sur une ou plusieurs variables

Pour une variable l’action d’écriture ou encore la primitive d’écriture doit se présenter
commesuit :

Écrire(Nomvariable).

Écrire(Nomvariable) consiste à afficher le contenu de la variable Nomvariable à l’écran.

Pour plusieurs variables, deux formats d ‘écriture peuvent être appliqués :


soit une écriture de toutes les variables ensemble

Écrire (Nomvariable1, Nomvariable2, ………., NomvariableN).

soit une écriture pour chaque variable et dans ce cas on a le schéma suivant :

Écrire (Nomvariable1)
Écrire (Nomvariable2)
……
Écrire (NomvariableN)

b) Écriture d’une constante

C’est une opération qui consiste à afficher la valeur d’une constante


Écrire(Valconstante) ou
Écrire(Nomconstante), sachant que cette constante contient la valeur
Valconstante.
Exemples
Écrire(3.14)
Écrire(PI)

c) Écriture d’une expression arithmétique ou logique


Dans certains programmes, et en vue d’optimiser le nombre de variables ainsi que le
nombre d’instructions, on réalise directement une primitive d’écriture sur une expression.
Écrire(expression)
Exemples :
Écrire(a+b*c) avec a,b,c des entiers
Écrire(a ou b et c) avec a,b,c des booléens

Application

Écrire un algorithme qui calcule la somme de deux entiers a et b saisis à partir du clavier.

Algorithme Somme
Var a,b,S : entier
Début
Lire(a)
Lire(b)
S a+b
Écrire(S)
Fin.

Algorithme Somme
Variable a,b : entier
Début
Lire(a)
Lire(b)
Écrire(a+b)
Fin.

d) Écriture d’un message


L’utilisation des messages dans un programme ne fait que faciliter son utilisation ; il
devient de plus en plus convivial. Un message est une suite de caractère ayant un sens et
délimité par deux apostrophes.
Écrire(‘message’)

Exemple :
Écrire(‘Bonjour’) : cette opération affichera à l’écran le mot Bonjour.

Remarque
Quelle est la différence entre Écrire(‘Bonjour’) et Écrire(Bonjour) ?
Écrire(‘Bonjour’) : cette opération affichera à l’écran le mot Bonjour.
Écrire(Bonjour) : cette opération affichera à l’écran le contenu de la variable Bonjour.

e) Écriture Mixte
Dans certains programmes, l’affichage doit être très clair. Par exemple, on veut afficher la
ligne suivante : Le Montant de la Facture est = 1250 Dinars.
Pour obtenir un tel affichage, on doit présenter l’action d’écriture comme suit :
Écrire(‘Le Montant de la Facture est = ‘, MNTFACT, ‘DA’) où
MNTFACT est la variable qui contient ce montant. On parle dans ce cas d’écriture mixte.
L’Affectation
On utilise des variables pour manipuler des données. Il faut donc que ces variables
contiennent préalablement des valeurs, pour ce faire on leur affecte une valeur.
L’affectation se fait de la manière suivante :

Représentation Algorithmique :

Nomvariable Valeur ou bien Nomvariable := Valeur

Exemple
Écrire un algorithme qui permet de saisir deux entiers puis les permute.

C’est un problème classique ; imaginez que vous désiriez échanger le contenu d’un plat
dans un autre plat qui est déjà plein, que faut-il faire ? il suffit de chercher un plat vide et
procéder à l’échange. De même dans ce problème, on va utiliser une variable dite
intermédiaire.

Algorithme permute2
Var a,b,x : entier
Début
Lire (a)
Lire (b)
x:= a
a:= b
b :=x
Écrire(a)
Écrire(b)
Fin.

Les Expressions Numériques


Une expression numérique peut contenir les éléments suivants :
des constantes,
des variables,
des opérateurs numériques : +,-,*,/, DIV,MOD
des parenthèses.
Cette expression ne peut pas apparaître dans un programme toute seule ; elle doit être
affectée à
une variable ayant le même type que cette expression.
Exemples d’expression :
A+B
3+2-B
(A+B)*C-2
C
Dans un programme, on trouve X := (A+B)*C-2 par exemple.
Si on veut évaluer le résultat de X, comment doit on procéder ?
Il ne faut pas se hasarder et même si vous allez obtenir un résultat, il se peut qu’il soit
erroné !!?

En fait, il y a une certaine priorité à respecter au niveau des opérateurs arithmétiques :


Priorité 1 : Fonctions (à voir plus tard).
Priorité 2 : Parenthèses.
Priorité 3 : Multiplications et Divisions.
Priorité 4 : Additions et Soustractions.

Remarque :
Si dans une expression, on rencontre des opérateurs ayant la même priorité, on
commencera par l’opérateur situé le plus à gauche dans l’expression.
Les Structures Conditionnelles

En algorithmique, sans structures de contrôles les instructions/actions s’éxécutent d’une


façon séquentielle. Pour casser cette squentialité on utilise les structures de contrôle, telles
la conditionnelle.

La résolution certains problèmes ne peut se faire que sous condition et


pour chaque condition un traitement spécifique sera déclenché et exclura les traitements
des autres conditions. On doit alors trouver une autre structure algorithmique capable de
prendre en charge les différents traitements relatifs aux différentes conditions et d’en
déclencher exclusivement le traitement qui respecte une certaine condition.
Une telle structure est appelée Structure Conditionnelle. On distingue plusieurs formes :

-Structure Conditionnelle à un seul choix.


-Structure Conditionnelle à deux choix.
-Structure Conditionnelle imbriquée.
-Structure Conditionnelle à choix multiple.

Conditionnelle à un Choix
Il s’agit d’un traitement qui ne peut s’exécuter que si une condition logique est satisfaite ;
dans le cas contraire, rien ne devrait se passer.

syntaxe

Si (Condition_Satisfaite) Alors <Traitement> Finsi

Exemple1 : On veut octroyer une prime pour les salariés mariés ayant plus de 3 enfants.

SI (Nbr_Enfants >= 3) ALORS Salaire Salaire + Prime FinSi

Exemple2 :
Écrire un algorithme qui permet de résoudre une équation de 1er degré :
ax+b=0 en supposant que a >0.

Algorithme Equation1
Var a,b,x : réel
Début
Lire(a)
Lire(b)
Si ( a > 0 ) Alors x -b/a Finsi
Écrire(x)
Fin

Conditionnelle à deux Choix


Il s’agit d’un traitement qui ne peut s’exécuter que si une condition logique est satisfaite ;
dans le cas contraire, un autre traitement sera exécuté.
syntaxe

Si (Condition_Satisfaite)
Alors <Traitement1>
Sinon <Traitement2>
Finsi

Avec <Traitement1> et <Traitement2> comportant une suite finie d’actions simples ou


composées.

Exemple1 :
Écrire un algorithme qui permet de résoudre une équation de 1er degré :
ax+b=0 avec b non nul.

Algorithme Equation1
Var a,b,x : réel
Début
Lire(a)
Lire(b)
Si ( a > 0 )
Alors
x -b/a
écrire(x)
Sinon
Écrire(‘Pas de Solutions’)
Finsi
Fin

Exemple2 :

Ecrire un algorithme Mois qui lit un numéro de mois et affiche son nom respectif.

Algorithme Mois
Var NumMois : entier
DEBUT
Lire (NumMois)
SI NumMois = 1
ALORS Ecrire(‘Janvier’)
SINON SI NumMois = 2
ALORS Ecrire(‘Février’)
SINON

SINON SI NumMois = 1
ALORS Ecrire(‘Décembre’)
SINON Ecrire(‘Erreur’)
FINSI

FINSI
FINSI
FIN
Conditionnelle à Choix Multiple
Partant de l’énoncé précédant, on remarque l’importance de la longueur et la complexité
de cet algorithme, on y trouve trop de conditions imbriquées. La solution est l’utilisation
d’une autre structure conditionnelle appelée structure conditionnelle à choix multiple. Par
définition, une structure à choix multiple est une structure qui à partir d’un choix va se
positionner sur le bon traitement sans passer par les autres ; on la note par SELON.

syntaxe

Selon (nomvariable) Faire


Val1 : <Traitement1>
Val2 : <Traitement2>
…..
ValN : <TraitementN>
Sinon <Traitement_erreur>
FinSelon

Remarques :
nomvariable est appelée Sélecteur ou Variable de choix.
Le sélecteur doit être déclaré et comporter une valeur avant d’être impliqué dans le
Selon.
Si pour différentes valeurs, le traitement est le même, on peut les regrouper ensemble
en les séparant par des virgules :
Val1, Val2, .., ValK : <Traitement>
Val1, Val2, …., ValN doivent être de même type que nomvariable.
Les valeurs Val1,…., ValN ne peuvent avoir que les types suivants : Entier, Caractère,
Intervalle d’entiers, Intervalle de caractères.( qu’on appelle les types énumérés)
les traitements relatifs aux valeurs peuvent comporter également d’autres structures
conditionnelles.

Exemple :
Reprendre l’algorithme mois :

Algorithme Mois
Var NumMois : entier
DEBUT
Lire (NumMois)
DEBUT
SELON NumMois FAIRE
1 : Ecrire(‘Janvier’)
2 : Ecrire(‘Février’)

12 : Ecrire(‘Décembre’)
SINON: Ecrire(‘Erreur…’)
FINSELON
FIN
Les Structures Répétitives : Les Boucles

Supposons l’algorithme qu’on veut afficher les 10 premiers entiers


positifs. Si on utilise le traitement le plus simple –c'est-à-dire le traitement séquentiel– on
aura:

Algorithme affiche
Début
Ecrire(0)
Ecrire(1)
Ecrire(2)

Ecrire(9)
Fin

Cette méthode reste raisonnable pour un petit nombre mais si on veut afficher les n
premiers entiers avec n = 1000, l’algorithme devient alors absurde et impossible à écrire.
Pour pouvoir écrire un tel algorithme, on aura besoin d’une structure qui permet de
répéter une instruction ou un groupe d’instructions. On doit alors utiliser des structures
répétitives.

Une structure répétitive est une structure qui répète un même traitement autant de fois que
l’on veut pour vue que la condition d’exécution soit satisfaite. Cette structure s’arrête
lorsque
cette condition n’est plus vérifiée. Il existe trois schémas de représentation d’une structure
répétitive à savoir :

-le schéma Répéter


-le schéma Tant que
-le schéma Pour

L’utilisation d’un tel ou tel schéma dépend essentiellement de la nature du problème à


résoudre.

1- Schéma Itératif avec Répéter

La boucle Répéter permet de rentrer dans la boucle quelque soit la condition et réitère
l’exécution jusqu'à ce que la condition soit vérifiée.

Syntaxe :
Répéter
<Traitement>
<mise_à_jour_condition_arrêt>
Jusqu'à (Condition_Arrêt_Atteinte)

Remarques :
-Dans une boucle Répéter, le traitement est exécuté au moins une seule fois quelle que
soit la valeur de la condition d’arrêt.
-Dans une boucle Répéter, on parle de condition d’arrêt ; quant elle est atteinte, on sort de
cette boucle.
-Il est indispensable d’initialiser correctement les variables de la condition d’arrêt et de
les mettre à jour à la fin de chaque itération : condition nécessaire et obligatoire pour
pouvoir reboucler.
-La structure Répéter est conseillée surtout pour les problèmes indiquant dans leur énoncé
une condition d’arrêt.

Exécution de la Boucle :
On suppose qu’on est déjà entrain d’exécuter un algorithme, et on a rencontré une boucle
Répéter.
1ère étape : on entre directement dans le traitement associé à Répéter et on l’exécute.
2ème étape : on met à jour les variables impliquées dans la condition d’arrêt.
3ème étape : on teste la condition d’arrêt : si elle n’est pas atteinte, on revient à la ère étape,
sinonon passe à la 4ème étape.
4ème étape : la condition d’arrête étant atteinte, on sort de la boucle Répéter et on continue
l’exécution du programme à partir de la 1ère instruction qui vient après Jusqu’à

Remarque : Si la condition d’arrêt reste inchangée (non mise à jour), on risque de boucler
indéfiniment et par conséquent le programme se bloque.

Algorithme afficher
Var I,N : entier
Début
Lire (N)
i 0
Répéter
Ecrire(i)
i i + 1
Jusqu'à i = N
Fin

2- Schéma Itératif avec Tant que


La boucle Tant que permet d’exécuter le corps de la boucle lorsque la condition
d’exécution est vérifiée ; on s'arrêtera dès que la condition n’est plus vérifiée.

Syntaxe :
Tant que (Condition_exécution_vérifiée)
Faire
<Traitement>
<mise_à_jour_condition_exécution>
Fin Tant que

Remarque :
Dans une boucle Tant que, le traitement associé à la boucle peut ne pas être exécuté: la
condition d’exécution n’est pas vérifiée dès le départ.
-Dans une boucle Tant que, on parle de condition d’exécution ; quant elle n’est plus
vérifiée, on sort de cette boucle.
-Il est indispensable d’initialiser correctement les variables de la condition d’exécution et
de les mettre à jour à la fin de chaque itération : condition nécessaire et obligatoire pour
pouvoir reboucler.
-La mise à jour de ces variables peut se faire soit par une lecture, soit par une affectation.
-La structure Tant que est conseillée surtout pour les problèmes indiquant dans leur
énoncé une condition d’exécution.
-Une condition d’exécution est la négation de la condition d’arrêt.

Exécution de la boucle Tanque


On suppose qu’on est déjà entrain d’exécuter un algorithme, et on a rencontré une boucle
Tant
que.
On suppose également que les variables impliquées dans la condition d’exécution sont
initialisées.
1ère étape : On teste si la condition d’exécution est vérifiée ou non : si oui alors aller à la
2ème tape sinon aller à la 5ème Étape.
2ème étape : On exécute le traitement associé à la boucle.
3ème étape : On met à jour les variables de la condition d’exécution.
4ème étape : Aller à la 1ère étape.
5ème étape : On sort de la boucle et on continue l’exécution du programme à partir de la
première instruction qui vient après Fin Tant que.

Remarque : Si la condition d’exécution reste inchangée (non mise à jour), on risque de


reboucler indéfiniment et par conséquent le programme se bloque.

Exemple :
Algorithme afficher
Var I,N : entier
Début
Lire (N)
i 0
Tant que i<N Faire
Ecrire(i)
i i + 1
Fin tant que
Fin
3- Le Schéma Itératif avec Pour
La boucle Pour est une structure répétitive qui itère le même traitement pour une plage de
valeurs entières comprises entre une borne inférieure et une borne supérieure. La mise à
jour étant automatique, l’arrêt du traitement de la boucle Pour se réalise lorsqu’on dépasse
l’une des bornes.

Pour I allant de Val_initiale jusqu’à Val_finale, [Pas = Val_pas] Faire


<Traitement>
Fin Pour

Avec
I : variable de type entier servant de compteur.
Val_initiale : valeur initiale que va prendre I.
Val_finale : valeur finale que prendra I.
Pas : contient une valeur entière indiquent la valeur de l’incrémentation de I (mise à jour
de I ).

Exécution de la boucle Tanque

La boucle itérative Pour … est utilisée quand le nombre d'itérations est connu à
l’avance, on se sert d'un compteur (ici I) qui sera initialisé automatiquement à la valeur
initiale et sera incrémenté de la valeur du pas, jusqu'à la valeur finale.

Remarques :
-Le traitement de la boucle Pour est exécuté pour toutes les valeurs comprises entre
Val_initiale et Val_finale.
-Le sens de la boucle Pour peut être croissant (Pas > 0) ou décroissant (Pas < 0).
-Si la valeur du Pas = 0, on sera en présence d’une boucle infinie.
-L’incrémentation de I est automatique en fonction de la valeur du Pas.
-Dans une boucle Pour, on ne peut représenter qu’un seul compteur : on ne peut pas avoir
Pour I de … à … et J de … à …. ????
-Dans une boucle Pour, si le Pas n’est pas indiqué, il est égal à 1 par défaut.
-La boucle Pour est conseillée si le nombre d’itérations à faire est connu à l’avance

Exécution de la boucle Pour


On suppose qu’on est déjà entrain d’exécuter un algorithme, et on a rencontré une boucle
Pour.

1ère étape : Affectation de Val_initiale au compteur I et vérification si cette valeur est


dansl’intervalle ou non.
2ème étape : Si la valeur de I est dans l’intervalle alors aller à la 2ème étape, sinon aller à la
5èmeétape.
3ème étape : Exécution du traitement de la boucle.
4ème étape : Incrémentation automatique de la valeur de I en fonction de la valeur du Pas
(I I +Val_pas ou I I – Val_pas) et retour à la 2ème étape.
5ème étape : Sortie de la boucle et suite de l’exécution du programme à partir de la
première instructionqui vient après Finpour.
Exemple :
Algorithme afficher
Var I,N : entier
Début
Lire (N)
Pour i Allant De 0 Jusqu’à (N-1) Faire
Ecrire(i)
Fin Pour
Fin

Exercice : Le calcul de la factorielle


En utilisant les 3 schémas itératifs, on vous demande d’écrire les algorithmes
correspondants au calcul du factoriel d’un entier N donné.

Solution : avec le schéma Pour


Algorithme Factoriel
Var N,I,F : entier
Début
Lire(N)
F 1
Pour I allant de 1 jusqu’à N Faire
F F * I
FinPour
Écrire(F)
Fin

Solution : avec le schéma Tant que


Algorithme Factoriel
Var N,I,F : entier
Début
Lire(N)
F 1
I 1 (* initialisation *)
Tant que (I <= N) Faire
F F * I
I I + 1 (* mise à jour *)
FinTantque
Écrire(F)
Fin

Solution : avec le schéma Répéter


Algorithme Factoriel
Var N,I,F : entier
Début
Lire(N)
F 1
I 1 (* initialisation *)
Répéter
F F * I
I I + 1 (* mise à jour *)
Jusqu’à (I > N)
Écrire(F)
Fin

Vous aimerez peut-être aussi