Matlab - Covertir de números a letras con sentencias ‘if’

 
Vista:

Covertir de números a letras con sentencias ‘if’

Publicado por Diego Martinez (1 intervención) el 03/10/2022 07:38:59
Hola qué tal!

Quisiera ayuda para realizar un programa el cual escriba un número del 0 al 99, a letras.
Por ejemplo: 56, cincuenta y seis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Covertir de números a letras con sentencias ‘if’

Publicado por Jon (161 intervenciones) el 10/10/2022 15:35:51
Abajo tienes un ejemplo. Nótese que no es un código optimizado y que sólo funciona para números de 1 o 2 dígitos.

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
128
129
130
131
132
133
x = input('Introduce el número que deseas convertir = ');
 
numNum = strlength(num2str(x)); % cantidad de números
numStr = num2str(x); % número en formato texto
 
var = 0; % variable de proceso
 
% 0
if numStr(1) == '0'
    fprintf('[ERROR] El primer número no puede ser 0.')
end
if numNum > 1 && numStr(2) == '0'
    var = 1;
end
 
% 1
if numStr(1) == '1'
    if numNum > 1
        numTxt1 = 'diez';
    else
        numTxt1 = 'uno';
    end
end
if numNum > 1 && numStr(2) == '1'
    numTxt2 = 'uno';
end
 
% 2
if numStr(1) == '2'
    if numNum > 1
        numTxt1 = 'veinte';
    else
        numTxt1 = 'dos';
    end
end
if numNum > 1 && numStr(2) == '2'
    numTxt2 = 'dos';
end
 
% 3
if numStr(1) == '3'
    if numNum > 1
        numTxt1 = 'treinta';
    else
        numTxt1 = 'tres';
    end
end
if numNum > 1 && numStr(2) == '3'
    numTxt2 = 'tres';
end
 
% 4
if numStr(1) == '4'
    if numNum > 1
        numTxt1 = 'cuarenta';
    else
        numTxt1 = 'cuatro';
    end
end
if numNum > 1 && numStr(2) == '4'
    numTxt2 = 'cuatro';
end
 
% 5
if numStr(1) == '5'
    if numNum > 1
        numTxt1 = 'cincuenta';
    else
        numTxt1 = 'cinco';
    end
end
if numNum > 1 && numStr(2) == '5'
    numTxt2 = 'cinco';
end
 
% 6
if numStr(1) == '6'
    if numNum > 1
        numTxt1 = 'sesenta';
    else
        numTxt1 = 'seis';
    end
end
if numNum > 1 && numStr(2) == '6'
    numTxt2 = 'seis';
end
 
% 7
if numStr(1) == '7'
    if numNum > 1
        numTxt1 = 'setenta';
    else
        numTxt1 = 'siete';
    end
end
if numNum > 1 && numStr(2) == '7'
    numTxt2 = 'siete';
end
 
% 8
if numStr(1) == '8'
    if numNum > 1
        numTxt1 = 'ochenta';
    else
        numTxt1 = 'ocho';
    end
end
if numNum > 1 && numStr(2) == '8'
    numTxt2 = 'ocho';
end
 
% 9
if numStr(1) == '9'
    if numNum > 1
        numTxt1 = 'noventa';
    else
        numTxt1 = 'nueve';
    end
end
if numNum > 1 && numStr(2) == '9'
    numTxt2 = 'nueve';
end
 
% Resultado
if var
    numTxt = numTxt1
else
    if numNum > 1
        numTxt = [numTxt1 ' y ' numTxt2]
    else
        numTxt = numTxt1
    end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar