Pascal/Turbo Pascal - Paso de cifras a letras

 
Vista:

Paso de cifras a letras

Publicado por Alba (2 intervenciones) el 09/12/2002 19:49:51
Podría alguien decirme como puedo hacer el código fuente en pascal, de manera que leyendo un número escrito con cifras me lo escriba con números.

ej: 256 : doscientos 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

RE:Paso de cifras a letras

Publicado por Roberto Garcia (128 intervenciones) el 10/12/2002 07:08:01
Es muy sencillo...

usando length para contar el tamaño de la cadena y asi ir desglosando y ver si el numero pertence a la unidad, decena, centena, etc. y asi escribir su valor correspondiente.

por ejemplo s = '256'

case length(s) of {unidades}
'1':salida:='Uno';
'2':Salida :='Dos';
... ... ...
'9':salida:='Nueve';
end {case unidades}

case length(s)-1of {decenas}
'1'case length(s) of
'1':Salida:='Once';
'2':Salida:='Doce'
......
end;
'2':case length(s) of
'1':salida:='Veintiuno';
'2':salida:='Veintidos';
....
end;
'3':if length(s) = 0 then
salida:='Treinta'
else begin
aux:='Treinta y ';
insert(aux,salida,1);
......
end; {case decenas}

para millares seria length(s)-2, para unidad de millar length(s)-3, etc, etc.

length(s:string) Funcion que devuelve el numero de caracteres que tiene una cadena, si s ='256' - length(s) devuelve 3.

insert(fuente,destino,indice) procedimiento que inserta la cadena fuente en la destino, empezado en la posicion indicada por indice.

Espero te ayude.

Roberto
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

RE:Paso de cifras a letras

Publicado por Diego Romero (786 intervenciones) el 10/12/2002 07:32:40
Mejorando la respuesta de Roberto, pon las cadenas en constantes array
const
unidades:Array of String=('Uno','Dos','Tres'... etc..
luego en el código no tienes mas que ir tomado los caracteres que componen la cifra, converirlas a números y según la posición usarlas como indice del array.
Hay casos especiales, por ejemplo las cadenas 'Uno' al 'Cinco' cuando el número está comprendido entre el 11 y el 15, la cadena 'Cien' cuando cuando debe representar ese mismo número difiere de cuando debe representar un número entre el 101 y el 199.
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