(basic) pb de compréhension d'un calcul

Résolu/Fermé
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 - 27 déc. 2007 à 10:30
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 - 27 déc. 2007 à 15:18
Bonjour,

je suis actuellement en stage, et je cherche à comprendre un programme qu'on m'a demandé de refaire dans un autre langage (java)
Mais je bloque sur une ligne de calcul que je ne comprend pas :

R(14) = (1 + 103 / R(45) - 2300 / R(45) ^ 2) * -((R(45) >= 80) AND (R(45) <= 3410)) + 1.03 * -(R(45) > 3410)


R() est un tableau de double

Je ne comprend pas le "AND" et le ">". Est-ce que cela signifie qu'on fait le calcul si telle condition est remplie ??


Merci pr votre aide !
A voir également:

10 réponses

blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 déc. 2007 à 10:38
Salut,

c'est du basic ?

Il faut savoir que l'évaluation d'une condition renvoie vrai ou faux, mais selon les langages, il est possible que le test 'vrai/faux' n'existe pas, on utilise donc une valeur numérique pour vérifier la condition, généralement -1 veut dire vrai et 0 veut dire faux.

Essaie d'afficher a=2, généralement tu verras le résultat -1 à l'écran, mais si tu essaies d'afficher 3=2, tu devrais obtenir 0...

Dans ton cas, R(14) devrait contenir -1 ou 0 selon que les conditions sont remplies ou non.

C'est plus clair ?
1
Utilisateur anonyme
27 déc. 2007 à 10:33
R14 je pance sa veut dire requete 14 tu doi surement selectionner (1 + 103 / R(45) - 2300 / R(45) ^ 2) * -((R(45) >= 80) et le and veut dire que tu doi selectionner un deuxieme truk je pence :AND (R(45) <= 3410)) + 1.03 * -(R(45) > 3410)
0
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 4
27 déc. 2007 à 10:47
Oui merci c'est plus clair !
Et oui, c'est du basic, par contre je peux pas faire le test... je l'ai juste sur papier, c'est un vieux programme qu'il veule refaire fonctionner et j'ai rien pr faire du basic, donc est-ce que tu sais si, en basic, quand la condition est remplie on renvoie -1 et 0 sinon, ou autre chose ?


Donc en fait, mon R(14) devrais contenir soit 0, soit la valeur de (1 + 103 / R(45) - 2300 / R(45) ^ 2) si les 2 conditions sont vraies.
Est-ce que je me trompe ?

merci encore !:)
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 déc. 2007 à 10:58
Pour tester du basic :

https://www.google.fr/search?hl=fr&q=basic+gratuit&btnG=Recherche+Google&meta=&gws_rd=ssl

Donc en fait, mon R(14) devrais contenir soit 0, soit la valeur de (1 + 103 / R(45) - 2300 / R(45) ^ 2) si les 2 conditions sont vraies.
Est-ce que je me trompe ?

OUI !

R(14) contiendra -1 si (1 + 103 / R(45) - 2300 / R(45) ^ 2) * -((R(45) >= 80) ET si (R(45) <= 3410)) + 1.03 * -(R(45) > 3410), sinon il contiendra 0. Regarde bien : on fait le test d'une formule par rapport à 80 et un test d'une autre formule (elle-même alambiquée !) par rapport à 3410.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 4
27 déc. 2007 à 11:06
Merci beaucoup pr ton aide ! c'est nikel :D
0
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 4
27 déc. 2007 à 13:33
J'aurais encore besoin d'un petit coup de pouce pr une autre formule :

R(17) = VAL(LEFT$(STR$(dia + .02), INSTR(1, STR$(dia + .02), ".") + 2))


Je comprend pas quelle sera la valeur de R(17).
D'après ce que j'ai compris, INSTR est une fonction qui retourne une position...
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 déc. 2007 à 13:56
Moi non plus...

En gros : STR transforme un nombre en chaine, INSTR cherche un car dans une chaine à partir d'une position.

Donc ici, il se pourrait que l'on cherche à récupérer dia avec 2 décimales (élimination des autres).

On ajoute .02 à dia, on le transforme en chaine et on cherche où est ".", quand on a trouvé, on ajoute 2 à cette position (pour prendre les décimales) et on coupe une chaine qu'on retransforme en numérique (avec val)
0
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 4
27 déc. 2007 à 15:09
Oui, en fait, c'est un grand truc pr pas faire grand chose au final... Mais j'ai compris comment ça marche, par contre, j'en vois pas l'intérêt !
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 déc. 2007 à 15:12
Ne récupérer que 2 décimales ?
0
chti_moon Messages postés 63 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008 4
27 déc. 2007 à 15:18
oui ça doit être ça :)

Merci beaucoup pour ton aide blux !!!
0