0% ont trouvé ce document utile (0 vote)
55 vues139 pages

Introduction à l'Algorithmique et l'Ordinateur

Le document présente une introduction à l'algorithmique, définissant un ordinateur comme une machine qui traite des informations à l'aide de signaux binaires. Il explique également la notion d'algorithme comme une suite d'instructions menant à un résultat, tout en abordant les concepts de variables, types et instructions élémentaires en programmation. Enfin, il souligne l'importance de la précision et de l'absence d'ambiguïté dans les algorithmes pour leur exécution correcte par un ordinateur.

Transféré par

leoncezougmore08
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)
55 vues139 pages

Introduction à l'Algorithmique et l'Ordinateur

Le document présente une introduction à l'algorithmique, définissant un ordinateur comme une machine qui traite des informations à l'aide de signaux binaires. Il explique également la notion d'algorithme comme une suite d'instructions menant à un résultat, tout en abordant les concepts de variables, types et instructions élémentaires en programmation. Enfin, il souligne l'importance de la précision et de l'absence d'ambiguïté dans les algorithmes pour leur exécution correcte par un ordinateur.

Transféré par

leoncezougmore08
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

Enseignant: TINDANO Y.

Olivier /Enseignant à
l‟Université Norbert Zongo de Koudougou
tindanolivier83@[Link]

Cours d'Algorithmique par Tindano Olivier 1


Qu‟est ce qu‟un ordinateur?

Machine qui saisit (périphériques d‟entrée), stocke


(mémoire), traite (programmes) et restitue
(périphériques de sortie) des informations
Quel langage utilise l‟ordinateur?
Toutes communications à l'intérieur de l'ordinateur
sont faites avec des signaux électriques
0: éteint (absence de signal électrique)
1: allumé (présence de signal électrique)
C‟est le Binaire
Difficultés pour l‟homme de raisonner en binaire
Cours d'Algorithmique par
Tindano Olivier 2
Les applications de l‟ordinateur sont très
nombreuses.
En voici quelques exemples :

• accès à Internet ;
• envoi de courrier électronique ;
• création de sites Web ;
• lecture de CD-Rom ou de DVD ;
• archivage et retouche de photos ;
• jeux vidéo ;

Cours d'Algorithmique par


Tindano Olivier 3
• bureautique : traitement de texte, tableur,
gestion de bases de données... ;
• gestion et comptabilité : facturation, paye,
stocks…
• analyse numérique ;
• prévisions météorologiques ;
• aide à la conception électronique (CAO) ou
graphique (DAO) ;
• pilotage de satellites, d‟expériences...

Cours d'Algorithmique par


Tindano Olivier 4
Cours d'Algorithmique par
Tindano Olivier 5
Cours d'Algorithmique par
Tindano Olivier 6
Définition

Un algorithme, c‟est une suite


d‟instructions, qui une fois exécutée
correctement, conduit à un résultat donné
Dans notre quotidien nous faisons ou
suivons des algorithme (Par exemple suivre
une notice pour monter une cuisinière, faire
notre planning …)

Cours d'Algorithmique par


Tindano Olivier 7
• Présenter l'activité de programmation
• Introduire la notion d'algorithme
– Justification et outils de base
• Sensibiliser à une méthode de
programmation

Cours d'Algorithmique par


Tindano Olivier 8
Avez-vous déjà eu l‟occasion de faire la cuisine ?
Exemple
On donne les ingrédients suivants :
• Thym laurier
• persil
• ail
• huile
• vinaigre
• sel
• poivre
• citron
• et une carpe de 3kg.
Résultat: Préparer une marinade de
carpe.

Cours d'Algorithmique par


Tindano Olivier 9
Le mot algorithme vient du nom du mathématicien
Al Khuwarizmi (Muhammad ibn Mūsā
alKhuwārizmī), savant persan du IXème siècle,
auteur d‟un ouvrage appelé "La transposition et la
réduction", Aljabrwa‟lmuqābalah

Une définition simple d‟un algorithme : c‟est une


suite d‟instructions qui, quand elles sont
exécutées correctement aboutissent au résultat
attendu. C‟est un énoncé dans un langage clair,
bien défini et ordonné qui permet de résoudre
un problème, le plus souvent par calcul

Cours d'Algorithmique par


Tindano Olivier 10
• donner des indications à quelqu‟un
pour qu‟il trouve son chemin;
• conduire sa voiture;
• faire une recette de cuisine;
• placer un appel téléphonique;
• concevoir un plan architectural;
• descendre un escalier;

Cours d'Algorithmique par


Tindano Olivier 11
Fondamentalement, un ordinateur exécute le
travail qu‟on lui fournit et non pas « ce qu‟on
pense lui avoir fourni » !

• Il ne doit exister aucune ambiguïté dans la


séquence des instructions du programme;
• Après l‟exécution d‟une instruction, il ne doit
subsister aucun doute sur le choix de la
prochaine instruction à exécuter.

Cours d'Algorithmique par


Tindano Olivier 12
Principales difficultés

Ainsi, les difficultés pour réaliser un


algorithme peuvent provenir
principalement de l‟ensemble des détails
d‟une activité complexe dont il faut
probablement tenir compte et ne pas
oublier !

Cours d'Algorithmique par


Tindano Olivier 13
Un algorithme est la spécification précise et
non ambiguë d‟une séquence d‟étapes,
formée d'un nombre fini d'opérations
pouvant être exécutées de façon automatique
par un ordinateur. Il est exprimé
de manière formelle dans un langage de
programmation ou dans un style informel en
langage naturel.
Il doit avoir les propriétés suivantes :

Cours d'Algorithmique par


Tindano Olivier 14
Il est exprimé de manière formelle dans un
langage de programmation ou dans un style
informel en langage naturel.
Il doit avoir les propriétés suivantes :
• avoir un nombre fini d‟étapes;
• avoir un nombre fini d‟opérations par étape;
• formulé en une suite d‟opérations primitives;
• se termine après un nombre fini d‟opérations;
• fourni un résultat;

Cours d'Algorithmique par


Tindano Olivier 15
 Chaque opération doit être:

 définie rigoureusement et sans ambiguïté


 effective, c-à-d réalisable par une machine
L‟exécution d‟un algorithme sur un ordinateur
consomme des ressources :
• en temps de calcul : complexité temporelle
• en espace-mémoire occupé : complexité
spatiale

Cours d'Algorithmique par


Tindano Olivier 16
Cours d'Algorithmique par
Tindano Olivier 17
Notion de variables, type et valeurs
Les instructions s'appliquent à des variables
En programmation, une variable est donc un nom qui sert
à repérer un emplacement donné de la mémoire
centrale.
Une variable est caractérisée par :

 son identificateur (son nom)


 son type (par exemple numérique)
 son contenu ( valeur prise par la variable à un niveau
donné de l'algorithme)

L'identificateur est le nom de la case réservée en


mémoire, le type est la catégorie.

Cours d'Algorithmique par


Tindano Olivier 18
• Le type Caractère: contient un seul caractère,

• Le type chaine : contient plusieurs caractères

Caractère „a‟

Chaine „arbre‟

Entier 12

Cours d'Algorithmique par


Tindano Olivier 19
Les instructions élémentaires (affectation, lecture
et écriture)

 Une instruction est la spécification d'une ou de


plusieurs actions portant sur une ou des
variables.
 L'instruction la plus commune est l'affectation.
Elle consiste à doter une variable d'une valeur
appartenant à son domaine, c'est à dire à lui
donner une première valeur ou à changer sa
valeur courante. Elle se note

 Instructions d'entrée
Affectation :A reçoit 15, noté A 15 ou A:=15
Cours d'Algorithmique par
Tindano Olivier 20
Les instructions élémentaires (affectation,
lecture et écriture)
 Une expression est une suite finie bien
formée d'opérateurs portant sur des variables
ou des valeurs et qui a une valeur. La valeur
de l'expression doit être conforme au
domaine de la variable affectée.
 Exemple:

y←x+4

Cours d'Algorithmique par


Tindano Olivier 21
Les instructions élémentaires (affectation,
lecture et écriture)
 Lecture d'une donnée :

Lire une donnée entrée au clavier notée,


LIRE X (met dans la case appelée X les données
entrées au clavier).
Ecriture d‟une donnée:

Cours d'Algorithmique par


Tindano Olivier 22
Les instructions élémentaires (affectation, lecture et écriture)
 Instruction d'écriture

L'instruction de restitution de résultats sur le


périphérique de sortie (en général l'écran) est :

Ecrire (liste d'expressions)


Cette instruction réalise simplement l'affichAge des valeurs des
expressions décrites dans la liste. Ces instructions peuvent être
simplement des variables ayant des valeurs ou même des
nombres ou des commentaires écrits sous forme de chaînes de
caractères.
Exemple:Ecrire(‟‟bonjour‟‟)ou
Afficher(‟‟Bonjour‟‟) / /Affiche bonjour
Cours d'Algorithmique par
Tindano Olivier 23
 Les types d‟une variable

• entier : représentation exacte d‟une partie


des nombres entiers relatifs,
• réel : représentation (généralement
approchée) d‟une partie des nombres réels,
• caractère : représentation d‟un (seul)
caractère.
• Chaine de caractère: représentation d‟une
chaine de caractère

Cours d'Algorithmique par


Tindano Olivier 24
Déclaration de type

 Généralement, le type d‟une variable est choisi,


une fois pour toutes, à l‟aide d‟une instruction
particulière nommée « déclaration de type »

 entier n, p
Elle signifiera que les variables n et p sont du type
entier. De même :
 caractère c1, c2, c
signifiera que les variables nommées c1, c2 et c
seront de type caractère.

Cours d'Algorithmique par


Tindano Olivier 25
 L‟instruction d‟affectation
Son rôle consiste simplement à placer une
valeur dans une variable. Ainsi, une
instruction permettra de dire :
• affecter à la variable nombre la valeur 5
c‟est-à-dire : ranger dans nombre la valeur 5

Notation: nombre 5 ou nombre:= 5

Cours d'Algorithmique par


Tindano Olivier 26
 Opérateur d‟affectation := ou
 La valeur à placer dans une variable pourra
également provenir d‟une autre variable
Exemple: affecter à la variable b la valeur de la
variable a
Notation: variable a; variable b
variable b a ou variable b:=a
 on pourra demander de ranger dans une variable
le résultat d‟un calcul
affecter à la variable b la valeur de l‟expression
Exemple: b := a+4
Nb: les deux variables(a et b) doivent être du
même type

Cours d'Algorithmique par


Tindano Olivier 27
 Opérateur d‟affectation
• à gauche du symbole :=, on trouve le nom d‟une
variable destinée à recevoir une valeur,
• à droite du symbole :=, on trouve « quelque
chose » qui précise la valeur en question. Nous
dirons qu‟il s‟agit d‟une expression.
Nous pouvons alors dire qu‟une instruction
d‟affectation possède un double rôle :
• elle détermine la valeur de l‟expression située à
droite de :=,
• elle range le résultat dans la variable située à
gauche

Cours d'Algorithmique par


Tindano Olivier 28
 Opérateur d‟affectation
Ainsi l‟expréssion b := a + 3
détermine la valeur de l‟expression a + 3, sans
modifier la valeur de la variable a.
En revanche, si la variable réceptrice (ici b)
comporte déjà une valeur, celle-ci est
purement et simplement remplacée par celle
qui vient d‟être déterminée.

Cours d'Algorithmique par


Tindano Olivier 29
 Opérateur d‟affectation
Evaluer les expressions suivantes:

Cours d'Algorithmique par


Tindano Olivier 30
 Opérateur d‟affectation

Exercice 2.1
En procédant comme précédemment , dites
quelles seront les valeurs des variables a,b et c,
après l‟exécution de chacune des instructions :
a := 5
b := 3
c := a + b
a := 2
c := b - a

Cours d'Algorithmique par


Tindano Olivier 31
 Opérateur d‟affectation
 Quelques précautions
En mathématiques, on travaille avec des
relations. Ainsi :
b=a+1
signifie que, tout au long de vos calculs, a et b
vérifieront cette relation. Autrement dit, quel
que soit a, b sera toujours égal à a + 1.

Cours d'Algorithmique par


Tindano Olivier 32
 Opérateur d‟affectation
 Quelques précautions
En informatique, on travaille avec des
[Link], si vous considérez ces trois
instructions :
 a := 5
 b := a + 1
 a := 2
la seconde donne à b la valeur de a + 1, c‟est-à-
dire 6. En revanche, la troisième donne à a la
valeur 2, sans que la valeur de b ne soit changée.
L‟action de b := a + 1 est donc purement
instantanée. Cette instruction n‟a rien à voir avec
une relation mathématique
Cours d'Algorithmique par
Tindano Olivier 33
 Opérateur d‟affectation
 Quelques précautions

L‟instruction :
a := a + 1
signifie : évaluer l‟expression a + 1 et ranger le
résultat dans a. Cela revient à augmenter de un la
valeur de a. Ce type d‟instruction où la même
variable apparaît de part et d‟autre du symbole
de l‟affectation sera à la base de la solution à de
nombreux problèmes de programmation.
Notez qu‟en mathématiques, a = a + 1 est une
relation fausse.

Cours d'Algorithmique par


Tindano Olivier 34
 Opérateur d‟affectation
 Quelques précautions

Enfin, par définition de l‟instruction d‟affectation,


l‟écriture :
a + 5 := 3
n‟a pas de sens. On ne peut pas affecter une valeur
à une expression, mais seulement à une
variable.
Par contre, en mathématiques l‟écriture :
a+5=3
a bien un sens, puisqu‟il s‟agit alors d‟une
équation.

Cours d'Algorithmique par


Tindano Olivier 35
 Opérateur d‟affectation
 Quelques précautions
Application: Qu‟obtiendra-t-on dans les
variables a et b, après exécution des
instructions suivantes (dans cet ordre) ?
a := 5
b := a + 4
a := a + 1
b := a - 4

Cours d'Algorithmique par


Tindano Olivier 36
 Opérateur d‟affectation
 Quelques précautions

Application
a) Qu‟obtiendra-t-on dans les variables n1 et n2 après exécution des instructions ?
n1 := 5
n2 := 7
n1 := n2
n2 := n1

b) Même question avec les instructions :


n1 := 5
n2 := 7
n2 := n1
n1 := n2

Cours d'Algorithmique par


Tindano Olivier 37
 Échanger les valeurs de deux variables
a := b
cette instruction détruit l‟ancienne valeur de a.
Une solution consiste à utiliser une variable
supplémentaire, destinée à contenir
temporairement une copie de la valeur de a,
avant que cette dernière ne soit remplacée par
la valeur de b

Cours d'Algorithmique par


Tindano Olivier 38
 Échanger les valeurs de deux variables
Algorithme inversion_stockAge
Variables
a : entier
b : entier
temp : entier (* variable dans laquelle on stockera le contenu
d'une variable pour ne pas l'écraser au moment
de la première assignation *)
Début
temp := a (* on sauvegarde a qui sera effacée à la ligne suivante
pour pouvoir la placer dans b plus tard *)
a := b
b := temp
Fin

Cours d'Algorithmique par


Tindano Olivier 39
 Échanger les valeurs de deux variables

Cours d'Algorithmique par


Tindano Olivier 40
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

Cours d'Algorithmique par


Tindano Olivier 41
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

Cours d'Algorithmique par


Tindano Olivier 42
Exercice 1.3
Que produit l‟algorithme suivant ?
Variables A, B, C en Caractères
Début
A ← "423"
B ← "12"
C←A+B
Fin

Cours d'Algorithmique par


Tindano Olivier 43
Exercice 1.4

Variables A, B, C en Caractères
Début
A ← "423"
B ← "12"
C←A&B
Fin

Cours d'Algorithmique par


Tindano Olivier 44
Les instructions élémentaires (affectation,
lecture et écriture)
1. Les opérateurs :

Cours d'Algorithmique par


Tindano Olivier 45
Les instructions élémentaires (affectation, lecture
et écriture)
1. Les opérateurs :
Expressions de type entier
Nous conviendrons que nous disposons des quatre
opérateurs usuels :
• + pour l‟addition, comme dans n + 3 ou n + p;
• - pour la soustraction, comme dans n - p;
• * pour la multiplication, comme dans n * 5 ou n *
p;
• / pour la division comme dans n/3 ou n/p ; nous
conviendrons qu‟il s‟agira de la « division
entière »

Cours d'Algorithmique par


Tindano Olivier 46
2. Priorité des opérateurs

Nous conviendrons que :


• l‟opérateur opposé –(monadyque) est
prioritaire sur tous les autres ;
• viennent ensuite au même niveau les
opérateurs * et / ;
• enfin, au dernier niveau, on trouve les

opérateurs + et –(dyadique).
Cours d'Algorithmique par
Tindano Olivier 47
2. Priorité des opérateurs
Enfin, des parenthèses permettront
d‟outrepasser ces règles de priorité,
en forçant le calcul préalable de
l‟expression qu‟elles contiennent.
Notez que ces parenthèses peuvent
également être employées pour
assurer une meilleure lisibilité d‟une
expression.
Cours d'Algorithmique par
Tindano Olivier 48
2. Priorité des opérateurs
 Parenthèses superflues
a + b * c ou a + ( b * c )
2 * n + p ou (2 * n ) + p
-a+b ou (- a) + b
- a / - b + c ou ( ( - a ) / ( - b ) ) + c
- a / - ( b + c ) ou ( - a ) / ( - ( b + c ) )

Cours d'Algorithmique par


Tindano Olivier 49
2. Priorité des opérateurs
Exercice 1.5
En supposant que les variables n, p et q sont de
type entier et qu‟elles contiennent respectivement
les valeurs 8, 13 et 29, déterminer les valeurs des
expressions suivantes :

n+p/q
n+q/p
(n + q) / p
n+p/n+p
(n + p) / (n + p)

Cours d'Algorithmique par


Tindano Olivier 50
2. Priorité des opérateurs
Exercice 1.6 Que font ces instructions ?
entier n, p, q
n := 5
p := 5
q := n / (n-p)
Exercice 1.7 Que font ces instructions ?
entier n, p
n := 10
p := 4
n := n * p ;
p := n / p

Cours d'Algorithmique par


Tindano Olivier 51
Cours d'Algorithmique par
Tindano Olivier 52
Cours d'Algorithmique par
Tindano Olivier 53
Cours d'Algorithmique par
Tindano Olivier 54
Cours d'Algorithmique par
Tindano Olivier 55
 Structured'un algorithme
 La Séquence
Instructions dans l'ordre dans lequel elles
apparaissent (énumération)

Cours d'Algorithmique par


Tindano Olivier 56
1. La structure conditionnelle
Les exemple précédents montrent des algorithmes
dont les instructions doivent s'exécuter dans
l'ordre, de la première à la dernière. Nous allons
introduire une instruction précisant que le
déroulement ne sera plus séquentiel. Cette
instruction est appelée une conditionnelle. Il s'agit
de représenter une alternative où, selon les cas, un
bloc d'instructions est exécuté plutôt qu'un autre.
La syntaxe de cette instruction est :
si condition
alors liste d'instructions
sinon liste d'instructions
finsi

Cours d'Algorithmique par


Tindano Olivier 57
1. La structure conditionnelle
Les structures de contrôle conditionnelles,
Cette instruction est composé de trois partie distinctes :
la condition introduite par si, la clause alors et la
clause sinon. La condition est une expression dont la
valeur est de type booléen. Elle est évaluée. Si elle est
vraie, les instructions de la clause alors sont
exécutées. Dans le cas contraire, les instructions de la
clause sinon sont exécutées.
On peut utiliser une forme simplifiée de la
conditionnelle, sans clause sinon. La syntaxe est alors

si condition
alors liste d'instructions
finsi

Cours d'Algorithmique par


Tindano Olivier 58
 Structure d'un algorithme

 La structure conditionnelle (ou alternative)


SI (condition) ALORS (instructions 1) SINON
(instructions 2) FIN SI
SINON est facultatif.
Si la condition énoncée est réalisée faire
instructions 1 sinon faire instructions 2.

Cours d'Algorithmique par


Tindano Olivier 59
Cours d'Algorithmique par
Tindano Olivier 60
Cours d'Algorithmique par
Tindano Olivier 61
Si il fait trop chaud ET il ne pleut pas Alors
Ouvrir la fenêtre
Sinon
Fermer la fenêtre
Finsi
Ou alors équivalent
Si il ne fait pas trop chaud OU il pleut Alors
Fermer la fenêtre
Sinon
Ouvrir la fenêtre
Finsi

Cours d'Algorithmique par


Tindano Olivier 62
Exercice
Écrire un programme qui donne des valeurs à
deux variables entières nommées a et b, et
qui en affiche les valeurs, le produit et la
somme, sous cette forme :
a = 3, b = 5
a*b = 15
a+b = 8

Cours d'Algorithmique par


Tindano Olivier 63
Exercice : Solution
Variable :entier a, b
Début
a := 3
b := 5
écrire " a = ", a, " b = ", b
écrire " a*b = ", a*b
écrire " a+b = ", a+b
Fin

Cours d'Algorithmique par


Tindano Olivier 64
Cours d'Algorithmique par
Tindano Olivier 65
EXEMPLE
Ecrire un algorithme qui permet d„afficher le
résultat d'un étudiant à un module sachant
que ce module est sanctionné par une note
d'oral de coefficient 1 et une note d'écrit de
coefficient 2. La moyenne obtenue doit être
supérieure ou égale à 10 pour valider le
module.

Cours d'Algorithmique par


Tindano Olivier 66
Les structures de contrôle conditionnelles,
Données : la note d'orale et la note d'écrit
Résultat : impression du résultat pour le
module (reçu ou refusé)
Principe : on calcule la moyenne et on la
compare à 10

Cours d'Algorithmique par


Tindano Olivier 67
Les structures de contrôle conditionnelles,

Les structures de contrôle conditionnelles,


Algorithme
VARIABLE Moy,ne,no: Réel
début
ne := lire( )
no := lire( )
moy := (2 * ne + no)/3
si moy < 10
alors écrire (« ECHEC »)
sinon écrire (« RECU »)
finsi
fin
Lexique
- ne : réel, note d'écrit (coefFicient 2)
- no : réel, note d'oral (coefficient 1)
- moy : réel, moyenne du module

Cours d'Algorithmique par


Tindano Olivier 68
Les structures de contrôle conditionnelles,
Exemple: Supposons par exemple que l‟on
souhaite écrire un programme qui lit deux
nombres et une lettre. Si cette lettre est un s
(pour somme), il calcule et écrit la somme des
deux nombres ;dans le cas contraire, il
calcule et écrit le produit. Ce programme
pourrait commencer de cette
manière :

Cours d'Algorithmique par


Tindano Olivier 69
Les structures de contrôle conditionnelles,
Exemple: Il nous faut alors examiner la condition op = ‟s‟ et, si elle est vraie,
exécuter ces deux instructions :
entier a, b, res
caractère op
écrire «donnez deux entiers et un caractère :»
lire a, b, op
si op = ‟s‟ alors
{
res := a + b
écrire " somme= ", res
}
sinon
{
res := a * b
écrire " produit= ", res
}
Cours d'Algorithmique par
Tindano Olivier 70
Les structures de contrôle conditionnelles
entier a, b, res
caractère op
Début
écrire «donnez deux entiers et un caractère :»
lire a, b, op
si op = ‟s‟ alors
res := a + b
écrire «somme=», res

Sinon
res := a * b
écrire «produit=», res
écrire «fin du programme»
Fin
donnez deux entiers et un caractère :
15 25 s
somme=40
fin du programme

Cours d'Algorithmique par


Tindano Olivier 71
 Expression Booléenne
Si booléen Alors
Instructions
Finsi
Si booléen Alors
Instructions 1
Sinon
Instructions 2
Finsi

Cours d'Algorithmique par


Tindano Olivier 72
 Expression Booléenne
Ceci mérite quelques explications.
Un booléen est une expression dont la valeur est
VRAI ou FAUX. Cela peut donc être (il n‟y a que
deux possibilités) :
une variable (ou une expression) de type booléen
une condition

Cours d'Algorithmique par


Tindano Olivier 73
 Expression Booléenne
Qu‟est ce qu‟une condition ?
Une condition est une comparaison
Cette définition est essentielle ! Elle signifie qu‟une
condition est composée de trois éléments :
 une valeur
 un opérateur de comparaison
 une autre valeur

Les valeurs peuvent être a priori de n‟importe quel


type (numériques, caractères…). Mais si l‟on veut
que la comparaison ait un sens, il faut que les deux
valeurs de la comparaison soient du même type !
Cours d'Algorithmique par
Tindano Olivier 74
 Expression Booléenne
Qu‟est ce qu‟une condition ?
Les opérateurs de comparaison sont :
 égal à…
 différent de…
 strictement plus petit que…
 strictement plus grand que…
 plus petit ou égal à…
 plus grand ou égal à…

Cours d'Algorithmique par


Tindano Olivier 75
 Expression Booléenne
Qu‟est ce qu‟une condition ?
Exemple

“t” < “w” 116<119 VRAI


“Maman”(490) > “Papa“(386) VRAI
“maman”(522) > “papa” (418) VRAI

Cours d'Algorithmique par


Tindano Olivier 76
 Expression Booléenne
Exemple
Allez tout droit jusqu‟au prochain carrefour
Si la rue à droite est autorisée à la circulation
Alors
Tournez à droite
Avancez
Prenez la deuxième à gauche
Sinon
Continuez jusqu‟à la prochaine rue à droite
Prenez cette rue
Prenez la première à droite
Finsi
Cours d'Algorithmique par
Tindano Olivier 77
 Correction Test de Niveau1
Exo3
Variable Age en Entier
Début
Ecrire "Entrez l‟âge de l‟enfant : "
Lire Age
Si Age >= 12 Alors
Ecrire "Catégorie Cadet"
SinonSi Age >= 10 Alors
Ecrire "Catégorie Minime"
SinonSi Age >= 8 Alors
Ecrire "Catégorie Pupille"
SinonSi Age >= 6 Alors
Ecrire "Catégorie Poussin"
Finsi
Fin
Cours d'Algorithmique par
Tindano Olivier 78
Exercice 4.1 Lire deux nombres entiers et
déterminer s‟il sont rangés ou non par ordre
croissant.

Exercice 4.2 Lire deux nombres entiers.


Déterminer s‟ils sont rangés ou non par ordre
croissant et, dans tous les cas, afficher leur
différence (entre le plus grand et le plus petit).

Cours d'Algorithmique par


Tindano Olivier 79
 Correction Test de Niveau1
Exo4
entier a, b, c
écrire " donnez 3 nombres entiers "
lire a, b, c
si a<b et b<c alors écrire " ils sont rangés par
ordre croissant "
sinon écrire " ils ne sont pas rangés par ordre
croissant "

Cours d'Algorithmique par


Tindano Olivier 80
 Correction Test de Niveau1
Exo4
Début
entier a, b, dif
écrire «donnez deux nombres entiers»
lire a, b
si a<=b alors { écrire «ils sont rangés par ordre croissant»
dif := b-a
}
sinon { écrire «ils ne sont pas rangés par ordre croissant»
dif := a-b
}
écrire «et leur différence est : », dif
fin
Cours d'Algorithmique par
Tindano Olivier 81
 Structures conditionnelles
Exemple
Voici un programme qui lit un nombre entier et qui
précise s‟il est ou non compris entre 10
(exclus) et 20 (inclus).
entier n
écrire " donnez un nombre entier : "
lire n
si (n > 10) et (n <= 20) alors écrire " dans la fourchette "
sinon écrire " en dehors de la fourchette "
--------Affichage------------
donnez un nombre entier :
26
en dehors de la fourchette

Cours d'Algorithmique par


Tindano Olivier 82
 Structures conditionnelles
Exemple
Supposez que, dans un programme de calcul
d‟une facture, il nous faille effectuer une remise
de 1% lorsque son montant dépasse 2000 Franc
CFA

Cours d'Algorithmique par


Tindano Olivier 83
Exo4
Ecrire un algorithme qui calcule la surface et le
périmètre d‟un cercle.

Cours d'Algorithmique par


Tindano Olivier 84
Solution EXO4
PROGRAMME CERCLE
VARIABLE
r, PI, surface,perimetre:Réels
DEBUT
PI←3,1415927(constante)
r←5,2
surface←PI * r * r
perimetre←2 * PI * r
Afficher surface,perimetre
FIN

Cours d'Algorithmique par


Tindano Olivier 85
EXO5
Ecrire un algorithme qui calcule la solution
d‟une équation du second degré
ax²+bx+c=0
Δ=b²-4ac

Cours d'Algorithmique par


Tindano Olivier 86
SOLUTION EXO5

PROGRAMME EQUATION
VARIABLES
a,b,c,delta,x1,x2 :réels
DEBUT
a←3
b←6
c←-10
delta←( b * b ) - ( 4 * a * c )
x1←( -b + racine(delta) ) / ( 2 * a )
x2←( -b - racine(delta) ) / ( 2 * a )
Afficher "les résultats sont :"
Afficher "x1=",x1
Afficher "x2=",x2
FIN

Cours d'Algorithmique par


Tindano Olivier 87
Exo6
Les élections législatives, dans le Gondwana, obéissent à la
règle suivante :
• lorsque l'un des candidats obtient plus de 50% des suffrages,
il est élu dès le premier tour.
• en cas de deuxième tour, peuvent participer uniquement les
candidats ayant obtenu au moins 12,5% des voix au premier
tour.

Vous devez écrire un algorithme qui permette la saisie des


scores de quatre candidats au premier tour. Cet algorithme
traitera ensuite le candidat numéro 1 (et uniquement lui) : il
dira s'il est élu, battu, s'il se trouve en ballottage favorable (il
participe au second tour en étant arrivé en tête à l'issue du
premier tour) ou défavorable (il participe au second tour sans
avoir été en tête au premier tour).

Cours d'Algorithmique par


Tindano Olivier 88
Exo7

Calcul de remise :
Ecrire un programme qui détermine un
montant net à partir d‟un montant brut (entré
par l‟utilisateur) en appliquant une remise de
:
• 5% si le montant brut est compris entre 200
et 500 FCFA
• 10% si le montant brut est supérieur à 500
FCFA

Cours d'Algorithmique par


Tindano Olivier 89
2)Les structures de contrôle répétitives
a) Les répétitions conditionnelles(ou «
indéfinies ») : la poursuite de la répétition
des instructions concernées dépend d‟une
certaine condition qui peut être examinée :
– soit après les instructions à répéter : on parle
généralement de répétition jusqu‟à ;
– soit avant les instructions à répéter : on parle
généralement de répétition tant que.

Cours d'Algorithmique par


Tindano Olivier 90
2)Les structures de contrôle répétitives
b) Les répétitions inconditionnelles
Ils sont ou « avec compteur » ou « définies » :
les instructions concernées sont répétées un
nombre donné de fois.

Cours d'Algorithmique par


Tindano Olivier 91
i) La répétition jusqu‟à‟
Exemple: voici un exemple introductif
entier n
Début
répéter
écrire «donnez un nombre entier :»
lire n
écrire «voici son carré : », n*n
jusqu‟à n = 0
écrire «fin du programme»
Fin

Cours d'Algorithmique par


Tindano Olivier 92
i) La répétition jusqu‟à‟
Les mots répéter et jusqu‟à encadrent le bloc
d‟instructions :
écrire «donnez un nombre entier :»
lire n
écrire «voici son carré : », n*n
Ils signifient que ces instructions doivent être
répétées autant de fois qu‟il est nécessaire et
ceci jusqu‟à ce que la condition n=0 soit vraie.

Cours d'Algorithmique par


Tindano Olivier 93
i) La répétition jusqu‟à‟
Exemple d‟exécution pour les valeurs 3, 12 et 0
donnez un nombre entier :
3
voici son carré : 9
donnez un nombre entier :
12
voici son carré : 144
donnez un nombre entier :
0
voici son carré : 0
fin du programme

Cours d'Algorithmique par


Tindano Olivier 94
i) La répétition jusqu‟à‟
 Convention d‟écriture
répéter
instruction
jusqu‟à condition
• instruction : instruction de base, bloc
d‟instructions ou instruction structurée telle
que choix ou une boucle
• condition : expression booléenne.

Cours d'Algorithmique par


Tindano Olivier 95
i) La répétition jusqu‟à‟
Écrire un programme qui demande à
l‟utilisateur de lui fournir un nombre entier
positif et inférieur à 100 et ceci jusqu‟à ce que
la réponse soit satisfaisante. Le dialogue avec
l‟utilisateur se présentera ainsi :
donnez un entier positif inférieur à 100 :
453
donnez un entier positif inférieur à 100 :
25
merci pour le nombre 25

Cours d'Algorithmique par


Tindano Olivier 96
i) La répétition jusqu‟à‟
Exemple: solution
nombre: Entier
répéter
{ écrire «donnez un entier positif inférieur à 100»
lire nombre
}
jusqu‟à nombre>0 et nombre<100
écrire «merci pour le nombre », nombre

Cours d'Algorithmique par


Tindano Olivier 97
ii)La répétition Tant que
TantQue booléen ou expréssion

Instructions

FinTantQue

Cours d'Algorithmique par


Tindano Olivier 98
ii)La répétition Tant que
Variable Rep en Caractère
Début
Ecrire "Voulez vous un café ? (O/N)"
Lire Rep
TantQue Rep != "O" et Rep != "N"
Ecrire "Vous devez répondre par O ou N.
Recommencez"
Lire Rep
FinTantQue
Ecrire "Saisie acceptée"
Fin

Cours d'Algorithmique par


Tindano Olivier 99
ii)La répétition Tant que
1) Boucler en comptant, ou compter en bouclant
Variable Truc en Entier
Début
Truc ← 0
TantQue Truc < 15
Truc ← Truc + 1
Ecrire "Passage numéro : ", Truc
FinTantQue
Fin

Cours d'Algorithmique par 10


Tindano Olivier 0
iii)La répétition Pour

Variable Truc en Entier


Début
Pour Truc ← 1 à 15
Ecrire "Passage numéro : ", Truc
Truc Suivant
Fin
Truc Suivant idem Truc ← Truc+1

Pour Compteur ← Initial à Final Pas ValeurDuPas



Instructions

Compteur suivant

Cours d'Algorithmique par 10


Tindano Olivier 1
iii)La répétition Pour
Application1
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

Cours d'Algorithmique par 10


Tindano Olivier 2
iii)La répétition Pour
Réponse Application1

Variables N, i en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
Ecrire "La table de : " ,N
Pour i ← 1 à 10
Ecrire N, " x ", i, " = ", N*i
i Suivant
FinPour
Fin

Cours d'Algorithmique par 10


Tindano Olivier 3
iii)La répétition Pour
Application2
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

Cours d'Algorithmique par 10


Tindano Olivier 4
iii)La répétition Pour
Réponse Application2
Variables N, i, Som en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
Som ← 0
Pour i ← 1 à N
Som ← Som + i
i Suivant
Ecrire "La somme est : ", Som
Fin

Cours d'Algorithmique par 10


Tindano Olivier 5
iii)La répétition Pour
Application3
Ecrire un algorithme qui demande un nombre
de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut
1x2x3x4x5x6x7x8

Cours d'Algorithmique par 10


Tindano Olivier 6
iii)La répétition Pour
Réponse Application3
Variables N, i, F en Entier
Debut
Ecrire "Entrez un nombre : "
Lire N
F←1
Pour i ← 2 à N
F←F*i
i Suivant
Ecrire "La factorielle est : ", F
Fin

Cours d'Algorithmique par 10


Tindano Olivier 7
iv)Les Tableaux
a) Imaginons que dans un programme, nous
ayons besoin simultanément de 12 valeurs
(par exemple, des notes pour calculer une
moyenne). Evidemment, la seule solution
dont nous disposons actuellement consiste
à déclarer douze variables, appelées par
exemple Note1, Note2, Note3, etc

Moy← (N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12)/12

Cours d'Algorithmique par 10


Tindano Olivier 8
iv)Les Tableaux
b. Notation et utilisation algorithmique
 Un tableau doit être déclaré comme tel, en
précisant le nombre et le type de valeurs qu‟il
contiendra.
Tableau Note(11) en Entier
 les "cases" sont numérotées à partir de zéro,
autrement dit ; le plus petit indice est zéro. lors
de la déclaration d'un tableau, on précise la
plus grande valeur de l'indice (différente, donc,
du nombre de cases du tableau, puisque si on
veut 12 emplacements, le plus grand indice
sera 11)

Cours d'Algorithmique par 10


Tindano Olivier 9
iv)Les Tableaux
Réponse à notre problème
Tableau Note(11) en Numérique
Variables Moy, Som en Numérique
Début
Pour i ← 0 à 11
Ecrire "Entrez la note n°", i
Lire Note(i)
i Suivant
FinPour
Som ← 0
Pour i ← 0 à 11
Som ← Som + Note(i)
i Suivant
FinPour
Moy ← Som / 12
Fin

Cours d'Algorithmique par 11


Tindano Olivier 0
iv)Les Tableaux
c. Tableaux dynamiques
Il arrive fréquemment que l‟on ne connaisse pas à
l‟avance le nombre d‟éléments que devra
comporter un tableau
Aussi, pour parer à ce genre de situation, a-t-on la
possibilité de déclarer le tableau sans préciser au
départ son nombre d‟éléments. Ce n‟est que dans un
second temps, au cours du programme, que l‟on va
fixer ce nombre via une instruction de
redimensionnement : Redim.
Notez que tant qu‟on n‟a pas précisé le nombre
d‟éléments d‟un tableau, d‟une manière ou d‟une
autre, ce tableau est inutilisable.

Cours d'Algorithmique par 11


Tindano Olivier 1
iv)Les Tableaux
c. Tableaux dynamiques
Tableau Notes() en Numérique
Variable nb en Numérique
Début
Ecrire "Combien y a-t-il de notes à saisir ?"
Lire nb
Redim Notes(nb-1)
…………

Cours d'Algorithmique par 11


Tindano Olivier 2
iv)Les Tableaux
Application1
Ecrire un algorithme qui déclare et remplisse un
tableau de 7 valeurs numériques en les mettant
toutes à zéro.

Cours d'Algorithmique par 11


Tindano Olivier 3
iv)Les Tableaux
Rép Application1
Tableau Tab(6) en Numérique
Variable i en Numérique
Debut
Pour i ← 0 à 6
Tab(i) ← 0
i Suivant
Fin

Cours d'Algorithmique par 11


Tindano Olivier 4
iv)Les Tableaux
Application2
Ecrire un algorithme qui déclare et remplisse un
tableau contenant les six voyelles de l‟alphabet
latin.

Cours d'Algorithmique par 11


Tindano Olivier 5
iv)Les Tableaux
Rép Application2
Tableau Truc(5) en Caractère
Debut
Truc(0) ← "a"
Truc(1) ← "e"
Truc(2) ← "i"
Truc(3) ← "o"
Truc(4) ← "u"
Truc(5) ← "y"
Fin

Cours d'Algorithmique par 11


Tindano Olivier 6
v) Les Tableaux à plusieurs dimensions
a) Tableau à deux dimensions
Un tel tableau se déclare ainsi :
Tableau Cases(7, 7) en Numérique
Cela veut dire : réserve moi un espace de mémoire pour 8 x 8 entiers,
et quand j‟aurai besoin de l‟une de ces valeurs, je les repèrerai par
deux indices

Application1: Ecrivez un algorithme remplissant un tableau de 6 sur


13, avec des zéros.

Tableau Truc(5, 12) en Entier


Debut
Pour i ← 0 à 5
Pour j ← 0 à 12
Truc(i, j) ← 0
j Suivant
i Suivant
Fin
Cours d'Algorithmique par 11
Tindano Olivier 7
v) Les Tableaux à plusieurs dimensions
a) Tableau à deux dimensions
Application2:
Quel résultat produira cet algorithme ?
Tableau X(1, 2) en Entier
Variables i, j, val en Entier
Début
Val ← 1 Cet algorithme remplit un tableau de la manière
Pour i ← 0 à 1
Pour j ← 0 à 2 suivante:
X(i, j) ← Val
Val ← Val + 1 X(0, 0) = 1
j Suivant X(0, 1) = 2
i Suivant
Pour i ← 0 à 1 X(0, 2) = 3
Pour j ← 0 à 2 X(1, 0) = 4
Ecrire X(i, j) X(1, 1) = 5
j Suivant X(1, 2) = 6
i Suivant
Fin

Cours d'Algorithmique par 11


Tindano Olivier 8
v) Les Tableaux à plusieurs dimensions
b) Tableau à n dimensions
Si vous avez compris le principe des tableaux à deux
dimensions, sur le fond, il n‟y a aucun problème à
passer au maniement de tableaux à trois, quatre, ou
pourquoi pas neuf dimensions. C‟est exactement la
même chose. Si je déclare un tableau Toto(2, 4, 3, 3), il
s‟agit d‟un espace mémoire contenant 3 x 5 x 4 x 4 =
240 valeurs. Chaque valeur y est repérée par quatre
coordonnées.

Cours d'Algorithmique par 11


Tindano Olivier 9
1) Les Fonctions et les procédures
a) Définition
Exemple: Supposons ces instructions:

écrire «Nombre de points obtenus»


écrire «au cours de cette partie»
La notion de fonction nous permet de regrouper ces deux
instructions sous un nom unique,par exemple message. Ici, nous
conviendrons de les placer dans un bloc (nommé corps de la
fonction) précédé d‟une ligne (nommée en-tête de la fonction)
précisant le nom choisi :
fonction message // en-tête
Début
écrire «Nombre de points obtenus» // corps de la fonction
écrire «au cours de cette partie»
FinFonction

Cours d'Algorithmique par 12


Tindano Olivier 0
1) Les Fonctions et les procédures
a) Définition
Il suffira alors d‟une simple instruction dite d‟appel de
cette fonction, telle que :
Message pour provoquer l‟exécution des instructions
qu‟elle contient. Ainsi, notre programme précédent
pourra-t‟il se simplifier comme suit// le programme
précédent utilisant la fonction message
Début
.....

Message
Fin

Cours d'Algorithmique par 12


Tindano Olivier 1
1) Les Fonctions et les procédures
b) Notion de paramètres
Considérons maintenant un programme contenant
ces instructions :
// un exemple de programme sans fonction
entier n := 20, p := 25
écrire «Nombre de points obtenus : »
écrire n
.....
écrire «Nombre de points obtenus : »
écrire p
.....

Cours d'Algorithmique par 12


Tindano Olivier 2
1) Les Fonctions et les procédures
b) Notion de paramètres
On voit que les instructions ne diffèrent que par la
valeur affichée (celle de n, puis celle
de p)
Là encore, nous allons pouvoir en faire une fonction,
nommée par exemple affiche, mais cette fois, celle-ci
devra disposer de ce que l‟on nomme un paramètre :
il s‟agit d‟une valeur qu‟on transmet à la fonction au
moment de son appel. Nous conviendrons que cet
appel seprésentera ainsi :

affiche (x) // x : valeur entière à fournir à la fonction

Cours d'Algorithmique par 12


Tindano Olivier 3
1) Les Fonctions et les procédures
b) Notion de paramètres
// le programme précédent utilisant la fonction
affiche
entier n := 20, p := 25
affiche (n) // appel de la fonction affiche, avec
en paramètre la valeur de n
.....
affiche (p) // appel de la fonction affiche, avec
en paramètre la valeur de p
.....
Cours d'Algorithmique par 12
Tindano Olivier 4
1) Les Fonctions et les procédures
b) Notion de paramètres
fonction affiche (entier nb) // ici nb représente la
//valeur entière qui sera fournie en paramètre lors
//de l‟appel
Début
écrire «Nombre de points obtenus : »
écrire nb
FinFonction
L‟en-tête précise que la fonction s‟attend à recevoir un
paramètre de type entier et que sa valeur sera
désignée par le symbole nb dans les instructions de
la fonction. Ce symbole s‟utilisera alors comme un
nom de variable usuel

Cours d'Algorithmique par 12


Tindano Olivier 5
1) Les Fonctions et les procédures
b) Notion de paramètres
// le programme précédent utilisant la fonction affiche
entier n := 20, p := 25
affiche (n) // appel de la fonction affiche, avec en paramètre la
valeur de n
.....
affiche (p) // appel de la fonction affiche, avec en paramètre la
valeur de p
.....
// définition de la fonction affiche
fonction affiche (entier nb) // ici nb représente la valeur entière
qui
// sera fournie en paramètre lors de l‟appel
{ écrire «Nombre de points obtenus : »
écrire nb
}
Exemple de fonction disposant d‟un paramètre

Cours d'Algorithmique par 12


Tindano Olivier 6
1) Les Fonctions et les procédures
b) Notion de paramètres
i. Paramètres formels ou effectifs
Les paramètres figurant dans l‟en-tête d‟une fonction se nomment des
paramètres formels.
Ceux fournis lors de l‟appel de la fonction se nomment paramètres
effectifs
Dans l‟exemple du paragraphe précédent, le paramètre effectif était
une variable (n, puis p), mais on pourrait très bien utiliser une
constante ou une expression, comme dans :
affiche (5)
affiche (2*n + 3)

Cours d'Algorithmique par 12


Tindano Olivier 7
1) Les Fonctions et les procédures
b) Notion de paramètres
i. Paramètres formels ou effectifs
Les paramètres figurant dans l‟en-tête d‟une fonction se nomment des
paramètres formels.
Ceux fournis lors de l‟appel de la fonction se nomment paramètres
effectifs
Dans l‟exemple du paragraphe précédent, le paramètre effectif était
une variable (n, puis p), mais on pourrait très bien utiliser une
constante ou une expression, comme dans :
affiche (5)
affiche (2*n + 3)

Cours d'Algorithmique par 12


Tindano Olivier 8
1) Les Fonctions et les procédures
b) Notion de paramètres
i. Paramètres formels ou effectifs
Une telle liberté (variable, constante, expression) n‟aurait
aucun sens pour les paramètres formels. Ainsi, on ne
pourrait pas écrire l‟en-tête de affiche, sous l‟une de
ces formes :

affiche (entier nb +5) // en-tête incorrrect


affiche (entier 3) // en-tête incorrrect

pas plus qu‟en mathématiques, on ne peut définir une


fonction f par f(nb+5)=8 ou f(5)=12 !

Cours d'Algorithmique par 12


Tindano Olivier 9
1) Les Fonctions et les procédures
b) Notion de paramètres
ii) Notion de variable locale
// programme utilisant la fonction salut
écrire «Utilisons une première fois la fonction salut»
salut (3)
écrire «Utilisons une seconde fois la fonction salut»
salut (2)
// la fonction salut
fonction salut (entier n)
{ entier i
répéter pour i := 1 à n
écrire «bonjour à tous»
}
Mais nous voyons que nous avons besoin en outre d‟une variable
entière i destinée à jouer le rôle de compteur dans notre boucle
pour. Nous conviendrons qu‟il est possible de la déclarer dans les
instructions de la fonction et nous dirons qu‟il s‟agit d‟une variable
locale à la fonction.

Cours d'Algorithmique par 13


Tindano Olivier 0
1) Les Fonctions et les procédures
b) Notion de paramètres
iii) Application
Écrivez une fonction qui renvoie la somme de cinq
nombres entier fournis en argument.
Fonction Sum(entier a, b, c, d, e)
Renvoyer a + b + c + d + e
FinFonction

Cours d'Algorithmique par 13


Tindano Olivier 1
1) Les Fonctions et les procédures
c) Exemple de fonctions à plusieurs paramètres
Cette fonction renvoie le maximum de trois nombres passés en
paramètre
entier fonction max (entier a, entier b, entier c)
{ entier m
m := a
si b > m alors m := b
si c > m alors m := c
retourne m
}

Cours d'Algorithmique par 13


Tindano Olivier 2
1) Les Fonctions et les procédures
c) Exemple de fonctions à plusieurs paramètres
// programme utilisant la fonction max
entier n, p, q, m
n := 3
p := 5
q := 2
m := max (n, p, q)
écrire «maximum de », n, p, «et », q, « = » , m
m := max (2*n, p, q+2)
écrire «maximum de », 2*n, p, «et », q+2, « = », m
// la fonction max
entier fonction max (entier a, entier b, entier c)
{ entier m
m := a
si b > m alors m := b
si c > m alors m := c
Cours d'Algorithmique par 13
retourne m Tindano Olivier 3
1) Les Fonctions et les procédures
c) Exemple de fonctions à plusieurs paramètres
Résultat
maximum de 3 5 et 2 = 5
maximum de 6 5 et 4 = 6

Cours d'Algorithmique par 13


Tindano Olivier 4
2) Différence entre Les Fonctions et les procédures
 En informatique, une fonction est une portion de code
effectuant une tâche ou un calcul relativement indépendant
du reste du programme, et qui peut renvoyer une valeur ou
un compte-rendu d'exécution.
 En programmation impérative, une fonction comporte une
séquence d'instructions réalisant un calcul ou une tâche. En
programmation fonctionnelle, la fonction est l'artifice qui
permet de découper le problème global en éléments plus
simples
 Une fonction qui ne renvoie aucun résultat se nomme
procédure (ou sous-programme).

 Une fonction s'appelant elle-même se nomme fonction


récursive.

Cours d'Algorithmique par 13


Tindano Olivier 5
2) Introduction a la récursivité
Faire une fonction qui calcul le factoriel d‟un entier naturel n positif
entré au clavier. Ça se note n!
Exemple Classique
entier Fonction fact1(n:entier )
début
Entier j
j := 1
si n sup 0 alors
Pour i allant de 2 à n Faire
j := j*i
i Suivant
FinPour
Retourner j
fin

Cours d'Algorithmique par 13


Tindano Olivier 6
2) Introduction a la récursivité
Définition
Si l‟on doit programmer cela, on peut alors imaginer une
fonction Fact, chargée de calculer la factorielle. Cette fonction
effectue la multiplication du nombre passé en argument par
la factorielle du nombre précédent. Et cette factorielle du
nombre précédent va bien entendu être elle-même calculée
par la fonction Fact.
Autrement dit, on va créer une fonction qui pour fournir son
résultat, va s‟appeler elle-même un certain nombre de fois.
C‟est cela, la récursivité.

Cours d'Algorithmique par 13


Tindano Olivier 7
2) Introduction a la récursivité

Fonction factorielle

Fonction Fact (N en Numérique)


Si N = 0 alors
Renvoyer 1
Sinon
Renvoyer Fact(N-1) * N
Finsi
Fin Fonction

Cours d'Algorithmique par 13


Tindano Olivier 8
2) Introduction a la récursivité
Conclusion
Pour conclure sur la récursivité, trois remarques fondamentales.
 la programmation récursive, pour traiter certains problèmes,
est très économique pour le programmeur ; elle permet de
faire les choses correctement, en très peu d'instructions.
 en revanche, elle est très dispendieuse de ressources
machine. Car à l‟exécution, la machine va être obligée de
créer autant de variables temporaires que de « tours » de
fonction en attente.

 tout problème formulé en termes récursifs peut également


être formulé en termes itératifs !

Cours d'Algorithmique par 13


Tindano Olivier 9

Vous aimerez peut-être aussi