Realizar un algoritmo que permita convertir un número arábigo comprendido entre 1 y 999 a números ordinales. Ejemplo
- Salida:
sexcentesimo nonagesimo séptimo
Se llama a la subrutina Inicializar, donde
inicializamos los arreglos correspondientes, luego se solicita al usuario
ingrese un numero entre 1 y 999, luego se captura el numero ingresado en la
variable “N”, llamamos a la Subrutina ObtenerUnidadesDecenasCentenas para
obtener las unidades, decenas y centenas del numero ingresado, luego llamamos a
la subrutina ConvertirNumero el cual
retornara el numero ingresado en números ordinales.
Diagrama de Flujo - Convertir Numero Entero a Numero Ordinal
Diagrama de Flujo - Subrutina InicializaUnidades
En la Subrutina InicializaDecenas, se crea un arreglo Decena que contiene a los números ordinales, Decena ={“”,“decimo”,“vigesimo”,“trigesimo”,“cuadragesimo”,”quincuagesimo”,“sexagesimo”,“septuagesimo”,“octogesimo”,“nonagesimo” }, donde Decena(9)=“nonagesimo” que corresponde al número noventa.
Diagramas de Flujo - Subrutina InicializaDecenas
La Subrutina
InicializaCentenas, se crea el arreglo Centena la cual contiene los números ordinales entre 100 y 900, Centena = {“”,“centesimo”,“ducentesimo”,“tricentesimo”,“ cuadringentesimo”,“ quingentesimo”,“ sexcentesimo”,“ septingentesimo”,“ octingentesimo”,“ noningentesimo”}, donde Centena(7)=” septingentesimo” que corresponde al número 700.
Diagrama de Flujo - Subrutina InicializaCentenas
En la subrutina
ObtenerUnidadesDecenasCentenas, se obtiene las unidades con N MOD 10 y se guarda en la variable “u”, las decenas con TRUNC(N/10) MOD 10 y se guarda en la variable “d”, las centenas con TRUNC(N/100) y se guarda en la variable “c”.
Ejemplo
Numero = 584
u = 584 MOD 10 = 4
d = TRUNC(584/10) MOD 10 = 8
c = TRUNC(584/100) = 5
Las variable c, d, u nos sirven como índices en los arreglos respectivos para hallar número ordinal correspondiente.
Diagrama de Flujo - Subrutina ObtenerUnidadesDecenasCentenas
En la subrutina ConvertirNumero
Se compara si el número es mayor igual a 100(N>=0)
Si es Verdadero (Si)
Mostramos como respuesta los números entre 100 y 999 en ordinales
Si es Falso (No)
Se compara si el número es mayor igual a 10 (N>=0)
Si es Verdadero (Si)
Mostrará como respuesta los números entre 10 y 99 en ordinales
Si es Falso (No)
Mostrará como respuesta los numero entre 1 y 9 en ordinales
Diagrama de Flujo - Subrutina ConvertirNumero