2016-04-22 15 views
-2

私はC#と乱数ジェネレータを初めて使用しましたが、私が取っているコースのシミュレータをコーディングする必要があります。 forループとユーザー定義変数に問題があります。私はVisual Studioでコーディングしていて、ユーザーがリストから数値を選択する(またはテキストとして数値を入力する)必要がありますが、プログラムでは文字列ではなく整数として読み取ってから、この整数を乱数を生成する。C#乱数ジェネレータエラー

この乱数生成器に後で確率分布を割り当てる必要がありますが、今すぐ実行する必要があります。私は文字列にintを隠すことができないというエラーが発生しています(または、逆にコード化する方法によっては逆もあります)。私のローカル変数iが割り当てられていないというエラーを受け取るだけでなく、私は同様のジェネレータのコードを他のコードで見てきましたが、私はforループの違いを見ることができません。助けてください!以下はフォームスペースのC#コードです:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace GenerateProfile 
{ 
    public partial class Form1 : Form 
    { 
     int N; 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void ChooseN_SelectedIndexChanged(object sender, EventArgs e) 
     { 

      N = ChooseN; 
     } 

     private void SBtn_Click(object sender, EventArgs e) 
     { 
      Random rnd = new Random(); 
      int num = rnd.Next(0, 100); 
      pi.Text = num.ToString(); 
      for (int i; <= N; i++) 
      { 
       num = rnd.Next(0, 100); 
       pi.Text = pi.Text + num.ToString(); 
      } 
     } 

     private void ClBtn_Click(object sender, EventArgs e) 
     { 
      Close(); 
     } 
    } 
} 
+2

少なくとも3つのエラーが説明されています。 **それらの1つを明確に示し、どの1つを言うのかを私たちに教えてください。あなたの問題が何であるか、あなたのコードが何であるかを推測しなければならない人を助けようとしないでください。 **問題を明らかにする**完全な**例を作成してください。エラーメッセージには場所があります。場所が何であるか教えてください。 –

+2

'for(int i; <= N; i ++)' * what *は 'N'以下ですか?また、 'ChooseN'とは何ですか?それはどこにも定義されていません(あなたのエラーで判断すると、それはおそらく文字列でintではなく) – Rob

+1

上記のプログラムでは、それが何であるかを知らずに "ChooseN"を使います。それは何ですか? –

答えて

-2

私はそれを自分で考え出しました。私はChooseNで正しく読まなかった。これで修正されました。

private void Gen_Click(object sender, EventArgs e) 
    { 

     MessageBox.Show("N=", this.txtN.Text); 
     N = Convert.ToInt32(txtN.Text); 
     Random rnd = new Random(); 
     int num = rnd.Next(-1, 1); 
     pitxt.Text = num.ToString(); 
     int[] = { num }; 
     for (int i = 1; i <= N; i++) 
     { 
      num = rnd.Next(-1, 1); 
      pitxt.Text = pitxt.Text + "," + num.ToString(); 
      int[] = { int[], num }; 
     } 
+0

ああ、 C# – Sarah

+0

あなたのコードはかなり奇妙でコンパイルされません。また、 'pi' _がC#_とねじ合うというあなたの観察は真実ではありません。 'pi'は予約語ではありません。しかし、識別子として 'event'のような予約語を使用したい場合は、' @ 'の接頭辞を付けることができます。 –

+0

識別子として 'pi'を使用することは完全に正当です。その点では、識別子として 'π'を使うのは完全に合法です。マーティンはそうです、このコードは誤りです。 –