algorithme et programmation

2
Outils pour l algorithmique L’objectif de ce complément est de : – découvrir ou revoir ce qu’est un algorithme, sa structure de base et ses instructions fondamentales ; – mettre en œuvre quelques algorithmes à l'aide d'une machine (la calculatrice ou l’ordinateur) ; – d’effectuer de la programmation. DÉFINITION Un algorithme est une suite finie de règles que l’on applique dans un ordre déterminé, à un nombre fini de données pour arriver à un certain résultat, en un nombre fini d’étapes. Cette définition donne un sens au mot algorithme qui dépasse largement le cadre des mathématiques et de l’informatique. En effet, on peut constater que de nombreux algorithmes émaillent notre vie quotidienne. En mathématiques, on utilise déjà des algorithmes sans en avoir conscience. EXEMPLES Des algorithmes dans notre quotidien Des algorithmes déjà connus a. Nouer ses lacets. b. Envoyer un mail : Allumer l’ordinateur. Ouvrir son client de messagerie électronique. Rédiger un nouveau message. Sélectionner les destinataires. Ajouter (éventuellement) une pièce jointe. Envoyer. c. Une recette de cuisine est un algorithme avec ses données (les ingrédients), ses instructions (les différentes étapes de la confection) et sa sortie (le plat à déguster). d. Indiquer son chemin à quelqu’un. a. Déterminer graphiquement l’image d’un nombre par une fonc- tion dont la courbe est connue. b. Tracer un triangle équilatéral dont la longueur du côté est donnée. c. Déterminer si un triangle dont on connaît la longueur des côtés est rectangle. d. Algorithme d’Euclide. e. Crible d’Eratosthène. f. Calculer la moyenne d’une série statistique. Pour constater qu’il s’agit bien d’un algorithme, on doit vérifier que, pour parvenir au résultat recherché, on a bien une méthode constituée d’un nombre fini d’instructions et d’étapes, ne requérant qu’un nombre fini de données. REPRÉSENTATION Pour représenter de façon commune les algorithmes, on utilise deux méthodes : un organigramme, réservé aux algorithmes les plus simples (voir la fiche sur le logiciel LARP, page 390) ; le pseudo-code, qui ressemble à un vrai langage de programmation dans lequel on aurait retiré les problèmes de syntaxe (grammaire) et que l’on peut écrire dans la langue de son choix. Cette façon de présenter les algorithmes présente l’avantage d’être très structurée, facilement traduisible dans n’importe quel langage de programmation. À ce stade, l’algorithme n’est pas destiné à être interprété directement par un ordinateur. Représentation d’un algorithme à l’aide du pseudo-code : Début Écrire "Entrer la première note" Lire N Écrire "Entrer la seconde note" Lire M Écrire "La moyenne est : ",(M+N)/2 Fin Représentation d’un algorithme à l’aide d’un organigramme : Début ÉCRIRE "Entrer la première note" LIRE N ÉCRIRE "Entrer la seconde note" LIRE M ÉCRIRE "La moyenne est : ",(M+N)/2 FIN Outils pour l algorithmique Les algorithmes ne sont pas en lien direct avec l’informatique. Leur but est de fournir une solution (réponse) à un problème posé. Leur particularité est d’être constitués d’un nombre ni d’instructions simples, appelées instructions élémentaires, qu’il est parfois cessaire de répéter un certain nombre (parfois très grand) de fois. Le principe est simple mais la tâche peut s’avérer laborieuse. C’est là qu’intervient la cessité d’utiliser l’ordinateur, capable d’exécuter des instructions très simples autant de fois que cessaire. Il reste néanmoins le problème de la communication : une fois l’algorithme construit, une étape importante est de « l’expliquer » à l’ordinateur. Cette communication se fait à l’aide de divers langages de programmation. T ous ces langages ont leur propre sémantique (vocabulaire) et leur propre syntaxe (grammaire), mais reposent sur les bases fondamentales de l’algorithmique, les instructions élémentaires suivantes : la lecture ou l’écriture ; l’affectation de variables ; les tests ; les boucles. EXEMPLES L’algorithme présenté sous forme d’organigramme et de pseudo-code au paragraphe , qui a pour but de calculer la moyenne de deux notes données, est crit ci-dessous dans divers langages de programmation s’appliquant sur calculatrices ou sur ordinateurs. Casio TI XCAS Langage Python SCRATCH Langage C Voir les ches logiciel, pages 386 à 391. Voir la che calculatrices, page 398.

Upload: dxsszsz

Post on 09-Jul-2016

6 views

Category:

Documents


3 download

TRANSCRIPT

Outils pour l’algorithmique

L’objectif de ce complément est de :– découvrir ou revoir ce qu’est un algorithme, sa structure de base et ses instructions fondamentales ;– mettre en œuvre quelques algorithmes à l'aide d'une machine (la calculatrice ou l’ordinateur) ; – d’eff ectuer de la programmation.

D É F I N I T I O N

Un algorithme est une suite fi nie de règles que l’on applique dans un ordre déterminé, à un nombre fi ni de données pour arriver à un certain résultat, en un nombre fi ni d’étapes.

Cette défi nition donne un sens au mot algorithme qui dépasse largement le cadre des mathématiques et de l’informatique. En eff et, on peut constater que de nombreux algorithmes émaillent notre vie quotidienne. En mathématiques, on utilise déjà des algorithmes sans en avoir conscience.

E X E M P L E S

Des algorithmes dans notre quotidien Des algorithmes déjà connus

a. Nouer ses lacets.b. Envoyer un mail :

Allumer l’ordinateur.Ouvrir son client de messagerie électronique.Rédiger un nouveau message.Sélectionner les destinataires.Ajouter (éventuellement) une pièce jointe.Envoyer.

c. Une recette de cuisine est un algorithme avec ses données (les ingrédients), ses instructions (les diff érentes étapes de la confection) et sa sortie (le plat à déguster).d. Indiquer son chemin à quelqu’un.

a. Déterminer graphiquement l’image d’un nombre par une fonc-tion dont la courbe est connue.b. Tracer un triangle équilatéral dont la longueur du côté est donnée.c. Déterminer si un triangle dont on connaît la longueur des côtés est rectangle.d. Algorithme d’Euclide.e. Crible d’Eratosthène.f. Calculer la moyenne d’une série statistique.

Pour constater qu’il s’agit bien d’un algorithme, on doit vérifi er que, pour parvenir au résultat recherché, on a bien une méthode constituée d’un nombre fi ni d’instructions et d’étapes, ne requérant qu’un nombre fi ni de données.

R E P R É S E N T A T I O N

Pour représenter de façon commune les algorithmes, on utilise deux méthodes :un organigramme, réservé aux algorithmes les plus simples (voir la fi che sur le

logiciel LARP, page 390) ;le pseudo-code, qui ressemble à un vrai langage de programmation dans lequel

on aurait retiré les problèmes de syntaxe (grammaire) et que l’on peut écrire dans la langue de son choix. Cette façon de présenter les algorithmes présente l’avantage d’être très structurée, facilement traduisible dans n’importe quel langage de programmation.

À ce stade, l’algorithme n’est pas destiné à être interprété directement par un ordinateur.

Représentation d’un algorithme à l’aide du pseudo-code :

DébutÉcrire "Entrer la première note"Lire NÉcrire "Entrer la seconde note"Lire MÉcrire "La moyenne est : ",(M+N)/2

Fin

Représentation d’un algorithme à l’aide d’un organigramme :

Début

ÉCRIRE "Entrer la première note"

LIRE N

ÉCRIRE "Entrer la seconde note"

LIRE M

ÉCRIRE "La moyenne est : ",(M+N)/2

FIN

Outils pour l’algorithmique

Les algorithmes ne sont pas en lien direct avec l’informatique. Leur but est de fournir une solution (réponse) à un problème posé. Leur particularité est d’être constitués d’un nombre fi ni d’instructions simples, appelées instructions élémentaires, qu’il est parfois nécessaire de répéter un certain nombre (parfois très grand) de fois. Le principe est simple mais la tâche peut s’avérer laborieuse. C’est là qu’intervient la nécessité d’utiliser l’ordinateur, capable d’exécuter des instructions très simples autant de fois que nécessaire.

Il reste néanmoins le problème de la communication : une fois l’algorithme construit, une étape importante est de « l’expliquer » à l’ordinateur.

Cette communication se fait à l’aide de divers langages de programmation. Tous ces langages ont leur propre sémantique (vocabulaire) et leur propre syntaxe (grammaire), mais reposent sur les bases fondamentales de l’algorithmique, les instructions élémentaires suivantes :

la lecture ou l’écriture ; l’aff ectation de variables ;les tests ; les boucles.

E X E M P L E S

L’algorithme présenté sous forme d’organigramme et de pseudo-code au paragraphe , qui a pour but de calculer la moyenne de deux notes données, est décrit ci-dessous dans divers langages de programmation s’appliquant sur calculatrices ou sur ordinateurs.

Casio TI

XC AS Langage P ython

SCR ATCH Langage C

Voir les fi ches logiciel,pages 386 à 391.

Voir la fi che calculatrices, page 398.

Outils pour l’algorithmique

Avant de pouvoir écrire un algorithme, il faut réussir à décomposer la résolution du problème posé en instructions élémentaires.

On peut ranger des instructions très diverses en quatre grandes familles :entrée/sortie : elles permettent d’entrer une donnée ou d’affi cher un résultat ;les aff ectations de variables : elles modifi ent la valeur d’un nombre, la forme d’un objet ;les instructions conditionnelles : elles permettent de tester et de proposer des choix ;les boucles : elles permettent de répéter des instructions.

Activité

Lire les deux entiers a et b Calculer le reste r de la division

euclidienne de a par b TANT QUE r est diff érent de 0

– Remplacer a par b– Remplacer b par r– Remplacer r par le reste de la division euclidienne de a par b

Affi cher la valeur de b

Lire le nombre n Écrire tous les entiers entre 2 et n Pour chacun de ces entiers, en

commençant par 2 :– Si il n’est pas rayé Alors rayer tous ses multiples sauf lui-même

Écrire la liste des entiers non rayés

Lire le nombre de données N Lire toutes les données Calculer la somme des données Diviser cette somme par N Affi cher le résultat.

1 Tester chacun des algorithmes ci-dessus, puis expliquer leur but.

2 Reproduire les algorithmes 1, 2 et 3, puis souligner à l’aide de couleurs diff érentes, les quatre grandes familles d’ins-tructions :a. entrée/sortie : en rouge ; b. aff ectation de variables : en bleu ;c. instruction conditionnelle : en vert ; d. boucle : en noir.3 En s’inspirant des décompositions en instructions élémentaires réalisées en 2 et en utilisant les familles

d’instructions vues au paragraphe , écrire un algorithme pour chacun des problèmes mathématiques suivant :a. On connaît la courbe représentative d’une fonction f. On cherche à déterminer l’image d’un réel x par f.b. On dispose d’une règle graduée et d’un compas. On cherche à construire un triangle équilatéral dont le côté mesure c.c. On cherche à déterminer si un triangle dont les côtés mesurent respectivement a, b et c est rectangle.

Activité

Une grenouille distraite chasse une sauterelle. La grenouille et la sauterelle se déplacent en ligne droite en faisant des bonds simultanés mesurant respectivement 40 cm et 24 cm. Cette grenouille est capable d’attraper avec sa langue tout insecte situé à moins de 10 cm devant elle, mais elle est fort distraite et si elle dépasse la sauterelle, elle oublie son objectif. Ce jour-là, la grenouille aperçoit la sauterelle à une certaine distance d comprise entre 2 m et 5 m. La course s’engage. On souhaite écrire un algorithme qui, lorsqu’on lui donne la distance

initiale d répond à la question « la sauterelle réussira-t-elle à échapper à la grenouille ? »

Pour chacun des items ci-après, écrire la (ou les) instruction(s) élémentaire(s) correspondante(s).

1 Il faut demander au début l’avance de la sauterelle sur la grenouille.

Outils pour l’algorithmique

2 Ensuite, on va placer dans des variables la position de la grenouille et celle de la sauterelle.

3 On crée également une variable qui contient la valeur 1 tant que la chasse continue et la valeur 0 lorsque celle-ci doit s’arrêter.

4 Tant que la chasse continue, on fait avancer les animaux d’un saut, puis on regarde :a. si la grenouille est à plus de 10 cm derrière la sauterelle, alors les 2 animaux refont un saut ;b. sinon la chasse est fi nie.

5 a. Si la grenouille est à moins de 10 cm derrière la sauterelle, alors elle mange la sauterelle.

b. Si la grenouille a dépassé la sauterelle, alors la sauterelle s’est échappée.

6 Penser à donner la réponse à la question posée.

Une variable est désignée par son nom (que le créateur de l’algorithme choisit) et contient un objet (nombre, texte, tableau…) souvent appelé valeur de la variable.

Aff ecter une valeur à une variable consiste à « ranger » cette valeur (ou cet objet) dans la variable considérée. Toute nouvelle aff ectation remplace (et détruit) la précédente.

Pour suivre l’évolution du contenu des variables d’un algorithme, on dresse généralement un « tableau de suivi » dans lequel on indique le contenu de chaque variable à chacune des étapes de l’algorithme :

a b c À l’étape 4 , on a :

1 0 / / a = b + 2

2 2

2 + 2

4

a = 4

2 0 2 /

3 0 2 - 7

4 4 2 - 7

5 4 - 2 - 7

6 4 - 2 0

Casio

La séquence de touches :P

permet d’aff ecter la valeur 2 à la variable P :

TI

La séquence de touches :P

permet d’aff ecter la valeur 2 à la variable P :

Sur les deux calculatrices, on constate que la valeur 2 a bien été « retenue » puisque le calcul de P3 # donne bien 6.Cependant les calculatrices Casio et Texas Instrument ne permettent pas d’aff ecter un texte à une variable. L’activité 2 du paragraphe , page 12, n’est donc pas possible avec ces calculatrices.

Variable :a, b, c : réel ;

Début1 a = 0 ;2 b = 2 ;3 c = - 7 ;4 a = b + 2 ;5 b = b - 4 ;6 c = b + 2 ;Fin

Coup de pouce 4 b. Ne pas oublier

d’actualiser la variable permettant de savoir si la chasse est fi nie, sinon la boucle du 4 n’aura pas de fi n.

NotationOn constate généralement trois (ou quatre) façons de noter l’aff ectation d’une valeur (par exemple 3) à une variable (par exemple v) :v : = 3 ou v 3! ou v 3= (dans les calculatrices, on voit souvent : v3 " ).