Algoritmo para convertir numeros a romanos

Hola amigos como están en esta ocasión realizamos un algoritmo para convertir numeros a romanos en pseint.

Haz clic aquí para suscribirte a mi canal

Bien como ya es costumbre vamos a explicar el funcionamiento de este algoritmo, lo primero que hacemos es ponerle un nombre en mi caso lo nombramos como:

Algoritmo detarea

Con la palabra reservada definir declaramos las variables, en este algoritmo utilizamos las variables a,c,d,u y n todas las declaramos de tipo entero.

                Definir a,c,d,u,n Como Entero

Con la función escribir pedimos un número.

                Escribir «Escribe un numero»

Este número lo almacenamos con la función leer en la variable n.

                leer n

Ya que tenemos el número almacenado en la variable, entonces vamos separando las unidades.

Para obtener los millares dividimos el número entre mil con la función trunc y al resultado lo divinos entre 10 pero con la función mod para obtener únicamente el residuo, para las centenas, decenas y unidades hacemos lo mismo únicamente vamos cambiando el divisor.

Por ejemplo si aplicamos estas sentencias al número 3245 en la variable m se almacenaría el número 3, en la variable c el número 2, en la variable d el número 4 y el la variable u el número 5.

                m = trunc(n/1000) mod 10

                c = trunc(n/100) mod 10

                d = trunc(n/10) mod 10

                u = trunc(n/1) mod 10

Bien pues ya que tenemos los millares entonces evaluamos si la variable m es mayor a tres.

                si m > 3 Entonces

Si la condición se cumple entonces significa que es un número superior a cuatro mil, por lo tanto mostramos un mensaje en pantalla indicando que el número no se pude calcular.

Ya que en los números romanos a partir del cuatro mil las reglas cambian.

                               Escribir «El numero no se puede calcular»

                SiNo

Si la condición no se cumple entonces significa que el número que ingreso el usuario es menor a cuatro mil por lo tanto se puede calcular con este algoritmo.

Utilizamos la estructura según y comparamos si el número almacenado en la variable m es igual a 1,2 o 3, dependiendo el número mostramos en pantalla el número romano, este mensaje lo mostramos con a función sin saltar para que el número se muestre en una sola línea.

                               segun m hacer

                                               1:

                                                               Escribir «M» Sin Saltar

                                               2:

                                                               Escribir «MM» Sin Saltar

                                               3:

                                                               Escribir «MMM» Sin Saltar

                               FinSegun

Para los centenas hacemos lo mismo que con los millares utilizamos la estructura según, y pues según el caso si el numero almacenado en la variable c es un numero entre 1 y 9 entonces mostramos el numero romano con la función sin saltar, como ya mencionaba para que se vaya uniendo en una sola sentencia los millares, y las centenas.

                               segun c hacer

                                               1:

                                                               Escribir «C» Sin Saltar

                                               2:

                                                               Escribir «CC» Sin Saltar

                                               3:

                                                               Escribir «CCC» Sin Saltar

                                               4:

                                                               Escribir «CD» Sin Saltar

                                               5:

                                                               Escribir «D» Sin Saltar

                                               6:

                                                               Escribir «DC» Sin Saltar

                                               7:

                                                               Escribir «DCC» Sin Saltar

                                               8:

                                                               Escribir «DCCC» Sin Saltar

                                               9:

                                                               Escribir «CM» Sin Saltar

                               FinSegun

Nuevamente hacemos uso de la estructura según si el número almacenado en la variable d es un numero entre 1 y 9 entonces mostramos en pantalla el numero romano con la función sin saltar, ya con esto logramos imprimir en una sola línea los millares, las centenas y las decenas.

                               Segun d hacer

                                               1:

                                                               Escribir «X» Sin Saltar

                                               2:

                                                               Escribir «XX» Sin Saltar

                                               3:

                                                               Escribir «XXX» Sin Saltar

                                               4:

                                                               Escribir «XL» Sin Saltar

                                               5:

                                                               Escribir «L» Sin Saltar

                                               6:

                                                               Escribir «LX» Sin Saltar

                                               7:

                                                               Escribir «LXX» Sin Saltar

                                               8:

                                                               Escribir «LXXX» Sin Saltar

                                               9:

                                                               Escribir «XC» Sin Saltar

                               FinSegun

Nuevamente utilizamos la estructura según, comparamos si en la variable u se encuentra un numero almacenando entre 1 y 9, según el caso imprimimos el numero romano correspondiente.

                               Segun u hacer

                                               1:

                                                               Escribir «I»

                                               2:

                                                               Escribir «II»

                                               3:

                                                               Escribir «III»

                                               4:

                                                               Escribir «IV»

                                               5:

                                                               Escribir «V»

                                               6:

                                                               Escribir «VI»

                                               7:

                                                               Escribir «VII»

                                               8:

                                                               Escribir «VIII»

                                               9:

                                                               Escribir «IX»

                               FinSegun

                FinSi     

Finalmente cerramos las estructuras y finalizamos el algoritmo.

FinAlgoritmo

algoritmo para convertir numeros a romanos
Algoritmo para convertir numeros a romanos
Algoritmo detarea
	Definir a,c,d,u,n Como Entero
	Escribir "Escribe un numero"
	leer n
	m = trunc(n/1000) mod 10
	c = trunc(n/100) mod 10
	d = trunc(n/10) mod 10
	u = trunc(n/1) mod 10
	
	si m > 3 Entonces
		Escribir "El numero no se puede calcular"
	SiNo
		segun m hacer 
			1:
				Escribir "M" Sin Saltar
			2:
				Escribir "MM" Sin Saltar
			3:
				Escribir "MMM" Sin Saltar
		FinSegun
		
		segun c hacer
			1:
				Escribir "C" Sin Saltar
			2:
				Escribir "CC" Sin Saltar
			3:
				Escribir "CCC" Sin Saltar
			4:
				Escribir "CD" Sin Saltar
			5:
				Escribir "D" Sin Saltar
			6:
				Escribir "DC" Sin Saltar
			7:
				Escribir "DCC" Sin Saltar
			8:
				Escribir "DCCC" Sin Saltar
			9:
				Escribir "CM" Sin Saltar
		FinSegun
		
		Segun d hacer
			1:
				Escribir "X" Sin Saltar
			2:
				Escribir "XX" Sin Saltar
			3:
				Escribir "XXX" Sin Saltar
			4:
				Escribir "XL" Sin Saltar
			5:
				Escribir "L" Sin Saltar
			6:
				Escribir "LX" Sin Saltar
			7:
				Escribir "LXX" Sin Saltar
			8:
				Escribir "LXXX" Sin Saltar
			9:
				Escribir "XC" Sin Saltar
		FinSegun
		Segun u hacer
			1:
				Escribir "I"
			2:
				Escribir "II"
			3:
				Escribir "III"
			4:
				Escribir "IV"
			5:
				Escribir "V"
			6:
				Escribir "VI"
			7:
				Escribir "VII"
			8:
				Escribir "VIII"
			9:
				Escribir "IX"
		FinSegun
	FinSi	
FinAlgoritmo

Bien amigos esta es la solución de este algoritmo para convertir un numero decimal a romano te dejo el código, espero te guste y más que nada te pueda ser de utilidad un saludo y nos vemos en la próxima entrega.

2 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *