TP – deux heures à programmer ;-)

Échauffement – papier, stylo :

Écrire une fonction collier() qui appelle notre fonction carre(longueur, couleur) et une fonction triangle(longueur, couleur) et qui dessine ceci :

TP -> à vos claviers !

A faire dans l’ordre. Les trois premiers exercices sont ceux de la dernière fois.

Mise à jour après le cours :

  • tout le monde galère dès l’exercice 4 😦
  • mais on reprend tranquillement mercredi 😀
  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 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.

  4. É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.
  5. É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
  6. É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 😉

13 réflexions au sujet de « TP – deux heures à programmer ;-) »

  1. Bonjour !

    J’aurais besoin d’aide concernant « est_premier(n) » :
    Existe-t-il une « option » pour tester si la valeur donnée est un nombre entier ?

    Merci 🙂

    • Oui ! Bonjour !

      Effectivement il y a. Je rédige ça dès que j’ai un peu de temps et accès à un pc plus bas(voir « mise à jour sur PC ») (avec floor de la bibliothèque math)

      Depuis mon bus sur mon smartphone, je peux déjà indiquer que n est divisible par p si le reste dans la division de n par p est zéro… Bref pour p dans range(2, n),

      if n % p == 0 :

      alors n n’est pas premier.
      Bon courage !

      Mise à jour sur PC :
      la fonction floor(truc) donne la partie entière, soit le plus grand entier plus petit ou égal à truc. Le problème c’est qu’elle renvoie un entier, alors il faut changer le type en flottant(float) pour tester si floor(truc) == truc … Auquel cas truc est entier… et en plus la comparaison de deux flottants est à proscrire donc… préférer le test ci-dessus. Je mets quand-même ceci :

      >>> from math import floor
      >>> n = 6
      >>> p = 3
      >>> n / p
      2.0
      >>> floor(n / p)
      2
      >>> float(floor(n / p)) == n / p
      True
      >>> n = 6
      >>> p = 4
      >>> n / p
      1.5
      >>> floor(n / p)
      1
      >>> float(floor(n / p)) == n / p
      False
      >>> 
  2. Bonjour,
    en essayant de refaire le programme prix_ttc ,
    J’ai rencontré un problème lorsque je lance mon programme,
    1570289645-prix-ttc
    On peut voir après avoir répondu aux questions
    Voici mon programme;
    1570289770-prix-ttc-2

    Merci

    • Bonjour !

      Très bonne question. Alors ta fonction saisie_commande appelle ta fonction prix_ttc et c’est ce qu’on veut !

      Mais justement, prix_ttc est une fonction, et tu l’utilises comme une variable : une fonction attend des parenthèses et parfois des arguments donc

      print(prix_ttc)

      affiche

       <function prix_ttc at 

      (suivi d’une adresse mémoire en héxadécimal)

      print(prix_ttc(30,3,5.5))

      afficherait bien le prix pour 3 articles à 30 € hors taxes et à 5,5% de tva.

      Bref, si tu mets le print à la ligne au dessus, quand tu appelles prix_ttc avec trois arguments, ça ira…
      …mais corrige en enlevant le «= 20», qui, lui non plus, n’a pas de sens quand tu appelles la fonction, mais n’en a que quand tu définis la fonction.

      Je te suggère de faire un

      taux_tva = float(input("saisir le taux de tva"))

      puis un

      print("Le prix ttc est",prix_ttc(prix_ht, quantite, taux_tva))

      Voilà !

      Enfin note bien le «float» plutôt qu’un «int» pour avoir la possibilité de saisir un nombre « à virgule » de type flottant.

      Bonne journée et bon courage !

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.