• Aucun résultat trouvé

PY-MATH N° 22

N/A
N/A
Protected

Academic year: 2022

Partager "PY-MATH N° 22"

Copied!
74
0
0

Texte intégral

(1)

http://www.enfa.fr/r2math

Juin 2013

N° 22

le bulletin du groupe de réflexion

sur l'enseignement des mathématiques

PY-MATH

en Quatrième et Troisième de

l’Enseignement Agricole,

Secondes générale et professionnelle,

Bac Pro, Bac Techno, filière S et BTSA

(2)
(3)

Sommaire

4e et 3e de l'EA Seconde Pro Bac Pro Seconde GT Bac Techno Filière S BTSA Enseignants

A maths lesson in English ... page 3

Comment amener les élèves de seconde

à créer des algorithmes ? ... page 11 Sudomaths ... page 33

Les 10 minutes des mathématiciens ... page 37

Probabilités et statistique avec GeoGebra ... page 39 Lois de probabilités avec GeoGebra... page 40 Les tests avec une calculatrice ou GeoGebra ... page 49 Test de Dixon - Recherche de valeurs

aberrantes ... page 57 Correction sujet BTSA remplacement 2012 -

(toutes options) ... page 65

Membres du groupe ayant participé à ce bulletin PY-MATH n°22 C

HAPUT

Brigitte

ENFA

de

TOULOUSE AUZEVILLE

F

ERRER

Christelle

LEGTA

de

NÎMES RODILHAN

G

ARCIA

Jean-Philippe

LEGTA

d'A

UXERRE

G

ARDIENNET

Alain

LEGTA

de

PLOMBIÈRES

-

LES

-

DIJON

J

UGAN

Delphine

LEGTA

de

SAINT

-

HERBLAIN

L

E

B

ASTARD

Yannick

LEGTA

de

MONTPELLIER

L

ECLERCQ

Fabrice

LEGTA

du

PAS

-

DE

-

CALAIS

M

ASOUNAVE

Alice

LEGTA

de

PAU MONTARDON

Q

UET

Guillaume

LEGTA

d'

AUBENAS

R

OLLAND

Jeanne

LEGTA

de

MORLAIX

R

OUGER

Valérie

LEGTA

de

BOURG

-

EN

-

BRESSE

S

ICRE

Nathalie

LPA

de

SAINT

-

AFFRIQUE

S

IROT

Éric

LEGTA

de

BRESSUIRE

T

HOMAS

Emmanuelle

LEGTA

d'

AVIGNON

T

RONCHE

Geneviève

LEGTA

de

BRIVE OBJAT

W

AGNER

Sylvain

LEGTA

de

MIRECOURT

(4)
(5)

A MATHS LESSON IN ENGLISH

Les ingrédients :

-

Un groupe d'élèves de Seconde

GT

qui donne envie.

-

Deux collègues l'une en Mathématiques et l'autre en Anglais qui travaillent ensemble depuis longtemps et ont œuvré de concert dans un projet

COMENIUS

il y a quelques années.

-

Un établissement qui sollicite une section européenne en filière

STAV

à la rentrée prochaine.

Et l'aventure est lancée… Let's go!

Voici le compte-rendu de l'expérience menée, l'espace d'une séance d'une heure de Mathématiques, avec l'avant et l'après séance.

Le contexte en Mathématiques

La première séquence de Seconde GT Du calcul numérique au calcul algébrique s'achève par des problèmes conduisant à la résolution d'équations des premier et second degrés (voir Annexe 1 : fiche 1, exercices 1, 2 et 3, sachant que d'autres exercices du manuel ont été traités). Il a été beaucoup question au cours de cette leçon du passage entre deux langues : la langue mathématique et la langue française.

Pourquoi alors ne pas envisager une troisième langue ? Well, speak English!

Je fais donc l’annonce en classe d'une prochaine séance de Maths en Anglais. Quelques élèves expriment alors des réticences « Déjà que c'est pas facile, alors en Anglais… » mais la grande majorité des élèves, positifs et curieux, se disent prêts à relever le défi. Défi auquel je m'associe et cela a l'air de les rassurer !

La préparation en Anglais

Après concertation avec ma collègue d'Anglais, il a été convenu de faire travailler les élèves sur plusieurs registres de vocabulaire en Mathématiques :

• vocabulaire lié aux opérations et au thème des équations,

• vocabulaire lié aux figures de géométrie plane,

• vocabulaire lié aux notions de largeur, longueur, haut, bas,

• vocabulaire spécifique autour de la maison et du jardin pour un des exercices.

Comme on peut le voir en Annexe 2, ma collègue d'Anglais a choisi différents supports pour faire réviser ou acquérir ce vocabulaire. À noter le logiciel Eclipse Crossword qui permet de créer facilement des mots croisés ! ou des nombres croisés !!!!!

Bien sûr, cet apprentissage s'est déroulé en cours d'Anglais suffisamment tôt pour être assimilé, en sachant que les élèves devaient venir avec ce lexique à la séance Maths en Anglais.

Le déroulement de la séance

La séance a été réalisée en présence des deux enseignantes. Le groupe des 14 élèves était installé en U, avec leur enseignante d'Anglais assise parmi eux.

Le ton a été donné dès le début, par la collègue angliciste : « Aujourd'hui, nous allons avoir

une séance de Maths en Anglais. La règle du jeu est pour tous, enseignantes et élèves, de

(6)

parler exclusivement en Anglais. Rassurez-vous ! Vous êtes plus compétents que moi en Maths. Moi je suis là pour apporter mon aide, si besoin, en Anglais à vous les élèves et aussi à votre professeur de Maths. J'interviendrai à la fin de chaque exercice pour faire le point avec vous. ».

Nous avions convenu que ma collègue d'Anglais n'interviendrait, au cours de l'exercice, que si la compréhension lui semblait handicapée par la langue et pas pour des raisons d'erreurs d'expression.

Maintenant, à moi d'intervenir ! Je rappelle, in English of course, que je ne suis pas professeur d'Anglais mais que l'on va tous essayer ensemble de relever le défi et je les rassure en leur disant que nous avons travaillé sur ce thème la semaine dernière en Français.

Je fais rappeler à Gaétan, en les écrivant au tableau, les quatre étapes à suivre : 1°) - choosing the unknown,

2°) - translating the text in an equation, 3°) - solving the equation,

4°) - giving an answer for the problem.

La trame est ainsi donnée pour les différents exercices.

Nous débutons la fiche 2 (voir Annexe 3).

Exercise 1

Mathilde lit l'énoncé, son accent en Anglais me rassure !!! Je m'assure que tous les mots soient compris en particulier square, en prenant quelques exemples : 2², 3², 5².

La traduction de l'énoncé sous la forme d'une équation se fait sans souci. Je fais dire la nature de l'équation et la méthode de résolution. Les élèves se souviennent bien de ce qui a été étudié en Maths et Pierre-Yves le résume avec assurance.

Louis vient faire la résolution au tableau et je l'aide à factoriser.

Complete the equality : x − 2 x² = 0 or x × ...x × ... = 0.

Louis a un peu de mal à dire tous ces symboles en Anglais tout en résolvant l'équation, je l'encourage et on arrive ainsi jusqu'à la dernière étape, où la réponse est à rédiger.

Un point est fait par la collègue d'Anglais : je suis reprise, à juste titre, sur la prononciation du fameux x. Les élèves rassurés d'être arrivés sains et saufs jusque là disent avoir compris l'exercice, je le pense aussi, la séance peut continuer !

Exercise 2

Margaux lit l'énoncé, très concentrée.

Je demande à ce que soient précisés les mots : increased et reduced. Gaëtan (the first), à l'aise à l'oral en Anglais, parle d'augmentation et de diminution, as same as in French.

Je leur conseille de faire un dessin. Je passe les voir et m'assure de leur compréhension des termes précédents. Jessica, malgré ses difficultés en Anglais, veut bien venir faire le croquis au tableau.

Passons à la traduction de l'énoncé sous la forme d'une équation !

David nous rappelle les formules pour l'aire et le périmètre d'un rectangle. On y est presque...

Attention à la présence indispensable des brackets or parentheses ! David est là pour corriger...

Have you understood, Sarah? Sarah prétend que oui, je n'en suis pas sûre mais je laisse faire...

Il faut dire que Sarah a son caractère...

(7)

Et maintenant la résolution !

Gaëtan (the second), qui se débrouille bien en Maths et moins bien en Anglais, ne comprend pas bien que je lui demande s'il a compris, me répond Yes, sur les conseils de ses camarades...

Well, Gaetan, go to the blackboard and explain how to solve this equation!

Gaëtan, un peu timide, se lance et même se précipite pour résoudre... et retourner vite à sa place. Dommage ! Il va trop vite dans sa résolution. Margaux demande, in English, des explications et avec mon aide, nous devons détailler... Les choses se compliquent, pour lui et pour moi mais nous y parvenons ! Ce n'est pas si aisé de corriger certaines mistakes...

Un point est fait par la collègue d'Anglais : je suis reprise, une nouvelle fois à juste titre.

J'aurais dû dire : To help you... et non For help you... Prise dans mes bonnes intentions, j'en oublie mon B-A-BA in English… Les élèves disent avoir compris, je suis déjà moins sûre pour certains...

Mais c'est déjà la fin de la séance et chacun s'en étonne, élèves comme professeurs ! Le défi a été relevé, chacun s'en félicite même si les élèves, et nous deux aussi, sommes déçus de ne pas avoir traité l'exercise 3, où le vocabulaire préparé en Anglais avait été reconnu par les élèves dès la distribution de la fiche !

L'après-séance

Un devoir à la maison Maths-Anglais a été donné aux élèves. Il s'agit de l'exercice 4 de la fiche 1 fournie en Annexe, où il est demandé d'inventer, in English, un énoncé correspondant à des équations. Est-ce que c'était trop ambitieux ? Peut-être ! Ce n'est déjà pas si facile en Français. Autant les élèves se sont bien investis en classe, autant leur travail a été décevant pour ces recherches ! Il serait même difficile de montrer quelques productions ici...

Nous envisageons de renouveler l'expérience en classe, à raison d'une fois par trimestre, peut- être sous d'autres formes, avec d'autres supports comme les cours-vidéos de la BBC (adresse en fin d'article). À noter aussi que le manuel de Maths utilisé avec ces élèves est le manuel de la collection Didier qui propose en fin de chaque leçon an English corner et qu'ainsi peuvent être proposées quelques recherches mathématiques en Anglais !

L'expérience de cours en Anglais est menée également avec ce groupe d'élèves, à raison d'une fois par trimestre, en Biologie et en Histoire-Géographie. L'idée de se préparer à l'ouverture éventuelle d'une section européenne en filière STAV est, bien sûr, présente dans nos têtes.

Le bilan

Les élèves ont été pour la plupart soucieux de relever le défi. Ils ont été extrêmement concentrés et, tout en ayant pleinement conscience de cet effort-là, ont été satisfaits de cette première expérience. Quelques paroles du style « Qu'est-ce qu'elle dit ? », « Je ne comprends pas », « Mais si, regarde le vocabulaire donné en Anglais ! » ont bien été murmurées, mais les élèves ont tâché de respecter la règle du jeu : Parler exclusivement Anglais et moi aussi ! Beaucoup d'énergie dépensée par les élèves et aussi par leur professeur de Maths pour un résultat assez réussi, ma foi !

Il va de soi que pour garantir le succès d'une telle séance, il faut que les notions

mathématiques utilisées soient assimilées. Ici, la séance arrivait en fin de leçon et les

techniques de résolution des équations étaient dans l'ensemble maîtrisées. Quant à l'aspect

traduction d'un énoncé, qui n'est pas forcément aisé pour les élèves dans leur langue

maternelle, on pouvait craindre des difficultés. C'était de fait un vrai travail de langue pour

cette partie et donc doublement intéressant. Néanmoins, on peut se demander si, pour une

première fois, la difficulté n'était pas trop grande.

(8)

Ce fût l'occasion de croiser deux disciplines, de faire vivre une langue vivante dans un autre contexte, de surcroît un contexte scientifique et l'on sait que l'Anglais est la langue communément employée de nos jours dans ce domaine.

Quelques impressions de ma collègue d'Anglais

« J'ai trouvé cette expérience (qui n'était pas une première) très intéressante. Même si les élèves semblaient un peu intimidés et n'osaient pas toujours s'exprimer (peut-être l'auraient-ils fait plus volontiers si je n'avais pas été là), ils ont bien joué le jeu. Ils étaient très, très attentifs à ce que leur disait leur professeur de Maths et, chose très amusante, certains l'encourageaient

"very good!" (très surpris que le prof de math parle aussi anglais).

Les plus faibles en anglais mais plus forts en maths sont valorisés dans ce type de séance car lorsqu'un énoncé est écrit au tableau c'est tout de suite clair pour eux (même si ils n'avaient pas tout à fait compris les consignes en anglais qui avaient précédé). Alors que les faibles en maths ont été valorisés en étant capables de poser des questions ou de demander des explications en anglais !

Même si certains ont "soufflé" de soulagement à la fin de la séance qui leur avait demandé beaucoup de concentration (pour le prof d'anglais aussi..., les maths étant un très lointain souvenir !!), la plupart ont pris du plaisir à faire des maths en anglais et ont exprimé le souhait de recommencer. »

Ressources en ligne

• Le site de la BBC : www.bbc.co.uk/schools/

• Le site du CNED pour tester son niveau en Anglais :

http://www.englishbyyourself.fr/article_test-de-niveau_1151.html

• Le site Euromath d'échange et de mutualisation pour les professeurs de Mathématiques enseignant en section européenne: http://euromath.free.fr

• Le site d'accompagnement pour les sections européennes et de langues orientales Emilangues : http://www.emilangues.education.fr

• Un dictionnaire : http://www.amathsdictionaryforkids.com/dictionary.html

• Des vidéos :

http://www.teachers.tv/mathematics

• Des exercices en anglais : http://www.ixl.com/math

(9)

Annexe 1

FICHE 1 : Problèmes à mettre en équations et à résoudre

En suivant la démarche indiquée ci-dessous, traiter les exercices 1, 2 et 3 : 1°) - Choisir l'inconnue

2°) - Traduire l'énoncé sous la forme d'une équation 3°) - Résoudre l'équation

4°) - Conclure pour le problème posé Exercice 1

Déterminer le(s) nombre(s) dont le double diminué de 1 est égal au tiers augmenté de 1.

Exercice 2

Déterminer le(s) nombre(s) dont le triple du carré est égal au double.

Exercice 3

Si on diminue la longueur d'un bassin carré de 2 m, son aire diminue de 52 m². Déterminer la longueur initiale du côté de ce bassin.

Exercice 4

Voici deux problèmes à ne pas résoudre : Problème 1

Un âne porte 15 sacs de sel et 2 kg d'olives. Un mulet porte 2 sacs de sel et 40 kg d'olives. L'âne souffle fort ! « De quoi te plains-tu ? Nous portons la même charge » dit le mulet. Quelle est la masse x, en kg, d'un sac de sel ?

Problème 2

Pour s'entraîner au marathon, Paul part faire un footing à la vitesse de 15 km/h.

Son frère, Luc, veut le rejoindre en mobylette. Il part 2 h plus tard et roule à la vitesse de 40 km/h. Quel temps x, en h, mettra-t-il pour le rattraper ?

… et quatre équations !

Équation A : 40x − 15 = 2 Équation B : 15x + 2 = 2x + 40 Équation C : 15 (x + 2) = 40x Équation D : x + 40 = 2 (x + 15)

1°) - Parmi ces 4 équations, retrouver celle qui correspond au problème 1, celle qui correspond au problème 2.

2°) - Inventer, en Anglais, un énoncé correspondant à chacune des 2 équations restantes.

(10)

Annexe 2 Mathematics

A/ Match the French words with their equivalents in English:

équation •

problème •

inconnue •

solution •

résoudre •

vérifier •

conclure •

factoriser •

développer •

déduire (en conséquence) •

augmenter •

diminuer •

ajouter •

soustraire •

multiplier •

diviser •

• to increase

• to substract

• to check

• equation

• to decrease

• to divide (by)

• problem

• to conclude

• to add

• unknown

• solution

• to deduce

• to expand

• to solve

• to multiply (by)

• to factorise B/ Read the following operations:

4 and 3 are 7 or 4 plus 3 is 7 4 from 7 is 3 or 7 minus 4 is 3 4 threes are 12 or 4 times 3 is 12 4 into 12 is 3 or 12 divided by 4 is 3

C/ Find the noun corresponding to the following adjectives:

• long → ...

• wide → ...

• high → ...

• deep → ...

D/ Translate in English:

• Quelle est la largeur de la pièce ?

• La route a une largeur de 5 m.

• Quelle est la longueur du pont ?

• Quelle est la hauteur du mur ?

(11)

E/ Describe the following drawing:

Words to use: tree, ball, door, window, roof, ladder, wall, chimney, on the right, on the left, in front of, against, on...

Annexe 3 FICHE 2 : Solve problems with equations Exercise 1

Find the number(s) which equals the double of his square.

Exercise 2

A square field is changed on two consecutive sides: one side is increased by 20 m, the another side is reduced by 10 m. We have then a rectangle field with the same area.

Find the side of the square field in m.

Exercise 3

Describe the situation (In the first picture..., In the second picture...) Find the length of the ladder.

Exercise 4

A school rents a bus for an outing. Each student must pay 11 €. But 4 students can't come. So each student must pay more: the amount is then 13 € for everyone.

Find how many students are registered at the beginning.

70 cm 10 cm

(12)
(13)

COMMENT AMENER LES ÉLÈVES DE SECONDE À CRÉER DES ALGORITHMES ?

Depuis quelques années, l’algorithmique est au programme des classes de la seconde à la Terminale S. Forts (un peu !) de ces années d’expérience, nous avons mis en commun nos impressions, puis nos idées. Dans cet article, nous vous proposons deux manières différentes de travailler mais avec une progression commune : exécution d’algorithmes, modification d’algorithmes, puis création d’algorithmes.

En effet, dans un premier temps, l’exécution d’algorithmes donnés peut être un moyen d’entrer dans le vif du sujet. Puis, quand les élèves commencent à exécuter facilement à la main des algorithmes, on peut les inciter à les modifier. Cette étape nous paraît une bonne entrée en matière pour la création d’algorithmes.

Il nous paraît important que les élèves exécutent les algorithmes "à la main", mais pour leur donner envie d’aller plus loin et pour donner vie à ces programmes, la programmation des algorithmes sur la calculatrice ou un logiciel nous apparaît essentielle.

Les algorithmes donnés sont écrits en "pseudo-code". Il s’agit d’une forme standardisée qui se rapproche de la syntaxe d’un langage de programmation. Toutefois, le choix des mots-clés est arbitraire, il n’existe pas de règle universelle pour écrire en "pseudo-code".

Des indications de corrections sont données en bleu dans le texte.

Première proposition

Dans cette partie, différents algorithmes sans lien entre eux sont proposés avec, à chaque fois, les trois mêmes questions :

-

Quelles sont les données de l’algorithme ?

-

Quels sont les résultats de l’algorithme ?

-

Quelles sont les structures informatiques à utiliser ?

Nous donnons une traduction en langages Casio et Texas Instrument de certains des algorithmes.

En outre, pour que les élèves comprennent le fonctionnement d’un algorithme, nous leur demandons d’en réaliser une trace de l’exécution pas à pas. Une trace est une marque qui reste d’un événement passé. En algorithmique, il s’agit d’exécuter les instructions de l’algorithme pas à pas comme le ferait un ordinateur.

La présentation dans un tableau, qui peut cependant s’avérer parfois lourde, permet de voir quelle instruction (événement) laisse quelle trace.

I. - Affectation de variables

Dans un programme, une variable correspond à un emplacement de la mémoire de la calculatrice ou de l’ordinateur. Elle est repérée par un nom et contient une valeur.

L’instruction d’affectation permet d’attribuer une valeur à une variable.

On note, par exemple : « A prend la valeur 2 » ou « Affecter à A la valeur 2 » ou « 2 Æ A »

ou « A ← 2 ».

(14)

Exercice 1

Voici un algorithme, écrit en français, que les élèves ont appliqué plus d’une fois, ce qui peut être une entrée en matière et qui relativise ce mot si difficile à écrire : al-go-ri-th-me !

Appliquer cet algorithme à un nombre de votre choix.

Langage naturel Langage algorithmique

Variables : x, a, b, c, R

Entrées

Choisir un nombre Lire x (ou Saisir x)

Traitement

Le multiplier par 2 a prend la valeur x × 2 Ajouter 1 312 au résultat obtenu b prend la valeur a + 1312 Diviser le résultat par 2 c prend la valeur b ÷ 2 Soustraire le nombre de départ au résultat obtenu R prend la valeur cx

Sortie

Afficher R

Exercice 2

1) Appliquer l’algorithme suivant aux valeurs a = 2 et b = 5.

Algorithme 1 Langage T. I. Langage Casio

Variables : a, b, c Entrées

1 Lire a Prompt A “A =” : ? → A

2 Lire b Prompt B “B =” : ? → B

Traitement

3 c prend la valeur a A ´ C A ´ C

4 a prend la valeur b B ´ A B ´ A

5 b prend la valeur c C ´ B C ´ B

Sortie

6 Afficher a Disp “A ”, A “A ”: A ◢

7 Afficher b Disp “B ”, B “B ”: B ◢

2) Appliquer l’algorithme précédent aux valeurs a = 2 et b = 5 en réalisant une trace de son exécution à l'aide du tableau suivant :

Algorithme 1 Variables

Ligne Instruction a b c

1 Lire a 2 Lire b

3 c prend la valeur a

4 a prend la valeur b

5 b prend la valeur c

6 et 7 Résultat

(15)

On obtient finalement :

Algorithme 1 Variables

Ligne Instruction a b c

1 Lire a 2 × ×

2 Lire b 2 5 ×

3 c prend la valeur a 2 5 2

4 a prend la valeur b 5 5 2

5 b prend la valeur c 5 2 5

6 et 7 Résultat a = 5 et b = 2 3) Expliquer ce que fait cet algorithme.

Exercice 3

1) Appliquer l’algorithme suivant aux valeurs a = 2 et b = 5 en en réalisant une trace.

Algorithme 2 Langage T. I. Langage Casio

Variables : a, b Entrées

1 Lire a Prompt A “A = ” : ? → A

2 Lire b Prompt B “B = ” : ? → B

Traitement

3 a prend la valeur a + b A + B ´ A A + B ´ A 4 b prend la valeur ab A − B ´ B A − B ´ B 5 a prend la valeur ab A − B ´ A A − B ´ A

Sortie

6 Afficher a Disp “A ”, A “A ”: A◢

7 Afficher b Disp “B ”, B “B ”: B ◢

2) Expliquer ce que fait cet algorithme.

Exercice 4

Créer un algorithme qui calcule la distance AB où A et B sont deux points donnés par leur coordonnées dans un repère orthonormé.

On n’oubliera pas de répondre aux trois questions essentielles : Quelles sont les données de l’algorithme ?

Quels sont les résultats attendus de l’algorithme ?

Quelles sont les structures informatiques à utiliser ?

(16)

II. Instruction conditionnelle : « Si… Alors… Sinon... »

Dans un algorithme, il se peut que, selon qu’une condition est vraie ou fausse, on doive exécuter un bloc d’instructions ou un autre. Pour cela, on utilise les instructions conditionnelles « Si… Alors... Sinon... » et « Si… Alors... ».

Si condition Alors Instructions 1 Sinon

Instructions 2 FinSi

Si condition Alors Instructions FinSi

Exercice 1

On considère la droite d’équation : y = − 2x + 3.

1) Appliquer l’algorithme suivant aux points de coordonnées (0,5 ; 2) et (0 ; 4) en en réalisant une trace dans le tableau donné ci-dessous.

Puis expliquer ce que fait cet algorithme.

Algorithme 3 Langage T. I. Langage Casio

Variables : x, y, z Entrées

1 Lire x Prompt X “X = ” :? → X

2 Lire y Prompt Y “Y = ” :? → Y

Traitement et sortie

3 z prend la valeur − 2 x + 3 − 2X + 3 ´ Z − 2X + 3 → Z

4 Si y = z Alors If Y = Z If Y = Z

Then

5 Afficher « Le point est sur la droite »

Disp “Le point est sur la droite”

Then “Le point est sur la droite” ◢

6 Sinon Else

7 Afficher « Le point n'est pas sur la droite »

Disp “Le point n’est pas sur la droite”

Else “Le point n’est pas sur la droite” ◢

8 Fin Si End IfEnd

Remarque : Sur T. I., il faut passer à la ligne après les instructions Then et Else.

Algorithme 3 Variables

Lignes Instructions x y z Valeur

condition

Ligne suivante

1 Lire x 0,5 × ×

2 Lire y 0,5 2 ×

3 z prend la valeur − 2 x + 3 0,5 2 2

4 Si y = z Alors 0,5 2 2 VRAI 5

5 Résultat "Le point est sur la droite"

2) Modifier cet algorithme pour qu'il affiche si le point est au dessus ou en dessous de la

droite.

(17)

Exercice 2

Créer un algorithme qui affiche si un point connu par ses coordonnées dans un repère orthonormé, est sur un cercle de centre A (connu par ses coordonnées) et de rayon R.

On peut être amené à utiliser une instruction « Si… Alors... » (sans Sinon).

Exercice 3

1) Appliquer l’algorithme suivant pour p = 350 en en réalisant une trace de l'exécution dans le tableau ci-dessous.

Algorithme 4 Langage T. I. Langage Casio

Variables : p, r Entrée

1 Lire p Prompt P “P = ” : ? → P

Initialisation

2 r prend la valeur 0 0 ´ R 0 → R

Traitement

3 Si p > 200 Alors If P > 200 If P > 200

Then Then 0,1 × P → R

4 r prend la valeur 0,1 × p 0,1 × P ´ R

5 p prend la valeur pr P − R ´P P − R →P

6 Fin Si End IfEnd

Sortie

7 Afficher r Disp “R ”, R “R ”: R◢

8 Afficher p Disp “P ”, P “P ”: P◢

Algorithme 4 Variables

Lignes Instructions p r Valeur

condition

Ligne suivante

1 Lire p 350 ×

2 r prend la valeur 0 350 0

3 Si p > 200 Alors 350 0 VRAI 4

4 r prend la valeur 0,1 × p 350 35 5

5 p prend la valeur pr 315 35

Résultat r = 35 et p = 315 2) Qu’afficherait l’algorithme pour p = 50 ?

Expliquer ce que fait l'algorithme 4.

(18)

III. Boucle « Tant que... »

Une boucle « Tant que... » permet de répéter plusieurs fois le même bloc d’instructions tant qu’une certaine condition reste vraie.

Tant que condition Instructions Fin Tant que Exercice 1

Algorithme 5 Langage T. I. Langage Casio

Variable : f Initialisation

1 f prend la valeur 0 0 ´ F 0 ´ F

Traitement

2 Tant que f est différent de 3 While F ≠ 3 While F ≠ 3 3 f prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ F Int(Ran# × 6 + 1) ´ F

4 Afficher f Disp F F◢

Pause

5 Fin Tant que End WhileEnd

Sortie

6 Afficher "Gagné" Disp “Gagné” “Gagné”◢

1) Programmer, puis faire tourner cet algorithme à l’aide de la calculatrice.

Expliquer ce que fait l'algorithme.

2) Réaliser une trace de l'exécution de l'algorithme 5 dans le tableau suivant.

Algorithme 5 Variable Itération

Lignes Instructions f Valeur

condition

Rang Itération

1 f prend la valeur 0 0

2 f est différent de 3 0 VRAI

3 f prend une valeur aléatoire entière entre 1 et 6 1 VRAI 1

4 Afficher f 1

2, 3 et 4 f prend une valeur aléatoire entière entre 1 et 6 4 VRAI 2 2, 3 et 4 f prend une valeur aléatoire entière entre 1 et 6 5 VRAI 3 2, 3 et 4 f prend une valeur aléatoire entière entre 1 et 6 2 VRAI 4 2, 3 et 4 f prend une valeur aléatoire entière entre 1 et 6 5 VRAI 5 2, 3 et 4 f prend une valeur aléatoire entière entre 1 et 6 3 FAUX 6

5 Fin Tant que

6 Afficher « Gagné »

(19)

3) Modifier l’algorithme pour qu’il affiche le nombre de coups qu’il a fallu pour gagner.

L’introduction d’un compteur s’avère utile.

Algorithme 6 Langage T. I. Langage Casio

Variables : f, k Initialisation

1 f prend la valeur 0 0 ´ F 0 ´ F

2 k prend la valeur 0 0 ´ K 0 ´ K

Traitement

3 Tant que f est différent de 3 While F 3 ≠ While F ≠ 3 4 f prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ F Int(Ran# × 6+1) ´ F

5 afficher f Disp F F ◢

6 k prend la valeur k + 1 K + 1 ´ K K + 1 ´ K

Pause

7 Fin Tant que End WhileEnd

Sortie

8 Afficher "Gagné en ", k, " coups" Disp “Gagné en ” “Gagné en ”◢

Disp K K◢

Disp “ Coups” “ Coups” ◢

4) Modifier l’algorithme pour simuler le lancer de 2 dés D et E jusqu’à l’obtention d’un double. On pourra introduire un compteur qui mettra en évidence le nombre d’essais nécessaires pour gagner.

Algorithme 7 Langage T. I. Langage Casio

Variables : D, E Initialisation :

1 D prend la valeur 0 0 → D 0 ´ D

2 E prend la valeur 1 1 → E 1 ´ E

Traitement

3 Tant que D est différent de E While D ≠E While D ≠ E 4 D prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ D Int(Ran# × 6+1) ´ D 5 E prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ E Int(Ran# × × 6+1) ´ E

6 Afficher D Disp D D◢

7 Afficher E Disp E E◢

Pause

8 Fin Tant que End WhileEnd

Sortie

9 Afficher "Gagné" Disp “Gagné” “Gagné” ◢ Remarques :

1) Les variables D et E sont initialisées avec des valeurs différentes avant de commencer la boucle sinon l’algorithme ne peut pas tourner (la condition du Tant que... est fausse).

2) Sur T. I., l’instruction Pause est utile lorsque plusieurs valeurs doivent être affichées ;

elle permet de les faire afficher une à une après appui sur la touche Entrée .

(20)

Exercice 2

Créer un algorithme qui simule et affiche le lancer de deux dés jusqu’à l’obtention d’un double 5.

L’introduction de l’instruction logique OU est nécessaire ici.

Algorithme 8 Langage T. I. Langage Casio

Variables : D, E Initialisation

1 0 → D 0 → D 0 ´ D

2 0 → E 0 → E 0 ´ E

Traitement

3 Tant que D ou E est différent de 5 While D ≠ 5 or E ≠ 5 While D ≠ 5 or E ≠ 5 4 D prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ D Int(Ran# × 6+1) ´ D 5 E prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ E Int(Ran# × 6+1) ´ E

6 Afficher D Disp “D ”, D “D ”: D◢

7 Afficher E Disp “E ”, E “E ”: E ◢

Pause

8 Fin Tant que End WhileEnd

Sortie

9 Afficher « Gagné » Disp “Gagné” “Gagné”◢

IV. Boucle « Pour... »

On pourrait se dispenser de présenter cette instruction aux élèves. En effet, une boucle

« Pour... » peut-être remplacée par une boucle « Tant que... » avec compteur. L’inverse n’est pas toujours possible.

Une boucle « Pour... » permet de répéter un certain nombre de fois une suite d’instructions.

Pour variable allant de valeur départ à valeur fin avec un pas donné Instructions

Fin Pour Remarques :

1) Il est inutile de préciser la valeur du pas lorsqu’il est égal à 1.

2) ALGOBOX ne permet pas de réaliser des boucles « Pour... » avec un pas différent

de 1.

(21)

Exercice 1

Algorithme 9 Langage T. I. Langage Casio

Variables : i, n, p Entrée

1 Lire n Prompt N “N = ” :? → N

Initialisation

2 p prend la valeur 1 1 ´ P 1 → P

Traitement

3 Pour i allant de 1 à n For(I, 1, N) For 1 → I To N

4 p prend la valeur p × i P × I´ P P × I → P

5 Fin Pour End Next

Sortie

6 Afficher p Disp “P”, P "P " : P ◢

1) Appliquer l’algorithme précédent à n = 4 en réalisant une trace de son exécution dans le tableau ci-dessous. Puis expliquer ce que fait cet algorithme.

Algorithme 9 Variables

Lignes Instructions n i p

1 Lire n 4 × ×

2 p prend la valeur 1 4 × 1

3 Pour i allant de 1 à n 4 × 1

4 p prend la valeur p × i 4 × 1

3 et 4 Étape1 4 1 1

3 et 4 Étape 2 4 2 2

3 et 4 Étape 3 4 3 6

3 et 4 Étape 4 4 4 24

Résultat p = 24 2) Programmer et faire tourner le programme pour n = 50.

3) Modifier cet algorithme pour qu’il affiche la somme des inverses des n premiers entiers naturels non nuls.

Remarque : On pouvait rédiger l’algorithme 9 avec une boucle « Tant que... » et un compteur ainsi :

Entrée Lire n Initialisation

p prend la valeur 1 i prend la valeur 1 Traitement

Tant que i ≤ n

p prend la valeur p × i i prend la valeur i + 1 Fin Tant que

Sortie

Afficher p

(22)

Exercice 2 (à réserver aux meilleurs élèves)

On veut approcher l’aire sous la courbe de la fonction carrée sur l’intervalle [0 ; 2] par la somme des aires de n rectangles situés au dessus de la courbe (voir dessins ci-dessous).

La largeur des rectangles est 2

n

et leur hauteur est i², i variant de 2

n

à 2 avec un pas de 2

n

.

n = 4 n = 10

Algorithme 10 Langage T. I. Langage Casio

Variables : i, n, s, pas Entrée

1 Lire n Prompt N “N = ” : ? → N

Initialisation

2 pas prend la valeur 2

n

2 / N ´ P 2 / N →P

3 s prend la valeur 0 0 ´ S 0 → S

Traitement

4 Pour i allant de 0 à 2 de pas en pas For(I, 0, 2, P) For 0 → I to 2 Step P 5 s prend la valeur s + pas × i² S + P × I

2

´ S S + P × I

2

´ S

6 Fin Pour End Next

Sortie

7 Afficher s Disp “S”, S “S ” : S ◢

Avec le logiciel LARP

(23)

V. Autres exercices Exercice 1

1) Créer un algorithme qui simule n lancers d’un dé à 6 faces.

Algorithme 11 Langage T. I. Langage Casio

Variables : i, n, f Entrée

1 Lire n Prompt N “N = ” : ? ´ N

Traitement et sortie

2 Pour i allant de 1 à n For(I, 1, N) For 1 ´ I To N 3 f prend une valeur aléatoire entière

entre 1 et 6

entAléat(1,6) ´ F Int(Ran# × 6+1) ´ F

4 afficher f Disp “F”, F “F” : F ◢

Pause

5 Fin Pour End Next

(24)

2) Modifier cet algorithme afin qu’il compte le nombre de fois où f prend la valeur 3 lors de n lancers (nécessité d’introduire un compteur).

Algorithme 11 bis Langage T. I. Langage Casio

Variables : i, n, f, k Entrées

1 Lire n Prompt N “N” : ? ´ N

Initialisation

2 k prend la valeur 0 0 ´ K 0 ´ K

Traitement

3 Pour i allant de 1 à n For(I, 1, N) For1 ´ I To N 4 f prend une valeur aléatoire entière

entre 1 et 6 entAléat(1,6) ´ F Int(Ran# × 6+1) ´ F

5 Pause

6 Si f = 3 alors If F = 3 If F = 3

7 Then

k prend la valeur k + 1 K + 1 ´ K Then K + 1 ´ K

8 Fin Si End IfEnd

9 Fin Pour End Next

Sortie

10 Afficher k Disp “K ”, K “K ”: K ◢

Exercice 2

1) Créer un algorithme qui calcule la somme des inverses des n premiers entiers naturels non nuls.

Algorithme 12 Langage T. I. Langage Casio

Variables : n, s, i Entrées

1 Lire n Prompt N “N = ”:? ´ N

Initialisation

2 s prend la valeur 0 0 → S 0 ´ S

Traitement

3 Pour i allant de 1 à n For(I, 1, N) For1 ´ I To N 4 s prend la valeur s +

1

i

S+1 / I → S S + 1/I ´ S

5 Fin Pour End Next

Sortie

6 Afficher s Disp “Somme ”, S “Somme ”: S ◢

2) Compléter cet algorithme pour calculer aussi la somme des inverses des carrés des n premiers entiers naturels non nuls.

3) Faire tourner ce nouvel algorithme lorsque n prend les valeurs 10, 20, 50 et 100, et compléter le tableau ci-contre.

4) Commenter les résultats obtenus.

n = 10 20 50 100 1 + 1 2 + 1 3 + ... + 1

n

1 + 1

2

2

+ 1

3

2

+ ... + 1

n2

Ces deux sommes n ’ ont pas le même comportement. La première semble prendre des valeurs

de plus en plus grandes quand n augmente. Tandis que la deuxième semble avoir une limite

finie voisine de 1,6.

(25)

5) Modifier l’algorithme 12 pour déterminer à partir de quel entier n la somme des inverses des n premiers entiers naturels non nuls est supérieure ou égale à L (à choisir).

Algorithme 13 Langage T. I. Langage Casio

Variables : L, s, i Entrées

1 Lire L Prompt L ? ´ L

Intialisation

2 s prend la valeur 0 0 → S 0 ´ S

3 i prend la valeur 0 0 → I 0 ´ I

Traitement

4 Tant que s < L While S < L While S < L 5 i prend la valeur i + 1 I + 1 → I I + 1 ´ I 6 s prend la valeur s +

1

i

S + 1 / I →S S+1 / I ´ S

Pause

7 Fin Tant que End WhileEnd

Sortie

8 Afficher “n = ”, i Disp “N ”, I “N ”: I◢

6) Modifier l’algorithme 13 pour déterminer à partir de quel entier n la somme des inverses des carrés des n premiers entiers naturels non nuls est supérieure à L (à choisir).

Puis compléter le tableau suivant :

L = 1,5 2 2,5 3 4

1 + 1 2 + 1 3 + ... + 1

n

> L pour n >

7) Certains savent sans aucun doute que la deuxième somme, quant à elle, tend vers

π

2

6

quand n prend des valeurs de plus en plus grandes.

Modifier l’algorithme pour déterminer à partir de quel entier n, on a :

⎪⎪ ⎪

⎪⎪ ⎪ 1 + 1

2

2

+ 1

3

2

+ ... + 1

n2

π

6

2

< ε ( ε à choisir)

ε = 0,1 0,01 0,001

⎪⎪ ⎪

⎪⎪ ⎪ 1 + 1

2

2

+ 1

3

2

+ ... + 1

n2

π

6

2

< ε pour n ≥

(26)

Deuxième proposition

Le document qui suit a été distribué en classe de seconde dès le début de l'année. Nous y avons seulement ajouté des éléments de corrigé en bleu et des commentaires en italiques suite à sa mise en œuvre en classe.

Le but était triple :

pédagogiquement d'abord, marquer la rupture entre le collège et le lycée en passant deux semaines sur un chapitre souvent considéré à tort, comme n'étant pas réellement des mathématiques ;

pédagogiquement toujours, faire émerger la notion de modèle par des exercices mettant en œuvre des situations similaires ;

pédagogiquement enfin, être alors en mesure de passer très rapidement à un langage de programmation pour illustrer les idées mises en œuvre : les élèves, jusqu'alors utilisateurs de nouvelles technologies, se transforment peu à peu en créateurs.

Deux définitions préalables

On peut définir un algorithme comme une suite d'instructions, à appliquer dans un ordre précis, pour arriver en un nombre fini d'étapes à un certain résultat.

L'algorithmique est la science des algorithmes (création, amélioration...).

Premiers exercices

Dans les deux exercices qui suivent, on peut utiliser les instructions suivantes : 1. Avancer (d'une longueur donnée).

2. Tourner à gauche ou à droite (d'un angle donné en degré).

On suppose que le crayon se déplace par défaut horizontalement et vers la droite au départ.

Exercice 1

Écrire un programme permettant de construire un carré de côté 50 tout en revenant à la position de départ.

Avancer de 50

Tourner à gauche de 90°

Avancer de 50

Tourner à gauche de 90°

Avancer de 50

Tourner à gauche de 90°

Avancer de 50

Tourner à gauche de 90°

Remarque : On aurait tout aussi bien pu écrire : Tourner à droite de 90° à chaque fois.

Le bloc d'instructions qui se répète est : Avancer de 50

Tourner à gauche de 90°

Commentaire pédagogique : Beaucoup d'élèves disent : pourquoi ne pas multiplier ça

par 4 ? L'idée de boucle est déjà sous-jacente.

(27)

Exercice 2

Écrire un programme permettant de construire un triangle équilatéral de côté 100 tout en revenant à la position de départ.

Avancer de 100

Tourner à gauche de 120°

Avancer de 100

Tourner à gauche de 120°

Avancer de 100

Tourner à gauche de 120°

Le bloc d'instructions qui se répète est : Avancer de 100

Tourner à gauche de 120°

Commentaire pédagogique : Le piège est de penser immédiatement à tourner de 60°. Le professeur démontre rapidement par un petit dessin au tableau que c'est erroné et laisse trouver aux élèves la bonne mesure d'angle.

Remarque : Dans l'exercice 1 comme dans le suivant, un même bloc d'instructions a été répété plusieurs fois. Cette répétition des mêmes instructions un certain nombre de fois peut être résumée en introduisant une notion très importante en programmation, et très économique au niveau du nombre de lignes à écrire.

Les instructions répétitives : notion de boucle

Il existe essentiellement deux méthodes pour écrire une boucle, c'est-à-dire un procédé qui permet la répétition un certain nombre de fois d'un même processus (addition, multiplication, etc.).

Pour les mettre en pratique, nous allons résoudre l'exercice 1 à l’aide d’une boucle.

MÉTHODE 1

Analysons le programme en langage naturel suivant (THE MODEL) :

i ← 0 On affecte à i la valeur 0.

Tant que i < 4 (ou i ≤ 3) avancer de 50

tourner à gauche de 90°

i ← i + 1

Tant que la condition annoncée est vraie, on effectue les deux instructions avancer et tourner et on affecte à i sa valeur précédente augmentée de 1.

Fin Tant que

Quel est le résultat obtenu ? Un carré de côté 50.

On peut alors résumer la structure de boucle décrite ici de la manière suivante : Tant que condition vérifiée

Bloc d’instructions Fin Tant que

Remarque : Si la condition n'est pas vérifiée au début, alors le bloc d'instructions ne sera pas exécuté du tout.

Attention ! Pour que l'algorithme soit correct, il est nécessaire que la condition cesse d'être

vérifiée au bout d'un nombre fini de répétitions. Sinon, le programme boucle indéfiniment.

(28)

Exercice 3

Que fait le programme suivant ? S ← 80

Tant que S > 20 avancer de S Fin Tant que

Comme la condition du « Tant que... » va rester toujours vraie, ce script va boucler indéfiniment. Si on le programme sur machine, cette dernière va planter.

MÉTHODE 2

Une autre manière courante d'écrire une boucle est :

Pour i variant de 0 à 3 (ou de 1 à 4) La variable i évolue comme indiqué, par défaut de 1 en 1.

Les deux instructions suivantes sont effectuées jusqu'à ce que i atteigne la valeur maximum.

avancer de 50

tourner à gauche de 90°

Fin Pour

Le résultat obtenu est exactement le même : le dessin d'un carré de côté 50.

On peut alors résumer la structure de boucle décrite ici de la manière suivante : Pour i variant de 0 à N faire

Bloc d’instructions Fin Pour

ou Pour i variant de 1 à N faire Bloc d’instructions Fin Pour

Exercice 4

Écrire deux programmes utilisant chaque type de boucle pour résoudre l'exercice 2.

Avec une boucle Tant que... Avec une boucle Pour...

i ← 0

Tant que i < 3 avancer de 100

tourner à gauche de 120°

i ← i + 1 Fin Tant que

Pour i variant de 0 à 2 (ou de 1 à 3) avancer de 100

tourner à gauche de 120°

Fin Pour

Commentaire pédagogique : La boucle Tant que..., universelle quel que soit le langage de

programmation choisi me semble préférable à celle de Pour..., dont la syntaxe est très

variable. Par ailleurs, on y voit mieux l'évolution du compteur i. Aussi, pour débuter,

l'utilisation d'un seul type de boucle est amplement suffisant tout au long de l'année. Le

modèle du tracé d'un polygone ayant été donné, avec spécification des

données nécessaires : ici, la variable i, qui sert à compter les côtés de la figure, et la

structure de boucle car on répète plusieurs fois la même action, les élèves sont prêts à

chercher des exercices se référant au même modèle.

(29)

Exercice 5

Construire la figure suivante en utilisant l'instruction Tant que (longueur d'un côté du quadrillage 50). On partira du point A.

Exercice 6

Dessin d'une spirale dont la mesure des segments varie.

L'idée est d'utiliser une boucle car on répète plusieurs fois le même processus : avancer, puis tourner à gauche de 90°.

La différence par rapport à la question précédente est qu'à chaque itération, on avance de 30 unités supplémentaires.

D'où l'idée d'utiliser deux variables : i qui va compter le nombre de segments de la spirale et L la longueur du premier segment, qui va s'accroître de 30 à chaque itération.

Il y a neuf segments. On avance de L et la longueur L est incrémenté de 30.

i ← 0 L ← 30

Tant que i < 9 faire Avancer de L Tourner à gauche de 90°

L ← L + 30 i ← i + 1 Fin Tant que

Commentaire pédagogique : On peut très bien n'utiliser qu'une seule variable, ce qu'un certain nombre d'élèves font très naturellement. Le script est alors un peu plus court.

Dans les questions qui suivent la longueur du côté du quadrillage est de 30.

1) Construire la figure suivante en utilisant une boucle. On partira du point central.

(30)

2) En utilisant toujours une boucle, construire la figure suivante (Le repère n'a aucune importance). On partira encore du point central.

L'idée est d'utiliser une boucle car on répète plusieurs fois le même processus : avancer, puis tourner à gauche de 90°.

La différence par rapport à la question précédente est que deux segments consécutifs ont la même longueur. D'où l'idée d'utiliser deux variables : i qui va compter le nombre de segments de la spirale et L la longueur du premier segment, qui va s'accroître de 30 à chaque itération. Le bloc d'instructions Avancer, Tourner sera répété deux fois par rapport à la question 1.

i ← 0 L ← 30

Tant que i < 6 faire Avancer de L

Tourner à gauche de 90°

Avancer de L

Tourner à gauche de 90°

L ← L + 30 i ← i + 1 Fin Tant que

Remarque : Cet aspect visuel est fructueux à mettre en œuvre rapidement à l'aide de l'ordinateur. Et pour faire ça vite, rien de tel que... la tortue ! Oui, oui, comme en LOGO.

Un langage moderne, très performant, et à la syntaxe très simple possède cette fonctionnalité : c'est le langage Python. On peut le télécharger à l'adresse suivante : http://www.python.org. Les versions 2.x et 3.x diffèrent par certains points de syntaxe, aussi convient-il de choisir une version stable (2.7 pour les versions 2.x et actuellement 3.3 pour les 3.x) afin de travailler dessus. Pour l'installation de Python et une première initiation, on peut consulter les sites suivants : http://www.univ-irem.fr/videos/ (section environnement Python 3.2 ; ce qui y est dit est également valable pour la dernière version) ou http://code.google.com/p/swfk-fr/downloads/detail?name=swfk-fr_0.0.9.pdf. Cette première approche des boucles via un cadre visuel peut maintenant être travaillée dans un cadre calculatoire. Là encore, un exemple modèle servira de base au travail ultérieur.

Problème type : Calculer la somme S = 1 + 2 + 3 + ... + 99 + 100

Analyse : Bien évidemment, on ne va pas saisir à la machine cette longue opération ! Il nous faut donc trouver un moyen pour que cette dernière l'exécute, mais en écrivant le moins de lignes possible.

On commence par remarquer que l'opération qui est sans cesse utilisée est l'addition. D'où l'idée d'utiliser une boucle : on répète plusieurs fois le même procédé : ici additionner.

Additionner oui, mais quoi ? 1 d'abord, puis 2, puis 3, … , jusqu'à 100. Autrement dit on

additionne une suite de nombres qui varient, dans le cas présent de 1 en 1.

(31)

L'idée essentielle est de calculer S petit à petit, comme on le ferait à la main en ajoutant peu à peu tous les termes contenus dans l'addition.

Comme S va évoluer et les termes qui la composent aussi, on a l'idée d'introduire deux variables : S elle-même et un compteur i, qui devra prendre successivement les valeurs 1, 2, 3, …, 100.

Nous allons résoudre ce problème en créant un algorithme efficace, utilisant (mais ce n'est pas une obligation), le premier type de boucle (Tant que...), qui laisse mieux voir l'évolution des variables.

Mise en œuvre

Instructions Signification S ← 0 On affecte à S la valeur 0 (valeur initiale)

i ← 1 On affecte à i la valeur 1 (valeur initiale) Tant que i ≤ 100 La condition est posée: i varie jusqu'à 100

S ← S + i On réaffecte à S sa valeur précédente plus la valeur actuelle de i i ← i + 1 On réaffecte à i sa valeur augmentée de 1

Fin Tant que

Afficher S Une fois sorti de la boucle, on affiche S

On va à présent faire tourner l'algorithme à la main, c'est-à-dire regarder, étape par étape l'évolution des variables i et S, et enfin le résultat final. Pour cela, on complète le tableau suivant.

On ne donnera pas le résultat du calcul de S à chaque étape, mais seulement l'écriture de S sous la forme d'une somme.

Après l'itération i S

0 1 0 1 2 3 ...

99 100 Quelle est la dernière valeur prise par la variable i ? par la variable S ?

Quel est le résultat affiché par le programme ?

Attention, au vu du script, il est important d'insister sur le fait que S varie en premier et i en second. Le remplissage de ce tableau d'évolution des variables est primordial. Dans le cas présent, tout à la fin du script, i prend la valeur 101 et S la valeur 1 + 2 + ... + 100.

Analyse du problème résolu

Ceci permet de compléter pas à pas le tableau donné aux élèves.

Situation initiale

Comme i est égal à 1 et que la condition de la boucle est bien vérifiée, cette dernière exécute la suite d'instructions précédente :

S est remplacé par sa valeur précédente : 0 à laquelle on ajoute la valeur actuelle de i : 1. Ainsi, S = 0 + 1 soit S = 1.

i est remplacé par sa valeur actuelle : 1 à laquelle on ajoute 1. Ainsi i = 1 + 1 soit

i = 2.

(32)

Situation après une itération

Comme i est égal à 2 et que la condition de la boucle est bien vérifiée, cette dernière exécute la suite d'instructions précédente :

S est remplacé par sa valeur précédente : 1 à laquelle on ajoute la valeur actuelle de i, 2. Ainsi, S = 1 + 2

i est remplacé par la somme de sa valeur actuelle 2, et de 1. Ainsi i = 2 + 1 soit i = 3.

Situation après deux itérations

Et ainsi de suite... Tant que la condition de la boucle est valide, le bloc d'instructions est exécuté.

Situation après 99 itérations

Comme i est égal à 100 et que la condition de la boucle est bien vérifiée, cette dernière exécute la suite d'instructions précédente :

S est remplacé par sa valeur précédente : 1 + 2 + ... + 99 à laquelle on ajoute la valeur actuelle de i : 100. Ainsi, S = 1 + 2 + … + 100.

i est remplacé par sa valeur actuelle : 100 à laquelle on ajoute 1. Ainsi i = 101 Situation après 100 itérations

Cette fois-ci, i est égal à 101, donc la condition de la boucle n'est plus valide. La boucle s'arrête. Le programme effectue alors la dernière instruction (qui n'était pas dans la boucle) : afficher la valeur de S, c'est-à-dire le résultat de 1 + 2 + … + 100.

On remarque, puisque S évolue en premier dans le bloc d'instructions, qu'il y aura toujours 1 d'écart entre i et la dernière valeur apparaissant dans la somme constituant S. Ceci permet de compléter le tableau après 99 itérations.

Après l'itération i S

0 1 0

1 2 1

2 3 1 + 2

3 4 1 + 2 + 3

...

99 100 1 + 2 + 3 + ... + 99

100 101 1 + 2 + 3 + ... + 99 + 100

Exercice 7

Écrire un programme utilisant une boucle Tant que... calculant et affichant le résultat de : 1) S = 3 + 6 + 9 + ... + 201.

2) P = 2 × 4 × 6 × 8 × ... × 40.

3) S = 1 + 1 2 + 1 3 + ... + 10 1 . Corrigé de la question 1)

Il s'agit de sommer tous les multiples de 3 compris entre 3 et 201.

L'idée est la même que dans le problème résolu : utiliser une boucle (car on répète l'opération addition) et utiliser deux variables :

-

i, variable qui va énumérer touts les termes à additionner,

-

S (la somme recherchée qui va évoluer à chaque itération de i).

Un algorithme possible est donné ci-contre.

S ← 0 i ← 3

Tant que i ≤ 201

S ← S + i

i ← i + 3

Fin Tant que

Afficher S

(33)

Corrigé de la question 2)

Cette fois-ci, on multiplie tous les entiers pairs de 2 à 40.

On initialise le produit P à 1 (préciser pourquoi pas à 0).

On initialise i à 2.

On remplace P par sa valeur précédente multipliée par la valeur actuelle de i.

i est incrémenté de 2 à chaque itération.

P ← 1 i ← 2

Tant que i ≤ 40 P ← P × i i ← i + 2 Fin Tant que Afficher P Corrigé de la question 3)

Remarquons que l'on peut réécrire la somme cherchée sous la forme S = 1

1 + 1 2 + 1 3 + ... + 10 1 .

L'idée est la même que dans le problème résolu : utiliser une boucle (car on répète l'opération addition). Cette fois encore, on aura besoin de deux variables :

-

i qui prend successivement les valeurs des dénominateurs successifs 1, 2, 3, … jusqu'à 10,

-

S qui évolue à chaque itération de i.

S ← 0 i ← 1

Tant que i ≤ 10 S ← S + 1 i i ← i + 1 Fin Tant que Afficher S Exercice 8

En utilisant une boucle Tant que..., écrire un programme permettant de calculer puis d'afficher le résultat de la somme suivante : T = 1 + 1 2 + 1

2 × 3 + 1

2 × 3 × 4 + ... + 1

2 × 3 × 4 × ... × 10 . Indication : Bien analyser combien de variables sont nécessaires.

Corrigé de l’exercice 8

Remarquons que l'on peut réécrire la somme cherchée sous la forme T = 1

1 + 1

1 × 2 + 1

1 × 2 × 3 + 1

1 × 2 × 3 × 4 + ... + 1

1 × 2 × 3 × 4 × ... × 10 ..

Cette fois-ci, on aura besoin de trois variables :

-

i qui prendra successivement les valeurs 1, 2, 3, … jusqu'à 10,

-

P qui prendra successivement les valeurs 1, 2, 2 × 3, 2 × 3 × 4… jusqu'à 2 × 3 × 4 × … × 10,

-

T qui évoluera en même temps que les deux autres variables.

L'algorithme ci-contre répond alors au problème posé.

P ← 1 i ← 1 T ← 0

Tant que i ≤ 10 faire P ← P × i

T ← T + P 1 i ← i + 1 Fin Tant que Afficher T Commentaire pédagogique

C'est un exercice difficile. Peu d'élèves définissent correctement le cahier des charges, c'est-à- dire le nombre de variables nécessaires et les structures informatiques (boucles, instructions conditionnelles) nécessaires à sa résolution. Voilà malgré tout une bonne occasion de revenir sur le raisonnement exposé dans le problème type et remis en œuvre dans l'exercice

précédent.

Commentaires généraux :

Il apparaît au travers de ces quelques années d'expérience du nouveau programme de seconde,

que le langage naturel servant à décrire un algorithme, doit rapidement laisser la place à un

outil informatique afin que ce cours d'aspect théorique, prenne du sens. Le visuel nous semble

devoir y tenir une place centrale. Nos élèves sont en effet friands de toutes ces gourmandises

High-Tech : Android, tablettes tactiles, où la vue (et maintenant le toucher) du résultat

immédiat est une banalité. Les retours que nous avons pu avoir d'élèves, parfois en grande

(34)

difficulté corroborent ce constat. Il ne s'agit en aucun cas de bannir le calcul dans la pratique de l'algorithmique (quitte à prévoir plus d'exercices pour les apprenants les plus à l'aise), bien au contraire, mais d'y arriver en douceur, de revenir sans cesse sur les modèles acquis, afin de pouvoir avancer. C'est en pratiquant le ping-pong entre modèle et exercices que l'esprit se forge et acquière peu à peu sa créativité.

Par ailleurs, même si dans cette proposition, nous insistons sur le fait d'aborder les problèmes un par un (en langage naturel et en programmation sur calculatrice ou ordinateur) :

structures répétitives (boucles),

structures conditionnelles (Si... Alors... Sinon...) éventuellement imbriquées,

le travail annuel doit permettre de mixer les deux afin d'aboutir à une logique de résolution de

problèmes que le lycée permet théoriquement... ou pas !

Références

Documents relatifs

Le caractère étudié est la hauteur de pluie (en mm) tombée chaque jour. L'étude porte sur deux années consécutives. Le logiciel pour dépouiller les données, fournit les

On propose aux élèves un travail de recherche au CDI, sur Internet, … , individuellement ou par groupe. c) Tracer le cercle de centre M et de rayon [MB], il coupe la demi-droite

Renommer la feuille 1 ; son nouveau nom sera Histogramme (effectuer un double clic sur l'ancien nom et saisir le nouveau). Sélectionner la plage C2:C10, appuyer sur le bouton Ctrl

La note de service du 29 avril 2003 (publiée au BO n°19 du 8 mai 2003) précise : « Si des questionnaires à choix multiples sont proposés, les modalités de notation doivent en être

Numéro du bulletin Nombre d’exemplaires Prix unitaire TOTAL 5,00 €. 5,00 € 5,00 € 5,00 €

- Nos impressions sur le programme du nouveau Baccalauréat professionnel mis en place dès la rentrée 2009 : réflexions sur diverses progressions testées l’année dernière avec

BTSA Tests À partir de données : savoir définir les unités statistiques et les variables Intervalle de confiance d’une variance Test de conformité d’une variance Test

La séance a été réalisée en présence des deux enseignantes. Le groupe des 14 élèves était installé en U, avec leur enseignante d'Anglais assise parmi eux. Le ton a été