Desarrollar un programa donde se ingrese un número y lo convierta en letras.
Solución
Esta implementación solo acepta números que van desde el cero al noventa y nueve, el usuario ingresa un número y la aplicación retornara dicho número convertido en letras.
Ejemplo
- Entrada: 92
- Salida: noventa y dos.
Código Fuente en C#:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace codigoBlog { class Program { static void Main(string[] args) { string[] unidades = {"cero", "uno", "dos" ,"tres" ,"cuatro" ,"cinco" , "seis" ,"siete" ,"ocho" ,"nueve","diez"}; string[] especiales = {"once", "doce","trece","catorce", "quince", "diezciseis", "diecisiete", "dieciocho", "diecinueve"}; string[] decenas = {"veinte", "treinta","cuarenta","cincuenta", "sesenta", "setenta", "ochenta", "noventa"}; Console.WriteLine("Ingrese un numero entre 0-99: "); int num = Convert.ToInt32(Console.ReadLine()); if (num >= 0 && num < 11) Console.WriteLine('\n' + unidades[num]); else if (num < 20) Console.WriteLine('\n' + especiales[num - 11]); else if (num < 100) { int unid = num % 10; int dec = num / 10; if (unid == 0) Console.WriteLine('\n' + decenas[dec - 2]); else Console.WriteLine('\n' + decenas[dec - 2] + " y " + unidades[unid]); } else Console.WriteLine("El numero debe ser menor a 100"); Console.ReadLine(); } } }
8 comentarios:
como hacer si tiene mas cifras digamos un millon
buenisimo aporte, gracias !!!
Tienes unos pequeños detalles, modifique para corregirlos:
1.- Tomas al Diez como unidad cuando lo deberías tomar como decena.
2.- Escribe "Veinte y cinco" cuando debería escribir "Veinticinco".
//Validación de campo vacío
if (textBox1.Text == "")
{
MessageBox.Show("No dejes espacios vacios");
}
else
{
//Declaración y asignación de variable
int _numero = Convert.ToInt32(textBox1.Text);
//Validación de rango de números
if (_numero < 0 || _numero >= 100)
{
MessageBox.Show("Ingresa solo números de 0 a 99");
}
else
{
//Declaración de arreglo para unidades
string[] unidades = {"cero","uno","dos","tres","cuatro","cinco",
"seis","siete","ocho","nueve" };
//Declaración de arreglo para números únicos
string[] especiales = {"once", "doce","trece","catorce",
"quince", "diezciseis", "diecisiete",
"dieciocho", "diecinueve","ventiuno",
"veintidos","veintitres","veinticuatro",
"veinticinco","ventiseis","veintisiete",
"ventiocho","veintinueve"};
//Declaración de arreglo para decenas
string[] decenas = {"diez","veinte", "treinta","cuarenta","cincuenta",
"sesenta", "setenta", "ochenta", "noventa" };
//Validación de unidades
if (_numero >= 0 && _numero < 10)
{
MessageBox.Show(unidades[_numero]);
}
else
{
//Validación de números únicos
// El operador != representa una diferencia
if (_numero < 20 && _numero < 30 && _numero != 10)
{
MessageBox.Show(especiales[_numero - 11]);
}
else
{
//Validación de decenas
if (_numero < 100)
{
//Se obtienen las unidades
int _unidades = _numero % 10;
//Se obtiene la decena
int _decenas = _numero / 10;
//Se comprueba si la decena tiene unidades
if (_unidades == 0)
{
MessageBox.Show(decenas[_decenas - 1]);
}
else
{
/*Si tiene unidades se hace una concatenación
de los arreglos*/
MessageBox.Show(decenas[_decenas - 1] + " y " +
unidades[_unidades]);
}
}
}
}
}
}
xfavor ayudeme necesito como hago esto :
5. Efectuar un programa que mediante una caja de texto reciba un número de 4 dígitos y haga la validación del siguiente modo:
a) Solo recibe números del 1000 al 9999
b) No permite otros caracteres más que solo dígitos
ayuda necesito para mañana quiero que llegue asta 1000
como hago para que me tansforme de 3 digitos
Vi este video y me funcionó y me permitió descargar el proyecto , se los comparto! https://www.youtube.com/watch?v=GThaZPLJq_k&lc=z130i5vbftb1x55oy04cfh0x4ryphnpopgo
Publicar un comentario