problemas con el c#

Iniciado por Remarx, 7 Septiembre 2008, 07:03 AM

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

Remarx

Bunes soy nuevo por aqui, tengo un problema con el c# ya que recien toy aprendiendolo, pienso que el error es muy simple pero no logro dar con el espero que alguien pueda ayudarme. el error esta en la cuando quiero que imprima la respuesta en el txtrpta   METODO EXPONENCIAL "Error   1 Se requiere una referencia a objeto para el campo, método o propiedad no estáticos 'metodos_1.Form1.txtrpta'".
Esta en .net 2005 espero sus respuestas                           



static void Main()
      {
         Application.Run(new Form1());
      }

      private void btneje_Click(object sender,   System.EventArgs e)
      {
              double x=Convert.ToDouble(txtx.Text);
         double error=Convert.ToDouble(txterror.Text);
         exponencial(x,error);
      }
      public static double exponente(double x, int n)
      {
         int i;
         double result = 1;
         if (x == 0) return 0;
         for (i = 1; i <= n; i++)
            result = result * x;
         return result;
      }
      public static double factorial(int x)
      {
         int i;
         double fact = 1;
         for (i = 1; i <= x; i++)
            fact = fact* i;
         return fact;
      }
      private static double absoluto(double x)
      {
         if(x<0){
            x=-1*x;}
         return x;
      }
          private static double exponencial(double x, double error)
          {
              double Nerror=10000000;
              int n=2;
              double lastresult, result;
                while(Nerror>error)
                  {
                    lastresult=result;
                    result+=exponente(x,n)/factorial(n);n++;
                    Nerror=absoluto(Nerror-error);
==>  error    txtrpta.Text ="Paso"+n.ToString()+"\r\n   Valor:"+result.ToString()                  +"error:"+Nerror.ToString()+"\r\n ---------- \r\n";
                    if(n>100)
                    {MessageBox.Show("El sistema se detendá. muchas iteraciones");Nerror=0;}
                  }            
           }


MANULOMM

debes quitarle la palabra static a la firma de los metodos, no puedes acceder a objetos de instancia desde metodos estaticos, consulta en el msnd sobre static para que sepas como se utiliza....

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


Remarx

Gracias ya lo habia resuelto, era solo quitar el private static :D saludos.

MANULOMM

bueno, por favor cuando resuelvas algo cierra el hilo colocando la respuesta, y realmente como te lo dije en el post anterior es solo static, el private se puede quedar perfectamente...de todas formas te aconsejo que te pases por el msdn para que sepas el por que de esto, nno te gasnas nada haciendo que corra si no entiendes como funciona....

Atentamente,

Juan Manuel Lombana
Medellín - Colombia