Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 22-11-2018 15:48:11

InconnueX
Invité

Devoir seconde prouver que des aire sont égales

Bonjour,
J'ai un devoir de maths à rendre bientot.
Il me reste deux exercices que je n'arrive vraiment pas à faire:

Exercice 1

Le carré ABCD a un côté de longueur 8  cm. M est un point du segment [AB]. On dessine comme ci-dessus :

►  un carré de côté [AM];

►  un triangle rectangle isocèle de base [MB].

Est-il possible de faire en sorte que l’aire du triangle soit égale à l’aire du carré ? Si oui, préciser dans quels cas c’est possible.

Exercice 2

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 .

En espérant que vous pourrez m'aider,
Merci beaucoup

#2 22-11-2018 20:09:32

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Bonsoir,


Exercice 1
Sans dessin, j'ai inventé le nom des points ; que le carré bleu ou le triangle rectangle isocèle soient dans le carré ABCD ne change rien aux calculs.
181122054428775827.png
On pose $AM = x$
Réponds à ces questions :
1. Quelle est l'aire f(x) du carré bleu ?
2. Sachant que $AB=8$, exprime MB en fonction de $x$
3. Le triangle MEB est rectangle en E : écris le théorème de Pythagore dans ce triangle (en utilisant la valeur de MB trouvée ci-dessus)
4. Mais le triangle MEB n'est pas seulement rectangle mais aussi isocèle de base [MB], donc EM=EB.
    Tu as donc [tex]2EM ^2=\cdots[/tex]  (à compléter)
5. Exprime donc son aire g(x) en fonction de EM, puis de $x$ ?,
6. Tu as alors à résoudre l'équation $f(x)=g(x)$. Montre-la nous...
7. Simplifie cette équation.
8. As-tu vu la mise sous forme canonique ? Si oui, sais-tu le faire. Si non :
    http://www.bibmath.net/forums/viewtopic.php?id=7045  ;  http://www.bibmath.net/forums/viewtopic … 347#p23347

On verra la suite après...

Exercice 2.
Soit ton exemple est faux soit c'est l'énoncé qui est mal formulé. Ton exemple correspond à :
►  2% des ventes quand le montant est inférieur sur la tranche inférieure à 10000 €;

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

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

Ton programme se présente ainsi :

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),"€")

Donc, j'ai eu dans l'idée, au lieu de refaire les mêmes calculs pour rien, d'ajouter dans chacune des tranches à la valeur de la commission existante le montant correspondant à la tranche en cours...

A la main (papier/crayon ou stylo) pour 18000 on fait :

tranche = 18000-15000 = 3000
commission = 3000 *0.05 = 150
(nouveau) montant des ventes :15000

tranche =  montant des ventes -10000
commission =commission+tranche*0.03
(nouveau) montant des ventes :10000

tranche =  montant des ventes -10000
commission =commission+tranche*0.02


Si les ventes sont supérieures à 15000, quand on passe à l'étape 10000 <---> 15000, pas de souci, commission vaut 150 € et on lui ajoute 5000*0.03
Et si le montant des ventes avait été de 14000 € au lieu de 18000, Python lisant "tu ajoutes à la valeur de la commission 3% de 4000 €", se serait arrêté net et t'aurait envoyé un message d'erreur disant en gros : "il faut que j'ajoute à la valeur de la commission... etc., je veux bien, mais c'est quoi commission ? tu n'en as pas parlé avant " :
UnboundLocalError: local variable 'cm' referenced before assignment

Maintenant que tu vois le détail à la main, essaie d'écrire ça avec Python...

Voilà la sortie de mon programme Python :

La commission se monte à  500.0 €

@+


Arx Tarpeia Capitoli proxima...

En ligne

#3 25-11-2018 10:51:39

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Bonjour,je vous remercie pour votre aide.
Voici ce que j'ai fait:

Exercice 1

1)f(x)=x²
2)AB=8 soit MB=8-x
3)(8-x)²=ME²+EB²
soit EM²=(8-x)²-EB²
4)2EM²=2(8-x)²-EB²
5)g(x)=(ME*EB)/2
         =(2EM)/2
         ={racine carré (2-8x)²-EB² }/2

6)x²={racine carré (2-8x)²-EB² }/2
   x²={ (2-8x)-EB }/2
   x²=(16-2x-EB)/2
   x²=8-x-(EB/2)

Est ce correct?

8)Je n'ai pas vu la forme canonique.Je ne pense pas que la prof accepte un raisonnement avec des notions qu'on a pas vu en cours...
Y a t il une autre méthode?
Merci

#4 25-11-2018 10:56:26

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Pour l exercice 2:
Si j'ai bien compris, mon algorythme que je dois écrire en Python est:

Si le montant est inférieur à 10 000:
prendre 0,02*montant
Afficher la réponse

Si le montant est supérieur ou égal à 15000:
prendre 0,02*10 000
Ajouter 0,03*(montant-10 000)
Afficher la réponse

Si le montant est supérieur ou égal à 15000:
Prendre 0,03*15000
Ajouter 0,05*(montant-15 000)

Est ce correct?

Merci pour votre aide

#5 25-11-2018 13:15:38

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Re,

1)f(x)=x²
2)AB=8 soit MB=8-x
3)(8-x)²=ME²+EB²

Jusque là, je te suis...
Maintenant, utilisons ENB isocèle en E : EB=EM, donc EB²=EM²
Et  on reporte :
EB²+EB²=(8-x)²
Soit : [tex]2EB^2=(8-x)^2[/tex]
D'où [tex]EB^2=\frac{(8-x)^2}{2}[/tex]

Aire [tex]g(x)=\frac{EB\times EM}{2}[/tex]
C'est à dire (toujours parce que le triangle est iscocèle et que EB=EM) :
[tex]g(x)=\frac{EB^2}{2}[/tex]

On remplace $EB^2$ d'où [tex]g(x)=\cdots[/tex]

Et pour résoudre [tex]f(x)=g(x)[/tex], je vais regarder pour un autre moyen, sachant qu'en 2nde pour résoudre une équation du 2nd degré, on est très très limité...

Quant à Python...
Non ce n'est pas ce que j'ai dit...
Si le montant des ventes est >15000,  le %  de commission le plus élevée se situant dans la tranche mv -15000
  puis la tranche suivante portera sur mv =15000 donc sur la tranche mv-10000
Et si mv <=15000 ?
Le 1er test  : if mv>15000 n'étant pas positif, on passe au 2e condition :
if mv >10000
Cette condition est vérifiée dans deux cas :
* si mv est effectivement est supérieur à 10000 et inférieur ou égal  à 15000
* si mv était supérieur à 15000, et qu'après le calcul de la commission sur la tranche à 5 %, on a ramené mv à 15000 :
   ainsi le test 10000<mv<=15000 sera positif et on pourra ajouter à la commission du 1er test le montant de la commission de la 2e tranche...
   Et on ramène dans les 2 cas mv à 10000 pour que le 3e test soit vrai (lui, il est toujours vrai)..
   Ce qui se résume à cet organigramme :
   181125011554238052.png

@+


Arx Tarpeia Capitoli proxima...

En ligne

#6 25-11-2018 15:27:21

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Re bonjour

EXO 1:
on a g(x)=EB²/2  et EB²=(8-x)²/2
donc g(x)={ (8-x)²/2 } /2
        g(x)={ (8²-2*8x+x²)/2} /2
        g(x)={ (64-16x+x²)}/2
que faire de cette expression?
merci

#7 25-11-2018 16:17:17

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

EXO 2:

Voilà ce que j'ai compris:

Si mv est supérieur à 15 000:
(commission_représentant=0,05*(mv-15000)
(ensuite logiquement mv=15 000
(on passe à la condition suivante avec mv=15 000 et commission_représentant=0,05*(mv-15000)

Sinon: on passe directement à la condition suivante avec commission_représentant=0

Si mv est compris entre 10 000 et 15000:
(commission_représentant =commission_représentant+0,03*(mv-10000)
(ensuite logiquement mv=10000
(on passe à la condition suivante avec mv=10000

Sinon
On passe directement à la condition suivante avec commission_représentant=0

Si mv est inférieur à 10000:
(commission_représentant=commission_représentant+0,02*mv

Afficher commission_représentant

Est ce correct?

Merci pour votre temps

#8 25-11-2018 18:15:35

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Re,

Il ne faut pas aller trop vite ;
[tex]g(x)=\frac{EB^2}{2}[/tex]  et [tex] EB^2=\frac{(8-x)^2}{2}[/tex]
Après, ça se gâte :
[tex]g(x)=\dfrac{(8-x)^2}{4}[/tex]  Aire du triangle
[tex] f(x)=x^2[/tex]   Aire du carré...

que faire de cette expression?

Lève du nez du guidon, prends de la hauteur !
Que dit l'énoncé ?
Réponse, ceci :

Est-il possible de faire en sorte que l’aire du triangle soit égale à l’aire du carré ? Si oui, préciser dans quels cas c’est possible.

Donc que dois-tu faire ?

Ensuite
* tu ne développes surtout pas,
* tu multiplies les deux membres par 4 (pour te débarrasser du dénominateur),
* tu passes tout dans le même membre,
* tu découvres (je ne l'avais pas vu avant, pourtant "ça crève les yeux !") alors une magnifique différence de deux carrés que tu sais factoriser depuis l'an dernier...
* Cela fait, tu tombes sur [tex]8(\cdots)=0[/tex],
   Et là, tu sais trouver $x$ qui est ta réponse...

Python
Oui, en faisant attention à :
1. Déclarer la commission avec une valeur 0 au début de la fonction
2. A chaque étape d'ajouter à la valeur existante de la commission (même, si cette valeur est 0) le montant pour la tranche en cours
3. A la  fin de l'étape 1 déclarer que mv = 15000
4. A la fin de l'étape 2 déclarer que mv = 10000
   A la fin de ces étapes 1 et 2 et non pas au début des suivantes, vois-tu pourquoi ?

Quand tu auras fini, poste ton code...

@+

Et il n'y a même pas besoin du 3e test à la fin, puisque arrivé là, la valeur de mv sera toujours <=10000
Il suffit alors en intendant correctement d'ajouter à la valeur existante de la commission (même, si cette valeur est 0) le montant pour cette tranche...


Arx Tarpeia Capitoli proxima...

En ligne

#9 26-11-2018 10:43:08

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Re bonjour

voici ce que j'ai fait:

Exo 1

           x²=(8-x)²/4
          4x²=(8-x)²
4x²-(8-x)²=0
(4x + 8-x)( 4x - (8-x) )=0
(4x + 8-x)( 4x +8+x)=0
(3x+8)(5x-8)=0

Donc on a :
3x+8=0     ou  5x-8=0
    3x=-8    ou     5x=8
      x=-8/3 ou       x=8/5
                            x=1,5
La réponse ne peut pas etre négative, donc x=1,5.

Sauf que quand je vérifie mon équation en remplaçant x par 1,5 je vois que c'est faux.J'ai relu mon calcul,je ne comprends pas ou est la faute.

Merci

#10 26-11-2018 10:56:54

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

EXO 2:

Arrivée à l'étape ''commission_sur_ventes=0,05*(mv-15000)'' python m'écrit ''SyntaxError: invalid syntax'' en surlignant ''commission_sur_ventes''.

Pouvez vous m'aider j'ai vraiment du mal avec Python je n'ai pas compris grand chose en cours

merci

#11 26-11-2018 11:29:29

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Re,

Je crois avoir vu...
Quand tu écris :
commission_sur_ventes=0,05*(mv-15000)
si dans ton code, tu as aussi utilisé une virgule, remplace-la donc par un point.
Python est un langage écrit par des gens parlant anglais et pour eux 0,05 s'écrit 0.05...

@+


Arx Tarpeia Capitoli proxima...

En ligne

#12 26-11-2018 14:31:25

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

D'accord je vais réessayer pour Python.

Avez vous vu mon message sur l'exercice 1?Car je bloque vraiment

Merci beaucoup pour votre aide

#13 26-11-2018 14:36:39

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Re

Je viens d essayer avec un point au lieu d'une virgule pour Pyhton mais ça ne marche toujours pas.
Voici le copier/coller de ce que j'ai fait sur Python:
>>> def commission_sur_ventes(
    cm=0
    if mv >15000
    commission_sur_ventes=0.05*(mv-15000)
   
SyntaxError: invalid syntax
>>>

NB: la partie ''commission_sur_ventes'' de la ligne ''commission_sur_ventes=0.05*(mv-15000)'' est surlignée en rouge.

Qu'en pensez vous?

Merci

#14 26-11-2018 15:00:41

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Re;

Bon, Moi j'ai écrit une sottise pour [tex]8(\cdots)[/tex]...

On trouve effectivement !
[tex]4x^2-(8-x)^2=0[/tex]
Soit :
[tex](2x)^2-(8-x)^2=0[/tex]
[tex][2x-(8-x)][2x+(8-x)]=0[/tex]
[tex](2x-8+x)(2x+8-x)=0[/tex]
[tex](3x-8)(x+8)=0[/tex]

Je note les erreurs
[tex]4x^2\neq (4x)^2[/tex]  mais [tex]4x^2=2^2\times x^2  =(2\times x)^2 =(2x)^2[/tex]

(4x + 8-x)(4x - (8-x))=0
(4x + 8-x)(4x +8+x)=0
Ça c'est faux : enlever des parenthèses précédées d'un - se fait en changeant tous les signes qui sont à l'intérieur :
[tex]... - (8-x) = -8+x[/tex]
Tu ne vois pas de signe entre la parenthèse ouvrante et le 8 ? Normal c'est un +...
Cela vient des règles de simplification d'écriture vues en 5e (désolé, c'est pas vexatoire, mais une précision dans le temps...) :
Lorsqu'un nombre ou une lettre (ou les deux, par ex : 2x) est le premier d'une ligne ou d'une parenthèse) , si son signe est +, on ne l'écrit pas (parce qui si c'est un - on est obligé de l'écrite : conclusion : si on ne voit pas de moins, c'est que c'est un +)...
Tu as une solution négative que tu élimines et une autre positive.
La réponse est donc : l'aire du carré et et du triangle rectangle isocèle sont égales lorsque $x$, c'est à dire $AM =\frac 8 3$...

Python
1. Si tu choisis la variable commission_sur_ventes, alors commence par : commission_sur_ventes=0 et non cm =0 sinon Python va râler
    Plus loin, remplacer partout cm par commission_sur_ventes  si besoin est.
2. Deux erreurs pour le prix d'une : c'est la promo du Cyber Monday ^_^ :
    D'abord tu as oublié les deux points en fin de ligne, puis tu n'as pas indenté la ligne suivante par rapport au "i" de if...
    Il te faut donc écrire :
    if mv >15000:
        commission_sur_ventes=0.05*(mv-15000)

Dernière chose que je viens de remarquer :
ta fonction est intitulée 
def  commission_sur_ventes(mv):
    ........................
n'utilise pas le même nom pour la fonction et pour la variable commission_sur_ventes, c'est pour cela que j'avais écrit cm =0.
Si cm ne te plaît pas, appelle ta variable commission tout court (par ex) ou autrement, mais pas commission_sur_ventes...
Tu as ici un programme très court, mais imagine qu'il ait 1000 lignes et que la fonction soit appelée en 200 lignes différentes et ta variable calculée 500 fois tout ça avec le même nom : alors imagine le bazar que ce serait pour trouver la bonne ligne fausse...

@+


Arx Tarpeia Capitoli proxima...

En ligne

#15 26-11-2018 21:09:31

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

RE,

Python

A regarder si vraiment ça ne marche toujours pas

def commission_sur_ventes(mv):
    cm=0
    if mv>15000:
        cm=0.05*(mv-15000)
        mv=15000
    if 10000<mv<=15000:
        cm=cm+0.03*(mv-10000)
        mv=10000
    cm=cm+0.02*mv
    return cm

ventes=18000
print ("La commission se monte à",commission_sur_ventes(ventes),"€")
 

La sortie obtenue pour ventes =18000 :

La commission se monte à 500.0 €

Normalement, en Python, on n'écrit pas
cm=cm+0.03*(mv-10000)
mais plutôt
cm+=0.03*(mv-10000)
ou
cm=cm+0.02*mv
mais
cm+=0.02*mv

Si tu l'a vu en classe, alors écris-le comme ça, sinon tu restes comme dans le code ci-dessus...

Mais j'aimerais bien que tu aies parfaitement compris et que tu sois capable de réexpliquer - et justifier - chaque étape de la fonction.
Quand cela sera réglé, je te montrerai une solution naïve où on fait 6 calculs au lieu de 3 et tu pourras comparer...

@+

Dernière modification par yoshi (27-11-2018 09:14:13)


Arx Tarpeia Capitoli proxima...

En ligne

#16 27-11-2018 10:07:04

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Bonjour,

Pour l'exercice 1 j'ai compris mon erreur.Je vous remercie pour votre aide.

Pour l'exercice 2,mon programme ne marchait pas car je ne mettais pas le double point a la fin de la ligne ''if'' (je viens juste de m en rendre compte!!)
Du coup mon programme marche jusqu'au moment où j 'écris la variable ''ventes''.Là, Python m'écrit ''SyntaxError: invalid syntax''.

>>> def commission_sur_ventes(mv):
    cm=0
    if mv>15000:
        cm=0.05*(mv-15000)
        mv=15000
    if 10000<mv<=15000:
        cm=cm+0.03*(mv-15000)
        mv=10000
    cm=cm+0.02*mv
    return cm
ventes=18000
SyntaxError: invalid syntax
>>>
je ne comprends pas car normalement on peut ajouter des variables dans un programme à partir du moment où on lui attribue une valeur.
Pouvez vous m'expliquer pourquoi ça ne marche pas?

Merci beaucoup pour votre aide

#17 27-11-2018 11:14:42

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Re,

Pour l'exercice 2,mon programme ne marchait pas car je ne mettais pas le double point a la fin de la ligne ''if'' (je viens juste de m en rendre compte!!)

C'est bien, mais cela prouve que tu n'as pas fait attention à la partie Python du post #14 où je te l'ai écrit noir sur blanc.

Cette ligne-là est fausse, ce n'est pas mv-15000 mais mv-10000...
J'ai aussi l'erreur...
C'est l'IDLE de Python qui est mal foutu, il n'est pas fait pour ça...
Quand je teste des fonctions, je mets la fonction en mémoire (juste après return cm, j'appuie une fois sur Entrée pour aller à la ligne, puis une deuxième fois pour indiquer que c'est fini...
Ensuite après le >>> qui est réapparu je tape ventes=18000 et Entrée
puis après le nouveau >>> je tape : print(commission_sur_ventes(ventes)) et Entrée...

>>> def commission_sur_ventes(mv):
    cm=0
    if mv>15000:
        cm=0.05*(mv-15000)
        mv=15000
    if 10000<mv<=15000:
        cm=cm+0.03*(mv-10000)
        mv=10000
    cm=cm+0.02*mv
    return cm

>>> ventes=18000
>>> print (commission_sur_ventes(ventes))
500.0
>>>

Tu peux gagner une manipulation.
Au lieu de taper :
>>> ventes=18000
>>> print (commission_sur_ventes(ventes))
Tu le fais en une fois :
>>> print (commission_sur_ventes(18000))
500.0
>>> print (commission_sur_ventes(24000))
800.0

Moi, j'ai pris l'habitude de cliquer sur File, puis sur new File, une fenêtre vierge s'ouvre, j'y mets mon code puis je clique sur File, puis sur save, je donne un nom et Entrée.
Pour le faire fonctionner  je clique dans la fenêtre programme sur Run, puis Run Module. Ou alors depuis la fenêtre programme, j'appuie sur F5...

@+


Arx Tarpeia Capitoli proxima...

En ligne

#18 27-11-2018 11:23:17

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Re,

Pour l'exercice 2,mon programme ne marchait pas car je ne mettais pas le double point a la fin de la ligne ''if'' (je viens juste de m en rendre compte!!)

C'est bien, mais cela prouve que tu n'as pas fait attention à la partie Python du post #14 où je te l'ai écrit noir sur blanc.

Uee ligne est fausse : ce n'est pas cm=cm+0.03*(mv-15000) mais cm=cm+0.03*(mv-10000)
J'ai aussi l'erreur...
C'est l'IDLE de Python qui est mal foutu, il n'est pas fait pour ça...
Je pense que c'est à cause de la fonction : d'abord la valider, ensuite l'utiliser (tu peux l'appeler autant de fois que tu veux) :
quand je teste des fonctions, je mets la fonction en mémoire (juste après return cm, j'appuie une fois sur Entrée pour aller à la ligne, puis une deuxième fois pour indiquer que c'est fini...)

Ensuite après le >>> qui est réapparu je tape ventes=18000 et Entrée
puis après le nouveau >>> je tape : print(commission_sur_ventes(ventes)) et Entrée...

>>> def commission_sur_ventes(mv):
    cm=0
    if mv>15000:
        cm=0.05*(mv-15000)
        mv=15000
    if 10000<mv<=15000:
        cm=cm+0.03*(mv-10000)
        mv=10000
    cm=cm+0.02*mv
    return cm

>>> ventes=18000
>>> print (commission_sur_ventes(ventes))
500.0
>>>

Tu peux gagner une manipulation.
Au lieu de taper :
>>> ventes=18000
>>> print (commission_sur_ventes(ventes))

Tu le fais en une fois :
>>> print (commission_sur_ventes(18000))
500.0
>>> print (commission_sur_ventes(24000))
800.0

Moi, j'ai pris l'habitude de cliquer sur File, puis sur New File, une fenêtre vierge s'ouvre, j'y mets mon code puis je clique sur File, puis sur save, je donne un nom et Entrée.
Pour  faire fonctionner le programme enregistré, je clique dans la fenêtre programme sur Run, puis Run Module. Ou alors depuis la fenêtre programme, j'appuie sur F5...
Tu as tout compris du fonctionnement de la fonction ?

@+


Arx Tarpeia Capitoli proxima...

En ligne

#19 27-11-2018 11:45:14

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Re

Enfin ça marche en mettant la fonction en mémoire comme vous avez dit 


def commission_sur_ventes(mv):
    cm=0
    if mv>15000:
        cm=0.05*(mv-15000)
        mv=15000
    if 10000<mv<=15000:
        cm=cm+0.03*(mv-10000)
        mv=10000
    cm=cm+0.02*mv
    return cm

>>> ventes=18000
>>> print(commission_sur_ventes(ventes))
500.0

Merci beaucoup pour votre aide j'espère avoir une bonne note!!

#20 27-11-2018 11:48:18

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : Devoir seconde prouver que des aire sont égales

Voilà la version "naïve" :

def commission_sur_ventes(mv):
    if mv>15000:
        cm=0.05*(mv-15000)
        cm+=0.03*(15000-10000)
        cm+=0.02*10000
    elif 10000<mv<=15000:
        cm=0.03*(mv-10000)
        cm+=0.02*10000
    else:
        cm=0.02*mv
    return cm

ventes=24000
print ("La commission se monte à",commission_sur_ventes(ventes),"€")

Un peu moins naïf :

def commission_sur_ventes(mv):
    if mv>15000:
        cm=0.05*(mv-15000)+350
    elif 10000<mv<=15000:
        cm=0.03*(mv-10000)+200
    else:
        cm=0.02*mv
    return cm

ventes=24000
print ("La commission se monte à",commission_sur_ventes(ventes),"€")

Explication de ce dernier code :
Pour mv>15000 la commission est composée de
* 0.05*(mv-15000) : là, ça varie en fonction de mv
* 0.03*5000  (5000=15000-10000) = 150
* 0.02*10000  = 200
Elle se monte donc à : 0.05*(mv-15000)+350

Pour 10000<mv<=15000 la commission est composée de
* 0.03*(mv-10000) : là, ça varie en fonction de mv
* 0.02*10000  = 200
Elle se monte donc à : 0.03*(mv-10000)+200

Pour mv<=10000 la commission est composée de
0.02*mv qui varie en fonction de mv

A toi de choisir...


Arx Tarpeia Capitoli proxima...

En ligne

#21 28-11-2018 14:34:29

InconnueX
Invité

Re : Devoir seconde prouver que des aire sont égales

Merci beaucoup je pense que je vais choisir le premier code

Pied de page des forums