Forum Liberty Basic France

Débutant » [Réglé] Trouver un chiffre entre tant et tant
Le 08/10/2013 à 11h28

Libertynaute Débutant

Groupe: Membre

Inscrit le: 21/08/2013
Messages: 11
Bonjour,

je suis en train de chercher une solution pour résoudre ce problème qui est d'utiliser le "IF" pour savoir si un chiffre est entre 1-25, 25-50, 50-75 et 75-100. à la fin j'aimerai laisser le choix de recommencer le programme.

si je mets "end" il n'y a plus la question d'en bas... et si je le mets pas et que je marque 42 par exemple, il ne me marque pas que "blublu"

voici comment j'ai fait..

Citation:

10 input "entrez moi un chiffre entre 1 et 100" ; chiffre

If chiffre < 25 then print "blabla" : end
if chiffre < 50 then print "blublu" : end
if chiffre < 75 then print "bleble" : end
if chiffre > 100 then print "bloblo" : end

input "désirez-vous recommencer le programme? (o/n)" ; choix$

if Choix$ = "o" then print : cls else goto 10



Est-ce que vous pouvez m'aider svp?

merci

Web    
Le 08/10/2013 à 18h46

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 361
Salut

Si tu as des problèmes d'algorithme, évite les conditions en version compactée, ça peux venir de là.
Par exemple, ton programme deviendrait :
Code VB :
 
10 input "entrez moi un chiffre entre 1 et 100 " ; chiffre
 
If chiffre < 25 then
    print "blabla"
    end
end if
if chiffre < 50 then
    print "blublu"
    end
end if
if chiffre < 75 then
    print "bleble"
    end
end if
if chiffre > 100 then
    print "bloblo"
    end
end if
 
input "désirez-vous recommencer le programme? (o/n) " ; choix$
 
if Choix$ = "o" then
    print
    cls
else
    goto 10
end if
 


De plus, même en version compactée, je n'arrive pas à reproduire ton erreur. Pour moi, si j’enlève les end, j'obtiens :
Citation:
entrez moi un chiffre entre 1 et 100 42
blublu
bleble
désirez-vous recommencer le programme? (o/n)


Bon, il y a plusieurs problèmes qui font que ça ne fonctionne pas correctement.
Pour ton énonce, les else if paraissent très prometteur.
En effet, si tu fais quelque chose comme ça :
Citation:
si chiffre < 25 alors
blabla
sinon si chiffre < 50 alors
bloblo
...
...

Tu auras bloblo d’exécuté si et seulement si chiffre est entre 25 et 50. Puisque si chiffre < 25, on exécute blabla et on sort du if, et si chiffre > 50, on exécute ni blabla ni bloblo.
Ainsi, à la fin du if tu mets un sinon tout court pour les autres cas.

Ensuite, pour ta question affin de recommencer, fais attention aux majuscules (regarde ta variable choix$). De plus, un print : cls est complètement inutile. Tu inserts une ligne que tu effaces juste après. Et finalement, si tu mets o, (en considérant l'erreur de majuscule corrigée), ton programme va ajouter une ligne, effacer la console (cf au dessus) et se terminer. Donc, il y a un petit problème logique à ce niveau là.

Si tu n'y arrives pas avec cette aide, redemande, je t'en dirais plus. Enfin, plus que ça, c'est difficile, je te donnerais le code :p

Cordialement
Jagang
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 09/10/2013 à 08h56

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Salut Andyy, Il y a aussi les" if... or..." et les "if... and...; qui peuvent servir.
____________________
Roro

   
Le 09/10/2013 à 09h43

Libertynaute Débutant

Groupe: Membre

Inscrit le: 21/08/2013
Messages: 11
Bonjour Jag,

Merci pour cette explication, j'ai fait les correctifs et essayé de jongler avec les "if" et les "else", mais aucun résultat positif...

Voici mon correctif:

Code VB :
 
10 input "Entrez moi un chiffre entre 1 et 100 : " ; chiffre
 
If chiffre < 25  then
    print "blabla"
        else
end if
 
if chiffre < 50 then
    print "blublu"
        else
end if
 
if chiffre < 75 then
    print "bleble"
        else
end if
 
if chiffre > 100 then
    print "bloblo"
end if
 
input "désirez-vous recommencer le programme? (o/n) " ; Choix$
 
if Choix$ = "o" then
    print
        goto 10
else
    cls
        end if
 



ce que je n'arrive toujours pas à comprendre c'est comment faire en sorte que ---> if = (entre 25 et 50)
ne me donnez pas encore la solution svp
Si je ne comprend toujours pas je craquerai pour la solution...

merci

Andyy

Web    
Le 09/10/2013 à 14h24

Libertynaute Débutant

Groupe: Membre

Inscrit le: 21/08/2013
Messages: 11
Bonjour,

Une illumination est venu jusqu'à vers moi, il suffisait de mettre un Goto au bon endroit et c'est fait

Merci encore pour votre aide :-)

Web    
Le 09/10/2013 à 15h40

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Le :"else" c'est l'anglais de: "sinon"
Dans le dernier "encadré" de Jag, tu a ce qu'on appelle du "pseudo-code"
C'est comme qui dirait la version française.
Il t'a un peu largué, because il a employé le: "else if" qui est: l'anglais de "sinon si", qui n'est pas très évident de prime abord.
Tout comme après le "if", il y a: "then" ( "alors" ) + (sous-entendu)<-faire quelque chose.
Après le: "else", ( "sinon"), il y a aussi de sous-entendu-> faire quelque chose...d'autre.
la forme est donc:
Code VB :
 
If lechatafaim then
   luidonneramanger
else
   lemettredehors
end if
 
____________________
Roro

   
Le 09/10/2013 à 16h39

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 361
Non mais personne ne m'a fait remarquer que j'ai oublié de parler du else if dans mon cours O_o
http://libertybasic.fr/pages/partie-i-4-les-conditions
Je vais corriger ça de ce pas !

Jag
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 09/10/2013 à 17h10

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 361
Je sais pourquoi j'en ai pas parlé !! Ça n'existe apparemment pas en JB/LB. Ou alors j'ai complètement perdu la tête....

Ok, donc oubli ma seconde solution :p
Pour ton code, fais une indentation correcte et enlève ces else qui ne servent à rien.
Le goto fonctionne mais tu n'es pas obligé. Les langages Basic sont d'ailleurs les seuls où les goto sont autorisés, dans les autres, ça existe, mais si tu l'utilise, tu es directement mis au bûché ^^.
Bref, le goto fonctionne bien, mais il y a également la solution de Roland. Dans tes conditions, au lieu de mettre juste des inférieurs, tu peux encadrer pour obtenir ton entre ça et ça. Exemple :
Code VB :
if 25 <= chiffre and chiffre < 50 then
    blabla
end if


Voila.
Désolé pour la fausse piste :)

Jag
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 09/10/2013 à 20h08

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Jag, J'apprécie ton esprit créatif... :lol
Si j'ai besoin d'un mot clé, je sais à qui m'adresser. ;)
____________________
Roro

   
Le 09/10/2013 à 20h23

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 361
C'est pas de la créativité, c'est de la transposition ^^ Le else if existe dans tout les langages de prog... Enfin, apparemment pas tous :p
Les dev de JB/LB avaient annoncé qu'il serait rajouté à la prochaine maj, mais comme cette maj devait sortir en 2009...

Jag
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 09/10/2013 à 21h20

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
2009 ? Oh, alors ça ne ne va plus tarder ;)
Au moins, elle aura bien sèché...ça diminue d'autant les risques de moisissures. :)
____________________
Roro

   
Le 10/10/2013 à 10h28

Libertynaute Débutant

Groupe: Membre

Inscrit le: 21/08/2013
Messages: 11
Un grand merci pour vos aides!

j'ai testé les 2 solutions et les 2 fonctionnent parfaitement!

encore merci!

Andyy

Web    
Débutant » [Réglé] Trouver un chiffre entre tant et tant  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie