Exo Outils

Identification

Infoforall

19 - Exercices Outils


Vous pouvez le rendre en markdown sur le site ou en version papier.

Attention, le soin est noté et les codes markdown identiques seront sanctionnés à moins de noter clairement que vous avez travaillé avec un autre élève de la classe.

1 - Evaluation conditionnelle

01° Compléter la condition ci-dessous pour que le programme inverse les variables grand et petit lorsque grand est plus petit que petit.

1 2 3 4 5 6 7 8 9 10
grand = input("Donnez votre premier nombre entier : ") grand = int(grand) petit = input("Donnez un deuxième nombre entier plus petit :") petit = int(petit) if CONDITION : tempo = grand grand = petit petit = tempo print(f"Le plus grand nombre est {grand}") print(f"Le plus petit nombre est {petit}")

Le programme de NSI se veut généraliste en terme de langage. C'est pour cela qu'on n'utilisera pas ceci

grand, petit = petit, grand.

02° Créer un court programme qui :

  • Demande l'année de naissance de l'utilisateur et stocke la valeur transformée en int dans la variable annee
  • Calcule l'age de la personne en utilisant une variable annee_actuelle initialisée à l'année actuelle.
  • Si la date de naissance est supérieure à l'année actuelle : affiche 'impossible'
  • Sinon si la personne a strictement moins de 14 ans : affiche 'enfant'
  • Sinon si la personne a strictement moins de 19 ans : affiche 'ado'
  • Sinon : affiche 'adulte'

Si vous voulez, on peut obtenir l'année actuelle à partir du code lui-même. Cela évite de devoir mettre le code à jour tous les ans !

1 2
import datetime annee_actuelle = datetime.datetime.now().year

2 - Boucle bornée FOR

03° Expliquer pourquoi la distance affichée au final est de 7 m. Soyez bien attentif, il y a une sorte de mini-piège.

1 2 3 4
distance = 4 for deplacement in range(3): distance = distance + deplacement print(f"Au final, nous sommes à une distance de {distance} m")

04° Quel aurait été le résultat si on avait utilisé range(4) ?

3 - Boucle non bornée WHILE

05° Compléter la condition du programme ci-dessous : il génére en boucle le lancer de 3 dés à 6 faces. Vous devez faire relancer tant que la somme des trois dés n'est pas supérieure ou égale à 13.

Pour répondre : transformer la condition exprimée de façon négative en condition positive est le plus simple. Ou alors, il faut utiliser le mot-clé not.

1 2 3 4 5 6 7 8 9 10 11
import random somme = 0 while CONDITION : de1 = random.randint(1,6) de2 = random.randint(1,6) de3 = random.randint(1,6) somme = de1 + de2 + de3 print(f"Les dés donnent {de1} - {de2} - {de3} pour un total de {somme}")

Activité publiée le 13 09 2020
Dernière modification : 15 09 2020
Auteur : ows. h.