Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции. Имя параметра: index'

при компиляции программы выходит ошибка: "System.ArgumentOutOfRangeException: 'Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции. Имя параметра: index' "

Код программы: `

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

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        double F, m, b, k, h, t, w;
        private void button1_Click(object sender, EventArgs e)
        {   
            double Z0 = 0, X0 = 0, ti = 0;
            double k1, k2, k3, k4, l1, l2, l3, l4 = 0;
            int i = 0;

            m_ReadVar();

            while (ti < t)
            {

                i += 1;
                ti = i * h;

                k1 = h * Z0;
                l1 = (h / m) * ((Math.Abs(F * Math.Cos(w * ti)) - (b * Z0) - (k * X0)));

                k2 = h * (Z0 + l1 / 2);
                l2 = (h / m) * ((Math.Abs(F * Math.Cos(w * (ti + h / 2))) - (b * (Z0 + l1 / 2)) - (k * (X0 + k1 / 2))));

                k3 = h * (Z0 + l2 / 2);
                l3 = (h / m) * ((Math.Abs(F * Math.Cos(w * (ti + h / 2))) - (b * (Z0 + l2 / 2)) - (k * (X0 + k2 / 2))));

                k4 = h * (Z0 + l3);
                l4 = (h / m) * (Math.Abs(F * Math.Cos(w * (ti + h))) - (b * (Z0 + l3)) - (k * (X0 + k3)));

                X0 += (k1 + 2 * k2 + 2 * k3 + k4) / 6;
                Z0 += (l1 + 2 * l2 + 2 * l3 + l4) / 6;

                chart1.Series[0].Points.AddXY(ti, X0);
                chart1.Series[1].Points.AddXY(ti, Math.Abs(F * Math.Cos(w * ti)));

                if (Math.Abs(ti - 40) < h) { textBox8.Text = Math.Round(X0, 4).ToString(); }
            }
        }

        private void m_ReadVar()
        {
            F = Convert.ToDouble(textBox1.Text);
            m = Convert.ToDouble(textBox2.Text);
            b = Convert.ToDouble(textBox3.Text);
            w = Convert.ToDouble(textBox4.Text) * (180 / Math.PI);
            k = Convert.ToDouble(textBox5.Text);
            h = Convert.ToDouble(textBox6.Text);
            t = Convert.ToDouble(textBox7.Text);
            chart1.Series[0].Points.Clear();
            chart1.Series[1].Points.Clear();
        }
        private void label8_Click(object sender, EventArgs e)
        {

        }
    }
    }

` Может я ошибся в составлении формы?

фото моей формы

Сама задача: Вариант 4-1

Заранее спасибо!


Ответы (0 шт):