Dev - C++ - monto-escrito

 
Vista:

monto-escrito

Publicado por Shadia (3 intervenciones) el 18/03/2009 16:04:40
Hola, alguien me puede colaborar con un programa que al digitar un numero me imprima este en letras? por ejemplo que al digitar 1347 imprima mil trecientos cuarenta y siete
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:monto-escrito

Publicado por Rekker (1 intervención) el 22/05/2009 00:08:03
public class Mescrito {

static Array arUnidad, arQuinces, arDecena, arCentena;
static double Numero;
static string Cadena;
static long I, J, K, A, B, C, D, E, F, G, H, SinDecimales, CE, DE, UN;
static int VE, S; // ======================== //

public Mescrito () { } // ======================== //

public static string DoIt (double n) {

Numero = n;

if (Numero 999999999.99)
return "El valor es mayor que 999999999.99 - No puedo procesar";

arUnidad = Array.CreateInstance (typeof (string), 10);
arUnidad.SetValue ("UN ", 1);
arUnidad.SetValue ("DOS ", 2);
arUnidad.SetValue ("TRES ", 3);
arUnidad.SetValue ("CUATRO ", 4);
arUnidad.SetValue ("CINCO ", 5);
arUnidad.SetValue ("SEIS ", 6);
arUnidad.SetValue ("SIETE ", 7);
arUnidad.SetValue ("OCHO ", 8);
arUnidad.SetValue ("NUEVE ", 9);

arQuinces = Array.CreateInstance (typeof (string), 6);
arQuinces.SetValue ("ONCE ", 1);
arQuinces.SetValue ("DOCE ", 2);
arQuinces.SetValue ("TRECE ", 3);
arQuinces.SetValue ("CATORCE ", 4);
arQuinces.SetValue ("QUINCE ", 5);

arDecena = Array.CreateInstance (typeof (string), 10);
arDecena.SetValue ("DIECI", 1);
arDecena.SetValue ("VEINTI", 2);
arDecena.SetValue ("TREINTA ", 3);
arDecena.SetValue ("CUARENTA ", 4);
arDecena.SetValue ("CINCUENTA ", 5);
arDecena.SetValue ("SESENTA ", 6);
arDecena.SetValue ("SETENTA ", 7);
arDecena.SetValue ("OCHENTA ", 8);
arDecena.SetValue ("NOVENTA ", 9);

arCentena = Array.CreateInstance (typeof (string), 10);
arCentena.SetValue ("CIEN ", 1);
arCentena.SetValue ("DOSCIENTOS ", 2);
arCentena.SetValue ("TRESCIENTOS ", 3);
arCentena.SetValue ("CUATROCIENTOS ", 4);
arCentena.SetValue ("QUINIENTOS ", 5);
arCentena.SetValue ("SEISCIENTOS ", 6);
arCentena.SetValue ("SETECIENTOS ", 7);
arCentena.SetValue ("OCHOCIENTOS ", 8);
arCentena.SetValue ("NOVECIENTOS ", 9); // Separo el Nro. en enteros //
SinDecimales = Convert.ToInt64 (Numero * 100);
I = (SinDecimales / 10000000000);
SinDecimales = SinDecimales - (I * 10000000000);
J = (SinDecimales / 1000000000);
SinDecimales = SinDecimales - (J * 1000000000);
K = (SinDecimales / 100000000);
SinDecimales = SinDecimales - (K * 100000000);
A = (SinDecimales / 10000000);
SinDecimales = SinDecimales - (A * 10000000);
B = (SinDecimales / 1000000);
SinDecimales = SinDecimales - (B * 1000000);
C = (SinDecimales / 100000);
SinDecimales = SinDecimales - (C * 100000);
D = (SinDecimales / 10000);
SinDecimales = SinDecimales - (D * 10000);
E = (SinDecimales / 1000);
SinDecimales = SinDecimales - (E * 1000);
F = (SinDecimales / 100);
SinDecimales = SinDecimales - (F * 100);
G = (SinDecimales / 10);
SinDecimales = SinDecimales - (G * 10);
H = SinDecimales;

VE = 0;
S = 1;
Cadena = "";

if (I != 0 || J != 0 || K != 0) {
CE = I;
DE = J;
UN = K;
VE = 0;
Miles ();
if (I == 0 && J == 0 && K == 1) {
Cadena = Cadena + "MILLON ";
} else {
Cadena = Cadena + "MILLONES ";
}
}

if (A != 0 || B != 0 || C != 0) {
CE = A;
DE = B;
UN = C;
VE = 0;
Miles ();
Cadena = Cadena + "MIL ";
}

if (D != 0 || E != 0 || F != 0) {
CE = D;
DE = E;
UN = F;
VE = 0;
Miles ();
if (F == 1 && E != 1) {
Cadena = Cadena.Trim () + "O ";
}
}

if (G != 0 || H != 0) {
if (S == 1) {
Cadena = Cadena + "CON ";
}
CE = 0;
DE = G;
UN = H;
VE = 0;
Miles ();
if (G == 0 && H == 1) {
Cadena = Cadena + "CENTAVO.";
} else {
Cadena = Cadena + "CENTAVOS.";
}
} else {
Cadena = Cadena + ".--";
}

return Cadena;
} // ======================== //

static void Miles () {

while (VE == 0) {

if (CE != 0) {
Cadena = Cadena + arCentena.GetValue (CE);
if ( (DE != 0 || UN != 0 ) && CE == 1) {
Cadena = Cadena.Trim () + "TO ";
}
}

if (DE != 0) {
if (DE == 2) {
if (UN == 0) {
Cadena = Cadena + "VEINTE ";
break;
} else {
Cadena = Cadena + arDecena.GetValue (2);
}
}
if (DE == 1) {
if (UN == 0) {
Cadena = Cadena + "DIEZ ";
break;
}
if (UN > 0 && UN 2) {
Cadena = Cadena + arDecena.GetValue (DE);
if (UN != 0) {
Cadena = Cadena + "Y ";
} else {
break;
}
}
}
if (UN != 0) {
Cadena = Cadena + arUnidad.GetValue (UN);
}
VE = 1;
} // Fin del while
} // ======================== //
}
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:monto-escrito

Publicado por yaneth marcela (1 intervención) el 10/11/2009 23:07:35
respuesta montoescrito
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