Algorithmes

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 90

Qu’est-ce qu’un mettre la casserole d’eau sur le feu

Algorithme ? oui Est-ce que non


l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole

attendre 8 mn
Pierre Huguet
égoutter et servir

Présentation inspirée de celle du Pr Morelli mobile CSP oui Assez de non


pâtes ?
et de travaux conduits avec Marie Caroline Gries au CNAM
PLAN https://onvaessayer.org?playlist=algorithmes

1. Qu’est-ce qu’un algorithme https://onvaessayer.org?video=algoDefinition


• Définition
• Caractéristiques et structure d’un algorithme
• Précis (sans ambiguité) avec des instructions réalisables
• Structure : séquences d’instructions, répétitions, sélections/conditions
2. Écrire ou décrire un algorithme : https://onvaessayer.org?video=algoEcrire
• du langage naturel au langage de programmation
• Le pseudo code et les diagrammes de flux (flowchart)
3. Exercices sur pseudo-code et diagrammes https://onvaessayer.org?video=algoExercices
• Énoncés et corrigés https://onvaessayer.org?video=algoSolutions
4. Variables et procédures https://onvaessayer.org?video=algoVariablesEtProcedures

voir ensuite … le "computational thinking" https://onvaessayer.org?video=computationalThinking


1a mettre la casserole d’eau sur le feu

oui Est-ce que non


l’eau bout ?

qu’est-ce mettre les pâtes dans la


Attendrex20
2s
casserole

qu’un attendre 8 mn

algorithme ? égoutter et servir

oui Assez de non


Pierre Huguet pâtes ?
QU’EST-CE QU’UN ALGORITHME ?
• Définition du Larousse
• Un algorithme est un ensemble de règles opératoires dont l’application
permet de résoudre un problème énoncé, au moyen d’un nombre fini
d’opérations.
QU’EST-CE QU’UN ALGORITHME ?
• Définition du Larousse
• Un algorithme est un ensemble de règles opératoires dont l’application
permet de résoudre un problème énoncé, au moyen d’un nombre fini
d’opérations. Un algorithme peut être traduit, grâce à un langage de
programmation, en programme exécutable par un ordinateur.
QU’EST-CE QU’UN ALGORITHME ?
• Définition du Larousse
• Un algorithme est un ensemble de règles opératoires dont l’application
permet de résoudre un problème énoncé, au moyen d’un nombre fini
d’opérations. Un algorithme peut être traduit, grâce à un langage de
programmation, en programme exécutable par un ordinateur.

• Définition Wikipedia
• Un algorithme est une suite finie et non ambiguë d’opérations ou
d'instructions permettant de résoudre un problème ou d'obtenir un
résultat
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu.
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pates :
• mettre la casserole sur le feu. Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau


Attendrex20
2s
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau


Attendrex20
2s
• Si oui : continuer
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau mettre les pâtes dans la


Attendrex20
2s
• Si oui : continuer casserole
• mettre les pates dans la casserole
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau mettre les pâtes dans la


Attendrex20
2s
• Si oui : continuer casserole
• mettre les pâtes dans la casserole attendre 8 mn
• attendre 8 mn
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau mettre les pâtes dans la


Attendrex20
2s
• Si oui : continuer casserole
• mettre les pâtes dans la casserole attendre 8 mn
• attendre 8 mn
• égoutter et servir égoutter et servir
1. QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau mettre les pâtes dans la


Attendrex20
2s
• Si oui : continuer casserole
• mettre les pâtes dans la casserole attendre 8 mn
• attendre 8 mn
• égoutter et servir égoutter et servir

• répéter s’il n’y a pas assez de pâtes


oui Assez de non
pâtes ?
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pâtes :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau mettre les pâtes dans la


Attendrex20
2s
• Si oui : continuer casserole
• mettre les pâtes dans la casserole attendre 8 mn
• attendre 8 mn
• égoutter et servir égoutter et servir

• répéter s’il n’y a pas assez de pâtes


oui Assez de non
• Différence entre algorithme et recette ? pâtes ?
QU’EST-CE QU’UN ALGORITHME ?
• Un algorithme est similaire à une recette.
mettre la casserole d’eau sur le feu
• Pour cuire des pates :
• mettre la casserole sur le feu. oui Est-ce que non
• est-ce que l’eau bout ? l’eau bout ?

• Si non : attendre un peu et vérifier à nouveau mettre les pâtes dans la


Attendrex20
2s
• Si oui : continuer casserole
• mettre les pâtes dans la casserole attendre 8 mn
• attendre 8 mn
• égoutter et servir égoutter et servir

• répéter s’il n’y a pas assez de pâtes


oui Assez de non
• Différence entre algorithme et recette ? pâtes ?

• Les algorithmes informatiques sont plus précis.


1b

Caractéristiques
et structure
d’un algorithme
Pierre Huguet
CARACTÉRISTIQUES ET STRUCTURE D’UN ALGORITHME
• Un algorithme doit être précis.
mettre la casserole d’eau sur le feu

• Un algorithme est défini pas-à pas (séquence) :


oui Est-ce que non
• Chaque pas ou étape doit être précis et faisable. l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole
• Tous les algorithmes peuvent être réalisés
attendre 8 mn
à partir de 3 "structures de contrôle"
• séquences : suite ordonnée d’instructions égoutter et servir

• sélections : tests, si … sinon …


oui Assez de non
• répétitions : boucles pâtes ?
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
• “Chéri, va au supermarché, prends une boite de lentilles,
si ils ont des œufs, prends en douze."
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
•“Chéri, va au supermarché, prends une boite de lentilles,
si ils ont des œufs, prends en douze."
• et Chéri revient avec …
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
“Chéri, va au supermarché, prends une boite de lentilles,

si ils ont des œufs, prends en douze."


• et Chéri revient avec 12 boites de lentilles.
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
“Chéri, va au supermarché, prends une boite de lentilles,

si ils ont des œufs, prends en douze."


• et Chéri revient avec 12 boites de lentilles.

• Problème ?
Chéri a fait ce qui lui a été demandé …
mais une douzaine de quoi ?
l’algorithme est ambigu, non ?
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
•“Chéri, va chercher une boite de lentilles au supermarché
et tant que tu y es prends des œufs."
• et Chéri …
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
•“Chéri, va chercher une boite de lentilles au supermarché
et tant que tu y es prends des œufs."
• et Chéri n’est jamais revenu …
UN ALGORITHME DOIT ÊTRE PRÉCIS
• Attention à l’ambiguïté :
•“Chéri, va chercher une boite de lentilles au supermarché
et tant que tu y es prends des oeufs."
• et Chéri n’est jamais revenu …

• Problème ?
Chéri a fait ce qui lui a été demandé …
"tant qu’il y était" il a continué à prendre des œufs …
Boucle infinie …
POINTS CLEFS SUR LES ALGORITHMES

Un algorithme doit être précis.

Un algorithme est défini pas-à pas (séquence) :


Chaque pas ou étape doit être précis et faisable.
POINTS CLEFS SUR LES ALGORITHMES
• Un algorithme doit être précis.
mettre la casserole d’eau sur le feu

• Un algorithme est défini pas-à pas (séquence) :


oui Est-ce que non
• Chaque pas ou étape doit être précis et faisable. l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole
• Tous les algorithmes peuvent être réalisés
attendre 8 mn
à partir de
• séquences : suite ordonnée d’instructions égoutter et servir

• sélections : tests, si … sinon …


oui Assez de non
• répétitions : boucles pâtes ?
BASE DES ALGORITHMES : STRUCTURES DE CONTRÔLE

la séquence, la sélection, et la répétition.

Séquence
BASE DES ALGORITHMES : STRUCTURES DE CONTRÔLE

la séquence, la sélection, et la répétition.

non oui
?
faire : … Faire : …

Séquence Sélection
ou condition
(Branchement conditionnel)
BASE DES ALGORITHMES : STRUCTURES DE CONTRÔLE

la séquence, la sélection, et la répétition.

non oui
?
faire : … Faire : … Test ?
oui
non

Séquence Sélection Répétition


ou condition ou itération
(Branchement conditionnel) (Boucle)
1° STRUCTURE DE CONTRÔLE : LA SÉQUENCE

Une Séquence est une suite d’instructions que l’ordinateur exécute


une par une, dans l’ordre où elles sont écrites
Algorithme de calcul de la moyenne de 70, 80, et 90.

Diagramme d’une Séquence –


chaque rectangle correspond à une instruction.
2° STRUCTURE DE CONTRÔLE : LA SÉLECTION (OU CONDITION)

La Sélection utilise une condition booléenne (vraie ou fausse)


pour décider de la suite ou de la branche des instructions à exécuter.

Algorithme pour décider si “note” est une note suffisante.


non oui
?
faire : … Faire : …

Diagramme de sélection -- le losange exprime


une condition; le cercle un connecteur.
3° STRUCTURE DE CONTRÔLE : LA RÉPÉTITION (BOUCLE OU ITÉRATION)

La répétition (ou itération) c’est la répétition de la partie d’un


algorithme. On peut préciser le nombre de fois ou effectuer la
répétition tant qu’une condition est remplie.
algorithme qui ajoute 5 points à la note jusqu’à ce qu’elle
atteigne ou dépasse 70.

non Test ?
oui

Répétition
(Boucle)
POINTS CLEFS SUR LES ALGORITHMES
• Un algorithme doit être précis.
• Un algorithme est défini pas-à pas (séquence) :
• Chaque pas ou étape doit être précis et faisable.

• Tous les algorithmes peuvent être réalisés à partir de


• séquences : suite ordonnée d’instructions
• sélections : tests, si … sinon …
• répétitions : boucles
2

écrire
ou décrire
un algorithme
Pierre Huguet
DES ALGORITHMES TOUS LES JOURS ...
ECRIRE OU DÉCRIRE UN ALGORITHME
• Les algorithmes peuvent être exprimés en langage naturel :
• pour faire des pâtes, mettre de l‘eau dans une casserole,
portez à ébullition, puis ajoutez …

• ou par des diagrammes de flux (flowchart)


Pseudo code
• ou par du pseudo-code répéter jusqu’à "assez de pâtes est vrai"
mettre la casserole d’eau sur le feu
(notez le décalage) répéter jusqu’à "eau bout est vrai"
attendre 20 secondes
• ou avec un langage de ajouter les pâtes
attendre 10 mn Flowchart
exploitable par égoutter et servir ou diagramme de flux
Fin procédure
un ordinateur
ECRIRE UN ALGORITHME ? NIVEAUX DE LANGAGE
• De nombreux langages permettent d’écrire les algorithmes :
• le langage naturel, le pseudocode, les diagramme de flux
puis les nombreux langages de programmation
le français
Si la moyenne atteint ou dépasse
70, afficher “vous avez réussi”
sinon, afficher “note insuffisante”
ECRIRE UN ALGORITHME ? NIVEAUX DE LANGAGE
• De nombreux langages permettent d’écrire les algorithmes :
• le langage naturel, le pseudocode, les diagramme de flux
puis les nombreux langages de programmation
le pseudocode :
le français plus précis et structuré que le langage naturel
Si la moyenne atteint ou dépasse si moyenne >= 70:
70, afficher “vous avez réussi” mettre texte à “vous avez réussi”
sinon, afficher “note insuffisante” sinon:
mettre texte à “note insuffisante”
ECRIRE UN ALGORITHME ? NIVEAUX DE LANGAGE
• De nombreux langages permettent d’écrire les algorithmes :
• le langage naturel, le pseudocode, les diagramme de flux
puis les nombreux langages de programmation
le pseudocode :
le français plus précis et structuré que le langage naturel
Si la moyenne atteint ou dépasse si moyenne >= 70:
70, afficher “vous avez réussi” mettre texte à “vous avez réussi”
sinon, afficher “note insuffisante” sinon:
mettre texte à “note insuffisante”

Les langages de programmation : scratch, app inventor, javascript, Python


ECRIRE UN ALGORITHME ? NIVEAUX DE LANGAGE
• De nombreux langages permettent d’écrire les algorithmes :
• le langage naturel, le pseudocode, les diagramme de flux
puis les nombreux langages de programmation
le pseudocode :
le français plus précis et structuré que le langage naturel
Si la moyenne atteint ou dépasse si moyenne >= 70:
70, afficher “vous avez réussi” mettre texte à “vous avez réussi”
sinon, afficher “note insuffisante” sinon:
mettre texte à “note insuffisante”

Les langages de programmation : scratch, app inventor, javascript, Python


CARACTÉRISTIQUES ET STRUCTURE D’UN ALGORITHME
• Un algorithme est une procédure définie pas-à pas pour résoudre un
problème ou obtenir un résultat.

• Un algorithme doit être précis : sans ambiguïté


• Chaque pas ou étape doit être faisable.

• Tous les algorithmes peuvent être réalisés


à partir de séquences, de sélections et de répétitions.

• Les algorithmes peuvent être exprimés


par des diagrammes, du pseudocode,
ou de nombreux langages de programmation.
3
Exercices
écrire l’algorithme
de sortie
d’un labyrinthe
https://blockly.games/maze?lang=fr
https://blockly.games/maze?lang=fr
EXERCICE : AVEC LE JEU BLOCKLY MAZE
• Si vous ne connaissez pas ce jeu algorithmique, allez d’abord à l’adresse :
• https://blockly.games/maze?lang=fr et faites les 5 ou 6 premiers niveaux
• Puis allez à l’adresse
• https://blockly.games/maze?lang=fr&level=9 (niveau moyen)
• https://blockly.games/maze?lang=fr&level=10 (niveau difficile)
• Puis dessinez le diagramme des flux, ou écrivez le pseudo-code
de l’algorithme qui permet au personnage d’atteindre la sortie
en utilisant
• les instructions du langage : avancer, tourner à gauche, tourner à droite
• la commande répétition : répéter jusqu’à arrivée
• la ou les conditions : si chemin devant (ou à gauche ou à droite)
et si chemin devant … sinon …
EXERCICE : AVEC LE JEU BLOCKLY MAZE
• Exemple de solution pour le niveau 7
EXERCICE : AVEC LE JEU BLOCKLY MAZE
• Exemple de solution pour le niveau 7
Pseudo-code

Répéter jusqu’à arrivée


si chemin devant
avancer
si chemin à droite
tourner à droite
EXERCICE : AVEC LE JEU BLOCKLY MAZE
• Exemple de solution pour le niveau 7
Diagramme Pseudo-code

Répéter jusqu’à arrivée


oui non
Arrivée ? si chemin devant
oui Chemin non
avancer
devant ? si chemin à droite
avancer tourner à droite

oui Chemin à non


droite ?
tourner à droite
EXERCICE : ALGORITHME DE SORTIE DU LABYRINTHE N9
Blockly maze, niveau 9 : • Écrivez en français comment vous allez
https://blockly.games/maze?lang=fr&level=9
faire, quelle est votre stratégie ?
Problème à traiter et Instructions disponibles • ensuite écrivez le pseudo-code
• en option, le diagramme des flux

• Vous avez besoin d’un crayon et d’un


papier. N’utilisez PAS l’ordinateur
• Vous devez :
• commencer par "répéter jusqu’à arrivée"
• utiliser les termes "avancer", "tourner"
• Et les conditions si chemin devant, à
gauche, à droite
ou la condition si … sinon …
EXERCICE : ALGORITHME DE SORTIE DU LABYRINTHE N10
Blockly maze, niveau 10 : Les instructions sont les mêmes que pour le
https://blockly.games/maze?lang=fr&level=10
niveau 9, mais c‘est plus difficile.
Problème à traiter et Instructions disponibles
N’utilisez qu’un crayon et un papier

La phrase en français qui décrit l’algorithme


dont vous devez écrire le pseudo-code est :
• Longer le mur de gauche jusqu’à la sortie

Ca correspond simplement à dire que si vous


longez le mur, vous finirez bien par arriver à la
porte de sortie!
Ecrivez le pseudocode qui longe le mur.
Exercices
pseudo-code

à vous de jouer

Vidéo suivante : https://onvaessayer.org?video=algoSolutions


3b
Solution des exercices
écrire l’algorithme
de sortie
d’un labyrinthe
Pierre Huguet
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code
Problème à traiter et Instructions disponibles
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 7
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée
si chemin devant
avancer
si chemin à droite
tourner à droite
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 9 Pseudo-code niveau 7
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée Répéter jusqu’à arrivée
si chemin devant si chemin devant
avancer avancer
si chemin à gauche si chemin à droite
tourner à gauche tourner à droite
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 9
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée
si chemin devant
avancer
si chemin à gauche
tourner à gauche
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 9
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée
si chemin devant
avancer
si chemin à gauche
tourner à gauche

Pseudo-code niveau 9
Répéter jusqu’à arrivée
si chemin devant
avancer
si
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 9
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée
si chemin devant
avancer
si chemin à gauche
tourner à gauche

Pseudo-code niveau 9

Répéter jusqu’à arrivée


si chemin devant
avancer
sinon
tourner à gauche
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 9
oui Chemin non
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée
devant ?
avancer
si chemin devant
avancer oui non
Chemin à
si chemin à gauche gauche ?
tourner à gauche tourner à gauche

Pseudo-code niveau 9

Répéter jusqu’à arrivée


si chemin devant
avancer
sinon
tourner à gauche
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code niveau 9
oui Chemin non
Problème à traiter et Instructions disponibles Répéter jusqu’à arrivée
devant ?
avancer
si chemin devant
avancer oui non
Chemin à
si chemin à gauche gauche ?
tourner à gauche tourner à gauche

Pseudo-code niveau 9

Répéter jusqu’à arrivée oui Chemin non


devant ?
si chemin devant
avancer avancer tourner à gauche
sinon
tourner à gauche
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N9
Blockly maze, niveau 9 :
https://blockly.games/maze?lang=fr&level=9 Pseudo-code Répéter jusqu’à arrivée
si chemin devant
Problème à traiter et Instructions disponibles
avancer
sinon
tourner à gauche
Diagramme

oui non
Arrivée ?

oui Chemin non


devant ?
avancer tourner à gauche
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Phrase en français qui décrit l’algorithme :
https://blockly.games/maze?lang=fr&level=10 Longer le mur de gauche jusqu’à la sortie

Problème à traiter et Instructions disponibles


EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles si chemin à gauche
tourner à gauche
avancer
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles si chemin à gauche
tourner à gauche
avancer
sinon
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles si chemin à gauche
tourner à gauche
avancer
sinon
si chemin devant
avancer
sinon
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles si chemin à gauche
tourner à gauche
avancer
sinon
si chemin devant
avancer
sinon
si chemin à droite
tourner à droite
avancer
sinon
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles si chemin à gauche
tourner à gauche
avancer
sinon
si chemin devant
avancer
sinon
si chemin à droite
tourner à droite
avancer
sinon
tourner à droite
tourner à droite
avancer
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 : Longer le mur de gauche jusqu’à la sortie
https://blockly.games/maze?lang=fr&level=10 Répéter jusqu’à arrivée
Problème à traiter et Instructions disponibles si chemin à gauche
tourner à gauche

sinon
si chemin devant

sinon
si chemin à droite
tourner à droite

sinon
tourner à droite
tourner à droite
avancer
EXERCICE : SOLUTION DE L’ALGORITHME DE SORTIE N10
Blockly maze, niveau 10 :
https://blockly.games/maze?lang=fr&level=10

Problème à traiter et Instructions disponibles oui


Arrivée ?
non

oui Chemin à non


gauche ?

oui Chemin non


devant ?

oui Chemin à non


droite ?

tourner à gauche tourner à droite tourner à droite


tourner à droite

avancer
4

variables et
procédures
dans un algorithme
Pierre Huguet
VARIABLES
• Est-ce que l’algorithme des pâtes peut
s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
oui Est-ce que non
l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole

attendre 8 mn

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX VARIABLES
• Est-ce que l’algorithme des pâtes peut temps cuisson ?

s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
oui Est-ce que non
l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole

attendre 8temps
mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX VARIABLES
• Est-ce que l’algorithme des pâtes peut temps cuisson ?

s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
• Au début de l’algorithme oui Est-ce que
l’eau bout ?
non

• on crée une variable temps cuisson


mettre les pâtes dans la
Attendrex20
2s
casserole

attendre 8temps
mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX VARIABLES
• Est-ce que l’algorithme des pâtes peut temps cuisson ?

s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
• Au début de l’algorithme oui Est-ce que
l’eau bout ?
non

• on crée une variable temps cuisson


mettre les pâtes dans la
Attendrex20
2s
• dont on demande la valeur casserole

pour l’enregistrer ou la stocker attendre 8temps


mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX VARIABLES
• Est-ce que l’algorithme des pâtes peut temps cuisson ?

s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
• Au début de l’algorithme oui Est-ce que
l’eau bout ?
non

• on crée une variable temps cuisson


mettre les pâtes dans la
Attendrex20
2s
• dont on demande la valeur casserole

pour l’enregistrer ou la stocker attendre 8temps


mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX VARIABLES
• Est-ce que l’algorithme des pâtes peut temps cuisson ?

s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
• Au début de l’algorithme oui Est-ce que
l’eau bout ?
non

• on crée une variable temps cuisson


mettre les pâtes dans la
Attendrex20
2s
• dont on demande la valeur casserole

pour l’enregistrer ou la stocker attendre 8temps


mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX VARIABLES
• Est-ce que l’algorithme des pâtes peut temps cuisson ?

s’adapter au goût des personnes en faisant mettre la casserole d’eau sur le feu
varier le temps de cuisson ?
• Au début de l’algorithme oui Est-ce que
l’eau bout ?
non

• on crée une variable temps cuisson


mettre les pâtes dans la
Attendrex20
2s
• dont on demande la valeur casserole

pour l’enregistrer ou la stocker attendre 8temps


mn cuisson

• et quand on en a besoin égoutter et servir

• on récupère la valeur, avec son nom (étiquette)


• dans le programme, le nom ou de la variable, oui Assez de non
remplace sa valeur stockée en mémoire, pâtes ?
comme dans une boite.
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu

oui Est-ce que non


l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole

attendre 8temps
mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu
• Il ne connait pas la commande mettre la casserole d’eau sur le feu
oui Est-ce que non
l’eau bout ?

mettre les pâtes dans la


Attendrex20
2s
casserole

attendre 8temps
mn cuisson

égoutter et servir

oui Assez de non


pâtes ?
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu
• Il ne connait pas la commande mettre la casserole d’eau sur le feu
• on doit donc écrire l’algorithme de cette procédure oui Est-ce que non
avec les commandes connues du robot l’eau bout ?

mettre la casserole
mettre les pâtes dans la
d’eau sur le feu Attendrex20
2s
casserole

Prendre casserole
attendre 8temps
mn cuisson
Poser sous robinet
Ouvrir eau
Attendre jusqu’à 1 litre égoutter et servir
Poser sur la plaque
etc..

oui Assez de non


pâtes ?
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu
• Il ne connait pas la commande mettre la casserole d’eau sur le feu
• on doit donc écrire l’algorithme de cette procédure oui Est-ce que non
avec les commandes connues du robot l’eau bout ?

mettre la casserole
mettre les pâtes dans la
d’eau sur le feu Attendrex20
2s
casserole

Prendre casserole
attendre 8temps
mn cuisson
Poser sous robinet
Ouvrir eau
Attendre jusqu’à 1 litre égoutter et servir
Poser sur la plaque
etc..

oui Assez de non


pâtes ?
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu
• Il ne connait pas la commande mettre la casserole d’eau sur le feu
• on doit donc écrire l’algorithme de cette procédure oui Est-ce que non
avec les commandes connues du robot l’eau bout ?

mettre la casserole
mettre les pâtes dans la
d’eau sur le feu Attendrex20
2s
• Puis appeler cette procédure casserole

depuis le programme principal Prendre casserole


attendre 8temps
mn cuisson
(par convention on met des barres Poser sous robinet
Ouvrir eau
doubles en cas d’appel de procédure) Attendre jusqu’à 1 litre égoutter et servir
Poser sur la plaque
etc..

oui Assez de non


pâtes ?
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu
• Il ne connait pas la commande mettre la casserole d’eau sur le feu
• on doit donc écrire l’algorithme de cette procédure oui Est-ce que non
avec les commandes connues du robot l’eau bout ?

mettre la casserole
mettre les pâtes dans la
d’eau sur le feu Attendrex20
2s
• Puis appeler cette procédure casserole

depuis le programme principal Prendre casserole


attendre 8temps
mn cuisson
(par convention on met des barres Poser sous robinet
Ouvrir eau
doubles en cas d’appel de procédure) Attendre jusqu’à 1 litre égoutter et servir

• Avec les procédures on sépare Poser sur la plaque


etc..
le rôle de la fonction du détail
de sa réalisation : c’est une "abstraction procédurale" oui Assez de non
pâtes ?
INTRODUCTION AUX PROCÉDURES
• notre algorithme des pâtes peut être exécuté par une temps cuisson ?

personne … mais pour un robot ?


mettre la casserole d’eau sur le feu
• Il ne connait pas la commande mettre la casserole d’eau sur le feu
• on doit donc écrire l’algorithme de cette procédure oui Est-ce que non
avec les commandes connues du robot l’eau bout ?

mettre la casserole
mettre les pâtes dans la
d’eau sur le feu Attendrex20
2s
• Puis appeler cette procédure casserole

depuis le programme principal Prendre casserole


attendre 8temps
mn cuisson
(par convention on met des barres Poser sous robinet
Ouvrir eau
doubles en cas d’appel de procédure) Attendre jusqu’à 1 litre égoutter et servir

• Avec les procédures on sépare Poser sur la plaque


etc..
le rôle de la fonction du détail
de sa réalisation : c’est une "abstraction procédurale" oui Assez de non
pâtes ?
INTRODUCTION AUX PROCÉDURES : EXEMPLE DU LABYRINTHE N10
Blockly maze, niveau 10 : https://blockly.games/maze?lang=fr&level=10

oui non
Arrivée ?

oui Chemin à non


gauche ?

oui Chemin non


devant ?

oui Chemin à non


droite ?

tourner à gauche tourner à droite tourner à droite


tourner à droite

avancer
INTRODUCTION AUX PROCÉDURES : EXEMPLE DU LABYRINTHE N10
Blockly maze, niveau 10 : https://blockly.games/maze?lang=fr&level=10

oui non
Arrivée ?

oui Chemin à non


gauche ?

oui Chemin non


devant ?

oui Chemin à non


droite ?

tourner à gauche tourner à droite tourner à droite


tourner à droite

avancer
INTRODUCTION AUX PROCÉDURES : EXEMPLE DU LABYRINTHE N10
Blockly maze, niveau 10 : https://blockly.games/maze?lang=fr&level=10

oui non oui non


Arrivée ? Arrivée ?

orienter
oui Chemin à non orienter
gauche ?
avancer

oui Chemin non


devant ?

oui Chemin à non


droite ?

tourner à gauche tourner à droite tourner à droite


tourner à droite

avancer
INTRODUCTION AUX PROCÉDURES : EXEMPLE DU LABYRINTHE N10
Blockly maze, niveau 10 : https://blockly.games/maze?lang=fr&level=10

oui non oui non


Arrivée ? Arrivée ?

orienter
oui Chemin à non orienter
gauche ?
avancer
orienter
oui Chemin non
oui Chemin à non devant ?
gauche ?
oui Chemin à non
oui Chemin non
devant ? droite ?

oui Chemin à non tourner à gauche tourner à droite tourner à droite


droite ? tourner à droite

tourner à gauche tourner à droite tourner à droite


tourner à droite
avancer
INTRODUCTION AUX PROCÉDURES : EXEMPLE DU LABYRINTHE N10
Blockly maze, niveau 10 : https://blockly.games/maze?lang=fr&level=10

oui non oui non


Arrivée ? Arrivée ?

orienter
oui Chemin à non orienter
gauche ?
avancer

oui Chemin non


Pseudo-code devant ?

oui Chemin à non


Répéter jusqu’à arrivée droite ?

orienter() tourner à gauche tourner à droite tourner à droite


tourner à droite
avancer

avancer
orienter

Vous aimerez peut-être aussi