site2wouf.fr : Algorithme — Séquence 13

Commencez donc par vous rendre impopulaire et vous serez pris au sérieux.

Konrad Adenauer(sur Mon tshirt!)

Partager :

Facebook X (Twitter) LinkedIn Email WhatsApp

Voici une petite application écrite en quelques minutes qui permet de calculer la moyenne de plusieurs notes :

1. Calcul de moyenne — version 1.0.0

Code Python traduit en HTML :
# Application de calcul de moyenne
# Version 1.0.0
# Cette application demande des notes et retourne la moyenne

fini = False

while not fini:
    reponse = input("Entrez les notes séparées par des espaces : ")
    les_notes = reponse.split()  # une liste contenant les notes

    if len(les_notes) == 0:  # liste vide : on arrête
        fini = True
    else:
        somme = 0
        for note in les_notes:
            somme = somme + float(note)
        print("La moyenne est ", somme / len(les_notes))

moyenne 1.0.0

2. Les trois nouveautés

split() — découper une chaîne en liste

split() sépare une chaîne de caractères en éléments d'une liste :

Exemple split()

Le premier paramètre optionnel est le séparateur ; s'il est omis, c'est l'espace :

Exemple split() avec séparateur

len() — longueur d'une liste ou d'une chaîne

len() retourne le nombre d'éléments d'une liste ou de caractères d'une chaîne :

Exemple len()

float() — convertir en nombre décimal

float() transforme une chaîne de caractères en nombre décimal :

Exemple float()

int() converti en entier, float() en nombre décimal — utile pour les notes avec virgule !

3. Algorithme de la version 1

Logigramme calcul de moyenne

4. Votre mission : gérer les coefficients

Il serait plus pratique que l'application tienne compte des coefficients. Un fonctionnement comme celui-ci serait idéal :

Saisie avec coefficients

On entre 12*2 10 15*3 et le programme retourne la moyenne pondérée.

Indice : note.split("*") sépare la note du coefficient en utilisant * comme séparateur.

5. Calcul de moyenne — version 2.0.0 (correction)

Code Python traduit en HTML :
# Application de calcul de moyenne
# Version 2.0.0
# Gère les coefficients : on entre 12*2 10 15*3
# Cette version ne gère pas les erreurs de saisie

fini = False

while not fini:
    reponse = input("Entrez les notes séparées par des espaces : ")
    les_notes = reponse.split()

    if len(les_notes) == 0:
        fini = True
    else:
        somme = 0
        nb_notes = 0
        for note in les_notes:
            n = note.split("*")      # y a-t-il un coefficient ?
            if len(n) == 1:          # note sans coefficient
                somme = somme + float(note)
                nb_notes = nb_notes + 1
            else:                      # n[0] = note, n[1] = coeff
                somme = somme + float(n[0]) * float(n[1])
                nb_notes = nb_notes + float(n[1])
        print("La moyenne est ", round(somme / nb_notes, 2))

moyenne 2.0.0

La version 2.0.0 ne gère pas encore les erreurs de saisie — mais elle fonctionne et peut être améliorée.

6. Pistes d'amélioration

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