Estaristica - Batch

Iniciado por gerhy13, 2 Febrero 2015, 22:46 PM

0 Miembros y 1 Visitante están viendo este tema.

gerhy13

Hola quería pedir ayuda para hacer un script (batch), lo que me pide el ejercicio se eso yo o tengo pero no me va bien.


Diseña una aplicación que nos pida números entre 1 y 4. El programa finaliza cuando se introduce el 0, si se introduce cualquier carácter no válido, muestra un mensaje de error y sale. Y al final el programa nos muestra una estadística del número de veces que se ha escrito cada numero.

Ejemplo de salida:

   Ha introducido los siguientes números:

    El 1: 3 veces
    El 2: 4 veces
    El 3: 0 veces
    El 4: 6 veces

Gracias  :huh: :P :P

Eleкtro

Buenas

En este foro no se hace el trabajo de los demás, ayudamos a resolver dudas y aportamos orientación.

¿Has intentado desarrollar el código por ti mismo?, muestra tus avances.

De todas formas, la tarea que pides es algo muy sencillo de realizar, pero ya te hice este otro trabajo donde tampoco aportaste ningún interés por intentar hacerlo tu mismo:
http://foro.elhacker.net/scripting/juego_de_loteria_batch-t429237.0.html;msg1993365#msg1993365

Saludos








gerhy13

lo tengo empezado pero no me sale te paso lo que tengo i no me va.

Código (bash) [Seleccionar]
@echo off

SET /P num=Introdueix un numero del 1 al 4:

:inici
IF /I %num% equ 0 ( GOTO estadistica)
IF /I %num% equ 1 ( GOTO un)
IF /I %num% equ 2 ( GOTO dos)
IF /I %num% equ 3 ( GOTO tres)
IF /I %num% equ 4 ( GOTO quatro)
IF /I %num% gtr 4 ( GOTO sortir_error)

:estadistica
ECHO El 1: %suma% vegades
ECHO El 2: %suma% vegades
ECHO El 3: %suma% vegades
ECHO El 4: %suma% vegades
GOTO final
:un
SET /a suma= %num% +
:sortir_error
ECHO ERROR!!! El numero introduit es erroni.
GOTO inici
:sortir
pause
exit

Eleкtro

#3
Puedes evitar cualquier tipo de error-handling (comprobar errores en el valor insertado por el usuario) si utilizases el comando CHOICE, pero bueno, está claro que ese no es el objetivo del ejercicio, así que te muestro un ejemplo rudimentario:

Código (dos) [Seleccionar]
@Echo OFF

Set /A "count1=0", "count2=0", "count3=0", "count4=0"

:ReadInput
Set /P "userInput=Type a number between 1 and 4: "

If "%userInput%" EQU "0" (
Goto :End
)

If "%userInput%" NEQ "1" If "%userInput%" NEQ "2" If "%userInput%" NEQ "3" If "%userInput%" NEQ "4" (
Echo Wrong character: "%userInput%"
Goto :End
)

If "%userInput%" EQU "1" (Set /A "count1+=1")
If "%userInput%" EQU "2" (Set /A "count2+=1")
If "%userInput%" EQU "3" (Set /A "count3+=1")
If "%userInput%" EQU "4" (Set /A "count4+=1")
Goto :ReadInput

:End
Echo How many of 1?: %Count1%
Echo How many of 2?: %Count2%
Echo How many of 3?: %Count3%
Echo How many of 4?: %Count4%
Pause&Exit /B 0


Saludos








gerhy13

vale muchas gracias es que yo lo hacia i no me funcionava muhas gracias :D