Saltar al contenido
EjemplosEnglishEspacio →

Validaciones reutilizables

Valida el correo y la edad de un formulario de registro.

Nivel
Intermedio
Conceptos:
Entrada y salida
Funciones
Lógicos
Repetir
Texto
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Cada Funcion devuelve un valor Logico, así que puedes usarla directo en un Si o en Hasta Que. Las condiciones se combinan con Y y se niegan con NO.

Código

validation.psc · 38 líneas
Funcion valido <- EsCorreoValido(correo)    Definir valido Como Logico    Definir i, arrobas, posicionArroba Como Entero    arrobas <- 0    posicionArroba <- 0    Para i <- 1 Hasta Longitud(correo) Hacer        Si Subcadena(correo, i, i) = "@" Entonces            arrobas <- arrobas + 1            posicionArroba <- i        FinSi    FinPara    valido <- arrobas = 1 Y posicionArroba > 1 Y posicionArroba < Longitud(correo)FinFuncionFuncion valido <- EsEdadValida(edad)    Definir valido Como Logico    valido <- edad >= 0 Y edad <= 120FinFuncionAlgoritmo Registro    Definir correo Como Caracter    Definir edad Como Entero    Repetir        Escribir "Correo electrónico:"        Leer correo        Si NO EsCorreoValido(correo) Entonces            Escribir "Ese correo no parece válido."        FinSi    Hasta Que EsCorreoValido(correo)    Repetir        Escribir "Edad:"        Leer edad        Si NO EsEdadValida(edad) Entonces            Escribir "Escribe una edad entre 0 y 120."        FinSi    Hasta Que EsEdadValida(edad)    Escribir "Registro completo: ", correo, ", ", edad, " años."FinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo Registro
Algoritmo RegistroSíNoNoSíNoNoSíSíAlgoritmo RegistroAlgoritmo RegistroDefinir correo Como CaracterDefinir correo Como CaracterDefinir edad Como EnteroDefinir edad Como EnteroEscribir "Correo electrónico:"Escribir "Correo electrónico:"Leer correoLeer correoSi NO EsCorreoValido(correo) EntoncesNOEsCorreoValido(correo)Escribir "Ese correo no parece válido."Escribir "Ese correo no pareceválido."Hasta Que EsCorreoValido(correo)EsCorreoValido(correo)Escribir "Edad:"Escribir "Edad:"Leer edadLeer edadSi NO EsEdadValida(edad) EntoncesNOEsEdadValida(edad)Escribir "Escribe una edad entre 0 y 120."Escribir "Escribe una edadentre 0 y 120."Hasta Que EsEdadValida(edad)EsEdadValida(edad)Escribir "Registro completo: ", correo, ", ", edad, " años."Escribir "Registro completo:", correo, ", ", edad, "años."FinAlgoritmoFinAlgoritmo
Funcion EsCorreoValido
Funcion EsCorreoValidoSíNoFuncion valido <- EsCorreoValido(correo)Funcion valido <-EsCorreoValido(correo)Definir valido Como LogicoDefinir valido Como LogicoDefinir i, arrobas, posicionArroba Como EnteroDefinir i, arrobas,posicionArroba Como Enteroarrobas <- 0arrobas <- 0posicionArroba <- 0posicionArroba <- 0Para i <- 1 Hasta Longitud(correo) HacerPara i <- 1 HastaLongitud(correo)Si Subcadena(correo, i, i) = "@" EntoncesSubcadena(correo, i,i) = "@"arrobas <- arrobas + 1arrobas <- arrobas + 1posicionArroba <- iposicionArroba <- ivalido <- arrobas = 1 Y posicionArroba > 1 Y posicionArroba < Longitud(correo)valido <- arrobas = 1 YposicionArroba > 1 YposicionArroba <…FinFuncion (devuelve valido)FinFuncion (devuelve valido)
Funcion EsEdadValida
Funcion EsEdadValidaFuncion valido <- EsEdadValida(edad)Funcion valido <-EsEdadValida(edad)Definir valido Como LogicoDefinir valido Como Logicovalido <- edad >= 0 Y edad <= 120valido <- edad >= 0 Y edad <=120FinFuncion (devuelve valido)FinFuncion (devuelve valido)

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

Correo electrónico:Respuesta del usuario: ana.gmail.comEse correo no parece válido.Correo electrónico:Respuesta del usuario: ana@gmail.comEdad:Respuesta del usuario: 150Escribe una edad entre 0 y 120.Edad:Respuesta del usuario: 17Registro completo: ana@gmail.com, 17 años.

Desafío

Agrega una función EsNombreValido que exija al menos 3 letras, y pide el nombre primero.

Ver pista

Usa Longitud dentro de la función y repite el mismo patrón de Repetir ... Hasta Que.

Abrir en Codoritmo