ayudeeeen
ALGUN GENIO DE BUEN CORAZON Q ME AYUDE PARA STE MOMENTO GRACIAS
DOY TODOS LOS PUNTAJES AYUDEN
15. Dada una cantidad de dinero leída entre 1 y 999, transfórmela en palabras
Ejemplo: Se lee 275,45
La salida será: Dos cientos setenta y cinco dólares con 45/100

Respuestas

Respuesta dada por: megatokay
1

A continuación pseudocódigo en pseint que muestra por pantalla una cantidad en palabras, ingresada como número por el teclado.

Algoritmo en pseint para convertir números a palabras

Proceso escribirEnPalabrasNumeros

   Definir cant Como Entero;

   Definir cantidad Como real;

Escribir Sin Saltar "Ingrese una cantidad (decimales use punto):";

Repetir

 Leer cantidad;

Hasta Que cantidad>=1 y cantidad<=999

separardecimales(cantidad);

   Escribir "";

FinProceso

SubProceso conversion(cant,partedecimal)

   Definir unidades,decimas,diez_y Como Cadenas;

   Definir unidad,decima,centena Como Reales;

   Definir centenas Como Cadenas;

   Dimension unidades(9);

   unidades[1] <- "uno";

   unidades[2] <- "dos";

   unidades[3] <- "tres";

   unidades[4] <- "cuatro";

   unidades[5] <- "cinco";

   unidades[6] <- "seis";

   unidades[7] <- "siete";

   unidades[8] <- "ocho";

   unidades[9] <- "nueve";

   Dimension decimas(9);

   decimas[1] <- "diez";

   decimas[2] <- "veinte";

   decimas[3] <- "treinta";

   decimas[4] <- "cuarenta";

   decimas[5] <- "cincuenta";

   decimas[6] <- "sesenta";

   decimas[7] <- "setenta";

   decimas[8] <- "ochenta";

   decimas[9] <- "noventa";

   Dimension diez_y(5);

   diez_y[1] <- "once";

   diez_y[2] <- "doce";

   diez_y[3] <- "trece";

   diez_y[4] <- "catorce";

   diez_y[5] <- "quince";

   Dimension centenas(9);

   centenas[1] <- "ciento";

   centenas[2] <- "";

   centenas[3] <- "";

   centenas[4] <- "";

   centenas[5] <- "quinientos";

   centenas[6] <- "";

   centenas[7] <- "setecientos";

   centenas[8] <- "";

   centenas[9] <- "novecientos";

   unidad <- cant % 10;

   decima <- ((cant - cant % 10)/ 10) % 10;

   centena <- ((cant - cant % 100)/ 100) mod 10;

   Si centena<> 0 Entonces

       Si centenas[centena] = "" Entonces

           Escribir Sin Saltar unidades[centena], "cientos";

       Sino

           Si centena<> 1 o unidad<> 0 o decima <> 0 Entonces

               Escribir Sin Saltar centenas[centena];

           Sino

               Escribir Sin Saltar "cien";

           FinSi

       FinSi

   FinSi

   Si unidad<> 0 o decima <> 0 Entonces

       Si centena<> 0 Entonces

           Escribir Sin Saltar " ";

       FinSi

       Si decima = 0 Entonces

           Escribir Sin Saltar unidades[unidad];

       Sino

           Si unidad= 0 Entonces

               Escribir Sin Saltar decimas[decima];

           Sino

               Si decima = 1 y unidad>=1 y unidad<=5 Entonces

                   Escribir Sin Saltar diez_y[unidad];

               Sino

                   Si decima = 1 Entonces

                       Escribir Sin Saltar "dieci", unidades[unidad] ;

                   Sino

                       Si decima = 2 Entonces

                           Escribir Sin Saltar "veinti", unidades[unidad] ;

                       Sino

                           Escribir Sin Saltar decimas[decima], " y ", unidades[unidad];

                       FinSi

                   FinSi

               FinSi

           FinSi

       FinSi

   FinSi

Escribir " con ", partedecimal, "/100 dólares"

FinSubProceso

SubProceso conversion2(cant, partedecimal)

   Definir unidades, miles Como Reales;

   unidades<- cant % 1000;

   miles <- ((cant - cant % 1000)/ 1000) % 1000;

   Si miles>1 Entonces

       conversion(miles,partedecimal);

   FinSi

   Si miles<> 0 Entonces

       Escribir Sin Saltar "mil";

   FinSi

   Si unidades<> 0 Y miles<> 0 Entonces

       Escribir Sin Saltar " ";

   FinSi

   conversion(unidades, partedecimal);

FinSubProceso

SubProceso conversion3(cant,partedecimal)

   Definir unidades, millares Como Reales;

   unidades<- cant % 1000000;

   millares<- ((cant - cant % 1000000)/ 1000000) % 1000000;

   Si millares>1 Entonces

       conversion2(millares,partedecimal);

       Escribir Sin Saltar " millones";

   Sino

       Si millares<> 0 Entonces

           Escribir Sin Saltar "un millón";

       FinSi

   FinSi

   Si unidades<> 0 y millares<> 0 Entonces

       Escribir Sin Saltar " ";

   FinSi

   conversion2(unidades,partedecimal);

FinSubProceso

SubProceso separardecimales(cantidad)

Definir N Como caracter

parteentera <- 0

partedecimal <- ""

N <- ConvertirATexto(cantidad)

Para a<-0 Hasta LONGITUD(N) Hacer

 digito <- SUBCADENA(N,a,a)

 si digito = "." Entonces

  parteentera <- trunc(cantidad)

  partedecimal <- SUBCADENA(N,a+1,Longitud(N))

 FinSi

FinPara

cant <- parteentera

conversion3(cant,partedecimal);

FinSubProceso

Para saber más acerca de programas para convertir números a palabras consulte:  https://brainly.lat/tarea/61519957

#SPJ1

Adjuntos:
Preguntas similares