[bat][batch] Comment dire a une variable quelle ne doit pa etre superieur a 1 ?
Dernière réponse : dans Programmation
Bonjour,
Voila ba tout est dans le titre je voudrait savoir comment dire a une variable quelle ne doit pa etre superieur a 1.
Merci d'avance
@+
Voila ba tout est dans le titre je voudrait savoir comment dire a une variable quelle ne doit pa etre superieur a 1.
Merci d'avance
@+
Autres pages sur : bat batch dire variable superieur
Lassé par la pub ? Créez un compte
Il faut mettre un /P à set pour poser la question. Fait HELP SET pour plus de détails.
Bon un exemple:
Bon un exemple:
REM GPL License
@echo off
cls
set /A val=%RANDOM% / 3277
set /A nbEssais=3
echo Devinez un nombre compris entre 0 et 10
echo ---------------------------------------
:debut
set /P n=Votre nombre :
set /A nbEssais-=1
if %n%==%val% goto finGagne
if %nbEssais%==0 goto finPerdu
echo ----- Perdu. Nouvel essai
goto debut
:finGagne
echo Bravo ! Vous avez gagné
goto fin
:finPerdu
echo Perdu ! Il fallait trouver %val%
goto fin
:fin
echo ╔═══════════════════╗
echo ║ The CRicky's game ║
echo ╚═══════════════════╝
pause
cls
Dsl mais ...
ca repond pas a ma question lol
j'ai pas de prob pour la question.
je vais te donner mon probleme:
alors en fait mon bat va aditionner ou multiplier des 1 et des 0. Mais quand il additionne il va faire 1+1 =2 (ce qui est logique) et il doit afficher le resultat. Mais si ce resultat est superieur a 1 (2 par exemple) je veux qu'il marque 1.
Voila a+
ca repond pas a ma question lol
j'ai pas de prob pour la question.
je vais te donner mon probleme:
alors en fait mon bat va aditionner ou multiplier des 1 et des 0. Mais quand il additionne il va faire 1+1 =2 (ce qui est logique) et il doit afficher le resultat. Mais si ce resultat est superieur a 1 (2 par exemple) je veux qu'il marque 1.
Voila a+
Citation :
ritzle a écrit :
pour l'addition, tu peux faire simplement un OU logique
par exemple 11010 OU 01100 = 11110
C'est faux. ça ne marche que s'il n'y a jamais 2 bits à la même position à 1. car 01 + 01 = 10 et 01 OR 01 = 01
Dans l'exemple je t'ai donné ce qu'il fallait pour que tu puisse le faire. c'est-à-dire:
- le /P dans le set pour effectuer les calculs
Le "set /A nbEssais-=1" étant équivalent à "set /A nbEssais=nbEssais-1"
- le IF qui teste une valeur numérique
Citation :
CRicky a écrit :
Citation :
ritzle a écrit :
pour l'addition, tu peux faire simplement un OU logique
par exemple 11010 OU 01100 = 11110
C'est faux. ça ne marche que s'il n'y a jamais 2 bits à la même position à 1. car 01 + 01 = 10 et 01 OR 01 = 01
ben non, il addtionne un à un
01
+01
=02
=01
au fait, comment tu fais pour trouver 10 ?
BOn j'explike tout lol :
je sais pas si certain d'entre vous connaisse les table de verite en electronique mais si il connaisse ca va aider ^^.
Le truc c ke a un moment donner de mon bat il devra calculer en binaire : 1+1=1 (et il met 2 ce ki est logik)
eh ba nn ^^ en binaire c pas bon lol je veux ke si il trouve 2 il mette 1 ou si il trouve 3 kil mettte 1 ossi.
Mais si c possible de lui dire directement o debut kil fo calculer en binaire je pense con gagnera du temp ... ;-)
Sinon pour info voila une table de verite don l'equation est a+b (vrement simple coi):
a b S
0 0 0
0 1 1
1 0 1
1 1 1
Voila .
Une otre question :
Est-il possible de dire o bat de regarder qu'ube lettre de ce ke l'utilisateur a marquer ??
exemple:
set /P test=
Si l'utilisateur met az, je ve ke le bat regarde si ya marker z ou pas.
Voila tout
a+
je sais pas si certain d'entre vous connaisse les table de verite en electronique mais si il connaisse ca va aider ^^.
Le truc c ke a un moment donner de mon bat il devra calculer en binaire : 1+1=1 (et il met 2 ce ki est logik)
eh ba nn ^^ en binaire c pas bon lol je veux ke si il trouve 2 il mette 1 ou si il trouve 3 kil mettte 1 ossi.
Mais si c possible de lui dire directement o debut kil fo calculer en binaire je pense con gagnera du temp ... ;-)
Sinon pour info voila une table de verite don l'equation est a+b (vrement simple coi):
a b S
0 0 0
0 1 1
1 0 1
1 1 1
Voila .
Une otre question :
Est-il possible de dire o bat de regarder qu'ube lettre de ce ke l'utilisateur a marquer ??
exemple:
set /P test=
Si l'utilisateur met az, je ve ke le bat regarde si ya marker z ou pas.
Voila tout
a+
Citation :
ritzle a écrit :
c'estc e que je disais, le OU c'est l'addition et le ET c'est la multiplication
a+b => a OU b
a.b => a ET b
Ok, désolé j'avais oublié cette notation, je suis trop habitué au "|" pour le OU ;-)
sinon ton truc:
[code]
set /P a=entrez la valeur de a (0 ou 1):
set /P b=entrez la valeur de b (0 ou 1):
set /A S=0
if %a%==1 set /A S=1
if %b%==1 set /A S=1
echo Resultat: S=%S%
[code]
Citation :
CRicky a dit:
sinon ton truc:
[code]
set /P a=entrez la valeur de a (0 ou 1):
set /P b=entrez la valeur de b (0 ou 1):
set /A S=0
if %a%==1 set /A S=1
if %b%==1 set /A S=1
echo Resultat: S=%S%
[code]
Ce ne m'aide pas pour ce que je veux faire lol
Ce que l'utilisteur rentre c'est une equation de kla forme a+b par exemple mais ne doit pas rentrer de 0 ni de 1. C'est le bat ki va calculer ca avec la table de verité.
Voila donc si on resume j'ai deux probleme :
1 - Comment faire pour ke 1+1=1
2 - Un bat peut il prendre en compte la deuxieme lettre de ce ki a ete ecrit ?
Voila a+
Comme le dit rizle tu peux utiliser le '|' pour le OU et '&' pour le ET:
bon si tu veux transforemer le '+' en '|', c'est complexe je pense (écrire dans un fichier, utiliser un FOR /F "delims=+" et remplacer le caractère par '|' pour évaluer le résultat
set /A S="1|1"
set /A S="1|0"
set /A S="1|0"
set /A S="0|0"
bon si tu veux transforemer le '+' en '|', c'est complexe je pense (écrire dans un fichier, utiliser un FOR /F "delims=+" et remplacer le caractère par '|' pour évaluer le résultat
si le | marche, il faut mettre toute l'expression entre guillemets comme je l'ai fait dans l'exemple.
sinon tu peux aussi évaluer 1+1 et si c'est >1 tu remplaces par 1.
pour la 2ème question, je ne voit que l'utilisation d'une redirection dans un fichier, puis sa lecture:
Voilà, là tu as tout pour faire ce que tu veux je pense.
sinon tu peux aussi évaluer 1+1 et si c'est >1 tu remplaces par 1.
pour la 2ème question, je ne voit que l'utilisation d'une redirection dans un fichier, puis sa lecture:
FOR /F "tokens=1,2* delims=+ " %%i in (resultat.txt) do (
echo première partie: %%i
echo opérateur: %%j
echo deuxième partie: %%k
)
Voilà, là tu as tout pour faire ce que tu veux je pense.
je sais qu'il y a une solution simple avec le language des calcuelette(j'avai faitt des jeux de hasard avec) et sa doit pas etre different pour les language informatique
je croi que si ta le bouqin de ta calculette(scientifique) c'est au chapitre probabilité ou un truck en rapport avec l'eventualité
voila sinon j'ai pas eu le temps de lire les reponses des autres personne et peu etre qu'ils ont une meilleure solution
+
je croi que si ta le bouqin de ta calculette(scientifique) c'est au chapitre probabilité ou un truck en rapport avec l'eventualité
voila sinon j'ai pas eu le temps de lire les reponses des autres personne et peu etre qu'ils ont une meilleure solution
+
1 - D'accord mais est-ce que je dois mettre quelquechose dans le fichier resultats.txt ??
2 - A quoi sert cette fonction :
"tokens=1,2* delims=+ " %%i in (resultat.txt) do (
3 - Dans :
echo première partie: %%i
echo opérateur: %%j
echo deuxième partie: %%k
Su'est-ce que c'est ca : %%i , %%j , %%k ???
A+
2 - A quoi sert cette fonction :
"tokens=1,2* delims=+ " %%i in (resultat.txt) do (
3 - Dans :
echo première partie: %%i
echo opérateur: %%j
echo deuxième partie: %%k
Su'est-ce que c'est ca : %%i , %%j , %%k ???
A+
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :