2012-01-26 5 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

두 번째 오류는 다른 오류의 원인입니다.

메소드 매개 변수를 메소드 필드와 동일한 이름으로 선언했습니다. 메서드 내에서 필드가 숨겨집니다.

이 오류는 매개 변수가 올바르게 선언되지 않도록하고 메서드에서 매개 변수 중 하나를 사용할 때마다 다른 오류가 발생합니다.

당신은이 같은 문자열 포맷 할 수 없습니다
0

오류는 사용자의 Adaline() 메소드에 회원 이름과 동일한 이름을 가진 매개 변수 (예 : net)가 있기 때문에 발생합니다. 그들의 이름을 바꾸거나 접두어 this을 사용하여 매개 변수 대신 회원을 참조하십시오.

4

:

컴파일러는 X0를 재정의 믿고
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); 

, X1, X2 대신

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; 

, 당신은 같은 서식의 방법을 사용해야합니다 , w0 등 ...

+0

왜 플로트 값으로 인쇄하지 않습니까? – user1151963

+0

{0 : f2}를 시도하십시오. 여기서 2는 십진수 자릿수입니다. –

관련 문제