2012-01-26 14 views
-3
using System; 
    using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
    using System.Windows.Forms; 

    namespace Adaline 
    { 
    public partial class Form1 : Form 
    { 
    float d1, d2, d3, d4, eta; 
    float y1, y2, y3, y4; 
    float w10, w11, w12; 
    float w20, w21, w22; 
    float w30, w31, w32; 
    float w40, w41, w42; 
    float x10, x11, x12; 
    float x20, x21, x22; 
    float x30, x31, x32; 
    float x40, x41, x42; 

    float net, net1, net2, net3, net4; 

    float dw10, dw11, dw12; 
    float dw20, dw21, dw22; 
    float dw30, dw31, dw32; 
    float dw40, dw41, dw42; 

     public Form1() 
    { 
     InitializeComponent(); 
    } 
     public void Adaline(float x0, float x1, float x2, 
          float w0, float w1, float w2, 
          float d, float net, float y, 
          float dw0, float dw1, float dw2, float eta) 
     { 
      net = x0 * w0 + x1 * w1 + x2 * w2; 

      if (net <= 0) 
       y = 1; 
      else 
       y = -1; 

      dw0 = eta * x0 * (d - net); 
      dw1 = eta * x1 * (d - net); 
      dw2 = eta * x2 * (d - net); 

      string a = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}  {10} {11}", x0, x1, x2, w0, w1, w2, d, net, y, dw0, dw1, dw2; 
      listBox1.Items.Add(a); 
     } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     eta = Convert.ToSingle(textBox20); 

     d1 = Convert.ToSingle(textBox19); 
     d2 = Convert.ToSingle(textBox18); 
     d3 = Convert.ToSingle(textBox17); 
     d4 = Convert.ToSingle(textBox16); 

     w10 = Convert.ToSingle(textBox3); 
     w11 = Convert.ToSingle(textBox2); 
     w12 = Convert.ToSingle(textBox1); 
     int passes = 0; 

     x10 = Convert.ToSingle(textBox7); 
     x11 = Convert.ToSingle(textBox11); 
     x12 = Convert.ToSingle(textBox15); 
     x20 = Convert.ToSingle(textBox6); 
     x21 = Convert.ToSingle(textBox10); 
     x22 = Convert.ToSingle(textBox14); 
     x30 = Convert.ToSingle(textBox5); 
     x31 = Convert.ToSingle(textBox9); 
     x32 = Convert.ToSingle(textBox13); 
     x40 = Convert.ToSingle(textBox4); 
     x41 = Convert.ToSingle(textBox8); 
     x42 = Convert.ToSingle(textBox12); 

     while (passes <= 100) 
     { 
      Adaline(x10, x11, x12, w10, w11, w12, d1, net1, y1, dw10, dw11, dw12, eta); 

      w20 = w10 + dw10; 
      w21 = w11 + dw11; 
      w22 = w12 + dw12; 

      Adaline(x20, x21, x22, w20, w21, w22, d2, net2, y2, dw20, dw21, dw22, eta); 

      w30 = w20 + dw20; 
      w31 = w21 + dw21; 
      w32 = w22 + dw22; 

      Adaline(x30, x31, x32, w30, w31, w32, d3, net3, y3, dw30, dw31, dw32, eta); 

      w40 = w30 + dw30; 
      w41 = w31 + dw31; 
      w42 = w32 + dw32; 

      Adaline(x40, x41, x42, w40, w41, w42, d4, net4, y4, dw40, dw41, dw42, eta); 

      w10 = w40 + dw40; 
      w11 = w41 + dw41; 
      w12 = w42 + dw42; 

      passes += 1; 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

} 

}誰かが私に得る誤りを私に助けることができますか?

私はthieseエラーを取得:それが宣言される前に 1 'は、ネットのローカル変数を使用することはできません。ローカル変数の宣言はフィールド 'Adaline.Form1.net'を隠す 2宣言する前にローカル変数 'x0'を使用できません。 3宣言する前にローカル変数 'w0'を使用することはできません。 4宣言する前にローカル変数 'x1'を使用できません。 。 。 。

+2

これは宿題ですか?この目的のためにそれぞれのタグを使用してください。 –

+3

エラーは非常にはっきりしています。ちょうど...知っていて、それらを読んで、少し考えてみてください。ドキュメントを参照してください。 –

+0

エラーが表示された場合、「変数Netは、宣言していないため使用できません。 –

答えて

0

2番目のエラーは、他のエラーの原因です。

メソッドフィールドと同じ名前のメソッドパラメータを宣言しました。これはメソッド内のフィールドを隠します。

このエラーにより、パラメータが正しく宣言されず、メソッドでパラメータのいずれかを使用するたびに別のエラーが発生します。

0

あなたのAdaline()メソッドには、メンバと同じ名前のパラメータ(例:net)が含まれている可能性があります。名前を変更するか、接頭辞を使用して、パラメータの代わりにメンバーを参照してください。

4

あなたはこのような文字列をフォーマットすることはできません。その代わりに、あなたのような、フォーマット方法を使用する必要があります

string a = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}  {10} {11}", x0, x1, x2, w0, w1, w2, d, net, y, dw0, dw1, dw2; 

string a = String.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}  {10} {11}", x0, x1, x2, w0, w1, w2, d, net, y, dw0, dw1, dw2); 

コンパイラは、X0、X1、X2を再定義していると信じています、w0など...

+0

しかし、なぜそれらを浮動小数値として表示しないのですか? – user1151963

+0

{0:f2}を試してください。ここで2は小数点以下の桁です –

関連する問題