Cours Algorithmique
Cours Algorithmique
1 2
Plan
¾ Introduction
¾ Les variables
¾ Fonctions d’entrée-sortie
TOUHTOUH Samira
¾ Les structures
¾ Les fichiers
3 4
Plan
¾ Introduction I. Introduction
¾ Informatisation d’un problème : Langage algorithmique
¾ Introduction à l’algorithme
¾ Les variables
¾ Les fichiers
1
03/11/2014
5 6
¾ L’ordre des opérations a son importance, mais dans certains cas plusieurs
ordres sont possibles.
Exemple 1 : Comment accéder à L’ENSA?
¾ Décomposer les actions trop complexes.
1. Réussir le bac
Exemple :
2. C did
Candidater
3. Passer le concours Préparer un café au lait
4. Réussir le concours
5. Déposer un dossier d’inscription 1. Préparer le café
2. Préparer le lait
3. Mélanger les deux
Exemple 2 : Préparer un café au lait
Etape élémentaire : Préparer le café
11. Préparer le café 1. Préparer
p la cafetière
2. Remplir d’eau
2. Préparer le lait 3. Mettre le filtre
3. Mélanger les deux 4. Mettre le café
5. Brancher la cafetière
6. Lancer la cafetière
7 8
En informatique :
¾ Exécuter avec a=40 et b=12
¾ Procédure de calcul bien défini qui prend en entrée une valeur, ou un ensemble de valeurs,
et qui donne en sortie une valeur, ou un ensemble de valeurs. Etape 1: a ← 40 b ← 12
Etape 2 :c ← a − b = 28
Exemple :
Etape 3 : a ← 28 b ← 12
¾ Algorithme d’Euclide Etape 4 :c ← a − b = 16
Etape 5 :a ← 16 b ← 12
Calculer le PGCD de deux entiers a et b.
Etape 6 :c ← a − b = 4
Etape 7 :a ← 12 b ← 4
1. Ordonner a et b tel que a≥b
Etape 8 :c ← a − b = 8
2
03/11/2014
9 10
¾ Exemple 2
11 12
¾ Un algorithme est correct si, pour chaque instance en entrée, il se termine Plan
en produisant la bonne sortie.
¾ Introduction
¾ Un algorithme incorrect risque de ne pas se terminer pour certaines ¾ Informatisation d’un problème : Langage algorithmique
instances en entrée, voire de se terminer sur une réponse autre que celle
désirée. ¾ Les variables
¾ Algorithme
¾ Un algorithme peut être spécifié en langage humain ou en langage ¾ Les constantes
informatique. L’unique obligation est que la spécification fournisse une
description précise de la procédure de calcul à suivre. ¾ Les structures
¾ Les fonctions
3
03/11/2014
13 14
Langage de programmation
Énoncé du
problème
Algorithme Programme
Langages de Langages de
bas niveau haut niveau
Liés au Langages
processeur
p évolués
15 16
• L’organigramme
• Le pseudo-code
4
03/11/2014
17 18
Exemple
e p e : So
Sommee de deu
deux nombres
o b es A et B
Algorithme somme_de_deux_nombres
Variables A, B, somme en entier
Début
Lire A
Lire B
somme A+B
Ecrire ‘’ La somme de A et B est : ’’, somme
¾ L’écriture d’un algorithme avec un organigramme est rapidement abandonnée. La Fin
lisibilité devient rapidement difficile pour les algorithmes assez long.
19 20
Données :
• Données : ce qui doit être donné à l’algorithme Données a et b deux entiers positifs
Résultats Résultat :
PGCD de a et b
5
03/11/2014
21 22
Algorithme (définir les actions à suivre pour résoudre un problème écrire ( ‘’bonjour‘’ );
donné)
Fin
Fin
23 24
Plan
¾ Introduction
Exemple 2 :
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui ¾ Informatisation d’un problème : Langage algorithmique
calcule et affiche le carré de ce nombre,
¾ Les
L variables
i bl
¾ Les constantes
¾ Les structures
¾ Les fonctions
¾ Les tableaux
¾ Les fichiers
6
03/11/2014
25 26
• Dans un programme informatique, on va avoir en permanence besoin de • La première chose à faire avant de pouvoir utiliser une variable est
stocker provisoirement des valeurs.
de créer la boîte et de lui donner une étiquette. Ceci se fait tout au
• Il peut s’agir de données issues du disque dur, fournies par l’utilisateur début de l’algorithme, avant même les instructions proprement
(frappées au clavier), etc.. dites. C’est ce qu’on appelle la déclaration des variables.
• Ces données peuvent être de plusieurs types des nombres, du texte, etc. Une variable est désignée par :
• Pour stocker une information au cours d’un programme, on utilise une
variable. Un nom unique qui la désigne
• P
Pour employer
l une iimage, une variable
i bl estt une b
boîte,
ît que lle programme
(l’ordinateur) va repérer par une étiquette. Un type de définition unique
• Une variable désigne un emplacement mémoire désigner par une adresse Une valeur attribuée et modifiée au cours du déroulement de
binaire qui permet de stocker une valeur.
l’algorithme.
27 28
¾ Le nom-le type-la valeur ¾ Les variables utilisées au cours de l’exécution de l’algorithme sont
déclarées après le nom de l’algorithme. Il suffit d’indiquer le nom de la
variable suivi de son type, séparés par deux points « : »,
Nom d’une variable.
¾ La structure d’un algorithme (déclarant une variable nommé indice et
• Le nom d’une variable permet de l’identifier de manière unique au cours de de type entier) est la suivante :
l’algorithme.
Les règles à respecter pour nommer les variables : Algorithme nom-de-l’algorithme // partie en-tête
• Le nom d’une variable commence par une minuscule. Variables : indice : entier // partie des déclarations des variables
• Le nom d
d’une
une variable ne comporte pas d
d’espace
espace, Début // partie traitement
• Si le nom de la variable est composé de plusieurs mots, il faut faire Bloc d’instructions
commencer chacun deux par une majuscule et ne pas faire figurer de traits
d’union. Fin
7
03/11/2014
29 30
Exemple : Calculer et écrire le double d’un nombre réel donné • Déroulement de l’exemple :
(exemple : 7).
Algorithme double
• L’algorithme nous informe qu’un nombre réel est donné (e (exemple
emple 7)
et que un autre nombre réel sera calculé (7x2 = 14) puis affiché. Variables : nombre, résultat : réel; nombre = ? résultat =?
écrire(résultat); résultat = 14
31 32
8
03/11/2014
33 34
Réel simple -3,4x1038 à -1,4x1045 pour les • Une expression est soit :
valeurs négatives
1,4x10-45 à 3,4x1038 pour les valeurs
positives une constante
une variable
une opération
Réel double 1,79x10308 à -4,95x10-324 pour les
valeurs négatives
4,94x10-324 à 1,79x 10308 pour les
• Pourquoi ne pas déclarer toutes les variables
valeurs numériques en
positives réel
double?
35 36
9
03/11/2014
37 38
Conversion :
Exemple : Algorithme type réel
• Convertir un entier en réel est possible : cette opération n’entraine pas de
perte d’information. Par exemple, l’entier 15 deviendra 15,0.
Algorithme type-réel
• Convertir un réel en entier entraîne une perte d
d’information
information : Les chiffres
Variables : nombre1, nombre2, résultat : réel ; décimaux sont perdus. Par exemple, le réel 15,75 deviendra 15.
var1:entier;
Algorithme conversion-numérique
Début
Variables : nombre1 : entier;
nombre2 : réel;
nombre1 1.5 Début
nombre2 15
o b e
nombre 15
5
var1 2 Nombre2 nombre1 // nombre2 vaut 15.0
résultat nombre1 / nombre2 x var1; nombre1 nombre2 + 0.5 // erreur : impossible
Fin
Fin
39 40
Le type caractère
• On devra pas confondre le signe ‘3’ (noté entre deux « simples quotes »
en tant que caractère et l’entier 3.
• http://www.table-ascii.com/
10
03/11/2014
41 42
Expressions et opérateurs
< > # = ≤ ≥
Conversion
43 44
11
03/11/2014
45 46
Exemple1 : Exemple 2:
Algorithme type-booleen
Ecrire un algorithme qui demande à l’utilisateur d’entrer une
température de l’eau pour il indique son état physico-chimique.
Algorithme type-booléen
V i bl :
Variables booleen1,
b l b
booléen2
lé : b
booléen;
lé Variable
V i bl Temp
T en Entier
E ti
Début Variables A, B : Booléen
Début
booléen1 5< 6; // booléen1 prend la valeur Vrai
Ecrire “Entrez la température de l’eau :”
Lire Temp
booléen2 (5<7) OU (3>8); // booléen2 prend la valeur Vrai A ← Temp =< 0
booléen vrai; // booléen prend la valeur Vrai B ← Temp < 100
Fin Si A Alors
Ecrire “C’est
C est de la glace“
glace
Sinon Si B Alors
Ecrire “C’est du liquide”
Sinon
Ecrire “C’est de la vapeur”
Fin
47 48
Début Début
¾ Affectation :
Caractère
C tè ‘’‘’chaîne’’
h î ’’ caractère
tè ‘’‘’chaîne’’
h î ’’
• L’affectation est une opération qui fixe une nouvelle valeur à une Type ‘’caractère’’ Type caractère
variable. Le symbole de l’affectation est
Fin Fin
12
03/11/2014
49 50
¾ Les variables
Exemple 3 :
Quelles seront les valeurs des variables A et B après exécution des ¾ Les constantes
instructions suivantes ?
¾ Les structures de contrôle
Variables A, B en Entier
¾ Les fonctions
Début
A←1 ¾ Les tableaux
B←A+3
A←3 ¾ Les fichiers
Fin
51 52
Plan
¾ Introduction
IV. Les constantes
¾ Informatisation d’un problème : Langage algorithmique
• Valeurs utilisées mais non modifiées par l’algorithme. Une constante
ne change jamais dans le temps. ¾ Les variables
¾ Les constantes
• Les constantes sont placés avant le lexique des variables.
¾ Fonctions d’entrée-sortie
• Les constantes sont définies par :
¾ Les structures de contrôle
Nom référence de la constante (en majuscule).
¾ Les tableaux
Type nature de la valeur ¾ Le tri d’un tableau
13
03/11/2014
53 54
• Nous avons deux opérations analogues permettant de simuler : L’exécusion de cette instruction consiste à :
• L’affichage d’une phrase avec l’instruction écrire (); 1. Demander à l’utilisateur de saisir une valeur sur le périphérique d’entrée;
• La saisie d’une valeur par l’utilisateur avec l’instruction lire (). 2. Modifier la valeur de la variable passé entre parenthèses;
55 56
L’instruction d’affichage à l’écran (le périphérique de sortie) d’une Variables : nb: réel;
expression est :
Début
• Ecrire (expression);
lire nb // l’utilisateur saisie le nombre au clavier
Cette instruction réalise simplement l’affichage de l’expression passé
entre parenthèse.
écrire(« la valeur de nb ») // une phrase est affichée à l’écran
Cette expression
p p
peut être :
é i nb
écrire b // une valeur
l estt affichée
ffi hé à l’é
l’écran
• Une variable
écrire (« la valeur de nb est : » , nb) // une phrase suivie de la
• Des commentaires écrits sous la forme d’une suite de caractère entre
valeur est affichée à l’écran
guillemets.
• A la fois des phrases et des valeurs séparés par une virgule.
Fin
14
03/11/2014
57 58
Plan
¾ Introduction
Exemple :
¾ Informatisation d’un problème : Langage algorithmique
¾ Les variables
• Ecrire un algorithme
g q
qui demande à l’utilisateur de saisir au clavier
trois nombres réels et qui affiche à l’écran la somme de ces trois ¾ Les constantes
nombres.
¾ Fonctions d’entrée-sortie
¾ Les tableaux
¾ Les fonctions
¾ Les fichiers
59 60
¾ Instruction conditionnelle
• Un algorithme est constitué d’une suite d’instructions qui - Lors de la manipulation d’un distributeur de café, on utilise souvent
s’exécutent les unes après les autres de la première à la dernière. les sélecteurs « sucré/non sucré » et « chaud /froid). Ensuite on voit
apparaitre de la poudre de café, du sucre, puis de l’eau chaude ou
froide en fonction de nos demandes.
¾ La conditionnelle
- Voici un organigramme qui représente l’algorithme enregistré dans
• L’instruction conditionnelle détermine si le bloc d’instructions l’appareil :
suivant est exécuté ou non. La condition est une expression
booléenne dont la valeur détermine le bloc d’instructions.
15
03/11/2014
61 62
Distribuer un
// L’action « fournir un gobelet » doit
gobelet
être effectuée à chaque exécution de • La syntaxe de cette instruction est :
l’algorithme. La poudre de café doit aussi
Verser le être toujours fournie
café Si (condition) alors
{
Sucré ? Bloc d’instructions n°1 ; // exécuté si la condition égale vrai
// L’action « verser du sucre » n’est
}
Verser effectuée que si l’utilisateur a choisi un
le sucre café sucré
sinon
{
chaud Bloc d’instructions n°2; // exécuté si la condition égale Faux
? }
// Une seule des deux actions « verser de
Verser l’eau Verser l’eau
l’eau chaude » et « verser de l’eau froide
froide chaude
» est effectuée.
63 64
16
03/11/2014
65 66
67 68
¾ Applications Exemple :
La condition simple Ecrire un algorithme qui lit un entier et qui affiche sa valeur positive.
• Une version plus simple est utilisée si l’alternative n’a pas lieu. La
syntaxe de cette instruction est alors :
Si (condition) alors
{
Instructions;
}
17
03/11/2014
69 70
Exemple :
¾ La présentation La différence entre les deux algorithmes identiques suivants :
Algorithme Max-de-deux-entiers Algorithme Max-de-deux-entiers
Variables : x, y, max : entier Variables : x, y, max : entier
• Les décalages dans l’écriture d’un algorithme (ou d’un programme)
Début Début
sont nécessaires à sa bonne lisibilité.
lisibilité Lire
i x Lire
i x
Lire y Lire y
Si x>y alors Si x>y alors
{ {
Max x Max x
} }
Sinon Sinon
{ {
Max y Max y
} }
Ecrire (‘’ le maximum est : ‘’, max) Ecrire (‘’ le maximum est : ‘’, max)
Fin Fin
71 72
Variables X, Y, Z : nombres • Il est possible d’imbriquer des blocs de programme les uns dans les
Début Variables X, Y, Z : nombres autres.
Y 2 Déb t
Début
Lire X Y 2 Exemple :
Si X > 10 Alors Lire X
Si X > 10 Alors
Ecrire un algorithme qui demande à l’utilisateur une note et affiche
X X – 10 le commentaire associé à la note :
X X – 10
Y 1 Y 1
Z X*Y Z X*Y
X Y Note de 0 à 8 inclus : « insuffisant »;;
Ecrire Z Ecrire Z Note de 8 à 12 inclus : « moyen »
Note de 12 à 16 inclus : » bien »;
Fin Fin Note de 16 à 20 inclus : « très bien ».
18
03/11/2014
73 74
¾ Instruction de répétition
Algorithme commentaires-notes
Si note > 12 ET note ≤16 alors • On dispose de trois structures de contrôle différentes :
Ecrire (‘’bien’’)
75 76
• Cette structure de contrôle fait répéter une séquence d’instructions, Ecrire un algorithme qui permet d’afficher à l’écran les entiers de 1 à 5.
aussi longtemps qu’une condition a la valeur Vrai.
Algorithme affichage-des-entiers-1-à-5
• Son fonctionnement précis est décrit par l’organigramme :
Variables: compteur : entier
19
03/11/2014
77 78
Exemple :
Remarques
Ecrire un algorithme qui prend en compte la réponse d’un utilisateur
qui doit répondre à une question par oui ou par non,
• Les variables intervenant dans la condition doivent avoir reçu une La question est « Peut-on passer au feu rouge clignotant? »
valeur avant l’évaluation de cette condition : initialiser la
condition de la boucle.
Rep ‘’Z’’
• Cette valeur peut être complètement arbitraire, et n’avoir qu’un seul Tant Que Rep # ‘’O ‘’ et Rep # ‘’N’’ Faire
intérêt : forcer l’entrée dans le boucle.
Ecrire ‘’Répondez
Répondez O pour oui,
oui N pour Non
Non’’
Lire Rep
79 80
¾ Structure pour
• Si la première évaluation de la condition fournit la valeur Faux, le
corps de la boucle n’est pas exécuté, la condition ne sera plus évalué Lorsque la répétition ne porte que sur le nombre d’itérations et qu’il est
et on passe directement à la suite. connu avant de commencer la boucle,
boucle il est pratique d
d’utiliser
utiliser la
boucle :
20
03/11/2014
81 82
Exemple 2 :
Exemple1 :
Ecrire un algorithme qui permet d’afficher la table de multiplication
par 7, présentée à l’ancienne :
Ecrire un algorithme qui permet d’afficher les entiers de 1 à 5.
7 fois 1 font 7
7 fois 2 font 14
……
7 fois 10 font 70
83 84
Soit l’algorithme
• La boucle faire-tant q
que effectue l’évaluation de la condition
Variable x : nombre entier
booléenne après avoir effectué le premier tour de boucle.
Début
Ecrire ‘’donnez l’entier de départ’’
Lire x
Tant que x<100 Faire
Ecrire x
x x+20
Fin
Que produit cet algorithme lorsque x vaut 43, 195 ou -7?
21
03/11/2014
85 86
Plan
¾ Les boucles imbriquées ¾ Introduction
¾ Fonctions d’entrée-sortie
Exemple :
¾ Les structures de contrôles
• Calculer la somme des notes d’une suite de notes comprises entre 0 ¾ Les tableaux
et 20. Il faut exiger que chaque note soit bien dans l’intervalle
[0,20]. On envisagera deux méthodes pour déterminer si la suite est ¾ Le tri d’un tableau
terminée : soit poser une question ( « encore (O/N? »), soit accepter ¾ La recherche dans un tableau
un codage (par exemple 99) après la dernière note.
¾ Les fonctions
¾ Les fichiers
87 88
VII. Les tableaux • Les températures à 16 heures de chacun des jours d’une semaine
seront les 7 valeurs de la variable Temp qui est un tableau de 7
¾ Introduction variables de type nombre qui sont désignées par Temp[1], Temp[2],…
Temp[7]
• Dans certains conditions, les variables que nous connaissons sont très
mall adaptées
d té aux ttraitements
it t à effectuer.
ff t Le nom Temp
L T dé i
désigne
Temp
l’ensemble du tableau
• Lorsqu’il s’agit d’un grand nombre de valeurs de même types qui se 1 8
répète, le traitement est lourd. 2 6
• Imaginons, que nous avons plusieurs traitements à effectuer sur des 3 7
consommations mensuelles d’eau. Pour conserver ces valeurs en 4 11
mémoire, nous pouvons prendre 12 variables numériques que nous Cette case du tableau
appellerons, par exemple, Eau1, Eau2,…..,Eau12. 5 6 représente la variable
6 8 Temp[5] dont la valeur est 6
• Pour calculer la consommation mensuelle moyenne sur l’année nous
pouvons écrire la longue formule : 7 9
22
03/11/2014
89 90
Exemple :
Ecrire un algorithme qui permet de calculer la moyenne des • Le principe d'un tableau est très simple : on stocke les éléments dans des
températures de la semaine : cases, chaque case étant étiquetée d'un numéro(généralement appelé
indice). Pour accéder à un élément particulier d'un tableau, on donne
son indice.
91 92
2) T: Tableau [1,6]
[1 6] de réels • La manipulation des éléments du tableau (notes) est décrite dans
l’exemple suivant : une seule variable permet de stocker 4 notes
entières.
3) T: Tableau [0,5] de réels
Algorithme utilisation d’un tableau
Fin
• On accède à la case 2 par T[2]. (c’est la 3e case ou la 2e case)
23
03/11/2014
93 94
12 14 10 18
95 96
Exemple 2 : Afficher toutes les valeurs des éléments d’un tableau T de Exemple 3 : Mettre à zéro tous les éléments d’un tableau T de N nombres
N nombres.
24
03/11/2014
97 98
Tableaux dynamiques
Exemple :
Il arrive fréquemment que l’on ne connaisse pas à l’avance le nombre Tableau Notes [ ] en entiers
d’éléments
d éléments que devra comporter un tableau
tableau. Variable
nb : Entier
Solution1 : Déclarer un grand tableau (10000).
Notes : Tableau [ ] d’entiers
Inconvénients : mémoire non utilisée.
Début
Ecrire "Combien y a-t-il de notes à saisir ?"
Solution2 : Déclarer le tableau sans préciser au départ son nombre
Lire nb
d’éléments , ensuite redimensionner (Redim).
Redim Notes [nb]
…
99 100
Exemple :
Tableau à deux dimensions
Ecrire un algorithme remplissant un tableau de 6 sur 13, avec des
• L’informatique
q nous offre la possibilité
p de déclarer des tableaux zéros.
dans lesquels les valeurs ne sont pas repérées par une seule, mais
par deux coordonnées.
25
03/11/2014
101 102
2 4 7 9 6 3 9
103 104
La recherche dichotomique
Plan
¾ Introduction
¾ Les tableaux
¾ Procédures et fonctions
¾ Les fichiers
26
03/11/2014
105 106
Algorithme : reponseOuiNon
Variables : rep : caractère ; compteur : entier
Procédures Début :
Compteur 0
Ecrire ‘’Peut-on passer au feu rouge clignotant‘’
¾ Nous voulons poser plusieurs questions aux quelles nous attendons une Lire rep
réponse sous la forme O ou N
N. Un compteur nous permettra de compter le Tant que rep # ‘’O’’ O ET rep # ‘’N’’
N faire
nombre de réponse positive. {
Ecrire ‘’ répondez O pour oui et N pour non’’
‘’Peut-on passer au feu rouge clignotant?‘’ Lire rep
}
‘’Doit-on marquer un arrêt au STOP? ‘’ Si Rep ‘‘N’’ alors compteur compteur + 1
Ecrire ‘’Doit-on marquer un arrêt au STOP ‘’
Lire rep
¾ Pour prendre en compte la réponse de ll’utilisateur
utilisateur qui doit répondre Tant que rep # ‘’O’’ O ET rep # ‘’N’’
N faire
seulement par OUI ou par NON {
Ecrire ‘’ répondez O pour oui et N pour non’’
Lire rep
¾ Ceci nécessite l’utilisation de plusieurs instructions en particulier }
l’utilisation de la boucle tant que, Si Rep ‘‘O’’ alors compteur compteur + 1
Ecrire ‘’points marqués : ‘’, compteur
Fin
107 108
Procédure maProcédure ( )
// déclaration des variables
¾ Pour ne pas avoir à recopier plusieurs fois les mêmes lignes dans l’algorithme, Variables var1 : entier
nous pouvons créer une procédure qui est une partie d’algorithme, écrite à part, Début
désigné par un nom, et que l’on fait exécuter plusieurs fois, en citant son nom.
instructions 1
instructions 2
Fin procédure
27
03/11/2014
109 110
Début
Variables Question : chaîne de caractères Compteur 0
Rep : caractère;
Question ‘’peut-on
peut on passer au feu rouge clignotant?
clignotant?’’
Compteur: nombre entier
PeponseOuiNon
Procédure ReponseOuiNon ( quest : chaîne de caractère)
Si Rep ‘‘N’’ alors compteur compteur + 1
Variables quest : chaîne de caractère Question ‘’doit-on marquer un arrêt au STOP?’’
Début PeponseOuiNon
Ecrire Question Si Rep ‘‘O’’ alors compteur compteur + 1
Lire Rep Ecrire ‘’points marqués : ‘’, compteur
T t que ((rep # ‘O’) ett (Rep
Tant (R # ‘N’) Faire
F i Fin
Fi
Ecrire ‘’répondez par O ou par N’’
Lire Rep
Fin
111 112
28
03/11/2014
113 114
115 116
¾ Le paramètre est écrit entre parenthèses, on le qualifie de paramètre Paramètre en sortie : transmission par adresse
formel dans la déclaration, de paramètre effectif lors de chaque
appel. Exemple :
Nous voulons stocker les réponses successives dans le tableau R de
[1..20] caractères pour permettre un traitement ultérieur.
¾ Lors du premier appel à la procédure, le texte « Peut-on passer au
feu rouge clignotant? » est automatiquement affecté au paramètre Début
Quest, lectureOuiNon(‘’peut-on passer au feu rouge clignotant?’’)
R[1] Rep
¾ Il sera remplacé par « doit-on marquer un arrêt au STOP? » lors du LectureOuiNon(‘’doit-ont marquer un arrêt u STOP’’?)
d
deuxième
iè appel.
l R[2] Rep
¾ On n’a plus à s’occuper de la variable Question qui peut disparaitre Nous préférons créer un second paramètre : la variable effective dans
du programme, mais seulement à fournir, lors de chaque appel, le laquelle la procédure doit lire la réponse. L’algorithme devient :
paramètre effectif qui correspond au paramètre formel.
29
03/11/2014
117 118
Procédure ReponseOuiNon (Quest : chaîne de caractères, Rep : • La correspondance entre la variable R[1] et le paramètre Rep ne
caractère) peut pas fonctionner comme pour le paramètre Quest,
Début
Ecrire Quest • On ne souhaite pas voir affecter la valeur de R[1] à Rep, mais on
veut au contraire que la valeur finale de Rep se trouve dans R[1],
Lire Rep
Tant que (Rep # ‘’O’’) et (Rep # ‘’N’’) Faire
• Le nom Rep, défini comme paramètre formel de la procédure est un
Ecrire ‘’répondez par OUI ou par NON’’ nom provisoire désignant le paramètre effectif pour la durée de
Lire REP l’exécution de la procédure.
Fin
Début
ReponseOuiNon(‘’peut-on passer au feu rouge?’’, R[1])
ReponseOuiNon(‘’Doit-on marquer un arrêt au STOP?’’, R[2])
Fin
119 120
Les fonctions
Structure générale des fonctions
30
03/11/2014
121 122
- Le nom de la fonction.
Le nom dd’une
une fonction commence par une minuscule. • Le code des algorithmes est plus simple,
simple plus clair et plus court.
court Dans un
Le nom d’une fonction ne comporte pas d’espace. algorithme, appeler une fonction se fait en une seule ligne et la fonction
Si le nom de la fonction est composé de plusieurs mots, faire peut être appelée à plusieurs reprises.
commencer chacun d’eux par une majuscule (par exemple :
sommeDeDeuxEntiers,) et ne pas faire figurer de traits d’union. • Une seule modification dans la fonction sera automatiquement répercutée
sur tous les algorithmes qui utilisant cette fonction.
123 124
• L’instruction
L’i t ti retourne,
t
31
03/11/2014
125 126
Ecrire et utiliser une fonction simple qui doit afficher « bonjour ». Cette Ecrire un algorithme qui appelle la fonction afficheBonjour ().
fonction ne retourne p pas de valeur : ceci est signalé
g en p
précisant q
qu’elle
retourne vide.
Algorithme utilise_fonction
Fonction afficheBonjour () : vide
Début Début
écrire ‘’bonjour’’ afficheBonjour ()
retourner () Fin
Fin
127 128
Exemple :
• Ecrire un programme qui affiche à l’aide d’une fonction, la table de
multiplication d’un nombre donné.
Ecrire un algorithme qui appelle 10 fois la fonction afficheBonjour ().
32
03/11/2014
129 130
131 132
33
03/11/2014
133 134
135 136
• Exemple 2
• Une fonction récursive valide doit contenir :
34