Mathématiques — 3ème

Algorithmique et programmation — Maths Troisième (chapitre 15)

Algorithme et programme, variables, séquences, boucles, instructions conditionnelles, blocs personnalisés et trace d'exécution. Programme du cycle 4, avec…

Par ProfBot

Algorithmique et programmation

Chapitre 15 — Algorithmique · Troisième

Un ordinateur ne comprend rien. Il exécute, dans l'ordre, exactement ce qu'on lui a écrit — y compris les erreurs. Programmer, c'est donc apprendre à décrire une méthode sans aucune ambiguïté ; et quand le résultat n'est pas celui qu'on attendait, c'est apprendre à suivre le programme pas à pas pour trouver où ça a dévié.

Au programme officiel (programme du cycle 4, BO n°31 du 30 juillet 2020, en vigueur en troisième). Notions d'algorithme et de programme ; notion de variable informatique ; déclenchement d'une action par un événement ; séquences d'instructions, boucles, instructions conditionnelles. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné ; décomposer un problème en sous-problèmes et créer un bloc personnalisé ; construire une figure en créant un motif et en le reproduisant à l'aide d'une boucle.


1. Algorithme et programme

Définitions. Un algorithme est une suite d'instructions permettant de résoudre un problème. Un programme est la traduction d'un algorithme dans un langage compris par la machine.

Les instructions s'exécutent dans l'ordre, de haut en bas — c'est une séquence. Un événement (« quand le drapeau vert est cliqué ») déclenche l'exécution.

L'ordre des instructions change le résultat. « Avancer puis tourner » ne trace pas la même chose que « tourner puis avancer ». Un programme n'est pas une liste de courses : c'est une suite dont chaque étape prépare la suivante.


2. Les boucles

À gauche un script sans boucle avec huit blocs, à droite le même avec une boucle et quatre blocs.

Boucle bornée : « répéter $n$ fois » — on connaît le nombre de tours à l'avance.

Boucle non bornée : « répéter jusqu'à ce que… » — on répète tant qu'une condition n'est pas remplie.

Le carré tracé par le lutin, avec l'angle de 90 degrés.

Pour tracer un carré : répéter 4 fois [avancer de 100 pas ; tourner de 90 degrés].

L'angle de rotation n'est pas l'angle du polygone. On tourne de $90°$ à chaque coin parce que le lutin fait un tour complet en parcourant le contour : $4\times90° = 360°$. Pour un polygone régulier à $n$ côtés, l'angle est donc $\dfrac{360°}{n}$ — $60°$ pour un hexagone, et non $120°$ (qui est l'angle intérieur).

Une boucle ne change pas le résultat, elle change le PROGRAMME. Les deux scripts de la figure tracent exactement le même carré. Mais pour un polygone à $36$ côtés, l'un ferait $72$ blocs et l'autre toujours $4$ — et surtout, une seule valeur serait à changer.


3. Variables et instructions conditionnelles

Définition. Une variable informatique est une case mémoire, désignée par un nom, qui retient une valeur. On peut lui affecter une valeur (« mettre score à $0$ ») ou la modifier (« ajouter $5$ à score »).

Instruction conditionnelle : « si condition alors … [sinon …] ». Le bloc n'est exécuté que si la condition est vraie.

Un script avec une variable score et un test, et la trace d'exécution correspondante.

La trace d'exécution — écrire à la main la valeur de chaque variable, tour après tour — est la méthode qui débloque tous les exercices. Sur la figure, on voit que le message n'apparaît qu'au troisième tour.

$10 > 10$ est FAUX. Au deuxième tour, score vaut exactement $10$ : la condition « score

gt; 10$ » n'est pas vérifiée. Avec « score $\geqslant 10$ », le message serait apparu un tour plus tôt. Les inégalités strictes et larges ne donnent pas le même programme.

Une variable garde sa valeur d'un tour à l'autre. C'est justement à cela qu'elle sert : cumuler, compter, retenir. Oublier de l'initialiser (« mettre score à $0$ ») laisse la valeur du dernier essai — et donne un résultat différent à chaque exécution.


4. Décomposer : les blocs personnalisés

Quand une même suite d'instructions revient, on la range dans un bloc personnalisé (une « fonction ») qu'on appelle par son nom.

Exemple. Pour dessiner une frise de cinq carrés :

  1. créer un bloc carré contenant répéter 4 fois [avancer 100 ; tourner 90] ;
  2. écrire répéter 5 fois [carré ; avancer de 120 pas].

Décomposer, c'est se donner le droit de ne penser qu'à une chose à la fois. Une fois le bloc carré écrit et testé, on l'utilise sans y repenser. C'est la même idée qu'en mathématiques : on démontre un théorème une fois, puis on l'applique.


5. Exercices corrigés

Exercice 1 — Suivre un script


mettre  n  à  1
répéter 4 fois
    mettre  n  à  n × 3

Que vaut n à la fin ?

Correction. Trace d'exécution :

tour$n$
départ$1$
$1$$3$
$2$$9$
$3$$27$
$4$$81$

À la fin, $n = 81$ — c'est $3^4$.

Exercice 2 — L'ordre compte

Deux scripts : A : avancer de 50 ; tourner de 90 ; avancer de 50 B : tourner de 90 ; avancer de 50 ; avancer de 50 Tracent-ils la même chose ?

Correction. Non. Le script A trace deux segments perpendiculaires (un « L »), le script B un seul segment droit de $100$ pas. Les mêmes instructions dans un autre ordre donnent une autre figure.

Exercice 3 — Un polygone régulier

Quel script trace un hexagone régulier de côté $80$ ?

Correction.


répéter 6 fois
    avancer de 80 pas
    tourner de 60 degrés

car $\dfrac{360°}{6} = 60°$.

Contrôle : $6\times60° = 360°$, le lutin revient bien à sa direction de départ.

Exercice 4 — Une condition


mettre  compteur  à  0
répéter 5 fois
    ajouter 2 à compteur
    si  compteur > 6  alors
        dire « stop »

Combien de fois le lutin dit-il « stop » ?

Correction. Trace :

tourcompteur
gt; 6$ ?
$1$$2$non
$2$$4$non
$3$$6$non ($6$ n'est pas
gt;6$)
$4$$8$oui
$5$$10$oui

Il dit « stop » deux fois.

Avec la condition $\geqslant 6$, il l'aurait dit trois fois.

Exercice 5 — Corriger un programme

Ce script devait tracer un triangle équilatéral, mais la figure ne se referme pas :


répéter 3 fois
    avancer de 100 pas
    tourner de 60 degrés

Où est l'erreur ?

Correction. L'angle est faux. Le lutin doit faire un tour complet en trois coins : $\dfrac{360°}{3} = 120°.$ Avec $60°$, il ne tourne au total que de $180°$ et la figure reste ouverte. Il faut écrire tourner de 120 degrés.

Le $60°$ vient de l'angle intérieur du triangle équilatéral — c'est la confusion classique entre l'angle de la figure et l'angle de rotation.

Exercice 6 — Écrire un programme

Écrire un script qui demande un nombre, puis affiche « positif », « négatif » ou « nul » selon le cas.

Correction.


demander « Choisis un nombre » et attendre
mettre  n  à  réponse
si  n > 0  alors
    dire « positif »
sinon
    si  n < 0  alors
        dire « négatif »
    sinon
        dire « nul »

Les trois cas couvrent bien toutes les possibilités : un nombre est positif, négatif, ou nul — il n'y a pas de quatrième cas.

Exercice 7 — Décomposer

On veut tracer une frise de $5$ carrés de côté $60$, espacés de $80$ pas. a. Quel bloc personnalisé créer ? b. Écrire le script principal.

Correction. a. Un bloc carré :


définir  carré
    répéter 4 fois
        avancer de 60 pas
        tourner de 90 degrés

b.


répéter 5 fois
    carré
    avancer de 80 pas

Après un bloc carré, le lutin a fait un tour complet : il retrouve sa position et sa direction de départ. C'est ce qui permet d'enchaîner proprement — sans cela, il faudrait le repositionner à la main.


À retenir

Algorithme = la méthode · programme = sa traduction pour la machine. Les instructions s'exécutent dans l'ordre.

Boucle bornée (répéter n fois) quand on connaît le nombre de tours ; non bornée (répéter jusqu'à…) sinon.

Angle de rotation d'un polygone régulier à $n$ côtés : $\frac{360°}{n}$ — ce n'est pas l'angle intérieur.

Variable : une case mémoire qu'il faut initialiser, et qui garde sa valeur d'un tour à l'autre.

Condition : attention aux inégalités strictes (

gt;$) et larges ($\geqslant$) — $10 > 10$ est faux.

La trace d'exécution (écrire chaque valeur, tour par tour) est l'outil qui résout tous les exercices de lecture de script.

Décomposer en blocs personnalisés : on écrit et on teste une fois, on réutilise ensuite.


Fin du programme de troisième. Les quinze chapitres se répondent : le calcul littéral sert les équations, les équations servent les fonctions, Thalès et Pythagore équipent la géométrie — et tout cela prépare la seconde.


Le programme complet de troisième

Nombres et calculs

  1. Divisibilité et nombres premiers
  2. Fractions et nombres rationnels
  3. Puissances et notation scientifique
  4. Les racines carrées
  5. Calcul littéral : développer et factoriser
  6. Équations et mise en équation

Organisation et gestion de données, fonctions

  1. La notion de fonction
  2. Fonctions linéaires, affines et pourcentages
  3. Statistiques
  4. Probabilités

Espace et géométrie

  1. Théorème de Thalès et triangles semblables
  2. Trigonométrie dans le triangle rectangle
  3. Les transformations du plan
  4. Espace, volumes et grandeurs composées

Algorithmique

  1. Algorithmique et programmation

Chapitre 14 · Espace, volumes et grandeurs composées


Tous les cours · coursDeLion · La chaîne YouTube