• Lenguaje

    PSeInt (Pseudocódigo)

  • Descripción

    Pide un número entero y muestra su valor en letra

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Algoritmo ProcesoLetra
    Escribir Sin Saltar "Ingrese una cantidad:";
    Leer cantidad;
    Escribir "";
    Si cantidad < 0 Entonces
        Escribir Sin Saltar "menos ";
        cantidad <- -cantidad;
    FinSi
    Si cantidad = 0 Entonces
        Escribir Sin Saltar "cero";
    Sino
        millones_en_letra(cantidad);
    FinSi
    Escribir "";
FinAlgoritmo

SubProceso unidades_en_letra(cantidad)
    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  <- cantidad mod 10;
    decima  <- ((cantidad - cantidad mod 10)/ 10) mod 10;
    centena <- ((cantidad - cantidad mod 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
FinSubproceso

SubProceso millares_en_letra(cantidad)
    unidades <- cantidad mod 1000;
    miles    <- ((cantidad - cantidad mod 1000)/ 1000) mod 1000;
    Si miles>1 Entonces
        unidades_en_letra(miles);
    FinSi
    Si miles <> 0 Entonces
        Escribir Sin Saltar "mil";
    FinSi
    Si unidades <> 0 Y miles <> 0 Entonces
        Escribir Sin Saltar " ";
    FinSi
    unidades_en_letra(unidades);
FinSubproceso

SubProceso millones_en_letra(cantidad)
    unidades <- cantidad mod 1000000;
    millares <- ((cantidad - cantidad mod 1000000)/ 1000000) mod 1000000;
    Si millares>1 Entonces
        millares_en_letra(millares);
        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
    millares_en_letra(unidades);
FinSubproceso