some image

Codes and Tags

Convertir Numeros a Letras (C++)

Etiquetas: , , , , Blog, Programación No comments

ciento_uno

 

Ha de esperarse que en algún momento de la carrera (y esto va para los que están estudiando ingeniería de sistemas), el profesor de programación les pida un programa donde se puedan convertir los números a su equivalente en letras. Normalmente requieren de 1-100(uno a cien), ó de 1-1000(uno a mil), pero si eres mi profesor de programación sabras que quisiste poner en aprietos a todos los estudiantes y lo pediste de 1-10000(uno a diez mil).

Lo primero que pensé fue que este programa sería un hueso duro de roer porque no hay mucho conocimiento ni experiencia cuando solo has visto la asignatura de algoritmos, pero al llegar a la solución me di cuenta de que no es una cosa del otro mundo y que se puede solucionar fácilmente si tienes buenas bases de programación.

Acá se los explico:

Lo primero que hay que hacer es desglosar el número desde su decenas de mil hasta sus unidades (esto va para el caso de los números de 1-10000), con una simple formula matemática.

Ejemplo:

Si tenemos el número 9834 haremos lo siguiente.

  • Verificar si tiene decenas de mil

9834 / 10000 = 0  (Si lo haces en una calculadora te dará algo como 0.9834, pero como es una división entre enteros los números después del punto no cuentan).

  • Unidades de mil

(9834 / 1000) % 10 = 9 (Para los que no están enterados, el % (porcentaje) representa el símbolo MOD, donde este hace la división pero en ves de arrojar el cociente muestra el residuo, que en este caso es nueve).

  • Centenas

(9834 / 100) % 10 = 8

  • Decenas

(9834 / 10) % 10 =  3

  • Unidades

(9834 %10) = 4

Lo anterior fue lo “dificil” del problema, ahora lo que sigue es lo sencillo y no creo que sea necesario explicar todas las sentencias if/else if/else ya que el código es muy diciente, por eso después de tanta palabrería acá les va el código.

 

#include <cstdlib>
#include <iostream>

/*
* Programa: Numeros_letras.cpp
* Autor: Juan Gómez
* Blog: Codes and Tags
* Fecha: 03/06/2015
*/

using namespace std;

int main() {

   int numero, n1, n2, n3, n4, n5;
   cout<<"Escribe un numero de uno a diez mil (numeros): "; cin>>numero;
   n1 = numero / 10000; 
   n2 = (numero / 1000) % 10;
   n3 = (numero / 100) % 10;
   n4 = (numero / 10) % 10;
   n5 = (numero % 10);

   cout<<"\n"<<n1<<" -> Decenas de mil"<<endl;
   cout<<n2<<" -> Unidades de mil"<<endl;
   cout<<n3<<" -> Centenas"<<endl;
   cout<<n4<<" -> Decenas"<<endl;
   cout<<n5<<" -> Unidades \n"<<endl;  
   if(numero > 10000){
      cout<<"El numero ingresado excede el rango de valores";
   }else{
      if(n1 == 1){
      cout<<"Diez mil"; 
      }
      //Sentencia para determinar los miles
      if(n2 == 1){
         cout<<"MIL ";
      }else if(n2 == 2){ 
         cout<<"DOS MIL "; 
      }else if(n2 == 3){
         cout<<"TRES MIL "; 
      }else if(n2 == 4){
         cout<<"CUATRO MIL "; 
      }else if(n2 == 5){
         cout<<"CINCO MIL "; 
      }else if(n2 == 6){
        cout<<"SEIS MIL "; 
      }else if(n2 == 7){
         cout<<"SIETE MIL "; 
      }else if(n2 == 8){
         cout<<"OCHO MIL "; 
      }else if(n2 == 9){
         cout<<"NUEVE MIL "; 
      }
      //Setencia para determinar los cientos
      if(n3 == 1 && n4 == 0 && n5 == 0){
         cout<<"CIEN";
      }else if(n3 == 1){
         cout<<"CIENTO ";
      }else if(n3 == 2){
         cout<<"DOSCIENTOS "; 
      }else if(n3 == 3){
         cout<<"TRESCIENTOS "; 
      }else if(n3 == 4){
         cout<<"CUATROCIENTOS "; 
      }else if(n3 == 5){
         cout<<"QUINIENTOS "; 
      }else if(n3 == 6){
         cout<<"SEISCIENTOS "; 
      }else if(n3 == 7){
         cout<<"SETECIENTOS "; 
      }else if(n3 == 8){
         cout<<"OCHOCIENTOS "; 
      }else if(n3 == 9){
         cout<<"NOVECIENTOS "; 
      }
      //Setencia para determinar las decenas
      if(n4 == 1 && n5 == 0){
         cout<<"Diez";
      }else if(n4 == 1 && n5 == 1){
         cout<<"ONCE";
      }else if(n4 == 1 && n5 == 2){
         cout<<"DOCE";
      }else if(n4 == 1 && n5 == 3){
         cout<<"TRECE";
      }else if(n4 == 1 && n5 == 4){
         cout<<"CATORCE";
      }else if(n4 == 1 && n5 == 5){
         cout<<"QUINCE";
      }else if(n4 == 1){
         cout<<"DIECI";
      }
      if(n4 == 2 && n5 == 0){
         cout<<"VEINTE";
      }else if(n4 == 2){
         cout<<"VEINTI"; 
      }else if(n4 == 3 && n5 == 0){
         cout<<"TREINTA";
      }else if(n4 == 3){
         cout<<"TREINTA Y "; 
      }else if(n4 == 4 && n5 == 0){
         cout<<"CUARENTA";
      }else if(n4 == 4){
         cout<<"CUARENTA Y "; 
      }else if(n4 == 5 && n5 == 0){
         cout<<"CINCUENTA";
      }else if(n4 == 5){
         cout<<"CINCUENTA Y "; 
      }else if(n4 == 6 && n5 == 0){
         cout<<"SESENTA";
      }else if(n4 == 6){
         cout<<"SESENTA Y "; 
      }else if(n4 == 7 && n5 == 0){
         cout<<"SETENTA";
      }else if(n4 == 7){
         cout<<"SETENTA Y "; 
      }else if(n4 == 8 && n5 == 0){
         cout<<"OCHENTA";
      }else if(n4 == 8){
         cout<<"OCHENTA Y "; 
      }else if(n4 == 9 && n5 == 0){
         cout<<"NOVENTA";
      }
      else if(n4 == 9){
         cout<<"NOVENTA Y ";
      } 
      //Sentencia para determinar las unidades  
      if(n5 == 1 && n4 > 1){
         cout<<"UNO"; 
      }else if(n5 == 1 && n4 == 0){
         cout<<"UNO";  
      }else if(n5 == 2 && n4 > 1){
         cout<<"DOS"; 
      }else if(n5 == 2 && n4 == 0){
         cout<<"DOS"; 
      }else if(n5 == 3 && n4 > 1){
         cout<<"TRES"; 
      }else if(n5 == 3 && n4 == 0){
         cout<<"TRES";  
      }else if(n5 == 4 && n4 > 1){
         cout<<"CUATRO"; 
      }else if(n5 == 4 && n4 == 0){
         cout<<"CUATRO";  
      }else if(n5 == 5 && n4 > 1){
         cout<<"CINCO"; 
      }else if(n5 == 5 && n4 == 0){
         cout<<"CINCO"; 
      }else if(n5 == 6){
         cout<<"SEIS"; 
      }else if(n5 == 7){
         cout<<"SIETE"; 
      }else if(n5 == 8){
         cout<<"OCHO"; 
      }else if(n5 == 9){
         cout<<"NUEVE"; 
      }
   } 
}

Resultado numeros letras

About Juan Gomez

Related Posts

  • Codes and Tags Logo

Add your comment