Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » probleme des condition
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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



Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

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...).
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 26/05/2012 11:32 | #


Déjà, je vois un truc bizarre :
If C=

Tu n'as pas mis de 2ème membre.

Ensuite,
C<=180×C>=0×<=180×F<=0

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.
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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?
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

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.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

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...
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

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 Alors
    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.
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

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.
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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
Dark storm En ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 28/05/2012 20:18 | #


il nous faudrait un "Switch" en Basic...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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? ^^'
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

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.
Vdragon.b Hors ligne Membre Points: 1401 Défis: 0 Message

Citer : Posté le 05/06/2012 08:12 | #


et si tu fait ça en basic, c'est laid et incompréhensible X)
there are many incredible things in the world...So,believe in yours dreams!
I own a graph 3575+.

Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

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 !
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message
Bart8500 Hors ligne Membre Points: 69 Défis: 0 Message

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

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 68 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd