java vers pb

Sujets variés concernant le développement en PureBasic
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

java vers pb

Message 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
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: java vers pb

Message par MLD »

Salut
regarde si c'est ok. Sans garantie
if X2 > 0
x=x2
endif
Avatar de l’utilisateur
GeBonet
Messages : 453
Inscription : ven. 29/févr./2008 16:17
Localisation : Belgique

Re: java vers pb

Message 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: !
Windows 7 et Windows 8.1 Pb 5.0 jusque 5.24 Lts 64 et 5.3 (64)/b]
“Ceux qui rêvent éveillés ont conscience de mille choses qui échappent à ceux qui ne rêvent qu’endormis.”
-Edgar Allan Poe-
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Re: java vers pb

Message 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
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: java vers pb

Message 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.
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

Re: java vers pb

Message 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+
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: java vers pb

Message 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ègles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Scrat
Messages : 86
Inscription : sam. 15/mars/2008 16:00

[Résolu] Re: java vers pb

Message 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
Répondre