Título: si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo Publicado por: CharlyScoTT en 30 Septiembre 2017, 18:25 pm Quiero que mi usuario marque algunas de las opciones si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo
:P :huh: ;D Código
· Los códigos deben ir en etiquetas GeSHi · Los títulos deben ser descriptivos al problema >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo Publicado por: Serapis en 1 Octubre 2017, 11:24 am Las entradas de datos del usuario siguen este esquema básico...
Código: Funcion ActuarConUusuario // en realidad, es el bucle solo el pedazo de código que interesa, se envuelve en una función para que no parezca ...código perdido ... Hacer x = Pedirdato y = VerificarEntradaUser(x) //, A, Z, Mensaje) Repetir Mientras (y=FALSE) ' o Hasta que (y=TRUE) Fin Funcion Y la verificación, sigue un esquema más o menos similar (hay que adaptarla siempre a las necesidades, aquí adaptada a la tuya), a esto: Código: Buleano = Funcion VerificarEntradaUser(dato, Min, Max, MensajeError) Si (Dato >= Min) y (Dato <= Max) luego Devolver TRUE Sino MostrarMensaje (MensajeError) Devolver FALSE Fin si Fin funcion Finalmente en tu rutina de verificar si está limitado al rango 1-4, la llamada sería más o menos: Código: y = VerificarEntradaUser(x, 1, 4,"no puedes marcar el valor " + ) El mensaje de error tu sabrás cual es más razonable conforme a lo que el usuario esté haciendo. Podrías tener contantes y un array con mensajes de error, con cada petición según donde estés marcas el índice del mensaje de error que se debería mostrar para ese caso concreto.... Código: Enumeracion ConstantesMensajesErrorEntradaUser ERROR_ENTRADA_USER_SOLO_UNA_CASILLA = 0 // Debe activar solo una casilla a la vez ERROR_ENTRADA_USER_VALOR_FUERA_RANGO = 1 // El valor entrado está fuera dle rango permitido. ... ... ERROR_ENTRADA_USER_CARACTER_ILEGAL = 8 // La entrada contiene varacteres no permitidos (se esperaban números , o solo x letras, etc...). Fin enumeracion String ArrayErroresEntradaUser(0 a 8) // por ejemplo, tu sabrás cuantos mensajes de error serían precisos... Entero ErrorActualEntradaUser // tipo ConstantesMensajesErrorEntradaUser Funcion Inicializar ArrayErroresEntradaUser(ERROR_ENTRADA_USER_SOLO_UNA_CASILLA) = "Debe activar solo una casilla a la vez." ArrayErroresEntradaUser(ERROR_ENTRADA_USER_VALOR_FUERA_RANGO) = "El valor entrado está fuera dle rango permitido." ... ... ArrayErroresEntradaUser(ERROR_ENTRADA_USER_CARACTER_ILEGAL) = "La entrada contiene varacteres no permitidos (se esperaba solo números)." //Otras cosas que requieran ser inicializadas al comienzo del programa... Fin funcion Funcion BotonX_Click(parametros....) ErrorActualEntradaUser = ERROR_ENTRADA_USER_VALOR_FUERA_RANGO //en esta pieza de código se espera que el error que vaya a cometer el usuario sea (fuera de rango, si fueran posibles más errores, sería la función 'VerificarEntradaUser' quien deberiera chequear que error se comete y en base a ello, obtener el mensaje de error oportuno al caso. LlamarA ActuarConUsuario Fin funcion El resto son cambios, y se produce en la llamada al mensaje de error (que ahora se usa un índice en un array para obtener el mensaje... Código: Buleano = Funcion VerificarEntradaUser(dato, Min, Max) //se elimina el parametro mensajeError. Si (Dato >= Min) y (Dato <= Max) luego Devolver TRUE Sino MostrarMensaje (ArrayErroresEntradaUser(ErrorActualEntradaUser)) Devolver FALSE Fin si Fin funcion Si los mensajes son muy variopintos y difíciles de 'predecir' según la situación, entonces es mejor que desde donde se llame se ingrese ya, el mensaje específico, que toque en caso de error... Si lo repasas varias vece,s acabarás por encontrarle la lógica. Título: Re: si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo Publicado por: CharlyScoTT en 20 Octubre 2017, 23:55 pm Gracias !! ;)
|