site2wouf.fr : Algorithme — Séquence 1

L'incrédulité est quelquefois le vice d'un sot, et la crédulité le défaut d'un homme d'esprit.

Denis Diderot (sur mon T shirt!)

Partager :

Facebook X (Twitter) LinkedIn Email WhatsApp

1. Qu'est-ce qu'un algorithme ?

A. L'élève robot :

Instructions :
Prog 1
Avance de 1 pas
Répète tout 5 fois

Inconvénient : On rigole quand l'élève est trop près du tableau !

Prog 2
Regarde devant
Si tu peux avancer d'un pas alors :
  Avance de 1 pas
Répète tout 5 fois

Ainsi, on peut voir un algorithme comme une suite d'instructions répétitives en interaction avec le monde extérieur.

B. Des exemples d'algorithmes :

2. Pseudo-code et logigramme

Pour décrire un algorithme de façon lisible, on utilise un pseudo-code. Reprenons l'exemple de l'élève robot :

Debut : l'élève Robot
tq repeter 5 fois
  avancer d'un pas
fin_tq
fin

Dans cette écriture standardisée :

Une représentation graphique — le logigramme — aide encore à gagner en lisibilité :

Logigramme : l'élève Robot

Dans un logigramme, 4 symboles importants :

Des connecteurs fléchés indiquent le sens de déroulement de l'algorithme.

Un exemple avec test :

Debut : l'élève Robot2
tq repeter 5 fois
  regarder devant
  si tu peux avancer
    avancer d'un pas
  fin_si
fin_tq
fin
Logigramme : l'élève Robot 2

Votre mission

Sur feuille blanche, réalisez le logigramme correspondant au pseudo-code suivant :

Debut : La porte
tq la porte est fermée
  dire toc toc toc
  si la porte s'ouvre
    entrer
  fin_si
fin_tq
fin

Les tq et les si doivent toujours être ouverts avant d'être fermés.

3. Installation de Python

Au collège le MSI (programme destiné à l'installation sous Windows) est disponible sur le réseau dans P:\Math\Python. L'élève l'installe sur son poste, pour tous les utilisateurs (for all users). L'installation est aisée et rapide (next-next-next).

À noter : https://www.python.org/downloads/ est l'adresse de téléchargement officielle.

4. Découverte de l'IDLE

L'IDLE de Python

L'IDLE est (entre autres) une super calculatrice :

IDLE utilisé comme calculatrice

On peut remarquer que Python respecte les priorités opératoires. Un avantage sur une calculatrice traditionnelle : l'utilisateur peut relire ses calculs et voir tous les résultats simultanément.

Une objection d'élève et une solution élégante :

Sur une calculatrice on peut faire 10+5 EXE et elle affiche 15, puis faire *2 EXE et elle affiche 30, ça ne marche pas sous Python !

Si ! En utilisant l'opérateur _ (tiret du 8) :

Opérateur _ dans l'IDLE

Remarque (pas trop) intéressante

Python ne comprend pas tout ! Rien ne sert de lui dire bonjour !

bonjour non défini dans Python

bonjour n'est pas défini : on va comprendre ce que cela veut dire !

5. Première variable

Dans l'IDLE je demande aux élèves de taper exactement :
prenom="Laurent"
(en remplaçant Laurent par leur propre prénom) puis d'appuyer sur ENTRÉE.
La réponse de Python est étonnante : >>> — il ne se passe rien !

Que s'est-il passé ? Nous avons créé une variable prenom (sans majuscule, sans accent) : une boîte en carton dans laquelle nous avons rangé une chaîne de caractères (string).

Je demande ensuite de taper :
print(10*prenom)
Et, avant d'appuyer sur ENTRÉE, de tenter de deviner ce qui va se passer.

print(10*prenom)

Remarque : une modification (presque) invisible

print(100*autreprenom)

\n est un caractère non imprimable qui initie un passage à la ligne.

6. Premier programme vraiment utile (Exercice 1)

Je profite du mini chahut généré par cette dernière activité pour mimer une petite colère :

Vous me copierez 1000 fois : "Je ne dois pas parler en classe !"
Hum… Oui vous pouvez utiliser Python !

Correction :

print(1000*"je ne dois pas parler en classe !")

Ou, plus joli :

print(1000*"je ne dois pas parler en classe ! \n")

7. Notion d'indices et casse-têtes

Dans l'IDLE, je crée une variable :
mot = "anticonstitutionnellement"
et j'essaye successivement :

mot[2] → affichage « t »

mot[5] → affichage « o »

Exercice

Afficher avec cette syntaxe la lettre i puis la lettre a.

Correction :

Pour Python, mot[x] renvoie la lettre d'indice x — et le premier indice est… zéro !

Lettreanticons...
Indice01234567...

J'essaye maintenant :

mot[2 : 5] → affichage « tic »

Exercice

Avec la même syntaxe, essayer d'afficher « cons ».

Correction

La syntaxe mot[2 : 5] affiche les lettres d'indices 2 à 4 (la lettre d'indice 5 est la première non affichée).

D'où : mot[4 : 8] → affichage « cons »

J'essaye maintenant :

mot[1 : 7 : 2] → affichage « nio »

mot[1:7:-2] → affichage « »

mot[7:1:-2] → affichage « soi »

Exercice

Que signifie ce troisième nombre ?

Indices dans l'IDLE

Remarque

Certaines valeurs peuvent être omises : essayez mot[5:], mot[:5] et mot[::-1] !

Options de tranchage dans l'IDLE

Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.

Attendus de fin de cycle

Connaissances et compétences associées

Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - 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.

Exemples de situations, d'activités et de ressources pour l'élève

Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.

Repères de progressivité:

En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.

Liens utiles

Téléchargements