Laboratoire boucles - solution

But

  • Maîtriser les boucles.

  • Consolider la matière vue précédemment.

  • Continuer à utiliser les fonctions.

Énoncé

Pour chaque exercice, vous devez également :

  • Créer le pseudo code ou l'organigramme avant de le traduire en code Python.

  • Créer un plan de tests et bien tester son programme.

  • Utiliser le débogueur au besoin.

Exercice 1

Il s'agit de faire un jeu à 2 joueurs pour deviner un nombre. Le premier joueur devra entrer le nombre à faire deviner et le second tentera de trouver le nombre. Pour aider, le programme devra indiquer s'il faut monter ou descendre. Le pointage final équivaut au nombre de tentatives.

Suggestion :

Pour faire "disparaître" le nombre choisi par le premier joueur, effectuer 100 print vide après avoir obtenu le nombre.

Solution
#################### Pseudo code - fonction deviner_nombre ####################
# Paramètres d'entrée de la fonction : nomre_a_deviner
# Sortie : aucun (on affiche le résultat)
##############################################################################
#Demander au joueur de proposer un nombre 
#Tant que nombre != nombre_a_deviner#  
#    Si le nombre proposé == nombre à deviner
#         On a trouvé le nombre, donc on sort de la boucle (break)
#    Sinon
#         Si le nombre proposé est < nombre à deviner
#             Dire à l'utilisateur de proposer un nombre plus grand
#         Sinon
#             Dire à l'utilisateur de proposer un nombre plus petit.
#
#    Demander au joueur de proposer un nombre
#
# Afficher le Bravo, avec la bonne réponse et le score
###############################################################################


########################## Pseudo-code programme principal ##########################
Demander à l'utilisateur le nombre à faire deviner et le mettre dans la variable nombre_gagnant. 
Laisser 100 lignes vides.
Appeler la fonction : deviner_nombre(nombre_gagnant)
###############################################################################
def deviner_nombre(nombre_a_deviner:int):
    """
    Fonction qui permet de guider l'utilisateur
    à deviner un nombre passé en paramètres.
    :param nombre_a_deviner: Le nombre à deviner.
    :return: Aucun
    """

    score = 0
    trouve = False

    while not trouve:
        score += 1

        nombre_propose = int(input(f"Tentative {score}: Quel nombre tentez-vous? "))

        if nombre_propose == nombre_gagnant:
            trouve = True
        else:
            if nombre_propose < nombre_a_deviner:
                print("Le nombre est plus haut")
            else:
                print("Le nombre est plus petit")

    print("*******************************")
    print(f"Bravo! La bonne réponse était {nombre_gagnant}")
    print(f"Votre score est de {score}")


if __name__ == "__main__":
    nombre_gagnant = int(input("Quel est le nombre à faire deviner? "))
    print("\n" * 100)

    deviner_nombre(nombre_gagnant)

Exercice 2

Imaginez que vous développez un programme pour une application de gestion de prêts. Vous devez développer un programme qui aidera les utilisateurs à suivre le remboursement de leurs dettes. Le remboursement de la dette peut-être fait en plusieurs fois. L'utilisateur doit fournir des montants de remboursement jusqu'à ce que la dette soit entièrement payée ou que l'utilisateur entre une valeur non numérique.

À la fin du processus, le programme doit afficher le nombre total de paiements effectués.

Résultat attendu :

Solution
  • Code Python

Exercice 3

Imaginez que vous travaillez sur un projet de suivi climatique pour une station météorologique. Le programme doit permettre à l'utilisateur d'entrer des températures successivement. Lorsque l'utilisateur souhaite terminer, il devra entrer le mot "arrêt".

À la fin, le programme affichera la température la plus basse, la température la plus haute et la température moyenne parmi celles qui ont été saisies.

Solution

Last updated