site2wouf.fr : Algorithme — Séquence 12

Internet, c'est compliqué, c'est tout nouveau

Christine Albanel

Partager :

Facebook X (Twitter) LinkedIn Email WhatsApp

1. La boucle while, c'est bien… la boucle for, c'est mieux

En séquence 2, nous avons construit la table de N avec une boucle while :

n = input("Entrer un nombre : ")
i = 1
while i < 10:
    print(i * int(n))
    i = i + 1

Ce code fonctionne, mais on doit gérer soi-même la variable i (l'initialiser à 1, l'incrémenter). La boucle for fait tout ça automatiquement :

2. La boucle for et range()

Code Python traduit en HTML :
n = input("Entrer un nombre : ")
for i in range(1, 10):
    print(i * int(n))

for i in range(1, 10) : la variable i prend successivement les valeurs 1, 2, 3, …, 9 (10 exclu). Le bloc indenté est exécuté pour chaque valeur.

range(10) donne 0, 1, 2, …, 9. range(1, 10) donne 1, 2, …, 9. range(1, 10, 2) donne 1, 3, 5, 7, 9.

3. Formatage de chaînes

Pour obtenir un affichage comme 3 x 5 = 15, on peut utiliser le formatage :

n = input("Entrer un nombre : ")
for i in range(1, 10):
    print("{0} x {1} = {2}".format(i, n, i * int(n)))

Les accolades {0}, {1}, {2} sont remplacées par les valeurs passées à .format() dans l'ordre.

Résultat table de N formatée

Votre mission

Indice : une boucle for à l'intérieur d'une autre boucle for !

4. Le module random — nombres aléatoires

Python peut simuler le hasard grâce au module random :

from random import *
de = randint(1, 6)
print(de)

randint(1, 6) tire un entier aléatoire entre 1 et 6 inclus — comme un dé !

5. Le Lièvre et la Tortue

À chaque tour on lance un dé. Si le 6 sort, le lièvre gagne ; sinon la tortue avance d'une case. La tortue gagne quand elle a avancé 6 fois.

On souhaite savoir si le jeu est à l'avantage du lièvre ou de la tortue.

Logigramme : le Lièvre et la Tortue

En Python :

Code Python traduit en HTML :
from random import *
etape = 0
de = 0
while etape < 6 and de < 6:
    de = randint(1, 6)
    etape += 1
    print(de)
if etape == 6:
    print("La tortue gagne !")
else:
    print("Le lièvre gagne !")

Votre mission

Pour les plus rapides : le code simule une partie, mais ne répond pas vraiment à la question. Pouvez-vous calculer la probabilité que le lièvre gagne, par exemple en simulant 10 000 parties ?

J'ai calculé : p ≈ 0,665 — vérifiez !

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