kamovb
Messages postés18Date d'inscriptionsamedi 11 février 2006StatutMembreDernière intervention17 septembre 2014
-
4 juin 2008 à 19:01
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 2009
-
6 juin 2008 à 00:48
salut tous le monde
j'ai 2 variables réels
somme et tim
le probléme est:
- si somme=100 alors tim=0
-si somme =500 alors tim=2.50
si somme >=1000 alors tim =3.25et ainsi de suite, chaque fois que la somme(1000)+500 le "tim" +1.25
aidez moi SVP!
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 4 juin 2008 à 20:24
Salut,
Pas très clair l'explication... Mais si on traduit ton explication en code:
' si somme=100 alors tim=0
If Somme = 100 Then
Tim = 0
' si somme =500 alors tim=2.50
ElseIf Somme = 500 Then
Tim = 2.5
' si somme >=1000 alors tim =3.25, chaque fois que la somme(1000)= +500 le "tim" = +1.25
ElseIf Somme >= 1000 Then
Tim = Math.Floor(Somme / 500) * 1.25 + 0.75
End If
ça donne ceci:Somme 100> Tim = 0 : OKSomme 499> Tim = Rien : ???Somme 500> Tim = 2.5 : OKSomme 501> Tim = Rien : ???Somme 1000> Tim = 3.25 : OKSomme 1250> Tim = 3.25 : OK?Somme 1500> Tim = 4.5 : OK?Somme 2000> Tim = 5.75 : OK?
Mais alors que faire si Somme = 99, 101, 450, 499, 501, etc ???
<hr size="2" width="100%" />
Pourquoi avoir accepté la réponse de DARKSIDIOUS?
Son code génère ceci:
Somme 100> Tim = 0 : OKSomme 500> Tim = 0 : FauxSomme 1000> Tim = 1.25 : FauxSomme 1500> Tim = 2.5 : FauxSomme 2000> Tim = 3.75 : Faux
Je comprend vraiment rien aujourd'hui
Vous n’avez pas trouvé la réponse que vous recherchez ?
kamovb
Messages postés18Date d'inscriptionsamedi 11 février 2006StatutMembreDernière intervention17 septembre 2014 5 juin 2008 à 13:09
merci a vous tous!
voila ce que j'ai fais:
if s>=500 then
text2.text="2.5"
elseif s<=500 then
text=2.text="0"
end if
while s>500
tim=tim+1.25
s=s-500
text2.text=tim
wend
est-ce que ça va ?!!!!!!!!
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 5 juin 2008 à 23:15
Bonsoir,
Kevin.Ory a raison d'insister. Les valeurs ne suivent d'ailleurs pas une suite "logique". Quel est les vrais valeurs, ou plus précisément quelle logique doit suivre la suite... Il est clair qu'il faudrait programmer la relation (fonction math) par un calcul d'une formule, et non par une boucle...
Il serait bon d'apporter plus de précision sur ce point, pour aller plus loin, me semble-t-il.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 6 juin 2008 à 00:48
Merci Us
Les valeurs du début sont sans doute correct (a toi de voir kamovb, on en sais pas assez pour Somme<1000), mais pour Somme>=1000 la boucle est fausse, de plus beaucoup plus lente que ma solution:
Tim = Math.Floor(Somme / 500) * 1.25 + 0.75
A passage, les solutions données par Us (DivRem (Mod)) et par jmfmarques (\) fonctionne très bien aussi, ça donne la même chose...
En puis ton "text2.text=tim" il faut le mettre après la boucle, pas à l'intérieur.