SECTION 31 ALGORITHMIQUE - PROGRAMMATION.
of 7
/7
Embed Size (px)
Transcript of SECTION 31 ALGORITHMIQUE - PROGRAMMATION.
AlgorithmiqueALGORITHMIQUE - PROGRAMMATION.
Un algorithme est une succession d’instructions à enchaî-
ner dans un ordre bien précis, permettant de résoudre un
problème donné.
Lui ajouter 1.
Soustraire 3 au résultat.
Le mot algorithme vient du nom du mathématicien arabe
(ou plus exactement persan) Al-Khwrizm (IXème siècle).
Ce dernier est l’auteur du premier livre arabe connu où
la numération décimale de position et les méthodes de
calcul d'origine indienne sont expliquées en détail. Ce
livre connut, dans les pays d'Europe, une telle renom-
mée que le nom « Al-Khwrizm » est devenu la désigna-
tion même de ce système de numération. Latinisé, ce nom devient au
fil du temps « Alchoarismi » puis « algorismi » pour se transformer au
final en « algorithme ». Et sa définition de système décimal de position
devient peu à peu la définition actuelle.
Cependant l’utilisation des algorithmes est bien antérieure au IXème
siècle ; déjà vers 1800 avant J.C, les Mésopotamiens calculaient
des valeurs approchées des racines carrées à l’aide d’algorithmes.
Pour transcrire un algorithme sur un ordinateur, on utilise différents langages de programmation
qui permettent de transcrire la série d’instructions que l’on souhaite faire effectuer de manière à
être compris par un ordinateur. L’ordinateur les transcrit alors en langage binaire, car la struc-
ture physique de sa mémoire ne lui permet de stocker que des informations pouvant avoir seule-
ment 2 valeurs possibles : pour une machine, tout est donc soit 0 ou 1, soit ouvert ou fermé.
SECTION 31 :
programme entré dans l’ordinateur
code transformé en langage binaire
Statue d’al-khwarizmi a
MAthbirds Partie 5 section 31 2/7
Au collège, on utilisera surtout le langage SCRATCH ; au lycée, le langage PYTHON .
Mais il en existe beaucoup d’autres (BASIC, Logo, C++, Javascript, PHP...)
II- Installation du logiciel SCRATCH3 (rappel).
SCRATCH est un logiciel de programmation dont le langage éducatif est relativement simple et
proche de celui utilisé dans les algorithmes. Il permet, en plus des programmations mathéma-
tiques, des animations ludiques.
On peut utiliser SCRATCH en ligne : https://scratch.mit.edu/ (cliquer sur créer)
ou télécharger le logiciel : https://scratch.mit.edu/download
Vidéo « Présentation SCRATCH3. » : http://bit.ly/interfacescratchMB (Source vidéo : Educode.)
III- Les boucles.
En algorithmique et programmation, une boucle permet de répéter plusieurs fois une série d’ins-
tructions.
1°) Les boucles itératives.
Une boucle itérative (ou boucle avec compteur) est une boucle qui consiste à répéter la série
d’instructions un nombre de fois fixé à l’avance.
exp. : Dans SCRATCH, la boucle ci-dessous répète 10 fois la série d’instructions.
exp. : Avec PYTHON (et avec de nombreux autres langages et en particulier ceux des calculatrices pro-
grammables), on utilise la boucle for ..... in (en français : pour ..... dans) avec un comp-
teur i pour contrôler le nombre de « tours ».
range(1,6) (en français : plage 1 à 6) indique le début (ici 1) et la fin du compteur (ici 6,
mais 6 n’est pas inclus dans le compte donc le dernier est 5 !).
À chaque « tour », le compteur i augmente automatiquement de 1.
print( ) (en français : imprimer) indique à PYTHON qu’il va devoir afficher à l’écran ce qui
suit dans les parenthèses.
Les symboles "....." indiquent à PYTHON une phrase à écrire.
{} est un marqueur pour une valeur à compléter au fur et à mesure.
.format(i) (à la fin) indique à PYTHON de remplacer le {} précédent par les différentes
valeurs de i.
Quand on lance le programme, on obtient donc l’affichage :
VALEUR
2°) Les boucles conditionnelles.
Une boucle conditionnelle est une boucle qui s’arrête sous certaines conditions.
exp. : Dans SCRATCH, la boucle ci-contre répète le déplacement du lutin jusqu’à ce que
l’on appuie sur la touche "espace".
exp. : Ici, PYTHON simule le programme de la jauge d’essence d’une voiture.
Il laisse le voyant d’alerte éteint tant que (en anglais : while) le niveau est supé-
rieur à 1
3°) Les boucles infinies.
Une boucle infinie (qui n’existe que dans SCRATCH) est une boucle qui se répètera sans arrêt.
IV- Les variables.
Dans un programme informatique, on peut être amené à stocker provisoirement des données dans
l’ordinateur.
On utilise pour cela une variable. De manière imagé, une variable est comme une "boîte".
Sur cette "boîte", on y met une étiquette pour la repérer, c’est le nom de la variable.
La donnée que l’on place dans cette "boîte" est la valeur de la variable (elle peut être un nombre, un
mot...).
Pour avoir accès à la valeur de la variable (contenu de la "boîte"),
il suffit de la désigner par son nom (son étiquette).
Dans SCRATCH, si on veut stocker
plusieurs données en même temps,
on peut également créer une liste.
On obtient alors un tableau dans
lequel on peut placer les données
ligne par ligne.
MAthbirds Partie 5 section 31 4/7
exp. :
Dans cet exemple issu de SCRATCH, il y a quatre variables :
« naissance » dans laquelle on transféra la valeur de « réponse » ;
« réponse » qui recevra automatiquement la réponse à la question posée ;
« actuel année » qui prend automatiquement la valeur de l’année actuelle (si l’ordinateur est
bien réglé...) ;
« âge » qui prend la valeur de la différence entre l’année actuelle et « naissance ».
exp. :
Dans cet exemple issu de PYTHON, il y a trois variables :
« rayon » qui prend la valeur du rayon entrée par l’utilisateur ;
« P » qui prend la valeur du résultat du calcul du périmètre du cercle de rayon.
« A » qui prend la valeur du résultat du calcul de l’aire du cercle de rayon.
Le = après le nom d’une variable, dans PYTHON, n’est pas un vrai égal mais il se lit :
« La variable ..... prend la valeur ..... ». (Le vrai égal s’écrit = =.)
exp. : La variable P prend la valeur du calcul 2×3,14159×rayon
input(" ")permet de poser une question et d’attendre une réponse entrée par l’utilisateur.
float( )indique que la variable est un nombre quelconque.
Il existe aussi int( )qui indique que la variable est un nombre entier.
print("A =", A, "cm².")signifie qu’il faut afficher la phrase « A = » suivie de la
valeur de la variable A suivie de la phrase « cm². ».
V- Les tests.
La résolution de certains problèmes nécessite la mise en place d’un test pour savoir si l’on doit
effectuer une tâche ; si le test est positif, on effectue la tâche ; sinon (c’est-à-dire si le test est né-
gatif) on effectue (éventuellement) une autre tâche.
Si la condition est remplie alors
on effectue la tâche,
sinon on effectue (éventuellement) une autre tâche.
Le « Sinon » n’est pas obligatoire. S’il n’est pas présent, aucune tâche ne sera effectuée si la
condition n’est pas remplie.
Affichage quand le programme est lancé pour rayon = 5.
MAthbirds Partie 5 section 31 5/7
exp. : Avec SCRATCH, on a créé les variables :
Cet exemple de SCRATCH teste le Théorème
de Pythagore pour trois valeurs entrées par
l’utilisateur dans le but de savoir si le trian-
gle est rectangle ou non.
exp. : Jeu du Pile ou Face simulé par ordinateur...
On importe tout d’abord le module random (en français aléatoire).
randint(a,b)permet dans PYTHON au programme de choisir au hasard un entier compris
entre a et b (a et b inclus).
if ..... else ..... (en français : si ..... sinon ..... ) indique à PYTHON qu’il va devoir effectuer un
test. On remarquera que le « alors » n’est pas écrit mais est sous-entendu.
= = correspond au « vrai » égal.
VI- Quelques briques utiles dans SCRATCH.
Dans CAPTEURS : Question pour obtenir une information de l’utilisateur et la variable automa-
tique de stockage de la réponse.
PILE
(1)
FACE
(0)
Dans OPERATEURS : Regrouper des choses de natures différentes.
Dans OPERATEURS : On trouve les 4 opérations courantes ainsi que les comparateurs :
Si on veut programmer des calculs dans SCRATCH, ça se complique un peu
car le logiciel ne reconnaît pas ni les priorités ni les parenthèses, il faut
donc bien organiser le calcul pour obtenir le bon résultat...
Le calcul le plus à l’intérieur sera effectué en premier.
Exemple 1 :
Exemple 2 :
Connecteurs de conditions :
a modulo b permet d’obtenir le reste de la division euclidienne de
a par b.
les 2 bornes.
Si les bornes sont entières, le nombre aléatoire sera un entier.
Si les bornes sont décimales le nombre aléatoire sera un décimal.
Dans EVENEMENTS : Envoyer à tous message permet de faire communiquer entre eux les
lutins.
Quand je reçois message permet de démarrer une action à réception
du message.
34 = 7 × 4 + 6 12 = 4 × 3 + 0
Il faut avoir les deux conditions en même temps.
Il faut avoir au minimum une des deux conditions .
*
MAthbirds Partie 5 section 31 7/7
Fiche exercices 1 à 3 sur algorithme. (Voir Partie 6 : Annexes.)
: P5S31-épisode2.
Fiche exercices 4 à 6 sur algorithme. (Voir Partie 6 : Annexes.)
: P5S31-épisode3 « Problème du verger - Fibonacci. ».
Fiche exercices 7 à 9 sur algorithme. (Voir Partie 6 : Annexes.)
: P5S31-épisode4.
COURS.
Dans MES BLOCS : Cette catégorie permet de créer des sous-programmes.
Exemple d’écriture d’un
sous-programme qui
son utilisation dans un
Fiche exercices 10 à .... sur algorithme. (Voir Partie 6 : Annexes.)
On écrit ici le nom du sous-programme.
L’ordinateur crée alors deux briques :
- une brique de définition sous lequel on écrira le
sous-programme :
- une brique d’appel qui permettra de lancer le sous-
programme :
variable locale utilisée dans le sous-programme.
Pour utiliser cette variable, il suffit de cliquer sur
elle dans la partie « définir » et de l’emmener à
l’endroit voulu du sous-programme.
Un algorithme est une succession d’instructions à enchaî-
ner dans un ordre bien précis, permettant de résoudre un
problème donné.
Lui ajouter 1.
Soustraire 3 au résultat.
Le mot algorithme vient du nom du mathématicien arabe
(ou plus exactement persan) Al-Khwrizm (IXème siècle).
Ce dernier est l’auteur du premier livre arabe connu où
la numération décimale de position et les méthodes de
calcul d'origine indienne sont expliquées en détail. Ce
livre connut, dans les pays d'Europe, une telle renom-
mée que le nom « Al-Khwrizm » est devenu la désigna-
tion même de ce système de numération. Latinisé, ce nom devient au
fil du temps « Alchoarismi » puis « algorismi » pour se transformer au
final en « algorithme ». Et sa définition de système décimal de position
devient peu à peu la définition actuelle.
Cependant l’utilisation des algorithmes est bien antérieure au IXème
siècle ; déjà vers 1800 avant J.C, les Mésopotamiens calculaient
des valeurs approchées des racines carrées à l’aide d’algorithmes.
Pour transcrire un algorithme sur un ordinateur, on utilise différents langages de programmation
qui permettent de transcrire la série d’instructions que l’on souhaite faire effectuer de manière à
être compris par un ordinateur. L’ordinateur les transcrit alors en langage binaire, car la struc-
ture physique de sa mémoire ne lui permet de stocker que des informations pouvant avoir seule-
ment 2 valeurs possibles : pour une machine, tout est donc soit 0 ou 1, soit ouvert ou fermé.
SECTION 31 :
programme entré dans l’ordinateur
code transformé en langage binaire
Statue d’al-khwarizmi a
MAthbirds Partie 5 section 31 2/7
Au collège, on utilisera surtout le langage SCRATCH ; au lycée, le langage PYTHON .
Mais il en existe beaucoup d’autres (BASIC, Logo, C++, Javascript, PHP...)
II- Installation du logiciel SCRATCH3 (rappel).
SCRATCH est un logiciel de programmation dont le langage éducatif est relativement simple et
proche de celui utilisé dans les algorithmes. Il permet, en plus des programmations mathéma-
tiques, des animations ludiques.
On peut utiliser SCRATCH en ligne : https://scratch.mit.edu/ (cliquer sur créer)
ou télécharger le logiciel : https://scratch.mit.edu/download
Vidéo « Présentation SCRATCH3. » : http://bit.ly/interfacescratchMB (Source vidéo : Educode.)
III- Les boucles.
En algorithmique et programmation, une boucle permet de répéter plusieurs fois une série d’ins-
tructions.
1°) Les boucles itératives.
Une boucle itérative (ou boucle avec compteur) est une boucle qui consiste à répéter la série
d’instructions un nombre de fois fixé à l’avance.
exp. : Dans SCRATCH, la boucle ci-dessous répète 10 fois la série d’instructions.
exp. : Avec PYTHON (et avec de nombreux autres langages et en particulier ceux des calculatrices pro-
grammables), on utilise la boucle for ..... in (en français : pour ..... dans) avec un comp-
teur i pour contrôler le nombre de « tours ».
range(1,6) (en français : plage 1 à 6) indique le début (ici 1) et la fin du compteur (ici 6,
mais 6 n’est pas inclus dans le compte donc le dernier est 5 !).
À chaque « tour », le compteur i augmente automatiquement de 1.
print( ) (en français : imprimer) indique à PYTHON qu’il va devoir afficher à l’écran ce qui
suit dans les parenthèses.
Les symboles "....." indiquent à PYTHON une phrase à écrire.
{} est un marqueur pour une valeur à compléter au fur et à mesure.
.format(i) (à la fin) indique à PYTHON de remplacer le {} précédent par les différentes
valeurs de i.
Quand on lance le programme, on obtient donc l’affichage :
VALEUR
2°) Les boucles conditionnelles.
Une boucle conditionnelle est une boucle qui s’arrête sous certaines conditions.
exp. : Dans SCRATCH, la boucle ci-contre répète le déplacement du lutin jusqu’à ce que
l’on appuie sur la touche "espace".
exp. : Ici, PYTHON simule le programme de la jauge d’essence d’une voiture.
Il laisse le voyant d’alerte éteint tant que (en anglais : while) le niveau est supé-
rieur à 1
3°) Les boucles infinies.
Une boucle infinie (qui n’existe que dans SCRATCH) est une boucle qui se répètera sans arrêt.
IV- Les variables.
Dans un programme informatique, on peut être amené à stocker provisoirement des données dans
l’ordinateur.
On utilise pour cela une variable. De manière imagé, une variable est comme une "boîte".
Sur cette "boîte", on y met une étiquette pour la repérer, c’est le nom de la variable.
La donnée que l’on place dans cette "boîte" est la valeur de la variable (elle peut être un nombre, un
mot...).
Pour avoir accès à la valeur de la variable (contenu de la "boîte"),
il suffit de la désigner par son nom (son étiquette).
Dans SCRATCH, si on veut stocker
plusieurs données en même temps,
on peut également créer une liste.
On obtient alors un tableau dans
lequel on peut placer les données
ligne par ligne.
MAthbirds Partie 5 section 31 4/7
exp. :
Dans cet exemple issu de SCRATCH, il y a quatre variables :
« naissance » dans laquelle on transféra la valeur de « réponse » ;
« réponse » qui recevra automatiquement la réponse à la question posée ;
« actuel année » qui prend automatiquement la valeur de l’année actuelle (si l’ordinateur est
bien réglé...) ;
« âge » qui prend la valeur de la différence entre l’année actuelle et « naissance ».
exp. :
Dans cet exemple issu de PYTHON, il y a trois variables :
« rayon » qui prend la valeur du rayon entrée par l’utilisateur ;
« P » qui prend la valeur du résultat du calcul du périmètre du cercle de rayon.
« A » qui prend la valeur du résultat du calcul de l’aire du cercle de rayon.
Le = après le nom d’une variable, dans PYTHON, n’est pas un vrai égal mais il se lit :
« La variable ..... prend la valeur ..... ». (Le vrai égal s’écrit = =.)
exp. : La variable P prend la valeur du calcul 2×3,14159×rayon
input(" ")permet de poser une question et d’attendre une réponse entrée par l’utilisateur.
float( )indique que la variable est un nombre quelconque.
Il existe aussi int( )qui indique que la variable est un nombre entier.
print("A =", A, "cm².")signifie qu’il faut afficher la phrase « A = » suivie de la
valeur de la variable A suivie de la phrase « cm². ».
V- Les tests.
La résolution de certains problèmes nécessite la mise en place d’un test pour savoir si l’on doit
effectuer une tâche ; si le test est positif, on effectue la tâche ; sinon (c’est-à-dire si le test est né-
gatif) on effectue (éventuellement) une autre tâche.
Si la condition est remplie alors
on effectue la tâche,
sinon on effectue (éventuellement) une autre tâche.
Le « Sinon » n’est pas obligatoire. S’il n’est pas présent, aucune tâche ne sera effectuée si la
condition n’est pas remplie.
Affichage quand le programme est lancé pour rayon = 5.
MAthbirds Partie 5 section 31 5/7
exp. : Avec SCRATCH, on a créé les variables :
Cet exemple de SCRATCH teste le Théorème
de Pythagore pour trois valeurs entrées par
l’utilisateur dans le but de savoir si le trian-
gle est rectangle ou non.
exp. : Jeu du Pile ou Face simulé par ordinateur...
On importe tout d’abord le module random (en français aléatoire).
randint(a,b)permet dans PYTHON au programme de choisir au hasard un entier compris
entre a et b (a et b inclus).
if ..... else ..... (en français : si ..... sinon ..... ) indique à PYTHON qu’il va devoir effectuer un
test. On remarquera que le « alors » n’est pas écrit mais est sous-entendu.
= = correspond au « vrai » égal.
VI- Quelques briques utiles dans SCRATCH.
Dans CAPTEURS : Question pour obtenir une information de l’utilisateur et la variable automa-
tique de stockage de la réponse.
PILE
(1)
FACE
(0)
Dans OPERATEURS : Regrouper des choses de natures différentes.
Dans OPERATEURS : On trouve les 4 opérations courantes ainsi que les comparateurs :
Si on veut programmer des calculs dans SCRATCH, ça se complique un peu
car le logiciel ne reconnaît pas ni les priorités ni les parenthèses, il faut
donc bien organiser le calcul pour obtenir le bon résultat...
Le calcul le plus à l’intérieur sera effectué en premier.
Exemple 1 :
Exemple 2 :
Connecteurs de conditions :
a modulo b permet d’obtenir le reste de la division euclidienne de
a par b.
les 2 bornes.
Si les bornes sont entières, le nombre aléatoire sera un entier.
Si les bornes sont décimales le nombre aléatoire sera un décimal.
Dans EVENEMENTS : Envoyer à tous message permet de faire communiquer entre eux les
lutins.
Quand je reçois message permet de démarrer une action à réception
du message.
34 = 7 × 4 + 6 12 = 4 × 3 + 0
Il faut avoir les deux conditions en même temps.
Il faut avoir au minimum une des deux conditions .
*
MAthbirds Partie 5 section 31 7/7
Fiche exercices 1 à 3 sur algorithme. (Voir Partie 6 : Annexes.)
: P5S31-épisode2.
Fiche exercices 4 à 6 sur algorithme. (Voir Partie 6 : Annexes.)
: P5S31-épisode3 « Problème du verger - Fibonacci. ».
Fiche exercices 7 à 9 sur algorithme. (Voir Partie 6 : Annexes.)
: P5S31-épisode4.
COURS.
Dans MES BLOCS : Cette catégorie permet de créer des sous-programmes.
Exemple d’écriture d’un
sous-programme qui
son utilisation dans un
Fiche exercices 10 à .... sur algorithme. (Voir Partie 6 : Annexes.)
On écrit ici le nom du sous-programme.
L’ordinateur crée alors deux briques :
- une brique de définition sous lequel on écrira le
sous-programme :
- une brique d’appel qui permettra de lancer le sous-
programme :
variable locale utilisée dans le sous-programme.
Pour utiliser cette variable, il suffit de cliquer sur
elle dans la partie « définir » et de l’emmener à
l’endroit voulu du sous-programme.