Autor Tema: Ayuda C#  (Leído 8115 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xXMaximoXx

  • Sv Member
  • ***
  • Mensajes: 166
Ayuda C#
« : marzo 02, 2012, 06:29:06 pm »
Buenas Noches Comunos

Este dia necesito de su ayuda para poder solucioonar un inconveniente que tengo con la programacion en c#. De antemano explicarles soy pollo en esto jaja asi que espero no me ahueven jaja. Pues de antemano les pongo el codigo sencillo que tengo pero del cual no me corre el c# por algun motivo.

static void Main(string[] args)
        {
            float Sueldo;
            float Aumento;
            float Sueldo_Total;


            Console.WriteLine("Ingrese el Sueldo del Trabajador");
            Sueldo = float.Parse(Console.ReadLine());

           if (Sueldo > 550)
              {
                   Aumento = (Sueldo * 0.15);
                   Sueldo_Total=(Sueldo + Aumento);
              }
           else
            {
            }
            Console.WriteLine("Sueldo_Total");
            Console.ReadLine();

        }

Una de mis preguntas puntuales es:  Necesito en todo caso usar el .parse para cada uno de las variables que ya he declarado aunque ya los haya declarado al inicio?

De antemano muchas gracias.
El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...

Desconectado JaiMe

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 1485
  • λ | h+
Re: Ayuda C#
« Respuesta #1 : marzo 02, 2012, 07:24:47 pm »
float.parse es aplicado a la cadena de texto que recibis por el usuario mediante la consola.
float.parse regresa un numero de punto flotante

Código: [Seleccionar]
       float sueldo          /*declaras variable de tipo float*/
             
                          Console.ReadLine()   (usuario digita 3.1416)
                                 |
                                /
                 float.Parse("3.1416")
                      |
                     /
        sueldo = 3.1416        /*inicializas variable de tipo float con el valor obtenido mediante parse*/
       

La respuesta a tu pregunta es si.

-----

Cuando un programa no te corra, escribi los errores que te producen, eso nos ayuda a diagnosticar el problema. Intente correr tu programa y obtuve este error

Código: [Seleccionar]
maximo.cs(16,17): error CS0266: Cannot implicitly convert type `double' to `float'. An explicit conversion exists (are you missing a cast?)
Compilation failed: 1 error(s), 0 warnings

El problema es esta linea

Código: [Seleccionar]
Aumento = (Sueldo * 0.15)
El error es por que 0.15 es una expresion literal que el compilador define como tipo Double, al efectuar una operacion entre un Double y un Float, aparentemente obtenes un Double. La solucion es hacer un 'type cast'

Código: [Seleccionar]
Aumento = (float)(Sueldo * 0.15)
Tambien podes expresar 0.15 como 0.15F, lo que ayudara al compilador a definir el 0.15 como un valor de tipo Float.

Código: [Seleccionar]
Aumento = (Sueldo * 0.15F)
No he revisado la logica, pero hice varios cambios a tu programa - busca los cambios y estudialos.

Código: [Seleccionar]
  1 using System;
  2   
  3   class test{
  4     static void Main(string[] args)
  5     {
  6       float Sueldo;
  7       float Aumento = 0;
  8       float Sueldo_Total;
  9       
 10       
 11       Console.WriteLine("Ingrese el Sueldo del Trabajador");
 12       Sueldo = float.Parse(Console.ReadLine());
 13       
 14       if (Sueldo > 550){
 15         // Aumento = (float)(Sueldo * 0.15);
 16         Aumento = (Sueldo * 0.15F);
 17       }
 18       
 19       Sueldo_Total = (Sueldo + Aumento);
 20       Console.WriteLine(Sueldo_Total);
 21       Console.ReadLine();
 22     }
 23   }
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado xXMaximoXx

  • Sv Member
  • ***
  • Mensajes: 166
Re: Ayuda C#
« Respuesta #2 : marzo 02, 2012, 07:41:24 pm »
Muchas Gracias Jaime te coloco como llebava el codigo que maneje despues ya que me di cuenta de ese pequeño detalle del 0.15 y aun asi me dio un pequeño error:

Código: [Seleccionar]
Double Sueldo;
            Double Aumento;
            Double Sueldo_To;


            Console.WriteLine("Ingrese el Sueldo del Trabajador");
            Sueldo = Double.Parse(Console.ReadLine());

           if (Sueldo > 550)
              {
                   Aumento = (Sueldo * 0.15);
                   Sueldo_To=(Sueldo + Aumento);
              }
           else
            {
                Console.WriteLine("El Empleado No tiene Aumento");
            }
           Console.WriteLine("El Sueldo Total del Empleaso es de:", Sueldo_To);
           Console.ReadLine();

El error que me genero en esta oportunidad fue el siguiente

Código: [Seleccionar]
Error 1 Use of unassigned local variable 'Sueldo_To'
Y lo que el programa debera hacer es calcular un aumento del 15% para aquellos empleados que ganen mas de 550!

El codigo que me ayudaste a corregir lo estoy leyendo en estos momentos
El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Ayuda C#
« Respuesta #3 : marzo 02, 2012, 07:47:04 pm »
Hay 1 camino en el que la variable no recibe ningún valor, el compilador detecta que hay posibilidades que estes usando una variable que nuncá fue asignada con algun valor y te da el error !


Desconectado xXMaximoXx

  • Sv Member
  • ***
  • Mensajes: 166
Re: Ayuda C#
« Respuesta #4 : marzo 02, 2012, 08:11:32 pm »
Ya encontre el error en el segundo codigo que tenia:

Como me indico Rd el Valor de Sueldo_Total no estaba detectando nada eso es debido a que solamente existira Sueldo_Total cuando entre al If, si no entra al If por que el sueldo sea menor que $ 550 la variable no existiria en ningun momento, por lo cual la solucion fue la siguiente al principio de la declaracion:

Código: [Seleccionar]
Double Sueldo_Total = 0;
Saludos!
El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...

Desconectado xXMaximoXx

  • Sv Member
  • ***
  • Mensajes: 166
Re: Ayuda C#
« Respuesta #5 : marzo 02, 2012, 08:27:59 pm »
Uff Al final quien persevera alcanza y el resultado fue el siguiente:

Código: [Seleccionar]
class Program
    {
        static void Main(string[] args)
        {
            Double Sueldo;
            Double Aumento;
            Double Sueldo_Total = 0;

           
            Console.WriteLine("Ingrese el Sueldo del Trabajador");
            Sueldo = Double.Parse(Console.ReadLine());

            if (Sueldo > 550)
            {
                Aumento = (Double)(Sueldo * 0.15);
                Sueldo_Total = (Double)(Sueldo + Aumento);
            }
            Console.WriteLine();
            Console.WriteLine("El Sueldo Total del cliente es de:" + " "+ "$" + Sueldo_Total);
            Console.ReadLine();

        }
    }

El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Ayuda C#
« Respuesta #6 : marzo 02, 2012, 09:26:04 pm »
Buenale man, para mi no hay mejor manera de aprender que rebotando un buen rato !

Desconectado xXMaximoXx

  • Sv Member
  • ***
  • Mensajes: 166
Re: Ayuda C#
« Respuesta #7 : marzo 03, 2012, 01:21:02 am »
Gracias Rd. Todavia me falta una tanda de ejercicios que si no les encuentro acudire a la ayuda de los super poderosos de la comunidad jejeje  :sur:
El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...