Entrainement au calcul mental en Python

Projets

Ce script génère des additions et multiplications aléatoires et permet de s’entraîner sur le calcul mental.

Projet NSI 1 : Le calcul mental :

Ce projet consiste à créer un programme en python faisant travailler le calcul mental. Nous sommes en 1ère spécialité NSI au lycée Louis Pasteur à l’année 2019/2020.

Introduction : Python :

Python est un langage de programmation interprété. C’est à dire un programme qui exécute les programmes écrits avec un langage informatique. Python est un langage épuré car il possède moins de construction syntaxique que les autres langages. Il est disponible sur tablettes, ordinateurs, ou encore calculatrice.

But et présentation du programme :

Ce programme de calcul mental permet de se perfectionner et de s’entrainer au calcul via différents niveaux adaptés à tout le monde. Il est pratique car il permet d’avoir une correction et un score et de ne pas se préoccuper à trouver des calculs. Ce programme est destiné à tous les niveaux (plus particulièrement aux élèves de seconde qui doivent savoir maîtriser ces notions.).

Ce programme est constitué de 5 niveaux regroupant le calcul d’additions, de soustractions et de multiplication. Chaque niveau est constitué de 20 questions et d’une correction. Ce programme permet aussi à un élève de seconde de s’initier au langage python en l’exécutant et d’essayer de le comprendre grâce à la petite présentation du programme ci-dessous.

Décortication du programme :

Tout d’abord la console nous demande de choisir un niveau dans le menu proposé.

# La fonction menu !
def menu():
    print("Choisis un niveau")
    print("1. Addition niveau 1") 
    print("2. Addition niveau 2")
    print("3. Multiplication niveau 1")
    print("4. Multiplication niveau 2")
    print("5. Final avec toutes les opérations posssibles")
    choix = 0
    while choix==0:
        choix=int(input())
    if choix==1:
        additionniveau1()
    elif choix==2: 
        additionniveau2()
    elif choix==3:
        multiplicationniveau1()
    elif choix==4:
        multiplicationniveau2()
    elif choix==5:
        final()
    elif choix==9:
        print("Au revoir !")
        exit
    else: 
        menu() 
    if choix!=9:
        menu() 

menu()

On peut voir ci-dessus la fonction menu. Grace à « print » un menu va s’afficher. Puis avec la fonction « int(input » l’utilisateur va choisir un niveau grâce à 5 chiffres correspondant aux 5 niveaux. Et avec les conditions « elif et if » notre programme va se reporter au fonction prédéfinies précedemment.

Voici une des fonctions définies :

# Une des 5 fonctions définis !
    print("Niveau1 : Addition avec 1 chiffre")
    nb=1
    score = 0
    while nb<=20:
        aleat1 = random.randint(1, 9)
        aleat2 = random.randint(1, 9)
        print("Combien fait", aleat1, "+",aleat2)
        reponse = int(input("réponse = "))
        nb = nb + 1
        result = (aleat1 + aleat2)
        if reponse==result :
            score = score + 1
        elif reponse!=result :
            score = score + 0
        print("Voici la correction:", result)
    print("Ton score est:", score, "/20")
    if score>=16 :
        print("Bravo tu es experimenté et tu peux passer au niveau 2")
    if score<10 :
        print("C'est pas grave, retente ta chance")
    if score<16 and score>=10:
        print("Tu as un bon niveau mais je te conseille de reessayer. Avant révise un peu.") 

Grace à la fonction random des chiffres et des nombres vont être tirés aléatoirement permettant de générer des calculs aléatoirement.

Ces chiffres et nombres sont 2 variables (aleat1 et aleat2) tirés aléatoirement selon un intervalle de chiffres et nombres selon les niveaux respectifs. Cela va être appliqué au 4 premier niveaux.

Avec « if » qui nous permet d’exécuter le code mais avec des conditions. Si la réponse est juste le +1 va être ajouté au score sinon pas de changement du score. Ce qui fera un résultat final sur 20 grâce à la fonction « while » ; while nous permet de réaliser cette boucle indéfiniment tant que la variable « nb » n’est pas inférieur à 20. Cette boucle va donc se répéter pendant 20 questions.. Aussi à la fin de chaque calcul une correction est proposée encore grâce à « if ». Si le score est supérieur à 16 la compétence est validée, si c’est entre 10 et 15 tu maîtrises moyennement les compétences. Si inférieur à 10 il vaudrait mieux réviser.

# Le script d'une autre fonction !
    print("Niveau5: Final")
    nb=1
    score = 0
    while nb<=20:
        aleat1 = random.randint(1, 15)
        aleat2 = random.randint(1, 15)
        listes = [(aleat1 + aleat2), (aleat1 * aleat2), (aleat1 - aleat2)]
        aleat3 = listes[random.randint(0, 2)]
        if aleat3==(aleat1 + aleat2) :
            print("Combien fait", aleat1, "+", aleat2)
        elif aleat3==(aleat1 * aleat2) :
            print("Combien fait", aleat1, "x", aleat2)
        elif aleat3==(aleat1 - aleat2) :
            print("Combien fait", aleat1, "-", aleat2)
        reponse = int(input("réponse = "))
        nb = nb + 1 
        result = aleat3
        if reponse==result :
            score = score + 1
        elif reponse!=result :
            score = score + 0
        print("Voici la correction:", result)
    print("Ton score est:", score, "/20")
    if score>=16 :
        print("Bravo tu es experimenté et tu maitrise toutes les compétences nécessaires")
    if score<10 :
        print("C'est pas grave, retente ta chance tu vas y arriver. Avant révise un peu.")
    if score<16 and score>=10:
        print("Tu as un bon niveau mais je te conseille de réessayer")

Pour la 5ème fonction nous avons créé une 3ème variable (aleat3) nous permettant de tirer aléatoirement dans une liste prédéfinie (composé des 3 opérations), et grâce encore une fois à la condition « if » pour avoir une opération aléatoire et toujours des chiffres et nombres aléatoires.

Si tu veux t’améliorer en calcul mental clique sur le lien ci-dessous :