probleme des condition
Posté le 26/05/2012 10:00
Bonjour j'ai récement fait un programme avec des contitions.
mais j'ai un petit soucis, une fois que mon calcul est fais en fonction de ma condition, l'action devrai etre finit or, sa continue jusqu'à ce que le prog en ai marre
que dois noter dans mes contitions pour qu'il s'arrete au bon moment?
merci
Cls
"SPHERE 1"?->A
"CYL 1"?->B
"AXE 1"?->C
"SPHERE 2"?->D
"CYL 2"?->E
"AXE 2"?->F
C<=180×C>=0×<=180×F>=0
If C=F
Then Text 1,1,A
Text 1,21,"( )"
Text 1,23,B
Text 1,47,C
Text 1,58,"(-)"
Text 1,68,D
Text 1,88,"( )"
Text 1,91,E
Text 1,114,F
Text 7,1,A-D
Text 7,21,"( )"
Text 7,24,B-E
Text 7,48,(C+F)/2
IfEnd
If C-90=F
Then Text 1,1,A
Text 1,21,"( )"
Text 1,23,B
Text 1,47,C
Text 1,56,"(-)"
Text 1,66,D
Text 1,86,"( )"
Text 1,89,E
Text 1,112,F
Text 7,1,A
Text 7,21,"( )"
Text 7,23,B
Text 7,47,C
Text 7,56,"(-)"
Text 7,66,D+E
Text 7,86,"( )"
Text 7,89,-E
Text 7,112,F+90
Text 13,1,A-(D+E)
Text 13,21,"( )"
Text 13,23,B--E
Text 13,47,C
IfEnd
If C+90=F
Then Text 1,1,A
Text 1,21,"( )"
Text 1,23,B
Text 1,47,C
Text 1,56,"(-)"
Text 1,66,D
Text 1,86,"( )"
Text 1,89,E
Text 1,112,F
Text 7,1,A+B
Text 7,21,"( )"
Text 7,23,-B
Text 7,47,C+90
Text 7,56,"(-)"
Text 7,66,D
Text 7,86,"( )"
Text 7,89,E
Text 7,112,F
Text 13,1,(A+B)-D
Text 13,21,"( )"
Text 13,23,(-B-E)
Text 13,47,C+90
IfEnd
If C-90!=F
Then Text 1,1,A
Text 1,21,"( )"
Text 1,23,B
Text 1,47,C
Text 1,56,"(-)"
Text 1,66,D
Text 1,86,"( )"
Text 1,89,E
Text 1,112,F
Text 7,1,A
Text 7,21,"( )"
Text 7,23,B
Text 7,47,C
Text 7,56,"(+)"
Text 7,66,-D
Text 7,86,"( )"
Text 7,89,-E
Text 7,112,F
-E>0->B<0->Text 13,1,A
Text 13,21,"( )"
Text 13,23,B
Text 13,47,C
Text 13,56,"(+)"
Text 13,66,D+E
Text 13,86,"( )"
Text 13,89,E
Text 13,112,F-90
Else Text 1,1,A
Text 1,21,"( )"
Text 1,23,B
Text 1,47,C
Text 1,56,"(-)"
Text 1,66,D
Text 1,86,"( )"
Text 1,89,E
Text 1,112,F
Text 7,1,A
Text 7,21,"( )"
Text 7,23,B
Text 7,47,C
Text 7,56,"(+)"
Text 7,66,-D
Text 7,86,"( )"
Text 7,89,-E
Text 7,112,F
-E<0->B>0->Text 13,1,A+B
Text 13,21,"( )"
Text 13,23,-B
Text 13,47,C-90
Text 13,56,"(+)"
Text 13,66,D
Text 13,86,"( )"
Text 13,89,E
Text 13,112,F
IfEnd
Citer : Posté le 26/05/2012 11:28 | #
Je ne comprends pas ta question, selon le code que tu as fourni, le programme ne peut pas tourner en boucle car il n'y a pas de boucles (While, LpWhile, Goto...).
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 26/05/2012 11:32 | #
Déjà, je vois un truc bizarre :
Tu n'as pas mis de 2ème membre.
Ensuite,
Ne fait rien (ou plutôt, fait un calcul pour rien).
Enfin, tu peux utiliser Else pour être sûr de ne pas rentrer dans les autres conditions.
Citer : Posté le 26/05/2012 11:45 | #
autant pour moi
c'est : If C=F
et la deuxieme chose c'est pour que C sois compris entre 0 et 180 simplement sinon je vois pas comment faire vous avez ptet une meilleure solution?
le soucis ici c'est que je peux avoir 5 cas différents
C=F
C+90=F
C-90=F
C+90!=F
C-90!=F
donc ou placer Else dans ce cas la?
pour moi je procede comme sa:
If C=F
Then blablabla
IfEnd
If C+90=F
Then blablabla
etc...
du coup écrit comme sa on peu pas mettre des Else si?
Dans ce cas sa me donnerai quoi?
Citer : Posté le 26/05/2012 11:58 | #
Pour le début, tu peux faire :
Lbl A
Cls
"SPHERE 1"?->A
"CYL 1"?->B
"AXE 1"?->C
"SPHERE 2"?->D
"CYL 2"?->E
"AXE 2"?->F
C<0 or C>180 => goto A
Pour la suite, je pense qu'il est préférable de ne pas utiliser de Else.
Citer : Posté le 26/05/2012 12:04 | #
Je sais où est ton problème :
cas 1=cas 4
cas 1=cas 5
cas 2=cas 5
cas 3=cas 4
Donc il faut mettre des Else ou arrêter le programme avec Stop si tu veux pas que 2 conditions identiques exécutent chacune leur bloc d'instruction...
Citer : Posté le 26/05/2012 12:25 | #
Louloux je comprend pas ce que tu veux dire par
cas 1=cas 4
cas 1=cas 5
cas 2=cas 5
cas 3=cas 4
^^'
et j'ai tenté les stop sauf que sa arrete mon programme net si je le met à la fin de ma premiere condition si je met comme cecis
If C=F
bla
bla
bla
IfEnd
Stop
j'essaye sa toute de suite NitroSax
Citer : Posté le 26/05/2012 13:05 | #
je comprend pas cette histoire de "cas"
qu'est ce que vous voulez dire?
Ajouté le 26/05/2012 à 13:12 :
Nitrosax sa fonctionne pas :
Lbl A
Cls
\"SPHERE 1\"?->A
\"CYL 1\"?->B
\"AXE 1\"?->C
\"SPHERE 2\"?->D
\"CYL 2\"?->E
\"AXE 2\"?->F
if C<0 or C>180 => goto A
Citer : Posté le 26/05/2012 13:59 | #
Pour répondre à ta question, If Then Else IfEnd signifient respectivement Si Alors Sinon FinSi.
Une condition c'est aussi simple que ça : Si C=F Alors blablabla, Sinon blablabla FinSi.
Et dans ces "blablabla", tu peux mettre d'autres conditions.
Ce que Louloux a voulu dire par "cas 1", c'est le cas où la première condition (If C=F) est vraie. Si C=F, alors tu es d'accord que la condition "C-90!=F" est vraie aussi., donc le contenu de ces 2 conditions seront exécutés.
Tu dis que les 5 cas sont les suivants :
C=F
C+90=F
C-90=F
C+90!=F
C-90!=F
Comme dit plus haut, si le 1 est vrai, alors les 4 et 5 le sont aussi. A mon avis tu t'es planté en définissant les 2 derniers cas, le 4 et 5 peuvent être vrais en même temps également. Si mon intuition est bonne, les cas 4 et 5 sont peut-être C-90<F<C et C<F<C+90.
Dans ce cas on peut faire la structure suivante :
Si F=C-90 Alors
Sinon
FinSi
Sinon Si F>C Alors
Si F=C+90
Sinon
FinSi
Sinon [green][small]//arriver là signifie que F=C[/small][/green]
FinSi
Pour la ligne "C<=180×C>=0×F<=180×F>=0", tu n'as pas cru j'espère que ça aurait une quelconque action. Ce n'est ici qu'un simple calcul dont tu ne fait rien du résultat. Si tu veux que le programme demande à l'utilisateur de rentrer à nouveau les données dans le cas où elles seraient erronées, il faut écrire du code qui fait ça. La calculatrice ne comprend pas par magie ce que tu veux faire.
Citer : Posté le 26/05/2012 14:38 | #
@Bart8500 : Désolé, j'ai fait une erreur dans mon code (mis à jour depuis).
Il ne faut pas mettre de "if" à la dernière ligne.
Citer : Posté le 26/05/2012 15:43 | #
Ok Pierrotll merci de ton explication
ce que tu propose j'y avais pensé en effet j'ai déja testé sur un autre prog une structure comme celle ci en l'occurence j'ai pensé que sa aurai été trop long et qu'on m'aurai proposé une solution un qui aurai été plus courte =) mais si c'est ce qu'il faut faire je vais tacher de m'y atteler et voir ce que sa donne
et oui moi aussi j'ai bien constaté qu'il y a un problème avec les deux derniers "cas 4 et 5" car je ne sais pas bien comment instaurer mes conditions si je ne suis pas sur que les 3 premières sont opérationnelles et imperturbable
celà dis je teste vos conseils et je vous dis si sa fonctionne !
merci beaucoup
ok NitroSax je vais regarder sa alors merci
Ajouté le 28/05/2012 à 15:04 :
c\'est bon j\'ai enfin terminé mon programme tout est fonctionnel merci de votre aide elle m\'a été d\'une aide précieuse
Citer : Posté le 28/05/2012 20:18 | #
il nous faudrait un "Switch" en Basic...
Citer : Posté le 04/06/2012 23:08 | #
j'ai peur de ne pas comprendre?
qu'est ce que s'est et à quoi sa sert? ^^'
Citer : Posté le 04/06/2012 23:19 | #
Au lieu d'écrire plein de conditions (If,Then,IfEnd) pour vérifier une même variable, tu fais un switch :
Switch(age);
{
case 1:"Tu es jeune";break;
case 2:"Tu es ado";break;
case 3:"Tu es majeur";break;
....
}
Cette syntaxe s'apparente d'avantage au C ou PHP.
Dans cet exemple, c'est très pratique, plus rapide et ça rend le code plus lisible.
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 05/06/2012 08:12 | #
et si tu fait ça en basic, c'est laid et incompréhensible X)
I own a graph 3575+.
Citer : Posté le 06/06/2012 19:05 | #
Au C et PHP ?
Et Java, C++, C#, Python ? Sans compter des langages l'utilisant avec une autre syntaxe !
Citer : Posté le 06/06/2012 19:26 | #
Je parlais de la syntaxe que j'utilisais
Le switch n'existe pas en Basic Casio.
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 06/06/2012 20:08 | #
ah oui d'accord je vois =) c'est vrai que le prog que sa donne ressemble à un bordel organisé mais bon.... sa tourne quand meme sans ramer
en attendant merci de votre aide