2016-04-22 5 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

Вы описали как минимум три ошибки. ** Дайте нам программу, которая наглядно демонстрирует один из них и скажет, какой из них **. Не делайте людей, которые пытаются помочь вам угадать, в чем заключается ваша проблема или что такое ваш код. Сделайте небольшой, ** полный ** пример, который ** явно ** показывает проблему. Сообщение об ошибке имеет местоположение; сообщите нам, что это за место. –

+2

'for (int i; <= N; i ++)' * what * меньше или равно 'N'? Кроме того, что такое 'ChooseN'? Он не определен нигде (и, судя по вашей ошибке, это, вероятно, строка, а не int) – Rob

+1

В приведенной выше программе вы используете «ChooseN», не говоря о том, что это такое. Что это? –

ответ

-2

Я понял это сам. Я неправильно читал в SelectN. Это фиксировало это.

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

oh, и, по-видимому, маркировка любого pi будет завинчиваться C# – Sarah

+0

Ваш код довольно странный, и он не будет компилироваться. Кроме того, ваше наблюдение, что 'pi'_will винт с C# _ не соответствует действительности. 'pi' не является зарезервированным словом. Однако, если вы хотите использовать зарезервированное слово, например 'event', как идентификатор, вы можете префикс его' @ '. –

+0

Совершенно законно использовать 'pi' в качестве идентификатора; в этом отношении вполне законно использовать 'π' в качестве идентификатора. И Мартин прав, этот код ошибочен. –