Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Fran2013 en 7 Noviembre 2013, 22:26 pm



Título: Ayuda con este codigo c#
Publicado por: Fran2013 en 7 Noviembre 2013, 22:26 pm
Hola amigos de elhacker, me presento: soy Francisco...
quisiera pedirles ayuda con este codigo en c# ...

Código
  1. int horasD;
  2.            int DiasT;
  3.            int PagoH;
  4.            int SemanasM;
  5.  
  6.            Console.Title = "Horas Pagas";
  7.  
  8.            Console.Write("Ingrese las horas al dia que trabaja: ");
  9.            horasD = Console.Read();
  10.            Console.WriteLine(" ");
  11.            Console.Write("Ingrese el dinero que recibe por hora: ");
  12.            PagoH = Console.Read();
  13.            Console.WriteLine(" ");
  14.            Console.Write("Ingrese los dias que trabaja por semana: ");
  15.            DiasT = Console.Read();
  16.            Console.WriteLine(" ");
  17.            Console.Write("Ingrese las semanas que tiene este mes: ");
  18.            SemanasM = Console.Read();
  19.  
  20.            int dinero_x_dia = horasD * PagoH;
  21.            int dinero_x_semana = dinero_x_dia * DiasT;
  22.            int total = dinero_x_semana * SemanasM;
  23.  
  24.            Console.WriteLine("Este mes vas a ganar " + total + " $");
  25.            Console.ReadLine();
  26.  


Lo que pasa es que al ejecutarlo solo me da a ingresar las horas y las semanas. Terminando mostrando una cifra disparatada... O aveces terminando el programa al ingresar las semanas ...  Cual sera el problema??? No lo preciso urgente ni nada, pero mi duda es porque pasa eso si aparentemente el codigo esta perfecto  :-( .


Ayuda  :huh:


Título: Re: Ayuda con este codigo c#
Publicado por: Mitsu en 8 Noviembre 2013, 15:23 pm
En C# todo lo que se recibe por medio de Console.ReadLine() es un String. Si el objetivo es manipular datos numéricos, debes de convertir ese String al formato numérico que desees, sea int, double, float.

La conversión en C# a int se hace de la siguiente manera:

Código
  1. // Console.ReadLine() capta todo en formato String
  2. // Lo tenemos que convertir a int con Convert.ToInt32()
  3. int horas = Convert.ToInt32(Console.ReadLine());
  4.  

Para convertir lo ingresado a Double, se hace el mismo procedimiento, pero se cambia ToInt32 por ToDouble:

Código
  1. // Console.ReadLine() capta todo en formato String
  2. // Lo tenemos que convertir a double con Convert.ToDouble()
  3. double pagoH = Convert.ToDouble(Console.ReadLine());
  4.  

En resumen, tu código quedaría así:

Código
  1.    static void main (String... args) {
  2.            int horasD;
  3.            int DiasT;
  4.            int PagoH;
  5.            int SemanasM;
  6.  
  7.            Console.Title = "Horas Pagas";
  8.  
  9.            Console.WriteLine("Ingrese las horas al dia que trabaja: ");
  10.            horasD = Convert.ToInt32(Console.Read());
  11.            Console.WriteLine("Ingrese el dinero que recibe por hora: ");
  12.            PagoH = Convert.ToDouble(Console.Read());
  13.            Console.WriteLine("Ingrese los dias que trabaja por semana: ");
  14.            DiasT = Convert.ToInt32(Console.Read());
  15.            Console.WriteLine("Ingrese las semanas que tiene este mes: ");
  16.            SemanasM = Convert.ToInt32(Console.Read());
  17.  
  18.            double dinero_x_dia = horasD * PagoH;
  19.            double dinero_x_semana = dinero_x_dia * DiasT;
  20.            double total_mensual = dinero_x_semana * SemanasM;
  21.  
  22.            Console.WriteLine("Este mes vas a ganar " + total_mensual + " $");
  23.            Console.ReadKey();
  24.  
  25.     }
  26.  


Título: Re: Ayuda con este codigo c#
Publicado por: Fran2013 en 8 Noviembre 2013, 16:27 pm
Gracias M1t$u, el error estaba en la entrada de datos :).
El codigo no era un trabajo para el estudio ni nada , una simple prueba mia...
Esto demuestra que no siempre  la ventana de errores y advertencias tiene la razon  :¬¬ .

Saludos y gracias de nuevo ... 


Título: Re: Ayuda con este codigo c#
Publicado por: Mitsu en 8 Noviembre 2013, 16:55 pm
Jaja, Sería perfecto que los compiladores adviertan de estos pequeños errores.


Saludos.