Algorithmique et informatique – Chapitre 1 : présentation

publicité
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
M1204 - Algorithmique et informatique
Chapitre 1 : présentation
Ludovic Grossard
Département Mesures Physiques, IUT du Limousin
Université de Limoges
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
Plan
1 Cycle de vie d’un projet logiciel
2 Définitions
3 La recette de cuisine est un
6 Rubik’s cube
7 Pourquoi apprendre
algorithme
4 La recette de cuisine n’est pas
un algorithme
5 Efficacité d’un algorithme
8 Premier algorithme simple
9 Les briques de base
10 De l’algorithme au programme
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
l’algorithmique ?
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
I. Cycle de vie d’un projet logiciel
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
Cycle de vie d’un projet logiciel
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
II. Définitions
Algorithme
ensemble des règles opératoires qui permettent la résolution d’un problème
par l’application d’un nombre fini d’opérations de calcul à exécuter en
séquence.
Pseudo-code
façon de décrire un algorithme sans référence à un langage de programmation en particulier. Il n’existe pas de réelle convention pour le pseudo-code.
Code
texte qui représente les instructions qui doivent être exécutées par un microprocesseur, généralement écrit dans un langage de programmation
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
III. La recette de cuisine est un algorithme
Vous avez des algorithmes à la maison
Tout comme une recette de cuisine, un algorithme est caractérisé par :
des données en entrée (les ingrédients)
des opérations à exécuter en séquence (préparation / cuisson)
un résultat (les sablés nappés de chocolat)
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
IV. La recette n’est pas un algorithme
Une recette est ambigüe
(termes vagues, plusieurs
options)
nécessite également le « coup
de main » du chef
ne mène pas toujours au
résultat attendu
Un algorithme est non ambigü et conduit toujours au même résultat
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
V. Efficacité d’un algorithme
On mesure l’efficacité d’un algorithme par :
sa durée de calcul (complexité de l’algorithme)
sa consommation de mémoire,
l’exactitude du résultat obtenu (méthodes probabilistes),
sa scalabilité (aptitude à être efficacement parallélisé).
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
VI. Le Rubik’s cube
43 252 003 274 489 856 000 combinaisons
recherche de la solution au hasard : > 100 fois l’âge
de l’Univers (à une combinaison par seconde)
recherche de la solution par des algorithmes
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
Le Cubestormer II en action
Vidéo cubestormer (disponible sur claroline)
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
VII. Pourquoi apprendre l’algorithmique ?
et pas apprendre directement un langage de programmation
L’algorithme exprime les instructions résolvant un problème donné
indépendamment des particularités de tel ou tel langage ;
Il est écrit en pseudo-code
permet d’apprendre à manier la structure logique d’un programme
informatique quel que soit le langage de programmation ;
si un programme était une dissertation, l’algorithmique serait le plan ;
vous pourrez ensuite passer facilement d’un langage à un autre.
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
VIII. Premier algorithme simple
Distributeur de boissons
VARIABLES
monnaieIntroduite : réel
numeroBoisson : entier
prixBoisson : réel
monnaieRendue : réel
DEBUT_ALGORITHME
# On fixe le prix d’une boisson
prixBoisson ← 0.5
# On attend la monnaie
Écrire "Introduisez votre monnaie"
Lire monnaieIntroduite
# On attend que le client choisisse la
boisson
Écrire "choisissez votre boisson"
Lire numeroBoisson
# On prépare la boisson
Écrire "Préparation en cours"
Écrire "Terminé. Prenez votre
boisson"
# On rend la monnaie
monnaieRendue ← monnaieIntroduite prixBoisson
Écrire "Monnaie rendue : " ,
monnaieRendue
FIN_ALGORITHME
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
L’algorithme a quelques
limitations :
on ne vérifie pas si la
somme introduite est
suffisante
on ne permet pas
d’introduire plusieurs
pièces
une fois la boisson servie
et la monnaie rendue,
on ne recommence pas
au début
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
IX. Les briques de base
Un algorithme, aussi complexe soit-il, est composé de quatre familles
d’instructions :
l’affectation de variables
la lecture / écriture
les tests
les boucles
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
X. De l’algorithme au programme
L’algorithme ne représente que la suite des opérations à effectuer,
sa mise en œuvre se fait via un langage de programmation ,
le résultat de cette transcription s’appelle le code
Il existe un grand nombre de langages de programmation (661 selon
wikipedia), chacun ayant ses spécificités.
Nous utiliserons le langage Python
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
XI. Python
c’est quoi cette bête ?
créé en 1990
idéal pour débuter la programmation
logiciel libre
multiplateforme
grande communauté de développeurs
nombreuses bibliothèques de fonctions
. . . j’aime bien :)
Guido van Rossum
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py
Premier programme Python
Distributeur de boissons
1
2
3
4
5
#
#
#
#
#
variables
monnaieIntroduite :réel
numeroBoisson :entier
prixBoisson :réel
monnaieRendue :réel
6
7
8
# on fixe le prix d’une boisson
prixBoisson = 0.5
9
10
11
# on attend que le client insère la monnaie
monnaieIntroduite = input("Introduisez votre monnaie : ")
12
13
14
# on attend que le client choisisse la boisson
numeroBoisson = input("Choisissez votre boisson : ")
15
16
17
18
# on prépare la boisson
print "Préparation en cours"
print "Terminé. Prenez votre boisson"
19
20
21
22
# on rend la monnaie
monnaieRendue = monnaieIntroduite - prixBoisson
print "Monnaie rendue : " , monnaieRendue
M1204 - Algorithmique et informatique – Chapitre 1 : présentation
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
M124 - Algorithmique et informatique
Chapitre 2 : les variables
Ludovic Grossard
Département Mesures Physiques, IUT du Limousin
Université de Limoges
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
Plan
1
2
3
4
5
Définitions
Types de données
Noms des variables
Déclaration des variables
Affectation à une variable
M124 - Algorithmique et informatique – Chapitre 2 : les variables
6 Déclaration des variables
7 Les opérateurs
Opérateurs et opérandes
Opérateurs mathématiques
Priorité des opérateurs
8 Lire et afficher des variables
9 Exemple
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
I. Définitions
Variable
Emplacement mémoire dans lequel on peut lire et écrire des données
permet au programme de travailler sur des données
et de stocker le résultat
les variables sont indispensables en programmation
leur emplacement dans la mémoire s’appelle l’adresse
mais on les désigne généralement par un nom (une étiquette)
attention, la mémoire est volatile (son contenu disparaît à la fin du
programme)
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
II. Types de données
Les variables peuvent accueillir des données simples :
des nombres (entiers, réels)
du texte (caractère unique ou chaîne de caractères)
des booléens (vrai / faux)
et des structures de données plus complexes :
nombres complexes
tableaux, matrices
structures définies par l’utilisateur
(matrice de complexes, tableau de chaînes de caractères. . .)
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
III. Noms des variables
Chaque variable possède un nom, choisi par le programmeur
Quelques règles :
le nom de la variable doit indiquer de manière claire son rôle
(prixBoisson, monnaieIntroduite. . .)
les compteurs sont généralement nommés avec une seule lettre : i, j,
k. . .
pas d’espaces, pas d’accents ou caractères spéciaux ($#!@«». . .)
on évite les noms compliqués ou sans signification : toto, zz42,
nbPtsdsplan (difficiles à retenir, risque d’erreur de saisie)
ne pas hésiter à prendre un nom long si besoin :
vitesseMoyenneEnkmh
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
III. Noms des variables
Conventions généralement utilisées pour nommer les variables
CamelCase (chatMot)
lowercase / underscore
vitesseMoyenneEnkmh
vitesse_moyenne_en_kmh
Une fois la convention fixée, il faut s’y tenir tout au long du projet.
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
IV. Déclaration des variables
Au début de chaque algorithme, on déclare les variables utilisées et le
type de données qu’elles accueilleront
VARIABLES
monnaieIntroduite : réel
numeroBoisson : entier
...
Certains langages nécessitent que les variables soient déclarées
ce n’est pas le cas du langage Python
mais nous les déclarerons en commentaires
1
2
3
4
# variables
# monnaieIntroduite : réel
# numeroBoisson : entier
...
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
V. Affectation à une variable
Pour donner une valeur à une variable, on utilise
l’opérateur d’affectation ←
prixBoisson ← 0.5
L’expression à droite du symbole ← est évaluée, puis placée dans la
variable située à gauche.
on peut (ré)affecter une variable à n’importe quel moment
Cette expression peut être :
une constante (a ← 1)
une autre variable (a ← b)
une expression (a ← b + c)
Exemple : l’incrémentation :
a←a+1
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VI. Affectation à une variable
Attention
Avant de pouvoir utiliser une variable dans un algorithme, elle doit être
initialisée
VARIABLES
a : entier
b : entier
c : entier
DEBUT_ALGORITHME
a ← 1
c ← a + b
# Problème ! Que vaut b ?
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VII. Opérateurs
1) Opérateurs et opérandes
opérateur
symbole utilisé pour effectuer un calcul entre des opérandes
opérande
variable ou expression
expression
suite valide d’opérateurs et d’opérandes
Par exemple, dans l’expression :
x ← y + 1 Il y a deux opérateurs ( ← et +) et trois opérandes (x,y et 1).
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VII. Opérateurs
1) Opérateurs et opérandes
Il existe différents types d’opérateur :
d’affectation
mathématiques
de comparaison
logiques
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VII. Opérateurs
2) Opérateurs mathématiques
Les opérateurs suivants sont disponibles :
←
←
←
←
←
+
*
**
/
addition
soustraction
multiplication
élévation à la puissance
division
x
x
x
x
x
%
modulo
x←y%z
exemple :
17 % 3 = 2 (car 17 = 3*5 + 2)
M124 - Algorithmique et informatique – Chapitre 2 : les variables
y
y
y
y
y
+z
-z
*z
** 3
/z
attention à la division par 0 !
y et z entiers
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VII. Opérateurs
3) Priorité des opérateurs
de la précédence la plus forte à la plus faible :
**
*, /, %
+, -
Exponentiation
Multiplication, Division et Reste
Addition et soustraction
Les opérateurs avec la même précédence sont listés dans la même ligne
Par exemple, + et - ont la même précédence.
Exemple
x ← 5 + 3 * 2**2
x vaut 17
Pour modifier l’ordre d’évaluation, on utilise des parenthèses :
x vaut 32
x ← (5 + 3) * 2**2
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VIII. Lire et afficher des variables
Un programme doit pouvoir dialoguer avec l’utilisateur
lire les données qu’il saisit au clavier
afficher des informations à l’écran
Remarque :
lorsque le programme lit des données, l’utilisateur écrit.
Lorsque le programme affiche des données, l’utilisateur les lit.
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VIII. Lire et afficher des variables
VARIABLES
x : réel # nombre choisi par
l’utilisateur
carre : réel # son carré
DEBUT_ALGORITHME
# on demande à l’utilisateur de
saisir x
Écrire "Saisissez x : "
Lire x
# on calcule le carré de x
carre ← x*x
# on affiche le carré
Écrire "le carré de ", x , "
vaut " , carre
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Lire demande à l’utilisateur de
saisir au clavier un nombre ou
du texte
Écrire "texte" affiche du texte
à l’écran
Écrire var affiche le contenu de
la variable var
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
VIII. Lire et afficher des variables
VARIABLES
x : réel
DEBUT_ALGORITHME
x ← 2
Écrire
Écrire
Écrire x affiche le contenu de la
variable x : 2
Écrire "x" affiche le texte x
x
"x"
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
IX. Exemple
calcul du bénéfice mensuel réalisé par un transporteur
200 voyageurs par jour
à 2e TTC le ticket
et une TVA à 7%
600 km par jour
consommation : 10 l/100 km
prix du litre : 1.5 e
coût d’entretien journalier : 50e
VARIABLES
prixDuBillet : réel # en e
tauxTVA : réel
nombreDeVoyageursParJour : entier
recettes : réel # en e
prixLitreEssence : réel # en e
consommation : réel # au 100 km
nombreDeKmParJour : réel
coutEntretien : réel # coût journalier
fixe en e
depenses : réel # en e
beneficeJournalier : réel # en e
joursOuvres : entier
beneficeMensuel : réel # en e
jours ouvrés dans le mois : 20
M124 - Algorithmique et informatique – Chapitre 2 : les variables
Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables
IX. Exemple (suite)
DEBUT_ALGORITHME
# Recettes
prixDuBillet ← 2
tauxTVA ← 0.07
nombreDeVoyageursParJour ← 200
recettes ← ( prixDuBillet * nombreDeVoyageursParJour ) *
(1/(1+tauxTVA))
# Dépenses
prixLitreEssence ← 1.5
consommation ← 10
nombreDeKmParJour ← 600
coutEntretien ← 50
depenses ← ( consommation * nombreDeKmParJour / 100 )
* prixLitreEssence + coutEntretien )
# calcul du bénéfice
beneficeJournalier ← recettes - depenses
joursOuvres ← 20
beneficeMensuel ← beneficeJournalier * joursOuvres
# affichage du résultat
Écrire "bénéfice mensuel : " , beneficeMensuel , " e"
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 2 : les variables
définition Les alternatives Les opérateurs logiques Les boucles
M124 - Algorithmique et informatique
Chapitre 3 : les structures de contrôle
Ludovic Grossard
Département Mesures Physiques, IUT du Limousin
Université de Limoges
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
Plan
1 définition
3 Les opérateurs logiques
Structure de contrôle
Les opérateurs de
comparaison
2 Les alternatives
Test si
Test si sinon
Test sinon si
L’opérateur logique ET
L’opérateur logique OU
L’opérateur logique NON
Tables de vérité
4 Les boucles
Définition
Un exemple pour illustrer
La boucle Tant que
Retour sur l’exemple
Boucle Tant que et
compteur
Boucles imbriquées
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
I. Définition
1) Structure de contrôle
Les instructions d’un algorithme sont exécutées dans leur ordre
d’apparition
cependant, un algorithme doit souvent évaluer des conditions, et
prendre des décisions
il existe pour cela les structures de contrôles
Structure de contrôle
Commande qui contrôle l’ordre dans lequel les différentes instructions d’un
algorithme ou d’un programme informatique sont exécutées
Nous étudierons deux types de structures de contrôles :
les alternatives
les boucles
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
I. Définition
2) Les opérateurs de comparaison
Ils permettent d’effectuer des tests.
==
!=
<
<=
>
>=
égal à
différent de
inférieur à
inférieur ou égal à
supérieur à
supérieur ou égal à
Le résultat d’une comparaison est de type booléen et vaut :
vrai si la condition est vérifiée
faux si elle ne l’est pas
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
1) Test si (
if)
Le test si est la forme d’alternative la plus simple
Si (Test) Alors
instruction1
Fin Si
instruction2
si Test est vérifié on exécute Instruction 1 puis Instruction 2
si Test n’est pas vérifié on exécute directement Instruction 2
Test est un booléen . Il vaut vrai ou faux.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
Test si : exemple
Le pseudo-code suivant demande deux nombres entiers x et y à
l’utilisateur, et affiche si x est multiple de y ou non.
VARIABLES
x,y : entiers
DEBUT_ALGORITHME
Écrire "Saisissez x : "
Lire x
Écrire "Saisissez y : "
Lire y
Si (x % y == 0) Alors
Écrire
x , " est multiple de " , y
Fin Si
FIN_ALGORITHME
Problème : rien n’est affiché si x n’est pas multiple de y !
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
Test si : exemple
Version modifiée :
...
Si (x % y == 0) Alors
Écrire
x , " est multiple de " , y
Fin Si
Si (x % y != 0) Alors
Écrire
x , " n’est pas multiple de " , y
Fin Si
Le second test est en réalité inutile car les deux tests sont exclusifs
si x % y n’est pas égal à 0, c’est qu’il est forcément différent de 0 !
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
2) Test si sinon (
if else)
Le test si sinon permet d’exécuter des instructions si le test n’est pas
vérifié
Si (Test) Alors
instruction1
Sinon
instruction2
Fin Si
instruction3
si Test est vérifié, on exécute instruction1 puis instruction3
sinon, on exécute Instruction 2 puis Instruction 3
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
Test si sinon : exemple
Version modifiée avec un test si puis sinon :
...
Si (x % y == 0) Alors
Écrire
x , " est multiple de " , y
Sinon
Écrire
x , " n’est pas multiple de " , y
Fin Si
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
3) Test sinon si (
if elif)
Le test si sinon si permet d’enchaîner des tests si
Si (Test1) Alors
instruction1
Sinon
Si (Test2) Alors
instruction2
Fin Si
Fin Si
instruction3
On peut enchaîner autant d’instructions sinon si que désiré :
seule la première dont la condition sera vérifiée sera exécutée.
On peut généralement associer une clause sinon qui sera exécutée
uniquement si aucune clause sinon si n’a été vérifiée.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
II. Les alternatives
Test sinon si : exemple
Ce pseudo-code détermine le signe du discriminant d’un polynôme
d’ordre 2
VARIABLES
a,b,c : réels # coefficients du polynôme
delta : réel # discriminant du polynôme
DEBUT_ALGORITHME
# On suppose que les coefficients sont déjà saisis
delta ← b**2 - 4ac
Si (delta > 0) Alors
Écrire
"Le discriminant est positif"
Sinon
Si (delta < 0) Alors
Écrire
"le discriminant est négatif"
Sinon
Écrire
"le discriminant est nul"
Fin Si
Fin Si
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
III. Les opérateurs logiques
1) L’opérateur logique ET (
and)
Comment tester si la variable x est paire et supérieure à 10 ?
Si (x % 2 == 0) Alors
Si (x > 10) Alors
# x est bien pair et supérieur à 10
Fin Si
Fin Si
Il est possible d’utiliser un seul if et une condition composée grâce à un
opérateur logique :
Si ((x % 2 == 0)
ET (x>10)) Alors
# x est bien pair et supérieur à 10
Fin Si
Le test vaut vrai si les deux conditions sont vraies simultanément , sinon
le test vaut faux.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
III. Les opérateurs logiques
2) L’opérateur logique OU (
or)
Comment tester si la variable x est paire ou supérieure à 10 ?
Si (x % 2 == 0) Alors
Instructions
Fin Si
Si (x > 10) Alors
Instructions
Fin Si
Problème : les instructions sont dupliquées. À éviter en programmation.
Il est possible d’utiliser un seul if et une condition composée :
Si ((x % 2 == 0)
OU (x>10)) Alors
# x est bien pair ou supérieur à 10
Fin Si
Le test vaut vrai si une des deux conditions est vraie (ou les deux), sinon
le test vaut faux.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
III. Les opérateurs logiques
3) L’opérateur logique NON (
not)
Comment tester si une condition est fausse ?
Si (polynomeSecondDegre == faux) Alors
Instructions
Fin Si
que l’on peut écrire également :
Si (NON polynomeSecondDegre) Alors
Instructions
Fin Si
L’opérateur NON renvoie vrai si son opérande est faux, et
inversement
Si polynomeSecondDegre est faux, alors NON
polynomeSecondDegre est vrai, et on exécute les instructions.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
III. Les opérateurs logiques
4) Tables de vérité
C1 ET C2
C1 vrai
C1 faux
C2 vrai
vrai
faux
C2 faux
faux
faux
C1 OU C2
C1 vrai
C1 faux
C2 vrai
vrai
vrai
C2 faux
vrai
faux
NON C1
C1 vrai
C1 faux
C1 XOR C2
C1 vrai
C1 faux
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
faux
vrai
C2 vrai
faux
vrai
C2 faux
vrai
faux
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
1) Définition
Boucle
Structure de contrôle qui permet d’exécuter plusieurs fois le même bloc
d’instructions
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
2) Un exemple pour illustrer
Exemple d’une saisie au clavier
L’utilisateur doit répondre par O (oui) ou N (non) à une question
le programme doit vérifier que la saisie est correcte
VARIABLES
Reponse : chaîne de caractères # le texte saisi par l’utilisateur
DEBUT_ALGORITHME
Écrire "Voulez-vous un café ? (0/N)"
Lire Reponse
Si ((Reponse != ’O’) ET (Reponse != ’N’)) Alors
Écrire "Saisie erronnée. Recommencez"
Lire Reponse
Fin Si
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
2) Un exemple pour illustrer
VARIABLES
Reponse : chaîne de caractères
# le texte saisi par
l’utilisateur
DEBUT_ALGORITHME
Écrire "Voulez-vous un café ?
(0/N)"
Lire Reponse
Si ((Reponse != ’O’) ET
(Reponse != ’N’)) Alors
Écrire "Saisie erronnée.
Recommencez"
Lire Reponse
Problème : ne marche qu’une
fois
Pas question de recopier N fois
cette portion de code
Le copier/coller est à éviter en
programmation
Solution : utiliser une structure
de boucle Tant que
Fin Si
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
3) La boucle Tant que (
while)
Tant que (test) faire
...
instructions ...
Fin Tant que
Principe :
Le programme examine la valeur du test
s’il vaut vrai, les instructions qui suivent sont exécutées
jusqu’à ce qu’il rencontre la ligne Fin Tant que
il retourne à la ligne du Tant que, et ainsi de suite
L’exécution des intructions ne s’arrête que lorsque le test vaut
faux
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
4) Retour sur l’exemple
...
Écrire "Voulez-vous un café ? (0/N)"
Tant que ((Reponse != ’O’) ET (Reponse != ’N’)) faire
Lire
Reponse
Fin Tant que
Cet algorithme a un gros défaut :
Reponse n’est pas initialisé avant le Tant que
Impossible d’évaluer le test
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
4) Retour sur l’exemple
Solution : il faut affecter Reponse avant d’arriver au premier tour de
boucle
...
Écrire ...
Lire Reponse
Tant que (...) faire
...
Fin Tant que
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
4) Retour sur l’exemple
Autre solution souvent employée :
on initialise la variable avec une valeur telle qu’on soit sûr de rentrer dans
la boucle
...
Écrire ...
Reponse ← "X"
Tant que (...) faire
...
Fin Tant que
On peut affecter à Reponse n’importe quelle valeur, sauf "O" et "N"
car dans ce cas, on ne rentrera pas dans la boucle
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
4) Retour sur l’exemple
Comparez :
VARIABLES
Reponse : chaîne de caractères
# le texte saisi par
l’utilisateur
VARIABLES
Reponse : chaîne de caractères
# le texte saisi par
l’utilisateur
DEBUT_ALGORITHME
DEBUT_ALGORITHME
Écrire "Voulez-vous un café ?
(0/N)"
Lire Reponse
Tant que ((Reponse != "O") ET
(Reponse != "N")) faire
Lire
Écrire "Voulez-vous un café ?
(0/N)"
Reponse ← "X"
Tant que ((Reponse != "O") ET
(Reponse != "N")) faire
Reponse
Lire
Reponse
Fin Tant que
Fin Tant que
FIN_ALGORITHME
FIN_ALGORITHME
Différence fondamentale :
à gauche, on peut ne jamais entrer dans la boucle
à droite, on entre au moins une fois dans la boucle
Important si d’autres instructions sont à exécuter dans la boucle
(initialisations par exemple)
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
5) Boucle contrôlée par un compteur
Permet d’effectuer des boucles dont on connaît à l’avance le nombre
d’itérations. Elle exige :
une variable de contrôle, ou compteur
une valeur initiale du compteur
une condition qui vérifie si la valeur finale du compteur est atteinte
l’incrémentation (ou la décrémentation) du compteur afin de
modifier sa valeur à chaque passage dans la boucle
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
5) Boucle contrôlée par un compteur
pseudo-code :
VARIABLES
compteur : entier # la variable de contrôle
DEBUT_ALGORITHME
initialisation_du_compteur
Tant que (condition) faire
instructions
incrementation_du_compteur
Fin Tant que
FIN_ALGORITHME
1
L’initialisation doit avoir lieu avant la boucle
2
la condition doit porter sur le compteur
3
l’incrémentation se fait généralement à la fin de la boucle
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
5) Boucle contrôlée par un compteur
Exemple : affichage des nombres de 1 à 10 :
VARIABLES
i : entier # la variable de contrôle
DEBUT_ALGORITHME
i ← 1
# initialisation
Tant que (i<=10 ) faire
Écrire i
i ← i+1 # incrémentation
Fin Tant que
FIN_ALGORITHME
On peut également utiliser la condition i<11
que se passe-t-il si on place l’incrémentation avant les instructions ?
→ affiche les nombres de 2 à 11
que se passe-t-il si on oublie l’incrémentation ?
→ boucle infinie.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
5) Boucle contrôlée par un compteur
Autre exemple : affichage des puissances de 2 inférieures à 1000 :
VARIABLES
i : entier # la variable de contrôle
DEBUT_ALGORITHME
i ← 1
# initialisation
Tant que (i<1000 ) faire
Écrire i
i ← i*2 # incrémentation
Fin Tant que
FIN_ALGORITHME
affichera 1 2 4 8 16 32 64 128 256 512
→ le compteur n’est pas forcément linéaire
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
6) Boucles imbriquées
Définition
boucle dans une boucle.
Pour chaque itération de la première boucle, la deuxième sera exécutée
en entier.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
6) Boucles imbriquées
On s’attend à obtenir :
VARIABLES
i,j : entiers # les deux
compteurs
DEBUT_ALGORITHME
i ← 0
j ← 0
Tant que (i<5) faire
0
1
2
3
4
1
2
3
4
5
2
3
4
5
6
Tant que (j<5) faire
Écrire i+j,"\t"
j ← j+1
Fin Tant que
Écrire "\n"
i ← i+1
Fin Tant que
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
3
4
5
6
7
4
5
6
7
8
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
6) Boucles imbriquées
mais on obtient :
VARIABLES
i,j : entiers # les deux
compteurs
DEBUT_ALGORITHME
i ← 0
j ← 0
Tant que (i<5) faire
Tant que (j<5) faire
Écrire i+j,"\t"
j ← j+1
Fin Tant que
Écrire "\n"
i ← i+1
Fin Tant que
FIN_ALGORITHME
0 1 2 3 4
.
.
.
.
Quel est le bogue ? chaque fois que
la boucle interne est effectuée, il
faut réinitialiser j à 0
sinon, il reste à 5, et cette boucle
n’est plus effectuée.
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Les alternatives Les opérateurs logiques Les boucles
IV. Les boucles
6) Boucles imbriquées
Pseudo-code corrigé :
VARIABLES
i,j : entiers # les deux compteurs
DEBUT_ALGORITHME
i ← 0
Tant que (i<5) faire
j ← 0
Tant que (j<5) faire
Écrire i+j,"\t"
j ← j+1
Fin Tant que
Écrire "\n"
i ← i+1
Fin Tant que
FIN_ALGORITHME
À retenir : faire l’initialisation du compteur juste avant la ligne Tant
que
M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
M124 - Algorithmique et informatique
Chapitre 4 : les listes
Ludovic Grossard
Département Mesures Physiques, IUT du Limousin
Université de Limoges
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
Plan
1 définition
2 Création d’une liste
Initialisation directe
Ajout de données
M124 - Algorithmique et informatique – Chapitre 4 : les listes
3 Accès aux données d’une liste
Accès à un élément
Balayer tous les éléments
4 Listes multidimensionnelles
Définition
Exemple : table de
multiplications
Les limites des listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
I. Définition
liste
Variable contenant une collection d’éléments (texte, nombres entiers,
nombres réels. . .).
Chaque élément dans la liste est accessible grâce à son indice
le premier élément de la liste correspond à l’indice 0
Pour une liste de N éléments, les indices vont de 0 à N-1
Dans d’autres langages que le python, les listes sont appelées
tableaux.
En python, les listes peuvent contenir des éléments de natures
différentes (mélange de texte et de nombres)
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
II. Création d’une liste
1) Initialisation directe
VARIABLES
notes : liste de réels # inutile d’indiquer le nombre d’éléments
DEBUT_ALGORITHME
notes ← [12.5 , 8.5 , 16 , ...]
FIN_ALGORITHME
On sépare les éléments par des virgules
et on les place entre crochets
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
II. Création d’une liste
2) Ajout de données
On peut également créer une liste vide, puis ajouter les données
dans la liste une par une
méthode obligatoire lorsque les données proviennent de l’extérieur
(saisie par l’utilisateur, fichier. . .)
# Création d’une liste vide
notes ← []
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
II. Création d’une liste
2) Ajout de données
Python est un langage objet .
Chaque objet possède des méthodes, qui permettent d’agir sur cet
objet
méthode ajouter pour ajouter un élément en fin de liste
objet_liste.ajouter( élément )
exemple : notes.ajouter(12.5)
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
II. Création d’une liste
2) Exemple
On demande à l’utilisateur de saisir 5 nombres, qui sont placés dans une
liste.
VARIABLES
nombres : liste de réels
i : entier # compteur
x : réel # chaque nombre saisi
DEBUT_ALGORITHME
# On crée une liste vide
nombres ← []
# boucle pour saisir les 5 nombres
i ← 0
Tant que (i < 5) faire
Écrire "Nombre n◦ " , i , " : "
Lire x
nombres.ajouter(x)
i ← i+1
Fin Tant que
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
III. Accès aux donnés d’une liste
1) Accès à un élément
on écrit le nom de la liste, suivi de l’indice de l’élément entre crochets :
notes ← [12.5 , 8.5 , 16 ]
Écrire notes[1]
# affiche la valeur 8.5
Remarques :
l’indice est obligatoirement un nombre entier
ne confondez pas la valeur de l’indice (entier i), et le contenu de la
liste pour cet indice.
notes[3] provoquera une erreur car le 4e élément de la liste
notes n’existe pas.
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
III. Accès aux donnés d’une liste
2) Balayer tous les éléments
on utilise une boucle Tant que
on utilise la fonction longueur pour connaître le nombre d’éléments
dans la liste : longueur(notes)
VARIABLES
notes : liste de réels
i : entier # compteur
DEBUT_ALGORITHME
notes ← [12.5 , 8.5 , 16]
# boucle pour afficher les trois notes
i ← 0
Tant que (i < longueur(notes)) faire
Écrire notes[i]
i ← i+1
Fin Tant que
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
III. Accès aux donnés d’une liste
2) Balayer tous les éléments
On peut utiliser Pour ... dans ...
pas besoin de connaître le nombre d’éléments dans la liste
VARIABLES
notes : liste de réels
DEBUT_ALGORITHME
notes ← [12.5 , 8.5 , 16]
# boucle pour afficher les trois notes
Pour note dans notes faire
Écrire
note
Fin Pour
FIN_ALGORITHME
À chaque passage dans la boucle Pour ... dans ..., note prend
la valeur suivante dans la liste notes.
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
IV. Listes multidimensionnelles
1) Définition
liste multidimensionnelle
Liste dont les éléments sont caractérisés par plusieurs coordonnées
Exemple : une liste à 2 dimensions est une liste dont chaque élément
est lui même une liste (une liste de liste).
Sa représentation graphique est une grille,
chaque cellule étant repérée par 2 coordonnées,
et contenant un élément.
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
IV. Listes multidimensionnelles
1) Initialisation et accès
On initialise la liste en y plaçant d’autres listes :
VARIABLES
liste : liste d’entiers
DEBUT_ALGORITHME
liste ← [[ 2 , 3 , 1 ] , [ 6 , 3 , 5 ] , [ 8 , 7 , 6 ]]
FIN_ALGORITHME
définit la liste suivante :
i/j
0
1
2
0
2
6
8
1
3
3
7
2
1
5
6
où i et j sont les coordonnées de
chaque élément.
M124 - Algorithmique et informatique – Chapitre 4 : les listes
Accès aux valeurs
On utilise deux paires de crochets :
liste[1][2]
donne la valeur 5
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
IV. Listes multidimensionnelles
2) Exemple : table de multiplications
j
i
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
0
0
0
0
0
0
0
0
1
2
3
4
5
6
0
2
4
6
8
10
12
0
3
6
9
12
15
18
0
4
8
12
16
20
24
0
5
10
15
20
25
30
0
6
12
18
24
30
36
0
7
14
21
28
35
42
0
8
16
24
32
40
48
0
9
18
27
36
45
54
0
10
20
30
40
50
60
7
8
9
10
0
0
0
0
7
8
9
10
14
16
18
20
21
24
27
30
28
32
36
40
35
40
45
50
42
48
54
60
49
56
63
70
56
64
72
80
63
72
81
90
70
80
90
100
M124 - Algorithmique et informatique – Chapitre 4 : les listes
ligne
table
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
IV. Listes multidimensionnelles
2) Exemple : table de multiplications
VARIABLES
table : liste de liste d’entiers # la table de multiplication
ligne : liste d’entiers # une ligne de la table
i,j : entiers # compteurs
DEBUT_ALGORITHME
# Initialisation de la liste table et des compteurs
table ← []
i ← 0
# Boucle de remplissage de la table
Tant que (i<=10) faire
# on crée une ligne vide
ligne ← []
# et on la remplit grâce à une boucle
j ← 0
Tant que (j<=10) faire
ligne.ajouter( i * j )
j ← j + 1
Fin Tant que
# On place la ligne dans la table
table.ajouter(ligne)
i ← i + 1
Fin Tant que
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles
IV. Listes multidimensionnelles
3) Les limites des listes
initialisation laborieuse (boucles imbriquées, liste de listes)
ne permettent pas aisément de faire du calcul numérique
par exemple du calcul matriciel
on se tournera pour cela vers des bibliothèques scientifiques
spécialisées (numpy par exemple)
Dans le cadre de ce cours, les listes à une dimension suffiront à nos
besoins
M124 - Algorithmique et informatique – Chapitre 4 : les listes
définition fonctions prédéfinies Fonctions personnalisées
M124 - Algorithmique et informatique
Chapitre 5 : les fonctions
Ludovic Grossard
Département Mesures Physiques, IUT du Limousin
Université de Limoges
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
Plan
1 définition
2 fonctions prédéfinies
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
3 Fonctions personnalisées
Écriture en pseudo-code
Choix du nom de la fonction
Renvoi du résultat
Exemple de procédure
Exemple de fonction
définition fonctions prédéfinies Fonctions personnalisées
I. Définition
fonction
Sous-programme pouvant accepter des paramètres, et pouvant renvoyer
un résultat
les fonctions permettent de décomposer un problème compliqué en
plusieurs problèmes plus simples
le programme principal fait appel à des fonctions
qui peuvent elles même faire appel à d’autres fonctions
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
II. Fonctions prédéfinies
Les différents langages de programmation disposent d’un grand nombre
de fonctions prédéfinies.
Ces fonctions sont caractérisées par :
leur nom . Exemple : sin pour la fonction sinus
deux parenthèses , une ouvrante , une fermante : sin() Ces
parenthèses sont obligatoires, même si on ne met rien à l’intérieur
une liste de paramètres , indispensables au bon fonctionnement de la
fonction.
Une fonction peut avoir aucun, un ou plusieurs paramètres.
Exemple : la fonction sin nécessite un paramètre, l’angle en
radians : sin(1.234)
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
II. Fonctions prédéfinies
les paramètres des fonctions peuvent être des variables :
x ← 1.234
Écrire sin(x)
Les fonctions peuvent renvoyer un résultat . Ce peut être un nombre,
du texte, une liste, ou tout autre élément géré par le langage de
programmation.
le résultat peut être utilisé directement, soit placé dans une variable :
x ← 1.234
y ← sin(x)
Dans ce cas, pour affecter la valeur à y, le programme doit d’abord
évaluer la fonction, c’est-à-dire :
1
2
3
lui transmettre le ou les paramètres
récupérer le résultat
et enfin l’affecter à la variable y
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
II. Fonctions prédéfinies
Attention
N’utilisez jamais de variables portant le même nom que des fonctions.
Exemple
Écrire sin(1.234)
# fonctionne
sin ← 2
# la fonction sin n’existe plus !
Écrire sin
# affiche le nombre 2
Écrire sin(x)
# provoque une erreur...
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
1) Écriture en pseudo-code
Elles permettent d’étendre un langage de programmation par ajout de
nouvelles fonctions.
En pseudo-code :
Fonction nom_de_la_fonction(paramètres)
Corps de la fonction
Fin fonction
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
2) Choix du nom de la fonction
le choix du nom est libre, sauf :
mots réservés du langage (Si, Alors, Pour. . .)
caractères spéciaux ou accentués (caractère de soulignement _
autorisé)
nom de fonction prédéfinie, à moins de vouloir les redéfinir
On privilégirea les noms de fonction avec des caractères de
soulignement (nom_de_la_fonction) plutôt qu’en camelCase
(nomDeLaFonction).
le nom de la fonction doit indiquer au mieux ce qu’elle fait
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
3) Renvoi du résultat
Lors de l’éxécution du programme, la fonction se termine :
dès qu’elle rencontre une instruction retourner
ou qu’elle arrive à la fin de la fonction (dans ce cas, elle ne retourne
rien)
Il peut y avoir plusieurs instructions retourner dans le corps de la
fonction.
Une fonction ne peut renvoyer au plus qu’un résultat.
Si elle ne renvoie rien, on ne parle pas de fonction, mais de procédure
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
4) Exemple de procédure
Pseudo-code d’une procédure qui affiche une table de multiplication :
Procédure affiche_table(n)
VARIABLES
i : entier # compteur
i ← 0
Tant que (i <= 10) faire
Écrire i , " * " , n , " = " , i*n
i ← i + 1
Fin Tant que
Fin Procédure
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
affiche_table(3)
afficherait :
0 * 3 = 0
1 * 3 = 3
2 * 3 = 6
3 * 3 = 9
...
10 * 3 = 30
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
5) Exemple de fonction
Fonction qui renvoie le plus grand des deux nombres passés en paramètre
Fonction maxi( a , b )
Si (a > b ) Alors
Retourner a
Sinon
Retourner b
Fin Si
Fin fonction
Ecrire maxi( 1.2 , 3.4 )
3.4
Remarques :
une fonction peut contenir plusieurs instructions Retourner
ici, l’ordre des paramètres n’a pas d’importance
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
5) Exemple de fonction
FONCTIONS
Fonction maxi( a , b )
Si (a > b ) Alors
Retourner a
Sinon
Retourner b
Fin Si
Fin fonction
VARIABLES
n1,n2 : nombres réels
maximum : réel
DEBUT_ALGORITHME
Écrire "n1 = "
Lire n1
Écrire "n2 = "
Lire n2
maximum ← maxi(n1,n2)
Écrire "le maximum est :
",maximum
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
a et b sont des paramètres
formels
se sont des variables locales à
la fonctions, elles n’existent pas
en dehors.
n1 et n2 sont les paramètres
réels
n1 est copié dans a, et n2
dans b
on pourrait écrire Écrire
maxi(n1,n2) sans passer par
une variable maximum
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
5) Remarques
Le programme principal n’a pas besoin de connaître le
fonctionnement interne de chaque fonction,
Les seuls éléments à connaître sont :
les paramètres nécessaires (type, ordre),
le type de résultat renvoyé,
ces informations doivent se trouver dans la documentation de la
fonction,
il est indispensable de documenter les fonctions que vous écrivez.
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
définition fonctions prédéfinies Fonctions personnalisées
III. Fonctions personnalisées
5) Affichage d’une table de fonction
FONCTIONS
Fonction f( a )
Retourner a * a + 3
Fin fonction
VARIABLES
x_min, x_max, pas : réels
x : réel
DEBUT_ALGORITHME
# initialisations
x_min ← 0
x_max ← 10
pas ← 0.1
# affichage de l’en-tête
Écrire "x\tf(x)"
x ← x_min
Tant que (x < x_max) faire
Écrire x , "\t" , f(x)
# incrémentation
x ← x + pas
Fin Tant que
FIN_ALGORITHME
M124 - Algorithmique et informatique – Chapitre 5 : les fonctions
Sortie du programme :
x
0
0.1
0.2
...
9.9
f(x)
3
3.01
3.04
....
101.01
Téléchargement