Académique Documents
Professionnel Documents
Culture Documents
Introduction A L'Algorithme: Chapitre 1: Les Variables
Introduction A L'Algorithme: Chapitre 1: Les Variables
Un algorithme est une suite finie d’instructions que l’on applique à un nombre fini de
données dans un ordre précis pour arriver à un résultat.
11/01/2022 3
1.1. Qu’est ce qu’un algorithme ?
Exemples
a) Dans la vie de tout les jours b) Un programme de calcul
1- Le réveil sonne 1- Choisir un nombre
2- Je me lève 2- Lui ajouter 5
3- J’enlève mon pyjama 3- Multiplier la somme obtenue par
4- Je me douche le nombre choisi
5- Je m’habille 4- Ajouter 4 à ce produit
6- Je prépare le café 5- Ecrire le résultat
7- Je déjeune
8- Je prend mes affaires
9- J’ouvre la porte
10- Je sors
11- Je referme la porte
11/01/2022 4
1.1. Qu’est ce qu’un algorithme ?
Exemples
c) Une recette de cuisine
11/01/2022 5
1.1. Qu’est ce qu’un algorithme ?
Exemples
d) Trouver son chemin
Extrait d’un dialogue entre un touriste égaré et un autochtone.
– Pourriez-vous m’indiquer le chemin de la gare, s’il vous plait ?
– Oui bien sûr : vous allez tout droit jusqu’au prochain carrefour, vous prenez à gauche au carrefour et
ensuite la troisième à droite, et vous verrez la gare juste en face de vous.
– Merci.
Dans ce dialogue, la réponse de l’autochtone est la description d’une suite ordonnée d’instructions
(allez tout droit, prenez à gauche, prenez la troisième à droite) qui manipulent des
données (carrefour, rues) pour réaliser la tâche désirée (aller à la gare). Ici encore, chacun a
déjà été confronté à ce genre de situation et donc, consciemment ou non, a déjà construit un
algorithme dans sa tête (ie. définir la suite d’instructions pour réaliser une tâche). Mais quand
on définit un algorithme, celui-ci ne doit contenir que des instructions compréhensibles par celui
11/01/2022 8
1.2. A quoi servent les variable?
Illustration
Un ordinateur ou une calculatrice qui exécute un algorithme doit stocker
les données entrées par l’utilisateur et les résultats de ses calculs dans un
endroit de sa mémoire. C’est ce que l’on appellera une Variable.
Elle associe un nom à une valeur qui peut éventuellement varier au cours
du temps.
Valeur 2 Valeur 3 Valeur 5
11/01/2022 11
1.2.2. Les types de base
Il existe plusieurs type de variables, mais nous considérons cinq types de base :
Type Description Mot clé Exemple
Entier Permet de représenter des nombres entier 25, -318, 0, 15786
entiers signés ou pas signés.
Réel/décimal Permet de représenter des nombres en réel 45,78 ; -3,4 ;
virgule flottante.
59, 4*10 e -6
Caractère Permet de représenter des caractères. car 'a', 'b', '*','@', '! '
Chaîne de Permet de représenter des séquences chaîne ''informatique'',
caractère de caractères consécutifs.
''elle marche vite''
11/01/2022 12
1.2.3 Syntaxe de déclaration de variables
Syntaxe de déclaration d’une variable : NomVariable : Type
Variables :
a : entier volume : reel sexe : car test :booleen
age : entier prix_HT : reel nom : chaine trouve :bool
nombre : entier taille : reel prenom : chaine
Constantes :
PI : = 3,14
tempEbulEau : = 100
11/01/2022 13
1.3. L’instruction d’affectation
Syntaxe, signification et ordre des instructions
L’affectation est l’opération qui consiste à attribuer une valeur à une variable.
L’instruction d’affectation est notée := ou
Exemple : a 25
b:= -318 Valeur 25
PI := 3,14
N 59, 4*10 e -6
ville ‘m’
module ‟informatique”
Variable a
phrase ‟elle marche vite”
existe := VRAI
11/01/2022 15
Exercices d’application
Énoncé des Exercices
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←1
B←A+3
A←3
Fin
11/01/2022 16
Exercices d’application
Énoncé des Exercices
Exercice 1.2
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C en Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin
11/01/2022 17
Exercices d’application
Énoncé des Exercices
Exercice 1.3
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←5
B←A+4
A←A+1
B←A–4
Fin
11/01/2022 18
Exercices d’application
Énoncé des Exercices
Exercice 1.4
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C en Entier
Début
A←3
B ← 10
C←A+B
B←A+B
A←C
Fin
11/01/2022 19
Exercices d’application
Énoncé des Exercices
Exercice 1.5
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Entier
Début
A←5
B←2
A←B
B←A
Fin
Moralité : les deux dernières instructions permettent-elles d’échanger les deux valeurs de B et A ?
Si l’on inverse les deux dernières instructions, cela change-t-il quelque chose ?
11/01/2022 20
Exercices d’application
Énoncé des Exercices
Exercice 1.6
Plus difficile, mais c’est un classique absolu, qu’il faut absolument maîtriser : écrire un algorithme permettant
d’échanger les valeurs de deux variables A et B, et ce quel que soit leur contenu préalable.
Exercice 1.7
Une variante du précédent : on dispose de trois variables A, B et C. Ecrivez un algorithme transférant à B la
valeur de A, à C la valeur de B et à A la valeur de C (toujours quels que soient les contenus préalables de ces
variables).
11/01/2022 21
1.4. Expressions et opérateurs
Les expressions
Si on fait le point, on s’aperçoit que dans une instruction d’affectation, on trouve :
• à gauche de la flèche, un nom de variable, et uniquement cela. En ce monde rempli de doutes qu’est celui
de l’algorithmique, c’est une des rares règles d’or qui marche à tous les coups : si on voit à gauche d’une
flèche d’affectation autre chose qu’un nom de variable, on peut être certain à 100% qu’il s’agit d’une
erreur.
• à droite de la flèche, ce qu’on appelle une expression. Voilà encore un mot qui est trompeur ; en effet, ce
mot existe dans le langage courant, où il revêt bien des significations. Mais en informatique, le terme
d’expression ne désigne qu’une seule chose, et qui plus est une chose très précise :
Une expression est un ensemble de valeurs, reliées par des opérateurs, et équivalent à une seule valeur
Exemple: a b² + c²
chiffre 364+2*3
note chiffre *0,75 / 100
moyenne note * 5 - chiffre
L’expression située à droite de la flèche doit être du même type que la
11/01/2022 variable située à gauche. 22
1.4. Expressions et opérateurs
Les opérateurs
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.
Les opérateurs possibles dépendent du type des valeurs qui sont en jeu.
11/01/2022 23
1.4. Expressions et opérateurs
Les opérateurs
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.
Les opérateurs possibles dépendent du type des valeurs qui sont en jeu.
11/01/2022 24
1.4. Expressions et opérateurs
Les opérateurs
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.
Les opérateurs possibles dépendent du type des valeurs qui sont en jeu.
&
11/01/2022 25
1.4. Expressions et opérateurs
Les opérateurs
11/01/2022 26
INTRODUCTION A L’ALGORITHME
Chapitre 2: Les opérations
d’Entrée/Sortie
Semestre : 1
Licence Informatique : 1
Sommaire
11/01/2022 28
2.1. De quoi parle-t-on ?
Dans n’importe quel programme (Algorithme), des échanges d’information ont lieu entre l’utilisateur et la
machine. Ces échanges d’informations sont appelés opération d’entrée/sortie.
De nombreux algorithmes ont pour but de communiquer avec un utilisateur, cela se fait dans les deux sens, les
sorties sont des envois de messages a l'utilisateur, les entrées sont des informations fournies par l'utilisateur.
La saisie interrompt le programme jusqu'a ce que l'utilisateur ait saisi une valeur au clavier. Une fois cela fait,
la valeur saisie est placée dans la variable NomVariable. Il est possible de saisir plusieurs variables a la suite.
11/01/2022 29
2.2. Les instructions de lecture et écriture
Valeur
Exemple: Lire (A)
Lire (age)
Place les valeurs saisies par l'utilisateur dans les variables A, age.
Exemple 1: Ecrire (A) Affiche les valeurs des variables A, age à l’écran.
Ecrire (age)
Exemple 2: Ecrire ("Bonjour le Monde")
Ecrire ("Vous avez", age)
Lorsque l'on combine messages et variables dans les instruction d'affichage, on les sépare par des virgules.
Notez bien que ce qui est délimité par les doubles cotes est affiché tel quel, alors tout ce qui n'est pas
délimité par les doubles cotes est considéré comme des variables.
11/01/2022 30
2.3. Construction d’un algorithme simple
Construire un algorithme consiste par convention:
à lui donner un nom,
identifier les constantes: les nommer et les initialiser,
identifier les variables: les nommer et indiquer leur types,
écrire le corps de l’algorithme encadré par les mots clé
« Début » et « Fin ».
11/01/2022 31
2.3. Construction d’un algorithme simple
Structure d’un algorithme simple
Algorithme Nom_Algorithme
Constantes:
Liste des constantes avec leurs valeurs
Variables : Partie déclarative
En entrées : Liste des variables avec leurs types
En sorties : Liste des variables avec leurs types
Début
Fin
Fin_Algorithme
11/01/2022 32
2.3. Construction d’un algorithme simple
Exemple: calcul de l’aire d’un cercle
Algorithme Calcul_AireCercle
Constantes :
PI = 3,14
Variables :
En entrées : rayon : réel
En sortie : surface : réel
Début
Ecrire (‘‘Entrez la valeur du rayon :’’)
Lire (rayon)
surface PI * (rayon*rayon)
Ecrire (surface)
Fin
Fin de l’algorithme
11/01/2022 33
2.4. Langage naturel et langage algorithmique
Exemple :
Créer un algorithme qui calcule et affiche l’aire d’un rectangle après que l’utilisateur est entré les
dimensions du rectangle.
Algorithme Calcul_Aire_rectangle
Langage naturel: Variables :
longueur, largeur : entier
aire : entier
Entrer la longueur L
DEBUT
Entrer la largeur l Ecrire ("Entrer la longueur")
Aire = L*l Lire (longueur)
Afficher l’Aire Ecrire ("Entrer la largueur")
Lire (largeur)
aire longueur * largeur
Ecrire (aire)
FIN
Fin de l’algorithme
11/01/2022 34
Exercices d’application
Énoncé des Exercices
Exercice 2.1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de ce nombre.
Exercice 2.2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA, et qui fournit le
prix total TTC correspondant. Faire en sorte que des libellés apparaissent clairement.
Exercice 2.3
Ecrire un algorithme permettant de saisir trois nombres, d’en effectuer la somme, le produit et la moyenne,
puis les afficher.
Exercice 2.4
Ecrire un algorithme permettant de saisir deux nombres, de les permuter, puis les afficher.
Exercice 2.5
Ecrire un algorithme utilisant des variables de type chaîne de caractères, et affichant quatre variantes
possibles de la célèbre « belle marquise, vos beaux yeux me font mourir d’amour ». On ne se soucie pas de la
ponctuation, ni des majuscules.
11/01/2022 35
INTRODUCTION A L’ALGORITHME
Chapitre 3: Les structures de
contrôle (les tests)
Semestre : 1
Licence Informatique : 1
Sommaire
11/01/2022 36
3.1. De quoi s'agit-il ?
Reprenons le cas de notre « algorithme du touriste égaré ». Normalement, l’algorithme ressemble à quelque
chose comme : « Allez tout droit jusqu’au prochain carrefour, puis prenez à droite et ensuite la deuxième à
gauche, et vous y êtes ».
Mais en cas de doute légitime de votre part, cela pourrait devenir : « Allez tout droit jusqu’au prochain
carrefour et là regardez à droite. Si la rue est autorisée à la circulation, alors prenez la et ensuite c’est la
deuxième à gauche. Mais si en revanche elle est en sens interdit, alors continuez jusqu’à la prochaine à
droite, prenez celle-là, et ensuite la première à droite ».
Le deuxième algorithme est meilleur que le premier du fait qu’il prévoit, en fonction d’une situation pouvant se
présenter de deux façons différentes, deux façons différentes d’agir. Cela suppose que l’interlocuteur (le touriste)
sache analyser la condition que nous avons fixée à son comportement (« la rue est-elle en sens interdit ? ») pour
effectuer la série d’actions correspondante.
11/01/2022 37
3.2. Structure d’un test
Encore appelée structure conditionnelle, un test permet d’exécuter une séquence d’instructions si une
condition est vérifiée.
Si (condition) Alors
<Séquence d’instructions>
FinSi
La structure simple d’un test est relativement claire, arrivé à la première ligne (Si… Alors) la machine
examine la valeur de la condition. Si la cette valeur est VRAI, elle exécute la séquence d’instructions.
Cette séquence d’instructions peut être très brève comme très longue, cela n’a aucune importance. En
revanche, dans le cas où la condition est FAUX, l'ordinateur saute directement aux instructions situées après
le FinSi.
11/01/2022 38
3.2. Structure d’un test
Qu'est-ce qu'une condition ?
Une condition s’exprime sous forme d’une expression logique (Booléenne). Elle peut être:
• simple (condition simple): VRAI , FAUX
• ou combinée (plusieurs conditions composées) avec des opérateurs logiques ET, OU, NON, et des
opérateurs de comparaison.
11/01/2022 39
Exercices d’application
Énoncé des Exercices
Exercice 3.1
Ecrire un algorithme qui permet d’afficher la valeur absolue d’un nombre saisi au clavier par un utilisateur.
Exercice 3.2
Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif ou
négatif (on laisse de côté le cas où le nombre vaut zéro).
Exercice 3.3
Ecrire un algorithme permettant de comparer deux nombres réels.
Exercice 3.4
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou
positif (on laisse de côté le cas où le produit est nul). Attention toutefois : on ne doit pas calculer le produit
des deux nombres.
11/01/2022 40
3.3. Tests imbriqués
Graphiquement, on peut très facilement représenter un SI comme un aiguillage de chemin de fer. Un SI ouvre donc
deux voies, correspondant à deux traitements différents. Mais il y a des tas de situations où deux voies ne suffisent
pas. Par exemple, un programme devant donner l’état de l’eau selon sa température doit pouvoir choisir
entre trois réponses possibles (solide, liquide ou gazeuse).
Algorithme Etat_Eau
Variable :
temp : Entier
Début
Ecrire ("Entrez la température de l’eau :")
Lire (temp) Note: Vous constaterez que c’est un peu laborieux. Les
Si (temp =< 0) Alors conditions se ressemblent plus ou moins, et surtout on
Ecrire ("C’est de la glace") oblige la machine à examiner trois tests successifs alors
FinSi que tous portent sur une même chose, la température de
Si (temp > 0 ET temp < 100) Alors l'eau (la valeur de la variable Temp).
Ecrire ("C’est du liquide")
Finsi
Si (temp > 100) Alors
Ecrire ("C’est de la vapeur")
Finsi
Fin
11/01/2022 FinAlgorithme 41
3.3. Tests imbriqués
Il serait ainsi bien plus rationnel d’imbriquer les tests de cette manière :
Exercice 3.5
Ecrire un algorithme qui permet de déterminer le plus grand de trois nombres saisis au clavier.
Exercice 3.6
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si le produit est négatif ou
positif (on inclut cette fois le traitement du cas où le produit peut être nul). Attention toutefois, on ne doit
pas calculer le produit !
Exercice 3.7
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie :
• "Poussin" de 6 à 7 ans
• "Pupille" de 8 à 9 ans
• "Minime" de 10 à 11 ans
• "Cadet" après 12 ans
11/01/2022 43
3.3. De l'aiguillage à la gare de tri
En effet, dans un programme, une structure SI peut être facilement comparée à un aiguillage de train. La
voie principale se sépare en deux, le train devant rouler ou sur l’une, ou sur l’autre, et les deux voies se
rejoignant tôt ou tard pour ne plus en former qu’une seule, lors du FinSi. On peut schématiser cela ainsi :
Si
FinSi
11/01/2022 44
3.3. De l'aiguillage à la gare de tri
Mais dans certains cas, ce ne sont pas deux voies qu’il nous faut, mais trois, ou même plus. Dans le cas de
l’état de l’eau, il nous faut trois voies pour notre « train », puisque l’eau peut être solide, liquide ou gazeuse.
Alors, nous n’avons pas eu le choix : pour deux voies, il nous fallait un aiguillage, pour trois voies il nous en
faut deux, imbriqués l’un dans l’autre.
Cette structure (telle que nous l’avons programmée à précédemment) devrait être schématisée comme suit :
Si
Séquence 2 Séquence 3
FinSi
11/01/2022 FinSi 45
3.3. De l'aiguillage à la gare de tri
Ainsi, il est possible (mais non obligatoire), que l’algorithme initial :
Dans cette structure, on peut comparer un objet (variable ou expression) à toute une série de valeurs, et
d’exécuter , en fonction de la valeurs effective de l’objet, différentes séquence d’instructions. Une
séquence par défaut peut être prévu dans le cas où l’objet n’est égale à aucune des valeurs énumérées.
11/01/2022 48
3.6. Structure conditionnelle multiple (le choix)
Exercice 3.8
Ecrire un algorithme qui permettant à partir d’un menu affiché à l’écran, d’effectuer la somme ou le produit
ou la moyenne de trois nombres entré au clavier. Nous appelons « menu », l’association d’un numéro séquentiel
aux différent choix proposé par un programme.
11/01/2022 49
INTRODUCTION A L’ALGORITHME
11/01/2022 50
4.1. De quoi s’agit-il ?
contexte
Prenons le cas d’une saisie au clavier (une lecture), où par exemple, le programme pose une question à
laquelle l’utilisateur doit répondre par O (Oui) ou N (Non). Mais tôt ou tard, l’utilisateur, facétieux ou
maladroit, risque de taper autre chose que la réponse attendue. Dès lors, le programme peut planter soit par
une erreur d’exécution (parce que le type de réponse ne correspond pas au type de la variable attendu) soit
par une erreur fonctionnelle (il se déroule normalement jusqu’au bout, mais en produisant des résultats
fantaisistes).
Alors, dans tout programme un tant soit peu sérieux, on met en place ce qu’on appelle un contrôle de
saisie, afin de vérifier que les données entrées au clavier correspondent bien à celles attendues par
l’algorithme.
11/01/2022 51
4.1. De quoi s’agit-il ?
A vue de nez, on pourrait essayer avec un Si. Voyons voir ce que ça donne :
Algorithme Demande
Variable rep: Car C’est impeccable. Du moins tant que l’utilisateur a le bon
Début goût de ne se tromper qu’une seule fois, et d’entrer une
Ecrire « Voulez vous un café ? (O/N):" valeur correcte à la deuxième demande. Si l’on veut
Lire (rep) également bétonner en cas de deuxième erreur, il faudrait
Si (rep < > "O " OU
ET rep < > "N ") alors rajouter un Si. Et ainsi de suite, on peut rajouter des
Ecrire "Saisie erronée. Recommencez" centaines de Si, et écrire un algorithme aussi lourd
Lire (rep) qu’une blague des Grosses Têtes, on n’en sortira pas, il y
FinSi aura toujours moyen qu’un acharné flanque le programme
Fin
par terre.
FinAlgorithme
11/01/2022 52
4.1. De quoi s’agit-il ?
Définition
Une boucle permet d'exécuter plusieurs fois de suite une même séquence d'instructions. Cette
ensemble d'instructions s'appelle le corps de la boucle. Chaque exécution du corps d'une boucle
s'appelle une itération, ou encore un passage dans la boucle. Il existe trois types de boucle :
tant que … faire
répéter ... jusqu’à
pour … faire
Chacune de ces boucles a ses avantages et ses inconvénients. Nous les passerons en revue ultérieurement.
11/01/2022 53
4.2. La boucle tant que … faire
Syntaxe:
Le principe est simple : le programme arrive sur la ligne du tant que. Il examine alors la valeur de la
condition (qui, je le rappelle, peut être une variable booléenne ou une expression). Si cette valeur est
VRAI, le programme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre la ligne fin tant que. Il
retourne ensuite sur la ligne du tant que, procède au même examen, et ainsi de suite. Le manège enchanté
ne s’arrête que lorsque la condition n’est plus vérifier (le booléen prend la valeur FAUX).
11/01/2022 54
4.2. La boucle tant que … faire
Illustration avec notre problème de contrôle de saisie. Une première approximation de la solution
consiste à écrire :
Amélioration
Algorithme Demande
Variable rep: Car Algorithme Demande
Début Variable rep: Car
Ecrire ("Voulez vous un café ? (O/N) : ") Début
Lire (rep) Ecrire (" Voulez vous un café ? (O/N) : ")
Tant que (rep < > "O " ET rep < > "N ") faire Lire (rep)
Lire (rep) Tant que (rep < > "O " ET rep < > "N") faire
Fin Tant que Ecrire ("Vous devez répondre par O ou N. Recommencez")
Fin Lire (rep)
FinAlgorithme Fin Tant que
Ecrire ("Saisie acceptée")
Fin
FinAlgorithme
NOTE : Une boucle tant que … faire n’est exécuter que si la condition est vérifier dès le départ.
11/01/2022 55
4.2. La boucle tant que … faire
Exercice 4.1
Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce que la réponse
convienne.
Exercice 4.2
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne.
En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et inversement,
« Plus grand ! » si le nombre est inférieur à 10.
Exercice 4.3
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants.
Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.
11/01/2022 56
4.3. La boucle répéter … jusqu’à
Syntaxe:
répéter
<Séquence d’instructions>
jusqu’à (condition)
Le fonctionnement est analogue a celui de la boucle tant que a quelques détails près :
• la condition est évaluée après chaque passage dans la boucle.
• on exécute le corps de la boucle jusqu’à ce que la condition soit vérifiée, donc tant que la condition est
fausse.
NOTE : Une boucle répéter ... jusqu'a s’exécutée donc au moins une fois avant de tester la condition .
11/01/2022 57
4.3. La boucle répéter … jusqu’à
Reprenons l'exemple précédent avec une boucle répéter ... jusqu'a :
Algorithme Demande
Amélioration
Variable:
rep: Car
Algorithme Demande
Début
Variable:
Ecrire (" Voulez vous un café ? (O/N) : ") rep: Car
répéter Début
Lire (rep) Ecrire (" Voulez vous un café ? (O/N) : ")
Ecrire ("Vous devez répondre par O ou N. Recommencez" ) répéter
jusqu’à (rep = = "O" OU rep = = "N") Lire (rep)
Ecrire ("Saisie acceptée") Ecrire ("Vous devez répondre par O ou N. Recommencez ")
Fin jusqu’à (rep == "O" ET rep == "N")
FinAlgorithme Ecrire "Saisie acceptée"
Fin
FinAlgorithme
11/01/2022 58
4.4. La boucle pour … faire
Syntaxe:
Pour ( compteur : = valeur initiale à valeur finale) pas de < incrément> faire
<Séquence d’instructions>
Fin pour
Si la valeur initiale est égale à la valeur finale, la séquence d’instruction définie est exécutée une seule fois.
Par contre, la séquence d’instruction n’est pas exécutée dans deux cas:
• Si la valeur initiale est strictement supérieure à la valeur finale alors que l’incrément est positif, ou bien
• Si la valeur initiale est strictement inférieure à la valeur finale alors que l’incrément est négatif.
11/01/2022 59
4.4. La boucle pour … faire
La structure pour … faire est une simplification de la structure suivante:
11/01/2022 60
4.5. Les boucles imbriquées
Les boucles peuvent être imbriquées les unes dans les autres. Une boucle « tant que …faire » peut contenir une
autre boucle « tant que … faire », ou une boucle « répéter… jusqu’à », ou une autre boucle « pour … faire », et
vice versa.
De plus une boucle peut contenir une autre boucle qui elle-même peut contenir une autre boucle et ainsi de suite.
Exemple:
Algorithme Tables_Multiplication
Ecrire un algorithme permettant d’effectuer et d’afficher Variables :
toutes les tables de multiplication par 1 jusqu’à 12. i , j : entier
Début
Ecrire (" Tables de multiplication : ")
Pour ( i := 1 à 12 ) faire
Pour ( j := 1 à 12 ) faire
Ecrire ( j, " * ", i , " = " , j * i )
Fin pour
Fin pour
Fin
Fin Algorithme
11/01/2022 61
Exercices d’application
Énoncé des Exercices
Exercice 4.4
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de
ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21
…
7 x 10 = 70
Exercice 4.5
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce
nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
11/01/2022 62
Exercices d’application
Énoncé des Exercices
Exercice 4.6
Ecrire un algorithme qui permet de calculer le factoriel d’un nombre entier n strictement positif sachant
que: n ! = 1 x 2 x 3 x ..… x n , et que
0 ! = 1 par convention
NB : le factoriel de 5, notée 5 !, vaut 1 x 2 x 3 x 4 x 5 = 120
le factoriel d’un nombre négatif n’existe pas, il est donc nécessaire que votre algorithme vérifie si le
nombre donné n’est pas négatif.
Exercice 4.7
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était
le plus grand parmi ces 20 nombres :
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14
etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce
nombre :
C’était le nombre numéro 2
11/01/2022 63
Exercices d’application
Énoncé des Exercices
Exercice 4.8
Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien l’utilisateur
souhaite saisir de nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
Exercice 4.9
Ecrire l’algorithme qui permet de saisir une série de nombres entiers positifs puis qui propose
indéfiniment (en boucle) à l’utilisateur, par l’intermédiaire d’une sorte de menu à choix multiple,
d’afficher la valeur minimal, la valeur maximale, la somme ou la moyenne des nombres entrés, ou encore
de quitter le programme.
11/01/2022 64
INTRODUCTION A L’ALGORITHME
7. Conclusion
11/01/2022 66
1. Introduction Problème de
Appel base Appel
d’instructions.
11/01/2022 67
1. Introduction Programme
Appel principal Appel
Appel
Un programme écrit en un seul bloc
retour retour
devient difficile à comprendre dés
Sous Sous
qu’il dépasse un certain nombre de Programme
retour
Programme
lignes. Pour éviter un tel problème, N°1 Sous N°3
Programme Appel
il est vivement conseillé d’utiliser Appel N°2
des sous programmes. En effet, en
retour
algorithme il existe deux types de
déclarations qui sont : les fonctions Sous retour
Programme retour
et les procédures. N°4 Sous
Programme
Appel N°5
11/01/2022 69
2. Qu’est ce qu’une fonction 2.1. Déclaration d’une fonction
Signification :
Fonction : mot clé.
NomFonction : Nom de la fonction, permet de l’identifier de façon unique.
Paramètres : représente les entrées ou arguments de la fonction, il s’agit
simplement d’une déclaration de variables.
TypeRésultat : est la sortie et donc le type de retour de notre fonction.
11/01/2022 70
2. Qu’est ce qu’une fonction 2.2. Définition d’une fonction
Fonction NomFonction ( Paramètres ) : TypeRésultat
Constantes:
Liste des constantes avec leurs valeurs
Variables : Partie déclarative
En entrées : Liste des variables avec leurs types
En sorties : Liste des variables avec leurs types
Début
Liste des instructions… Corps de la
retourne (resultat) fonction
Fin
Fin_Fonction
Note : La dernière instruction d’une fonction est celle qui permet de renvoyer ou retourner le résultat,
elle est obligatoire. Cela est réalisable grâce au mot clé retourne.
Signification :
Procédure : mot clé.
NomProcédure : Nom de la procédure, permet de l’identifier de façon unique.
Paramètres : représente les entrées ou arguments de la procédure, il s’agit
simplement d’une déclaration de variables.
11/01/2022 72
3. Qu’est ce qu’une procédure 3.2. Définition d’une procédure
11/01/2022 73
4. Appel à une fonction ou à une procédure
La déclaration et la définition d’un sous programme n’entraîne pas son exécution. Il sera exécuté lorsqu’il
sera appelé par l’algorithme (programme) principal ou par un autre sous programme.
Cet appel se fait en citant son nom de la manière suivante :
Où <Variable> est une variable de même type que la fonction appelée. Cette variable est déclarée dans le
programme principal ou dans le sous programme appelant. Son rôle est de recevoir le résultat retourné par la
fonction.
L'appel a une fonction peut s'effectuer directement dans une instruction d'écriture : Ecrire ( NomFonction (Paramètres))
11/01/2022 74
4. Appel à une fonction ou à une procédure
L’appel a un sous programme entraîne le saut au début du sous programme appelé et l’exécution de toutes ses
instructions jusqu’à la dernière qui entraînera le retour au programme appelant.
Sous Programme
Note :
N°1
Algorithme Procédure TestNombre ( nbr : entier )
Lors de l’appel, il faut respecter le nombre,
Constantes:
principal Liste des constantes avec leurs valeurs
Variables :
l’ordre et le type des paramètres;
Algorithme NomAlgo En entrées : Liste des variables avec leurs types
Constantes:
Appel : x En sorties : Liste des variables avec leurs types
Liste des constantes avec leurs valeurs
Variables :
Début Un sous programme peut faire appel à un
Liste des instructions…
En entrées : x :entier Ecrire (nbr, "est ok") ou plusieurs autre sous programme
En sorties : fact : entier Fin
Début Fin_Procédure
Retour : rien
TestNombre(x)
11/01/2022 75
5. Les variables globales et les variables locales
Une variable globale est une variable déclarée dans le programme principal, et utilisée dans la fonction
ou la procédure. En revanche, une variable locale est variable déclarée et utilisée dans la fonction ou la
procédure.
Note 1: les paramètres d’une fonction ou d’une procédure sont considérés comme des variables locales.
Note 2: la durée de vie des variables locales est limitée au temps d’exécution du sous programme.
Note 3: Les variables déclarées dans le programme principal sont locales au programme principal, et les
variables déclarées dans un sous programme sont locales à ce sous programme, même si elles portent le
même nom. La portée d’une variable est locale au sous programme qui le contient.
Note 4:
• Dans un programme, une variable est définie par défaut comme locale;
• Une variable globale est précédée du mot clé Global lors de sa déclaration.
11/01/2022 76
5. Les variables globales et les variables locales
Algorithme Global_Local
X, Y
Variable : variables
Global X, Y : Entier globales Note 5: Une variable peut aussi être déclarée
A et B A, B : Entier globale dans un sous programme.
paramètres Procédure P ( A, B : Entiers)
de la Variable :
procédure Variables locales
max, min : Entiers Attention !!! : On déclare une variable globale
à la procédure
Début lorsque la donnés qu’elle contient est utilisée par
Fin un ensemble de fonctions ou/et procédures et
Fin Procédure qu’on ne souhaite pas passer cette données
comme paramètre d’un sous programme à
long et larg Fonction F (long, larg : Réels) : Réels l’autre. Toutefois, ceci peut constituer un danger,
paramètres Variable :
de la
car une même donnée manipulée par plusieurs
fonction
A, B : Réels sous programmes peut être source d’erreurs
Début Variables locales
à la fonction difficiles à localiser.
Fin
Fin Fonction
Début
Fin
Fin Algorithme
11/01/2022 77
6. Les paramètres et les passage de paramètres
Un sous programme utilise des paramètres ou arguments, c’est avec ces
paramètres qu’il doit être appelé. Les identificateurs représentants les
paramètres à la déclaration ne sont pas les mêmes à l’appel.
Note : nous allons juste étudié le passage par valeurs, le passage par
adresses (références) est inscrit au cours d’algorithme avancé (2e année).
11/01/2022 78
6. Les paramètres et les passages de paramètres Algorithme PassageParValeur
X et Y variables
Variable :
Globale X, Y : Entier
globales
Procédure Echange ( A, B : Entier)
Le passage par valeur consiste à Variable : A et B
copier la valeur à transférer au sein C : Entier paramètres de la
Début procédure
du sous programme, cette dernière A X
travaille alors avec cette copie sans B Y Passage des
toucher à la valeur d’origine. C A valeurs
A B
Exemple : B C
Permutation des
X A valeurs
Y B
Fin
Note : à la place d’un argument transmis par valeur, Fin Procédure Restitution des
on peut indiquer une constante, une variable ou une Début valeurs après
expression. Ecrire ("Entrez X et Y : ") permutation
Lire (X,Y)
Echange (X,Y)
Fin
Fin Algorithme Appel de la
11/01/2022 procédure 79
7. Conclusion
Question : Quelle est l’intérêt d’utilité les sous programmes ?
Réponse :
11/01/2022 81
Exercices d’application
Énoncé des Exercices
11/01/2022 82