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

Построение графика функции

19.02.2023, 10:51. Показов 241. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не могу понять что нужно изменить чтоб Реализовалось распределение точек между сериями следующим образом: в 1ую серию идут только точки с отрицательной координатой X, во 2-ую серию - с отрицательной координатой Y, в 3-ю серию - точки с двумя отрицательными координатами. И как Разделить координаты по двум файлам: в 1-ом будут храниться координаты X, во 2-ом - координаты Y. Сейчас всё в одном файле и код считывает числа по порядку и положительные и отрицательные.

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection.Emit;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolBar;
 
namespace -
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox1.SelectedIndex = 2;
        }
        ///<summary>
        /// функция обрабатывает нажание кнопки buttonl - загрузку данных
        /// </summary>
        private void button1_Click_1(object sender, EventArgs e)
        {
            string filename; //строковая переменная для хранения полного пути к файлу с данными 
            //создание диалогового окна для выбора/текстового документа на диске компьютера
            OpenFileDialog openFileDialog1 = new OpenFileDialog() { Filter = "Текстовые файлы(*.txt)|*.txt" };
            if (openFileDialog1.ShowDialog() != DialogResult.OK) //отображение диалогового окна и проверка не выбран ли файл 
                return; //если файл не был выбран прерываем функцию
            filename = openFileDialog1.FileName; //если пользователь указал файл, то в переменную filename записывается его имя 
            ReadFile(filename); //вызов функции чтения файла
        }
                
        private double[,] Coords;
        /// <summary>
        /// функция для чтения текстового файла и заполнения массива координат
        /// </summary>
        /// <param name="file">"путь к файлу"</param>
        public void ReadFile(string file)
        {
            Coords = new double[15, 2]; // создание массива координат
            var sr = new StreamReader(file); //создание потока чтения
            string line; // строковая переменная
            int point = 0; // номер точки
            int ser = 1; //номер серии
            while ((line = sr.ReadLine()) != null) //чтение строки line 
            {
                string[] splitLine = line.Split(' '); // разделение строки на элементы по пробелам
                Coords[point, 0] = Convert.ToDouble(splitLine[0]); // запись координаты х в массив
                Coords[point, 1] = Convert.ToDouble(splitLine[1]); // запись координаты у в массив
 
                if (point % 5 == 0) //в каждой серии по 5 точек
                {
                    string NameSerie = "Серия" + Convert.ToString(ser); //имя серии
                    checkedListBox1.Items.Add(NameSerie); // добавление в checkedListBox1 имени серии
                    ser++;
                }
                point++;
            } 
        }
        ///<summary>
        /// функция для создания серии
        ///</summary>
        /// <param name="NumSerie">номep серии</рагаш>
        public void CreateSerie(int NumSerie)
        {
            double x, y;
            string NameSerie = "Серия" + Convert.ToString(NumSerie + 1); // имя серии
            chart1.Series.Add(new Series(NameSerie)); //добавление серии в Chart 
            chart1.Series[NameSerie].ChartType =
            (System.Windows.Forms.DataVisualization.Charting.SeriesChartType)4; //тип серии 
            chart1.Series[NameSerie].Enabled = true; //серия активируется 
            chart1.Series[NameSerie].BorderWidth = 2; //толщина линии
             
            for (int p = 0; p < 5; p++) //цикл для добавления точек с координатами х и у в серию
            {
                x = Coords[p + NumSerie * 5, 0];
                y = Coords[p + NumSerie * 5, 1];
               
                    chart1.Series[NameSerie].Points.AddXY(x, y);                                 
            }
 
        }
        ///<summary>
        ///функция обрабатывает нажание кнопки button2 - отображение графиков
        ///</summary>
        private void button2_Click_1(object sender, EventArgs e)
        {
            chart1.Series.Clear(); //удаление всех серий 
            for (int i = 0; i < checkedListBox1.Items.Count; i++) // цикл проходит по всем элементам checkedListBox1
            {
                if (checkedListBox1.GetItemChecked(i))
                    CreateSerie(i); //если элемент checkedListBox1 отмечен, то строим соответствующую серию
            }
        }
        /// <summary>
        /// функция обрабатывает изменение текущего элемента в comboBox1
        ///</summary>
        private void comboBox1_SelectionChangeCommitted_1(object sender, EventArgs e)
        {
            int var = comboBox1.SelectedIndex;
            if (var == 1) var = 3;
            else
            if (var == 2) var = 4;
            // задается тип для всех серий в Chart
            foreach (Series ser in chart1.Series)
                ser.ChartType = (System.Windows.Forms.DataVisualization.Charting.SeriesChartType)var;
        }
        private void Form1_Resize_1(object sender, EventArgs e)
        {
            button1.Location = new Point(splitContainer1.Panel1.Width / 2 - 60, splitContainer1.Panel1.Height / 20 - 8);
            label1.Location = new Point(splitContainer1.Panel1.Width / 2 - 67, splitContainer1.Panel1.Height / 10 + 9);
            checkedListBox1.Location = new Point(splitContainer1.Panel1.Width / 2 - 57, splitContainer1.Panel1.Height / 5 - 8);
            checkedListBox1.Height = splitContainer1.Panel1.Height / 2;
            button2.Location = new Point(splitContainer1.Panel1.Width / 2 - 62, splitContainer1.Panel1.Height - splitContainer1.Panel1.Height / 4 - 6);
            label2.Location = new Point(splitContainer1.Panel1.Width / 2 - 60, splitContainer1.Panel1.Height - splitContainer1.Panel1.Height / 5 + 13);
            comboBox1.Location = new Point(splitContainer1.Panel1.Width / 2 - 60, splitContainer1.Panel1.Height - splitContainer1.Panel1.Height / 5 + 40);
        }        
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2023, 10:51
Ответы с готовыми решениями:

Построение графика графика квадратичной функции
Как построить график квадратичной функции? Построил только простую параболу, как ее сдвигать? int ixPrev = -1, iyPrev =...

Построение графика функции
Постройте график функции для своего варианта. Таблицу данных получить путем изменения параметра X с шагом dx. Добавьте второй график для...

Построение графика функции
Здравствуйте! Стоит задача, чтобы при нажатии кнопки, строился график определенной функции W(i). Начала разбираться с примерами,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2023, 10:51
Помогаю со студенческими работами здесь

Построение графика функции
помогите переделать,мне надо написать на функ.: y=lnx-1/2(x*x) using System; using System.Collections.Generic; using...

Построение графика функции
Здравствуйте! Дали задание по построению графика в C#. Собственно, чертятся оси и рисуется график функции на выбор (3 функции, с...

Построение графика функции
Привет всем.Прочитал мсдн но не понимаю все равно.Объяснти плиз как построить график функции y=x^2??

Построение графика функции
Доброго времени суток. В windows forms я пока неопытный человек, поэтому нужна Ваша помощь. Как построить график функции, к примеру, ...

Построение графика функции
Подскажите пожалуйста, как сделать построение графика функции y=cos(2x+1)на отрезке в Windows Forms?


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru