Error al convertir numero a palabra
Publicado por Javier (1 intervención) el 21/07/2017 20:37:31
hola, estoy trabajando en un programa para pasar de un numero (9999 max) a palabras, pero al ingresar un 0 me sale ese mismo dijito pero con el correspondiente al noveno lugar. Si alguien ve el error seria de ayuda
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
program Calculo;
type
digitos = 0..9;
vec = array [1..9] of string;
procedure descomponer(x: integer ; var dec,cent,mil,ein: digitos);
var
dig: digitos;
contador: integer;
begin
contador:= 0;
while (x <> 0) do begin
dig:= (x mod 10);
contador:= contador + 1;
if (contador = 1) and (dig <> 0) then
dec:= dig
else
if (contador = 2) and (dig <> 0) then
ein:= dig
else
if (contador = 3) and (dig <> 0) then
cent:= dig
else
mil:= dig;
x:= (x div 10);
end;
end;
procedure llenarmil (var vec1: vec);
begin
vec1[1]:= 'mil';
vec1[2]:= 'dosmil';
vec1[3]:= 'tresmil';
vec1[4]:= 'cuatromil';
vec1[5]:= 'cincomil';
vec1[6]:= 'seismil';
vec1[7]:= 'sietemil';
vec1[8]:= 'ochomil';
vec1[9]:= 'nuevemil';
end;
procedure llenarcent (var vec2: vec);
begin
vec2[1]:= 'ciento';
vec2[2]:= 'dosciento';
vec2[3]:= 'tresciento';
vec2[4]:= 'cuatrociento';
vec2[5]:= 'quiniento';
vec2[6]:= 'seisciento';
vec2[7]:= 'sieteciento';
vec2[8]:= 'ochociento';
vec2[9]:= 'noveciento';
end;
procedure llenardec (var vec3: vec);
begin
vec3[1]:= 'uno';
vec3[2]:= 'dos';
vec3[3]:= 'tres';
vec3[4]:= 'cuatro';
vec3[5]:= 'cinco';
vec3[6]:= 'seis';
vec3[7]:= 'siete';
vec3[8]:= 'ocho';
vec3[9]:= 'nueve';
end;
procedure llenarotro (var otro: vec);
begin
otro[1]:= 'once';
otro[2]:= 'doce';
otro[3]:= 'trece';
otro[4]:= 'catorce';
otro[5]:= 'quince';
otro[6]:= 'disciseis';
otro[7]:= 'discisiete';
otro[8]:= 'disciocho';
otro[9]:= 'discinueve';
end;
procedure llenareinti (var einti: vec);
begin
einti[2]:= 'vienti';
einti[3]:= 'treinta';
einti[4]:= 'cuarenta';
einti[5]:= 'cincuenta';
einti[6]:= 'sensenta';
einti[7]:= 'setenta';
einti[8]:= 'ochenta';
einti[9]:= 'noventa';
end;
var
dec,cent,mil,ein: digitos;
vec1,vec2,vec3,otro,einti: vec;
num: integer;
begin
llenarmil(vec1);
llenarcent(vec2);
llenardec(vec3);
llenarotro(otro);
llenareinti(einti);
write('Ingrese un numero: '); readln(num);
descomponer(num,dec,cent,mil,ein);
write('El numero es: ', vec1[mil], ' ', vec2[cent], ' ', einti[ein] , ' y ', vec3[dec]);
readln
end.
Valora esta pregunta
0