Ejercicio:
Escribir un pseudocodigo que permita ingresar un numero entero de 'x' cifras y obtenga el equivalente en letras en el idioma español.
//funcion unidades
//el argumento es las unidades
//se le asigna a letra_unidad
funcion letra_unidad=SubUnidades(x)
segun x hacer
1:letra_unidad="uno"
2:letra_unidad="dos"
3:letra_unidad="tres"
4:letra_unidad="cuatro"
5:letra_unidad="cinco"
6:letra_unidad="seis"
7:letra_unidad="siete"
8:letra_unidad="ocho"
9:letra_unidad="nueve"
FinSegun
FinFuncion
Funcion letra_decena=SubDecenas(z)
segun z hacer
1:letra_decena="diez"
2:letra_decena="veinte"
3:letra_decena="treinta"
4:letra_decena="cuarenta"
5:letra_decena="cincuenta"
6:letra_decena="sesenta"
7:letra_decena="setenta"
8:letra_decena="ochenta"
9:letra_decena="noventa"
FinSegun
FinFuncion
Funcion letra_unidad_compuesta=SubUnidadesCompuestas(w)
segun w hacer
1:letra_unidad_compuesta="once"
2:letra_unidad_compuesta="doce"
3:letra_unidad_compuesta="trece"
4:letra_unidad_compuesta="catorce"
5:letra_unidad_compuesta="quince"
6:letra_unidad_compuesta="dieciseis"
7:letra_unidad_compuesta="diecisiete"
8:letra_unidad_compuesta="dieciocho"
9:letra_unidad_compuesta="diecinueve"
FinSegun
FinFuncion
Funcion letra_centena=SubCentena(u)
segun u hacer
1:letra_centena="cien"
2:letra_centena="doscientos"
3:letra_centena="trescientos"
4:letra_centena="cuatrocientos"
5:letra_centena="quinientos"
6:letra_centena="seiscientos"
7:letra_centena="setecientos"
8:letra_centena="ochocientos"
9:letra_centena="novecientos"
FinSegun
FinFuncion
//funcion para saber las decenas y unides
Funcion letra_decena_x=operar_decenas(f,g)
segun f hacer
1:
//si f (decenas) es 1 pregunto si las unidades o g es igual a cero
si g=0 Entonces
letra_decena_x= SubDecenas(f)
SiNo
letra_decena_x= SubUnidadesCompuestas(g)
FinSi
2:
//si las decenas es 2 hago una decision preguntando si las unidades es cero
si g=0 Entonces
letra_decena_x= SubDecenas(f)
SiNo
letra_decena_x= "veinti"+SubUnidades(g)
FinSi
De Otro Modo:
si g= 0 Entonces
letra_decena_x=SubDecenas(f)
SiNo
letra_decena_x= SubDecenas(f)+" y "+SubUnidades(g)
FinSi
FinSegun
FinFuncion
Funcion letra_centena_x=operar_centenas(centenas,decenas,unidades)
segun centenas hacer
1:
si unidades=0 y decenas=0 Entonces
letra_centena_x="cien"
SiNo
si decenas=0 y unidades<>0 Entonces
letra_centena_x= "ciento "+SubUnidades(unidades)
SiNo
letra_centena_x= "ciento "+operar_decenas(decenas,unidades)
FinSi
FinSi
De Otro Modo:
si decenas=0 Entonces
letra_centena_x= SubCentena(centenas)+" "+SubUnidades(unidades)
SiNo
letra_centena_x= SubCentena(centenas)+" "+operar_decenas(decenas,unidades)
FinSi
FinSegun
FinFuncion
Proceso numeros_a_letras
//ingresar el numero a leer
//leo numero_xx
//asignar numero_xx a numero_x
Mostrar "Introduce tu numero a leer (max. cinco digitos):"
Leer numero_xx
numero_x=numero_xx
//extraigo las unidedes, las decenas, las centenas, las unidades de millar, las decenas de millar
//usando las funciones truncar
//y el operador resto
decenas_millar=trunc(numero_x/10000)
numero_x=numero_x mod 10000
unidades_millar=trunc(numero_x/1000)
numero_x=numero_x mod 1000
centenas=trunc(numero_x/100)
numero_x=numero_x mod 100
decenas=trunc(numero_x/10)
unidades=numero_x mod 10
// pregunto si el numero es menor de cero
//si el numero es menor de cero
si numero_xx<0 Entonces
Mostrar "Error! Numero fuera de rango"
// si el numero no es menor que cero
SiNo
// si el numero es igual a cero
si numero_xx=0 Entonces
//muestro en pantalla cero
Mostrar "cero"
SiNo
//si el numero no es cero y es menor igual que 9
si numero_xx<=9 Entonces
//llamo a una funcion llamada subunidades
Mostrar SubUnidades(unidades)
SiNo
// si el numero es menor igual que noventa y nueve
si numero_xx<=99 Entonces
//llamo a funcion operar decenas y a los argumentos le doy los valores de decenas y unidades
Mostrar operar_decenas(decenas,unidades)
SiNo
si numero_xx<=999 Entonces
Mostrar operar_centenas(centenas,decenas,unidades)
SiNo
si numero_xx<=9999 Entonces
Segun unidades_millar hacer
1:
Mostrar "mil "+operar_centenas(centenas,decenas,unidades)
De Otro Modo:
Mostrar SubUnidades(unidades_millar)+" mil "+operar_centenas(centenas,decenas,unidades)
FinSegun
SiNo
si numero_xx<=99999 Entonces
cadena1=operar_decenas(decenas_millar,unidades_millar)
cadena2=" mil "+operar_centenas(centenas,decenas,unidades)
si decenas_millar>1 y unidades_millar=1 Entonces
Mostrar Subcadena(cadena1,0,(Longitud(cadena1)-1))+cadena2
SiNo
Mostrar operar_decenas(decenas_millar,unidades_millar)+" mil "+operar_centenas(centenas,decenas,unidades)
FinSi
SiNo
Mostrar "Error! Numero fuera de rango"
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinProceso