Je ne parle pas d'arrondir mais d'utiliser la partie entière en la transférant dans un variable de type int.
degrereel= (int(degrereel) % 360 )+(degrereel - int(degrereel)) ;
if (degrereel < 0){degrereel = degrereel + 360;}
if(((oriente == sud)&&((135<=degrereel)||(degrereel<=45)){}
si j'ai bien compris
C'est bien ça.
Pas mesure de précaution, fais un cast (float) des resultats int.
if(((oriente == sud)&&((135<=degrereel)||(degrereel<=45)){}
En dehors du problème de parenthèses, ta deuxième condition n'est pas bonne.
effectivement bête erreur de ma part
if((oriente == sud)&&(135<=degrereel)&&(degrereel<=45)){}
sinon je disait précédemment qu'il n'y a aucune différence entre les degrée et les radiant que ce n’était qu'un question de calcule et d'intervalle, mais j'oubliais une chose, si j'introduit "pie" ne risque t'il pas d'y avoirs un problème de domaine , la variable float suffirat elle ?
Ta condition n'est toujours pas bonne (cf post #16).
Pour le passage degrés vers radian, il suffira de modifier les valeurs de comparaison. Mais le modulo devra être supprimé car une addition ou soustraction de 2π sera plus simple dans un while.
Ou alors tu Multiplies par 360/(2π).
if((oriente == nord)&&(135<=degrereel)&&(degrereel<=45)){}
ah oui.
je pensse avoir toutes les clées en mains , il me reste pus qu'a faire sa pour tout mes intervalle ....:'(, pour peux que je face pas de bête érreur de calcule ;).
merci beaucoup pour ton aide.
Zlika:
Le not (!) s'utilise généralement devant la variable booléenne à inverser.
Non... pas généralement... c'est là où il doit être...
boolean toto = true;
toto = !toto; // toto devient faux
si vous écrivez
toto = toto!;
vous aurez une erreur à la compilation
[color=orange]error: expected ';' before '!' token
toto = toto!;[/color]
degrereel= (int(degrereel) % 360 )+(degrereel - int(degrereel)) ;
if (degrereel < 0){degrereel = degrereel + 360;}
attention de ne pas prendre le modulo d'un nombre négatif. c'est indéfini
Bien vu J-M-L :).
Bonne continuation bengloo59 ;).
Édit: finalement un while <0 et >=360 avec un if +360 else -360 sera plus simple.
ok ok
le ! devant et non derrière
et je place devant la fonction du modulo la fonction qui fait passe degrereell au négatif
il y'a une chose que je n'ai pas encors compris c'est l'écriture du cast qu tu m'a conseillé , je ferait des recherches plus tard.
pour l'instant le devoirs m'appel...
bonsoir et merci beaucoup pour votre aide
Pour faire simple:
while (degrereel < 0) degrereel += 360;
while (degrereel >= 360) degrereel -= 360;
et pour bien faire rajouter un 's' au nom de la variable et du camelCase. --> degresReel ça sera plus lisible