Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 33

Индекс за пределами диапазона

09.04.2021, 17:43. Показов 1646. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый вечер, возникло исключение "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции. Имя параметра: index" при выводе массива на график. Помогите это исправить пожалуйста. Условие задачи в мэсседж боксе. Заранее благодарю)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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;
using System.Windows.Forms.DataVisualization.Charting;
 
namespace TIPiS
{
    public partial class Form5 : Form
    {
        public Form5()
        {
            InitializeComponent();
        }
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form ifrm = Application.OpenForms[0];
            ifrm.Show();
        }
 
        static private double gauss(Random random)
        {
            double z, a, N_c = 6; ;
            int i;
            z = 0.0;
 
            for (i = 0; i < N_c; i++)
            {
                a = random.Next(300000);
                z = z + a / 300000;
            }
            z = z - 0.5 * N_c;
            z = z / Math.Sqrt(N_c / 12);
            return z;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Chart chart1 = new Chart();
            chart1.Parent = panel1;
            chart1.Dock = DockStyle.Fill;
            Random random = new Random();
            double math_o = 2, D = 5, a = 0.95;
            int N = 500;
            double[] x = new double[N];
            double k1, k2; int n;
            k2 = Math.Exp(-a);
            k1 = Math.Sqrt(D * (1 - k2 * k2));
            double er;
            x[0] = gauss(random);
            for (n = 1; n < N; n++)
            {
                for (int i = 0; i < 1; i++)
                {
                    er = gauss(random);
                    x[n] = k1 * er + k2 * x[n - 1];
                }
            }
 
            //chart1.Series[0].Points.DataBindXY(x[n], N);
            chart1.Series[0].Points.Add(x[n]);
        }
 
        //условие задачи
        private void button3_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Разработать программу моделирования гауссовского случайного процесса с экспоненциальной" + "\nфункцией корреляции. Параметры процесса выбрать следующими: математическое ожидание равно 2" +
"\nдисперсия равна 5, а коэффициент корреляции соседних отсчетов процесса" +
"\nравен р(1) = 0.95. Программа должна вывести на экран реализацию процесса." +
"\nТакже программа должна вывести на экран оценку" +
"\n(по экспериментальным данным) корреляционной функции по реализации процесса", "Задача 1");
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2021, 17:43
Ответы с готовыми решениями:

Индекс за пределами диапазона
Всем привет! Срочно нужна помощь с переносом записи из одного datagridview в другой. При кодировании кнопки в 106 строке выходит сообщение...

Индекс за пределами диапазона
Всем доброго времени суток. У меня проблема при работе DataGridView и бд(SQL Server) Дело в том что в бд меня записаны месяца и...

Индекс за пределами диапазона
Всем привет. Пишу программу для диплома и прямо перед самой защитой вылезла такая беда. При удалении записи из таблицы выдает...

3
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
10.04.2021, 09:21
А в какой строке исключение?
У себя проверил следующий код, нет ошибок.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
private double gauss(Random random)
        {
            double z, a, N_c = 6; ;
            int i;
            z = 0.0;
 
            for (i = 0; i < N_c; i++)
            {
                a = random.Next(300000);
                z = z + a / 300000;
            }
            z = z - 0.5 * N_c;
            z = z / Math.Sqrt(N_c / 12);
            return z;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            Random random = new Random();
            double math_o = 2, D = 5, a = 0.95;
            int N = 500;
            double[] x = new double[N];
            double k1, k2; int n;
            k2 = Math.Exp(-a);
            k1 = Math.Sqrt(D * (1 - k2 * k2));
            double er;
            x[0] = gauss(random);
            for (n = 1; n < N; n++)
            {
                er = gauss(random);
                x[n] = k1 * er + k2 * x[n - 1];
            }
 
            for (int i = 0; i < x.Length; i++)
            {
                listBox1.Items.Add(x[i]);
            }
 
            MessageBox.Show(listBox1.Items.Count.ToString());
        }
Все 500шт.
И цикл убрал лишний, для чего он?
C#
1
2
3
4
5
for (int i = 0; i < 1; i++)
{
   er = gauss(random);
   x[n] = k1 * er + k2 * x[n - 1];
}
Добавлено через 2 минуты
Можно еще немного поправить:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
private double gaussNewRandom()
        {
            double z, a, N_c = 6; ;
            int i;
            z = 0.0;
 
            Random random = new Random();
 
            for (i = 0; i < N_c; i++)
            {
                a = random.Next(300000);
                z = z + a / 300000;
            }
            z = z - 0.5 * N_c;
            z = z / Math.Sqrt(N_c / 12);
            return z;
        }
 
private void button3_Click(object sender, EventArgs e)
        {
            double math_o = 2, D = 5, a = 0.95;
            int N = 500;
            double[] x = new double[N];
            double k1, k2; int n;
            k2 = Math.Exp(-a);
            k1 = Math.Sqrt(D * (1 - k2 * k2));
            double er;
            x[0] = gaussNewRandom();
            for (n = 1; n < N; n++)
            {
                er = gaussNewRandom();
                x[n] = k1 * er + k2 * x[n - 1];
            }
        }
0
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 33
22.04.2021, 23:01  [ТС]
Исключение вызывается в строке вывода
C#
1
chart1.Series[0].Points.Add(x[n]);
Если выводить вот так, тоже исключение
C#
1
//chart1.Series[0].Points.DataBindXY(x[n], N);
Добавлено через 2 минуты
Tatarin78, Исключение вызывается в строке вывода

C#
1
chart1.Series[0].Points.Add(x[n]);
Если выводить вот так, тоже исключение
C#
1
//chart1.Series[0].Points.DataBindXY(x[n], N);
0
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
24.04.2021, 17:28
Добавьте перед:
C#
1
chart1.Series[0].Points.Add(x[n]);
следующее:
C#
1
2
3
4
chart1.Series.Clear();
chart1.Titles.Add("Ваше название");
// здесь добавляется первое значение (в данном случае легенда к названию графика) (поэтому у вас не работало)
Series series = chart1.Series.Add("Ваше название");
Меняете строку
C#
1
chart1.Series[0].Points.Add(x[n]);
на
C#
1
chart1.Series[0].Points.Add(new double[] { x[n] });
и далее по желанию:
C#
1
2
series.ChartType = SeriesChartType.Spline;
series.BorderWidth = 5;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2021, 17:28
Помогаю со студенческими работами здесь

Индекс за пределами диапазона
Привет народ. Ошибка возникает при добавлении данных в DGV. System.ArgumentOutOfRangeException HResult=0x80131502 Сообщение =...

Индекс за пределами диапазона
Всем привет! Есть datagridview, которая выводит информацию из бд. Есть выпадающее меню, в котором есть добавить, править, удалить, при...

Индекс за пределами диапазона
Всем привет,сложилась проблема, не понимаю как решить for (int i = 0; i &lt; 6; i++) ca =...

Индекс за пределами диапазона
Помогите, пожалуйста, не понимаю как исправить. private void AddColumns2(DataGridView dgw) { // добавляет n...

Индекс за пределами диапазона
В 52 строке программа выдает: &quot;System.ArgumentOutOfRangeException: &quot;Индекс за пределами диапазона. Индекс должен быть положительным числом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru