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 



1 comentarios:

Unknown 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

Publicar un comentario en la entrada