Aller au contenu

python


loulou34212

Messages recommandés

Bonjour, je suis coincé sur cette question, pouvez vous m'aider svp.
Un représentant touche une commission sur les articles vendus selon le barème de pourcentage par tranches suivant.

► 2% des ventes quand le montant est inférieur à 10000 €;

► 3% des ventes quand le montant est compris entre 10000 et 15000 €;

► 5% des ventes quand le montant est supérieur à 15000 €.

Exemple Le représentant a vendu pour 12000 € d’article. Sa commission se calcule de la façon suivante. 2% de 10000 : 200 €; Il reste 2000 (=12000 – 10000) € qui vont générer 3% de commission soit 60 €. La commission s’élève donc à 260 €.

Écrire en Python, une fonction qui prend pour paramètre le montant total des ventes et qui retourne la commission correspondante.
Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Bonjour à tous, 

Le lien donné par Jules conduit à ... A quoi au fait ? un algorithme ? un programme  Algobox ?

Pour sûr cela n'est pas une fonction (écrite en Python) qui prend pour paramètre le montant total des ventes et qui retourne la commission correspondante...

Math ou info ? peu importe, c'est le prof de math qui... gère.

Autant je m'étais "mis" à Algobox facilement, autant je peine à l'usage de Python (Edupython).

Si notre Loulou :mellow: (j'espère qu'il dispose de Python pour vérifier sa fonction ?) nous fournit la copie de ce qu'il a mis en place, on peut quand même essayer de lui venir en aide (Pzorba est très fort en python :) ) cela  fera un petit entrainement... au moins pour moi.

J'espère que Loulou a eu en classe quelques notions préalables d'algorithmique et une initiation minimale à l'environnement python....

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut
Il y a 5 heures, loulou34212 a dit :

Un représentant touche une commission sur les articles vendus selon le barème de pourcentage par tranches suivant.

► 2% des ventes quand le montant est inférieur à 10000 €;

► 3% des ventes quand le montant est compris entre 10000 et 15000 €;

► 5% des ventes quand le montant est supérieur à 15000 €.

Exemple Le représentant a vendu pour 12000 € d’article. Sa commission se calcule de la façon suivante. 2% de 10000 : 200 €; Il reste 2000 (=12000 – 10000) € qui vont générer 3% de commission soit 60 €. La commission s’élève donc à 260 €.

Écrire en Python, une fonction qui prend pour paramètre le montant total des ventes et qui retourne la commission correspondante.

1.jpg.0f6f8fff48cb9104c4e3bb4681729021.jpg

 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Pour la fonction, j'avais essayé ça, qui semblait fonctionner:

def commission(V):
  if V<10000:
    C=0.02*V
  elif V<15000:
    C=0.02*10000+0.03*(V-10000)
  else:
    C=0.02*10000+0.03*(15000-10000)+0.05*(V-15000)
  return C

Appel simple à la fonction par

print(commission(20000))

Bien sûr, on pouvait simplifier les calculs intermédiaires.

Comme je débute (un euphémisme !) dans ce langage, si j'ai tout faux, ne pas hésiter à me dire pourquoi.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

J'ai fait la traduction pas à pas du programme de Jules (donc sans recourir au "and" de Barbidoux).

J'ai testé et il me semble que cela tourne...  Pourriez vous vérifier ma tentative ? merci.

Je ne comprends pas l'utilité du "return" ? Barbidoux pourrais tu m'expliquer. Merci

1383740299_EB0117com.png.c48be9d2e9ff1a09874d3d162ff61f5d.png

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Une fonction est un bloc d'instructions appelé par le programme principal. Elle commence par une définition et se termine par un return.

Je ne connais pas Python, mais il semble que dans la fonction les variables sont locales.

Donc à partir du "principal" de Barbidoux on appelle une fonction dénommée f à laquelle on associe la variable x. Cette fonction doit mouliner des calculs sur t,  lequel prend la valeur tapée au programme principal et qui était x. Arrivée au bout des calculs, la fonction retourne le résultat au programme principal, d'où l'instruction "return".

Dans le programme principal, la correspondance t <===> x se refait et l'affichage affichera x, calculé par la fonction.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

@ PAVE, à propos du "return" :

Ton programme imprime le résultat, mais tu ne récupères pas celui-ci. Or, a priori, une fonction doit renvoyer un résultat que tu veux récupérer ailleurs, comme avec la fonction sinus(x) par exemple. En Pascal, on faisait la différence avec la procédure, qui faisait quelque chose sans forcément retourner une valeur, par exemple dessiner une figure.

Mais comme dit, je débute ici...

 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Le "return"  a pour but de renvoyer au niveau du programme principal la valeur calculée par la fonction (ici la commission). Le meilleur moyen de comprendre son fonctionnement est d'utiliser ce que calcule  la fonction crée dans un programme principal avec et sans return.   

Je n'ai pas utilisé comme Julesx la subtilité elif qui permet d'imbriquer une suite de tests logiques et qui me semble assez difficile à comprendre pour un élève de seconde.

Faire programmer des élèves de seconde en Python ou en C++ qui ont des exigences particulièrement rigoureuse en matière de syntaxe me semble très ambitieux quand on connait leur manque de rigueur dans le domaine de la sémiotique. 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut
Il y a 7 heures, Barbidoux a dit :

Le "return"  a pour but de renvoyer au niveau du programme principal la valeur calculée par la fonction (ici la commission). Le meilleur moyen de comprendre son fonctionnement est d'utiliser ce que calcule  la fonction crée dans un programme principal avec et sans return.   

Je n'ai pas utilisé comme Julesx la subtilité elif qui permet d'imbriquer une suite de tests logiques et qui me semble assez difficile à comprendre pour un élève de seconde.

Faire programmer des élèves de seconde en Python ou en C++ qui ont des exigences particulièrement rigoureuse en matière de syntaxe me semble très ambitieux quand on connait leur manque de rigueur dans le domaine de la sémiotique. 

Programmer en Python est un art, que seul le compilateur - interpréteur est en mesure d'apprécier, tant la syntaxe est subtile et les résultats des programmes incertains.

Cette technique éloigne quand même beaucoup des notions de base des programmes de mathématiques des lycées.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Tu essayes de comprendre les différents programmes et si tu peux, tu en fais un à ta sauce, avec tes noms de variables. Celui de Barbidoux est complet mais la consigne est :

Citation

Écrire en Python, une fonction qui prend pour paramètre le montant total des ventes et qui retourne la commission correspondante.

À toi de trier.

Lien vers le commentaire
Partager sur d’autres sites

d'accord je v essayer si je te propose quelque chose pourra tu me le corrige stp ?

voila g essayer je suis vraiment pas sur du tout

def commission_sur_ventes(mv):
    cm=0    
    if mv >15000:
        ..........

 

    if 10000<mv<=15000:
        ..........


    if mv<=10000
        ..........


    return cm

ventes=18000 # Choix du montant
print ("La commission se monte à",commission_sur_ventes(ventes),"€")

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

As-tu compris le principe du calcul pour chaque cas ? Si oui, ce ne devrait pas poser de problème pour compléter ton programme. Si non, un peu d'aide :

Si mv est supérieur à 15000 €, la commission cm se calcule comme suit

2% des 10000 premiers euros, soit 0,02*10000=200 €

3 % des euros compris entre 10000 et 15000 €, soit 0,03*(15000-10000)=150 €

5% des euros supérieurs à 15000 euros, soit 0,05*(mv-15000) €.

Au total on a donc cm=0,05*(mv-15000)+150+200=0,05*(mv-15000)+350.

La première condition s'écrit donc

if mv >15000:
        cm=0.05*(mv-15000)+350

C'est tout.

Tu essaies pour les deux autres conditions ?

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Mais tu ne me déranges pas !

Donc, pour la suite...

* Si mv est compris entre 10000 € et 15000 €, la commission cm se calcule comme suit

2% des 10000 premiers euros, soit 0,02*10000=200 €

3% des euros supérieurs à 10000 euros, soit 0,03*(mv-10000) €.

Au total on a donc cm=0,03*(mv-10000)+200

La deuxième condition s'écrit donc

if 10000<mv<=15000:

       cm=0.03*(mv-10000)+200

* Si mv est inférieur à 10000 €, la commission cm se calcule comme suit

2% du montant , soit 0,02*mv

La troisième condition s'écrit donc

if mv<=10000:

      cm=0.02*mv

P.S. : Tu as de quoi tester le programme ?

 

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...
spam filtering
spam filtering