Menu

Función para validar si es un numero en PSeInt

2023-11-27
2023-12-29
  • Miguel Martin Matiz

    Función en pseudocódigo que retorta VERDADERO si la cadena ingresada representa un número. En caso contrario, retorna FALSO. Compara cada caracter de la cadena ingresada por el usuario.

    Parámetros: **
    cadena ingresada por consola
    Retorna:**
    VERDADERO si todos los caracteres cumplen la condición de un número. FALSO si al menos un caracter no forma la estructura de un número, (excepto (-), (+) y (.) que hacen parte de un número.

    Si encuentran algún bug que no pase las validaciones, comentan.
    Quedo atento a sugerencias para optimizarlo.

    https://github.com/miguelmartinm/Funcion-ValidarSiEsNumero-PSeInt.git

    Funcion esNumero <- validarSiEsNumero ( cadenaIngresada )   
        Definir tamanioCadena, posicionCaracter Como Entero
        Definir caracterCadena Como Caracter
        Definir esNumero Como Logico    
    
        tamanioCadena = Longitud(cadenaIngresada)   
        contadorPuntos = 0      
        Para posicionCaracter <- 0 Hasta tamanioCadena-1 Hacer
            caracterCadena = SubCadena(cadenaIngresada, posicionCaracter, posicionCaracter)     
            esNumero = Falso
            Si caracterCadena = "." Entonces
                contadorPuntos <- contadorPuntos + 1
            SiNo            
                Si (caracterCadena = "+" O caracterCadena = "-") 
                    esNumero = Verdadero
                    // Si el menos (-) o el más (+) están después del primer dígito, no es un número
                    Si posicionCaracter > 0 Entonces
                        esNumero = Falso
                        posicionCaracter <- tamanioCadena
                    FinSi           
                SiNo
                    // Compara si el caracter evaluado coincide con un dígito
                    Para digito = 0 Hasta 9 Hacer                   
                        Si ConvertirATexto(digito) = caracterCadena Entonces
                            esNumero <- Verdadero                       
                            digito <- 9                     
                        FinSi                   
                    Fin Para
                    // Si el caracter evaluado no cumple las condiciones anteriores, la cadena ingresada no representa un número
                    Si esNumero = Falso Entonces
                        esNumero <- Falso
                        posicionCaracter <- tamanioCadena
                    FinSi   
                FinSi
            FinSi
            // Si existe más de un punto en la cadena ingresada, no representa un número
            Si contadorPuntos > 1 Entonces
                esNumero <- Falso
                posicionCaracter <- tamanioCadena-1
            FinSi       
        Fin Para    
    Fin Funcion
    
    Algoritmo validarSiEsUnNumero_Version2
        Definir cadenaIngresada Como Caracter   
        Definir esNumero Como Logico    
    
        Escribir "Ingrese un número: "
        Leer cadenaIngresada
    
        esNumero <- validarSiEsNumero( cadenaIngresada )
        Si esNumero Entonces        
            Escribir "¿Es Número?: " esNumero
        SiNo        
            Escribir "¿Es Número?: " esNumero
        FinSi
    FinAlgoritmo 
    
     

    Last edit: Miguel Martin Matiz 2023-11-27
  • alejandrocaro35

    alejandrocaro35 - 2023-12-29

    ¡Muy bueno!
    Versión estricta (arreglos y cadenas en base 0)

     

Anonymous
Anonymous

Add attachments
Cancel