4 / 4 / 1
Регистрация: 13.06.2011
Сообщений: 25
1
.NET 4.x

Разработать программу для построения графиков функции

16.02.2012, 19:13. Показов 17636. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать программу для построения графиков функции. Считать из файла, указанного пользователем значения абсциссы Х (не менее 20 значений), произвести сортировку Х по возрастанию, рассчитать для них значения ординаты У, записать результат вычисления в новый файл в формате:
Х1 У1а У1в
Х2 У2а У2в
Диапазон изменения значений переменной x — произвольный, задаваемый пользователем с учётом областей определения функций.
1- функция (|x-1|/2)-1.75
2- функция (x/3)cos(x-1-(П/3))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2012, 19:13
Ответы с готовыми решениями:

Как в функцию записать значение из textBox для дальнейшего построения графиков
Доброго времени суток. Я хотел создать программу, которая считывает информацию из textBox и...

Разработать программу, содержащую 2 функции для работы с текстовыми файлами
1)Задать имя файла: ввод с клавиатуры; строковая константа в программе. 2)Вариант цепочки...

Приложение на C#, для построения графика функции
Приветствую всех. Настало время сессии, а сроки сдачи поджимают.:wall: Прошу помочь, кто чем...

Разработать программу для построения графиков функций

9
6261 / 3562 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
16.02.2012, 21:50 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
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
using System;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
 
public class App : Form
{
    public App()
    {
        Button buttonLoadPoint = new Button {
            Text = "Points",
            Left = 10,
            Top = 10,
        };
        buttonLoadPoint.Click += new EventHandler(buttonLoadPoint_Click);
        this.Graphic = new Chart {
            Left = 10,
            Top = buttonLoadPoint.Bottom + 10,
            Width = this.ClientRectangle.Width - 20,
            Height = this.ClientRectangle.Height - buttonLoadPoint.Bottom - 20,
            Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top
        };
        this.Controls.AddRange(new Control[] { 
            this.Graphic, 
            buttonLoadPoint 
        });
        ChartArea chartArea = new ChartArea();
        this.Graphic.ChartAreas.Add(chartArea);
        this.Graphic.Titles.Add("п");
        this.Graphic.Titles[0].Text = "График функции";
        Series series = new Series();
        series.ChartType = SeriesChartType.Line;
        this.Graphic.Series.Add(series);
    }
 
    void buttonLoadPoint_Click(object sender, EventArgs e)
    {
        OpenFileDialog dialog = new OpenFileDialog();
        dialog.Filter = "Текстовый документ |*.txt";
        if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            char[] delimiter = new char[] {
                '\n', '\t', ' ', '\r'
            };
            string[] s = File.ReadAllText(dialog.FileName).Split(delimiter,
                StringSplitOptions.RemoveEmptyEntries);
            
            double[] xValues = (from val in s
                                let res = double.Parse(val)
                               orderby res
                               select res).Distinct().ToArray();
            Series series = this.Graphic.Series[0];
            
            foreach (float x in xValues)
            {
                double y = (x / 3f) * Math.Cos(x - 1f - (Math.PI / 3f));
                series.Points.AddXY(x, y);
            }
        }
    }
 
    public Chart Graphic
    { get; set; }
 
    [STAThread]
    public static void Main(string[] argv)
    {
        Application.EnableVisualStyles();
        Application.Run(new App());
    }
}
Код
1 2 3 4 5 6 
1,2 1,4 10
12 5,6 7,9
Разработать программу для построения графиков функции

Там уж сам как-нибудь доделаешь
2
4 / 4 / 1
Регистрация: 13.06.2011
Сообщений: 25
16.02.2012, 22:46  [ТС] 3
Спс большое. Щяс буду разбирать все.
0
4 / 4 / 1
Регистрация: 13.06.2011
Сообщений: 25
18.03.2012, 23:11  [ТС] 4
А как заставить программу рассортировывать числа по возрастанию ?
0
4 / 4 / 1
Регистрация: 13.06.2011
Сообщений: 25
01.04.2012, 17:55  [ТС] 5
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
using System.IO;
 
namespace WindowsFormsApplication1
{
    public partial class app : Form
    {
        public app()
        {
            InitializeComponent();
            
        }
 
        
        
        public void Open_Click(object sender, EventArgs e)
        {
 
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "Текстовый документ |*.txt";
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                char[] delimiter = new char[] { '\n', '\t', ' ', '\r' };
                string[] s = File.ReadAllText(dialog.FileName).Split(delimiter,
                StringSplitOptions.RemoveEmptyEntries);
            
                double[] xValues = (from val in s let res = double.Parse(val) 
                                            orderby res select res).Distinct().ToArray();
                GraphPane pane = zedGraph.GraphPane; // Получим панель для рисования
                // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
                pane.CurveList.Clear();
                PointPairList f1_list = new PointPairList(); // Создадим список точек для кривой Графика №1
                PointPairList f2_list = new PointPairList(); // Создадим список точек для кривой Графика №2
                // Заполним массив точек для Графика №1
                foreach (float x in xValues)
                {
                    double y = (x / 3f) * Math.Cos(x - 1f - (Math.PI / 3f));
                    f1_list.Add(x, y);
                }
                // Заполним массив точек для Графика №2
                // Интервал и шаги по X могут не совпадать на разных кривых
                foreach (float x in xValues)
                {
                    double y = (Math.Abs(x - 1) / 2) * 1.75;
                    f2_list.Add(x, y);
                }
                // Создадим кривую с названием "График №1", 
                // которая будет рисоваться голубым цветом (Color.Blue),
                // Опорные точки будут выделяться плюсиками (SymbolType.Plus)
                LineItem f1_curve = pane.AddCurve("График №1", f1_list, Color.Blue, SymbolType.Plus);
                // Создадим кривую с названием "График №2", 
                // которая будет рисоваться красным цветом (Color.Red),
                // Опорные точки будут выделяться плюсиками (SymbolType.Plus)
                LineItem f2_curve = pane.AddCurve("График №2", f2_list, Color.Red, SymbolType.Plus);
 
                // Вызываем метод AxisChange (), чтобы обновить данные об осях. 
                // В противном случае на рисунке будет показана только часть графика, 
                // которая умещается в интервалы по осям, установленные по умолчанию
                zedGraph.AxisChange();
                // Обновляем график
                zedGraph.Invalidate();
            }
        }
 
        private void Save_Btn_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Save_img_Btn_Click(object sender, EventArgs e)
        {
            // Для сохранения картинки всего компонента ZedGraphControl 
            // достаточно вызвать метод SaveAsBitmap().
            // Создание и показ диалога выбора имени файла возьмет на себя ZedGraphControl
            zedGraph.SaveAsBitmap();
        }
    }
}
Вот что у меня получилось..
Обьясните подробно вот эту строчку
C#
1
2
double[] xValues = (from val in s let res = double.Parse(val) 
                                            orderby res select res).Distinct().ToArray();
И еще тупой вопрос. Я нашел команду для сортировки массива Array.Sort Но она на отрез отказывается у меня работать. почему ?
Миниатюры
Разработать программу для построения графиков функции  
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 6
03.07.2013, 12:12 6
OmgMrL, у тебя ещё остались исходники этой программы ?
просто появилось задание написать точно такую же прогу с другими функциями
a) https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{{x}^{2}+9}-4,5
б) https://www.cyberforum.ru/cgi-bin/latex.cgi?4arctg\left(\frac{3x-2}{7}+1 \right)
0
4 / 4 / 1
Регистрация: 13.06.2011
Сообщений: 25
04.07.2013, 11:00  [ТС] 7
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
using System.IO;
 
namespace WindowsFormsApplication1
{
    public partial class app : Form
    {
        public app()
        {
            InitializeComponent();
            
        }
 
        
        
        public void Open_Click(object sender, EventArgs e)
        {
 
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "Текстовый документ |*.txt";
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                char[] delimiter = new char[] { '\n', '\t', ' ', '\r' };
                string[] s = File.ReadAllText(dialog.FileName).Split(delimiter,
                StringSplitOptions.RemoveEmptyEntries);
            
                double[] xValues = (from val in s let res = double.Parse(val) 
                                            orderby res select res).Distinct().ToArray();
                GraphPane pane = zedGraph.GraphPane; // Получим панель для рисования
                // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
                pane.CurveList.Clear();
                PointPairList f1_list = new PointPairList(); // Создадим список точек для кривой Графика №1
                PointPairList f2_list = new PointPairList(); // Создадим список точек для кривой Графика №2
                // Заполним массив точек для Графика №1
                foreach (float x in xValues)
                {
                    double y = (x / 3f) * Math.Cos(x - 1f - (Math.PI / 3f));
                    f1_list.Add(x, y);
                }
                // Заполним массив точек для Графика №2
                // Интервал и шаги по X могут не совпадать на разных кривых
                foreach (float x in xValues)
                {
                    double y = (Math.Abs(x - 1) / 2) * 1.75;
                    f2_list.Add(x, y);
                }
                // Создадим кривую с названием "График №1", 
                // которая будет рисоваться голубым цветом (Color.Blue),
                // Опорные точки будут выделяться плюсиками (SymbolType.Plus)
                LineItem f1_curve = pane.AddCurve("График №1", f1_list, Color.Blue, SymbolType.Plus);
                // Создадим кривую с названием "График №2", 
                // которая будет рисоваться красным цветом (Color.Red),
                // Опорные точки будут выделяться плюсиками (SymbolType.Plus)
                LineItem f2_curve = pane.AddCurve("График №2", f2_list, Color.Red, SymbolType.Plus);
 
                // Вызываем метод AxisChange (), чтобы обновить данные об осях. 
                // В противном случае на рисунке будет показана только часть графика, 
                // которая умещается в интервалы по осям, установленные по умолчанию
                zedGraph.AxisChange();
                // Обновляем график
                zedGraph.Invalidate();
            }
        }
 
        private void Save_Btn_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Save_img_Btn_Click(object sender, EventArgs e)
        {
            // Для сохранения картинки всего компонента ZedGraphControl 
            // достаточно вызвать метод SaveAsBitmap().
            // Создание и показ диалога выбора имени файла возьмет на себя ZedGraphControl
            zedGraph.SaveAsBitmap();
        }
    }
}
1
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 6
04.07.2013, 12:39 8
OmgMrL, нет я имею в виду сам проект с формой. ибо он у меня на отрез отказывается запускаться.
не могли бы вы его скинуть? буду очень благодарен!
0
4 / 4 / 1
Регистрация: 13.06.2011
Сообщений: 25
05.07.2013, 11:13  [ТС] 9
Нет не осталось. Тут сделать его пару минут.
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 6
05.07.2013, 14:25 10
Цитата Сообщение от OmgMrL Посмотреть сообщение
Нет не осталось. Тут сделать его пару минут.
Всё разобрался просто у меня коряво zedGraph встал в шарпы. Спс большое за листинг

Добавлено через 8 минут
а на счёт записи результата вычисления в новый файл в формате:
Х1 У1а У1в
Х2 У2а У2в

примера листинга нет ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2013, 14:25
Помогаю со студенческими работами здесь

Разработать программу для построения графика функции
разработать программу для построения графика функции у(х)=х^(-а), х принадлежит . параметр а...

Разработать программу для построения графика функции, заданной параметрическим уравнением
Пожалуйста помогите с заданием, будьте добры, заранее благодарен искренне... Разработать программу...

Разработать программу для построения графика функции, заданной параметрическим уравнением
Простите я тупой, некудышный, студент который не может сделать задачу. Надеюсь на ваш ответ...

Составить программу для построения графиков
Помогите пожалуйста составить программу для построения следующих графиков


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru