Page 1 sur 1

java vers pb

Publié : mar. 08/mars/2011 18:20
par Scrat
Salut

j'ai un souci pour traduire une ligne de code java en pb

le java

Code : Tout sélectionner

if (Math.abs(X2) > Math.PI/2) X2 = X2>0 ? Math.PI-X2 : -(Math.PI-X2)
Je ne vois pas comment interpreter l'expression X=X2>0

sans cette expression on pourrait traduire par

Code : Tout sélectionner

if Abs(X2)>#PI/2
X2=#PI-X2
else
X2=-(#PI-X2)
endif
avez vous une idée

Merci

Re: java vers pb

Publié : mar. 08/mars/2011 18:45
par MLD
Salut
regarde si c'est ok. Sans garantie
if X2 > 0
x=x2
endif

Re: java vers pb

Publié : mar. 08/mars/2011 18:55
par GeBonet
Scrat a écrit :

Code : Tout sélectionner

if Abs(X2)>#PI/2
X2=#PI-X2
else
X2=-(#PI-X2)
endif
Seul attention c'est que X2 doit être au moins de type .f soit => X2.f
Sinon considéré comme Entier !
Pour tester écrit au tout début de ta séquence :
X2=3.55 et test...
puis après avec
X2.f=3.55
Tu pourra apprécier la différence :wink: !

Re: java vers pb

Publié : mar. 08/mars/2011 18:59
par Scrat
@MLD

Oui isolé ça parait logique, mais cette expression est deja dans une condition
if (Math.abs(X2) > Math.PI/2) X2 = X2>0 ? Math.PI-X2 : -(Math.PI-X2)
@GeBonet

Pas probleme a ce niveau les variables sont des doubles .d
C'est l"expression en rouge dans la condition qui me fait coincer

Re: java vers pb

Publié : mar. 08/mars/2011 20:08
par G-Rom
X2.f = 3.2

If Abs(X2) > #PI/2
If X2>0
Resultat.d = #PI - X2
Else
Resultat.d = -#PI - X2
EndIf
EndIf


Debug Resultat


Ta partie en rouge utilise un opérateur ternaire "?" , si elle est vrai (la condition que tu as mis en rouge) , on execute le code à gauche de ":" , sinon on exécute à droite.

Re: java vers pb

Publié : mar. 08/mars/2011 20:28
par Scrat
Merci G-Rom, ça me semble bien ça !

C'est la double condition qui m'échappait

L'operateur ternaire je m'en sert en php mais plutôt sous la forme
A=(B>C) ? D: E;

Là je trouve pas ça lisible du tout, mais bon pourquoi pas

A+

Re: java vers pb

Publié : mar. 08/mars/2011 23:49
par Ar-S
Et "And" tout simplement non ?

Code : Tout sélectionner

If Abs(X2) > #PI/2 And X2>0
  Resultat.d = #PI - X2
Else
  Resultat.d = -#PI - X2
EndIf
P.S
Si tu as résolu mets un petit [resolu] devant ton titre ;)

[Résolu] Re: java vers pb

Publié : mer. 09/mars/2011 8:17
par Scrat
Ar-S a écrit :Et "And" tout simplement non ?

Code : Tout sélectionner

If Abs(X2) > #PI/2 And X2>0
  Resultat.d = #PI - X2
Else
  Resultat.d = -#PI - X2
EndIf
Non, le ternaire s'applique sur la condition X2>0
Fait un test sur l'intervalle ]-∞;-PI/2]

A+

Ps: un petit bouton qui insere le tag résolu en couleur se serait sympa