Ejemplo n.º 1
0
        private void buttonFindMinAndMax_Click(object sender, EventArgs e)
        {
            float Lowest  = float.MaxValue;
            float Highest = float.MinValue;

            Equation eq    = equations[listBoxEquations.SelectedIndex];
            float    prevX = eq.FromX;

            float step = 100f;

            float prevY = eq.GetValueInPoint(prevX);

            while (prevX <= eq.ToX)
            {
                float curX = prevX + 1 / step;
                float curY = eq.GetValueInPoint(curX);
                if (float.IsNaN(curY))
                {
                    prevX += 1 / step;
                    continue;
                }
                if (curY < Lowest)
                {
                    Lowest       = curY;
                    MinFuncPoint = new PointF(curX, Lowest);
                }
                if (curY > Highest)
                {
                    Highest      = curY;
                    MaxFuncPoint = new PointF(curX, Highest);
                }
                prevX = curX;
                prevY = curY;
            }
            pictureBoxMainField.Refresh();
            MessageBox.Show("Минимальное значение на заданном промежутке\n" + Lowest.ToString("0.00") + "\nМаксимальное значение на заданном промежутке\n" + Highest.ToString("0.00"));
        }
Ejemplo n.º 2
0
        private void buttonFuncValueInPoint_Click(object sender, EventArgs e)
        {
            Equation eq = equations[listBoxEquations.SelectedIndex];

            float pointX = float.Parse(textBoxPointX.Text.Replace('.', ','));

            if (eq.FromX > pointX || eq.ToX < pointX)
            {
                MessageBox.Show("Выбранная координата не принадлежит области определения");
                return;
            }
            float valueInPoint = eq.GetValueInPoint(pointX);

            if (!float.IsNaN(valueInPoint))
            {
                SelectedPointOfEquation = new PointF(pointX, valueInPoint);
                pictureBoxMainField.Refresh();
                MessageBox.Show("Значение функции в точке " + pointX.ToString("0;00") + " = " + valueInPoint.ToString("0"));
            }
            else
            {
                MessageBox.Show("Значение функции в точке " + pointX.ToString("0;00") + " " + "не существует");
            }
        }