TP : Nouvelle série d’exercices – avec corrigé

Cette série comporte des exercices déjà faits, mais aussi des nouveaux.

Les corrigés des neuf premiers (A à I) sont disponibles en fin d’article.

A traiter dans l’ordre !

    1. Écrire une fonction prix_ttc(prix_ht, quantite, taux_tva = 20) qui
      • attend en argument :
        • le prix « hors taxes » d’une unité (exemple 12 €)
        • la quantité (exemple 5 unités)
        • le taux de tva (exemple 20%, c’est la valeur par défaut),
      • renvoie le prix « toutes taxes comprises », par exemple ici 72 €
        5 \times 12 \times \left(1+\dfrac{20}{100}\right)=72
    2. Écrire une fonction saisie_commande() qui
      • demande à l’utilisateur
        • le prix « hors taxes » d’une unité (exemple 12 €)
        • la quantité (exemple 5 unités)
        • le taux de tva (exemple 20%, c’est la valeur par défaut),
      • appelle alors la fonction fonction prix_ttc pour afficher le prix « toutes taxes comprises »
    3. Écrire une fonction bosser(n = 42) qui affiche pour bosser(4)
      Je dois faire 1 exercice.
      Je dois faire 2 exercices.
      Je dois faire 3 exercices.
      Je dois faire 4 exercices.
    4. Écrire un programme qui demande un nombre à l’utilisateur et affiche les dix nombres suivants.
      >>> affiche_dix_suivants()
      Saisir un nombre : 42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      >>>
    5. Écrire un programme qui affiche les nombres de 2 en 2 jusqu’à 100 avec un for puis avec un while.
      >>> de_2_en_2()
      2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
      2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 
      >>>
    6. Écrire une fonction somme_des_entiers_jusqu_a(n) qui
      • attend en argument un entier positif n,
      • renvoie la somme des entiers de 1 jusqu’à n.
      • Par exemple:
        • somme_des_entiers_jusqu_a(3) renvoie 6 car 1 + 2 + 3 = 6
        • somme_des_entiers_jusqu_a(100) renvoie 5050.
        • somme_des_entiers_jusqu_a(1) renvoie 1.
        • somme_des_entiers_jusqu_a(0) renvoie 0.
    7. Écrire une fonction volume_cone(r, h) qui, à partir de la saisie d’un rayon et d’une hauteur, calcule et affiche le volume d’un cône droit : V=\dfrac{\pi \times r^2 \times h}{3}
      >>> volume_cone(2,3)
      12.566370614359172
      >>>

      Pour le nombre \pi, on pourra utiliser pi après avoir saisi

      from math import pi
    8. Écrire une fonction geometry_dash_v1() qui dessine ceci à l’aide du module turtle:
      cm 2019-10-07 geometry dash v1
      Les triangles et carrés ont ici des côtés qui commencent à 40 pixels puis augmentent de 15 pixels à chaque fois.
      On commence par saisir

      from turtle import *
    9. Écrire une fonction qui tire « des dés » au sort jusqu’à ce qu’on obtienne 6, et qui compte et affiche les dés tirés et attend une seconde entre deux tirages avec sleep(1) après avoir saisi
      from random import randint
      from time import sleep
      >>> encore_des_des()
      2
      3
      4
      5
      4
      3
      5
      1
      6
      9 tirage(s).
      >>> encore_des_des()
      3
      1
      4
      6
      4 tirage(s).
      >>>

Les exercices qui suivent sont difficiles !


  1. Écrire une fonction geometry_dash_v2() qui dessine ceci :
    cm 2019-10-07 geometry dash v2Les figures sont soit des triangles soit des carrés, on le tire au sort, et ont ici des tailles aléatoires entre 10 et 100 pixels de côté.
    On commence par saisir

    from turtle import *
  2. Écrire une fonction pgcd(a, b) qui
    • attend en argument deux entiers positifs a et b,
    • renvoie le Plus Grand Commun Diviseur de ces entiers
    • Par exemple:
      • pgcd(12, 18) renvoie 6.
      • pgcd(100, 75) renvoie 25.
      • pgcd(1, 42) renvoie 1.
      • pgcd(42, 84) renvoie 42.
  3. Écrire une fonction est_premier(n) qui
    • attend en argument un entier positif n,
    • renvoie un booléen :
      • True si n est premier,
      • False sinon
  4. Écrire une fonction nombres_premiers_plus_petits_que(n) qui
    • attend en argument un entier positif n,
    • renvoie ou affiche la liste des nombres premiers plus petits que n.

cm 2019-09 borne I love NSI

Fini ? Whah… Amusez vous à reproduire les figures de ce TP de seconde ou celle ci-dessus 😉

#################
# Bibliotheques #
#################

from turtle import *
from random import choice,randint
from math import pi
from time import sleep

##############
# Exercice A #
##############

def prix_ttc(prix_ht, quantite, taux_tva = 20) :
    """
        Cette fonction attend en argument :

        le prix hors taxes d’une unite
        la quantite (exemple 5 unites)
        le taux de tva (exemple 20 pour cent, valeur par defaut),

        renvoie le prix "toutes taxes comprises"
    """
    return quantite * prix_ht * (1 + taux_tva / 100)

##############
# Exercice B #
##############

def saisie_commande() :
    """
        Cette fonctiondemande a l’utilisateur
        le prix " hors taxes " d’une unite
        la quantite (exemple 5 unites)
        le taux de tva
         appelle alors la fonction fonction prix_ttc
         pour afficher le prix "toutes taxes comprises"
    """

    prix_ht = float(input("saisir le prix hors taxes : "))
    quantite = float(input("saisir la quantite : "))
    taux_tva = float(input("saisir le taux de tva : "))
    print("Le prix ttc est", prix_ttc(prix_ht, quantite, taux_tva))

##############
# Exercice C #
##############

def bosser(n = 42) :

    """
        Cette fonction affiche pour bosser(4)
            Je dois faire 1 exercice.
            Je dois faire 2 exercices.
            Je dois faire 3 exercices.
            Je dois faire 4 exercices.
    """
    if n >= 1 :
        print("Je dois faire 1 exercice.")
    for taf in range(2, n+1) :
        print("Je dois faire", taf, "exercices.")

##############
# Exercice D #
##############

def affiche_dix_suivants():

    """
        Cette fonction demande un nombre a l’utilisateur
        et affiche les dix nombres suivants.
    """

    debut = int(input("Saisir un nombre : "))
    for nombre in range(debut + 1, debut + 11) :
        print(nombre)

##############
# Exercice E #
##############

def de_2_en_2():

    """
        affiche les nombres de 2 en 2 jusqu’à 100
        avec un for puis avec un while.
    """
    for i in range(2, 101, 2) :
        print(i, end=' ')

    print() # à la ligne

    n = 2

    while n < 102 :
        print(n, end=' ')
        n += 2

##############
# Exercice F #
##############

def somme_des_entiers_jusqu_a(n):

    """
        cette fonction attend en argument un entier positif n,
        renvoie la somme des entiers de 1 jusqu’a n.
    """
    somme = 0

    for n in range(1, 101) :
        somme += n
    return(somme)

##############
# Exercice G #
##############

def volume_cone(r, h) :
    """
        cette fonction, a partir de la saisie d’un rayon et d’une hauteur,
        calcule et affiche le volume d’un cône droit
    """
    return pi * r ** 2 * h / 3

##############
# Exercice H #
##############

def carre(longueur, couleur):
    fillcolor(couleur)
    begin_fill()
    for i in range(4):
        forward(longueur)
        left(90)
    end_fill()

def triangle(longueur, couleur):
    fillcolor(couleur)
    begin_fill()
    for i in range(3):
        forward(longueur)
        left(120)
    end_fill()

def geometry_dash_v1() :
    """
        cette fonction dessine a l’aide du module turtle
        des triangles et carres qui ont des côtés qui commencent
        a 40 pixels puis augmentent de 15 pixels a chaque fois.
    """
    up()
    goto(-420,0)
    down()
    clear()
    l = 40                      # longueur initiale
    for truc in range(4) :
        forward(l + 40)
        triangle(l, "pink")
        forward(l + 20)
        carre(l, "cyan")
        l += 15                 # la longueur augmente de 15

##############
# Exercice I #
##############

def encore_des_des() :
    """
        cette fonction tire "des des" au sort
        jusqu’a ce qu’on obtienne 6,
        et compte et affiche les des tires
        et attend une seconde entre deux tirages
    """
    compteur = 1
    de = randint(1, 6)
    print(de)
    sleep(1)
    while de != 6 :
        compteur += 1
        de = randint(1, 6)
        print(de)
        sleep(1)
    print(compteur,"tirage(s).")

2 réflexions au sujet de « TP : Nouvelle série d’exercices – avec corrigé »

  1. Bonjour Monsieur,
    j’apprecierai que vous vous penchiez sur ce morceau de code.
    Merci

    def geometry_dash_v2():
    goto(-300,0)
    for i in range(9):
    choice[triangle,carre](randint(10,100))

    • Bonjour !

      Attention code subtil voire hors programme

      Je pense qu’on a oublié un argument ce matin car le code ci-dessous fonctionne, pour peu qu’on ait deux fonctions carre(longueur, couleur) et triangle(longueur, couleur) attendant en argument longueur qui serait un nombre entier de pixels, et couleur, une couleur dans une chaîne de caractère.

      from turtle import *
      from random import choice,randint
      
      def carre(longueur, couleur):
          fillcolor(couleur)
          begin_fill()
          for i in range(4):
              forward(longueur)
              left(90)
          end_fill()
          
      
      def triangle(longueur, couleur):
          fillcolor(couleur)
          begin_fill()
          for i in range(3):
              forward(longueur)
              left(120)
          end_fill()
      
      def geometry_dash_v3() :
          #speed("fastest")
          up()
          goto(-250,0)
          down()
          clear()
          colors = ["yellow", "pink", "red", "green", "blue", "magenta", "cyan", "purple",
                    "black", "orange", "beige", "grey", "brown"]
          formes=[carre, triangle]
          for truc in range(9) :
              choice(formes)(randint(10, 50), choice(colors))
              forward(60)
      
      geometry_dash_v3()

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.