Pages

viernes, 28 de diciembre de 2012

Convertir a números romanos entre 1 y 99 – Diagrama de flujo

Problema
Realizar un algoritmo que permita convertir un número arábigo  comprendido entre  1 y 99 a números romanos.

Solución
  • Entrada: 97
  • Salida:  XCVII
Para solucionar este problema primero llamamos a la subrutina InicializaUnidades, luego a la subrutina InicializaDecenas, se pide al usuario ingrese un número entre 1 y 99, el cual se captura en la variable “N”.
Se compara Si el número es mayor o igual a cero (N>=0)
Si es Falso (No)
    Se Muestra  el número que corresponde en romanos
Si es Verdadero (Si)
    Se llama a la Subrutina ObtenerUnidadesDecenas, se muestra el número que corresponde en romanos
 Finaliza.


Diagrama de flujo - Convertir numero arabigo a romanos

En la subrutina InicializaUnidades, Creamos un arreglo Unidad que contiene a los nueve primeros números romanos Unidad={“”,“I”,“II”,“III”,“IV”,“V”,“VI”,“VII”,“VIII”,“IX”}, donde Unidad(3)=”III”. 


Diagrama de flujo - Subrutina InicializarUnidades

En la Subrutina InicializaDecenas, Se crea un arreglo Decena donde capturamos todos los números de tales como, Decena={“”,“X”,“XX”,“XXX”,“LX”,“L”,“LX”,“LXX”,“LXXX”,“XC”}, donde Decena(5)=”L”


Diagrama de flujo - Subrutina InicializaDecenas

En la Subrutina ObtenerUnidadesDecenas se calcula la unidades en la variable “u” con N MOD 10y las decenas en la variable “d” con TRUNC(N/10).
Ejemplo si se ingresa 58 tenemos
u = 58 MOD 10 = 8
d = TRUNC(58/10) = 5


Diagrama de flujo - Subrutina ObtenerUnidadesDecenas 



3 comentarios:

ddavigo dijo...

sigo tus pasos como los dices pero no me da resultado
me puedes ayudar gracias, si tienes el diagrama en el ´programa seria mejor para una guia, gracias por responder

Unknown dijo...

hola amigo Hagame un favor sera que tambien lom puedas pasar LPP

Unknown dijo...

hola amigo Hagame un favor sera que tambien lom puedas pasar LPP

Publicar un comentario