Skip to content

Instantly share code, notes, and snippets.

@alejandrocaro36
Last active November 8, 2024 22:08
Show Gist options
  • Save alejandrocaro36/57bc72ec630e87083e3bb721cc86ffe4 to your computer and use it in GitHub Desktop.
Save alejandrocaro36/57bc72ec630e87083e3bb721cc86ffe4 to your computer and use it in GitHub Desktop.
Programa que implementa una función EsNumero. Esta función recibe un parámetro, cNumero , que deberá ser definido como caracter en el proceso principal, y lo recorre, si se cumple que no es un número, devuelve falso. Esta última versión también contempla que el número ingresado sea negativo, o con punto decimal. Base 0
real nNumero
cadena[100] cNumero // Definimos un tamaño máximo para la cadena
booleano lNumero
entero i
Funcion EsNumero(cadena[100] cNumero) : booleano
caracter cDigito
booleano lNumero
entero i
booleano puntoEncontrado
entero longitud
inicio
lNumero <- Verdadero
puntoEncontrado <- Falso
// Verificar si el primer carácter es un signo menos, más o un dígito
Si (((Longitud(cNumero) > 0) Y ((cNumero[1]) = '+'))) O (((Longitud(cNumero) > 0) Y (cNumero[1] = '-'))) Entonces
i <- 2 // Comenzar a analizar desde el segundo carácter
Sino
i <- 1
Fin Si
Para i <- i Hasta longitud(cNumero) Haga
cDigito <- cNumero[i]
Si (cDigito < '0') o (cDigito > '9') Entonces
Si cDigito = '.' Entonces
// Permitir un solo punto
Si puntoEncontrado Entonces
lNumero <- Falso
retorne lNumero
Sino
puntoEncontrado <- Verdadero
Fin Si
Sino
lNumero <- Falso
retorne lNumero
Fin Si
Fin Si
Fin Para
retorne lNumero
Fin
inicio
Repita
Escriba "Introduzca un n£mero: "
Lea cNumero
lNumero <- EsNumero(cNumero)
Si no lNumero Entonces
Escriba "ERROR: El valor introducido no es un n£mero"
llamar nueva_linea
Fin Si
Hasta lNumero
Escriba "El n£mero introducido es: ", cNumero
Fin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment