Sujets variés concernant le développement en PureBasic
Scrat
Messages : 86 Inscription : sam. 15/mars/2008 16:00
Message
par Scrat » mar. 08/mars/2011 18:20
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
avez vous une idée
Merci
MLD
Messages : 1124 Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne
Message
par MLD » mar. 08/mars/2011 18:45
Salut
regarde si c'est ok. Sans garantie
if X2 > 0
x=x2
endif
GeBonet
Messages : 453 Inscription : ven. 29/févr./2008 16:17
Localisation : Belgique
Message
par GeBonet » mar. 08/mars/2011 18:55
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
!
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
Message
par Scrat » mar. 08/mars/2011 18:59
@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
Message
par G-Rom » mar. 08/mars/2011 20:08
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
Message
par Scrat » mar. 08/mars/2011 20:28
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+
Ar-S
Messages : 9539 Inscription : dim. 09/oct./2005 16:51
Contact :
Message
par Ar-S » mar. 08/mars/2011 23:49
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
Scrat
Messages : 86 Inscription : sam. 15/mars/2008 16:00
Message
par Scrat » mer. 09/mars/2011 8:17
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