[R] Besoin d'aide pour un petit calcul

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Besoin d'aide pour un petit calcul

#1

Message par pierrotm777 »

Bonjour,

J'ai un petit problème de calcul .

J'ai une variable ($pente) qui peut varier de +45° à -45° et une variable ($slider) qui peut aller de 65536 à 0.

En fait:
si la variable $pente = +45° ou supérieure, ma variable $slider doit valoir 65536
si la variable $pente = 0° ma variable $slider doit valoir 32768
si la variable $pente = -45 ° ou inférieure, ma variable $slider doit valoir 0.

Comment puis je écrire cela svp afin de connaitre la valeur de $slider pour $pente compris entre + et - 45°

Merci par avance.
Modifié en dernier par pierrotm777 le mer. 08 sept. 2010 19:13, modifié 2 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#2

Message par sksbir »

bonjour
ton énoncé est incomplet : quelle valeur doit avoir slider entre -45 et 45? tu précises pour 0, mais pas pour les autres valeurs de la fourchette.

si c'est idem 0 pour entre -45 et 45 alors

tu fais ça en 3 tests.

if ($PENTE >= 45) then
$slider=65535
elseif ($pente >-45 ) and ( $pente <45) then
$slider=32768
else
$slider=0
endif
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#3

Message par pierrotm777 »

C'est bien mon problème.
J'ai eu la même idée que vous et j'avais pensé à trois tests aussi:

Code : Tout sélectionner

If $pente > 0 Then $slider = Round(Abs(65536/$pente)
If $pente < 0  Then $slider = Round(Abs(1/$pente))
If $pente = 0  Then $slider = 32768
Je viens de penser à une solution de calcul assez simple.
Si mon slider possède 20 positions, il en a alors 10 entre +-45° .

Mais cela ne me donne pas une solution au ° prét , bien que je pense que cela devrait suffire .
Il faudrait donc diviser (65536-32768)/9 et 45/9 avec une solution de 5° en 5°.

Qu'en pensez vous ?
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#4

Message par matwachich »

Désolé sksbir mais ta réponse n'a rien à voir!

voila!
► Afficher le texte
Au fait, voici le raisonnement:
Tu veut ça:
- P = 45 => S = 65536
- P = 0 => S = 32768
- P = -45 => S = 0

Si on prend une nouvelle variable P2 = P + 45, on aura:
- P + 45 = 90 => S = 65536
- P + 45 = 45 => S = 32768
- P + 45 = 0 => S = 0
Donc:
- P2 = 90 => S = 65536
- P2 = 45 => S = 32768
- P2 = 0 => S = 0

C'est déja plus facile à résoudre!
prenons le premier cas:
S = (65536 / 90) x P2
=> S = (65536 / 90) x (P + 45)

Et voici l'équation qui donne S à partir de P

(Et ouais, j'ai eu 19/20 en math au bac!!! :D :P )
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#5

Message par pierrotm777 »

Je test ça , mais cela m'a l'air d'être ce dont j'ai besoin ! :D
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#6

Message par Iste »

Heu ouais enfin, c'est qu'un simple produit en croix hein

Sinon, pensez a rendre vos fonctions aussi génériques que possible

Code : Tout sélectionner

Func _calc($pente)
    Local $slider, $penteAbs
    
    $penteAbs = $pente
    If $penteAbs < -45 Then $penteAbs = -45
    If $penteAbs > 45 Then $penteAbs = 45
    
    $slider = (65536/90)*($penteAbs+45)
    
    Return $slider
EndFunc
Et également a utiliser les balises de code dans vos messages.
Signez ici
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#7

Message par sksbir »

matwachich a écrit :Désolé sksbir mais ta réponse n'a rien à voir!
A mon tour d'être désolé, mais je maintiens ce que j'ai dit : l'énoncé est incomplet, car il n'est précisé nulle part que la variable de sortie doit avoir une valeur linéaire de 0 à 655535 en fonction de la variable d'entrée dans la fourchette -45 à +45 ;)

Ceci dit, belle extrapolation, et belle réalisation :)
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Besoin d'aide pour un petit calcul

#8

Message par pierrotm777 »

Merci à tous pour votre intérêt pour mon problème qui est bien résolu. :D
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] Besoin d'aide pour un petit calcul

#9

Message par matwachich »

C'est vrai que c'est pas complete comme énoncé, mais regarde cette phrase:
"connaitre la valeur de $slider pour $pente compris entre + et - 45°"

Elle veut tout dire!!!

M'enfin bref! tout est bien qui fini bien!

PS: désolé pour les balises
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Besoin d'aide pour un petit calcul

#10

Message par pierrotm777 »

L'essentiel est d'être compris ! :D
Répondre