1

[nosmile]Bonjour à tous.
Je suis en train d'essayer de faire un programme, j'ai fini de l'écrire mais quand je le lance ma ti m'affiche "error a test did not resolve to true or false".
Voici mon programme:
:refrac()
tonguergm
:disp "n1*sin(i1)=n2*sin(i2)"
tonguerompt n1,n2,i1,i2
:if n1=v then
:disp "n1=", n1=(n2sin(i2))/sin (i1)
:else if n2=v then
:disp "n2=", n2=(n1sin(i1))/sin (i2)
:else if i1=v then
:disp "i1=", i1=sin^-1(n2sin(i2))/n1
:else if i2=v then
:disp "i2=", i2=sin^-1(n1sin(i1))/n2
:endif
:end prgm

Donc quand je le lance ça m'affiche ce message et ça me renvoie à la première ligne du if...
J'ai essayé de mettre quelque chose comme n1->v la première fois, n2->v la deuxième etc
J'ai aussi essayé de mettre des ifs à chaque fois et ça n'a pas non plus marché...
Voila tout mon problème (assez petit) sinon j'aimerais savoir si il y a une autre solution ou qu'est ce qui ne va pas dans mon programme.
Merci

2

Ca veut dire que n1 ou v ne sont pas définis. Du coup il ne peut pas les comparer. Du coup le test ne renvoie ni vrai ni faux.
Faut que n1 et v aient des valeurs avant que le test soit effectué.

3

Et comment je peux faire ça.
Parce que si je met des valeurs à n1 ou à v mon calcule sera faux...

4

Tu peux donner un exemple de valeurs que tu entres quand « n1*sin(i1)=n2*sin(i2) » s'affiche ?
avatar

5

Exemple de l'écran d'entrée lors de l’exécution du programme:
n1?
1
n2?
1.524
i1?
30
i2?
45


Seulement dans mon programme je n'aurais que trois de ces valeurs et j'aimerai bien qu'un seul programme puisse résoudre ces quatre cas de figures.
Voila...

6

> Parce que si je met des valeurs à n1 ou à v mon calcule sera faux...

n1 etc tu les fait rentrer par l'utilisateur, mais v tu ne le définis nulle part, tu compare n1 à v mais v est "inconnu", ça ne pourras jamais marcher.

il faut que tu teste les valeurs entrées pour détecter la vide et faire ton calcul suivant le cas
et la le mec il le pécho par le bras et il lui dit '

7

Merci mais comment faire ce test des valeurs et pour que le programme s’exécute automatiquement?
Parceque justement v est l'inconnue...

8

regarde le manuel, tu peut surement comparer avec une valeur vide

sinon, au lieu d'utiliser prompt, tu pourrais utiliser une fonction d'affichage de boite de dialogue avec les 4 inputs à l'intérieur

cherche ensuite l'input vide, et fait ton calcul en fonction
et la le mec il le pécho par le bras et il lui dit '

9

Ok je vais essayer comme ca et je vous dit...