С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2

Построить график!

14.01.2011, 17:51. Показов 3810. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли стандартными средствами или другими построить график в С#? Точечный... помогите плз!!
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2011, 17:51
Ответы с готовыми решениями:

Построить график функции y=x^2. График строится из отрезков и алгоритма Брезенхема
Построить график функции y=x^2. График строится с помощью отрезков. Для построения отрезков использовать алгоритм Брезенхема.

Построить график
Построить график по рисунку пожалуйста завтра надо сдавать уже (((

Построить график функции
Доброго времени суток. Напишите пожалуйста решение f(x)=1/x^2+4/(x+1)^2 построить график функции на отрезке

16
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
14.01.2011, 17:59
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
using System;
using System.Collections.Specialized;
using System.Globalization;
 
class Program
{
    delegate float f(float x);
 
    static Tuple<float, float> yMinMax(f func, float xmin, float xmax, float step)
    {
        float min = func(xmin), max = func(xmin);
        for (float x = xmin; x < xmax; x += step)
        {
            float cy = func(x);
            if (cy < min) min = cy;
            if (cy > max) max = cy;
        }
        return Tuple.Create(min, max);
    }
 
    static void SwapNumbers(ref float first, ref float second)
    {
        float tmp = first;
        first = second;
        second = tmp;
    }
 
    static float Distance(float v1, float v2)
    {
        return (float)Math.Abs(v1 - v2);
    }
 
    static bool IsOwned(float x, float min, float max)
    {
        return x >= min && x <= max;
    }
 
    static float Display(float x, float minA, float maxA, float minB, float maxB)
    {
        if (minA > maxA) SwapNumbers(ref minA, ref maxA);
        if (minB > maxB) SwapNumbers(ref minB, ref maxB);
        if (!IsOwned(x, minA, maxA)) return 0f; //throw new ArgumentOutOfRangeException();
        float lenA = Distance(minA, maxA);
        float lenB = Distance(minB, maxB);
        float y = lenB * (x - minA) / lenA + minB;
        return y;
    }
 
    static void build(f func, float xmin, float xmax, float step)
    {
        Tuple<float, float> ymm = yMinMax(func, xmin, xmax, step);
        for (float x = xmin; x < xmax; x += step)
        {
            int cx = (int)Display(x, xmin, xmax, 1, 80);
            float y = ymm.Item2 - func(x);
            int cy = (int)Display(y, ymm.Item1, ymm.Item2, 1, 25);
            Console.SetCursorPosition(cx, cy);
            Console.Write('*');
        }
    }
 
    static float f1(float x)
    {
        return (float)Math.Pow(2f, x);
    }
 
    static float f2(float x)
    {
        return (float)Math.Pow(0.5f, x);
    }
 
    static float f3(float x)
    {
        return (float)Math.Pow(4f, x);
    }
 
    static void Main(string[] args)
    {
        Console.WriteLine("Select function");
        Console.WriteLine("1. y = 2^x");
        Console.WriteLine("2. y = 0.5^x");
        Console.WriteLine("3. y = 4^x");
        Console.Write("Your choise: ");
        string s = Console.ReadLine();
        f function;
        switch (s.Trim())
        {
            case "1": function = f1; break;
            case "2": function = f2; break;
            case "3": function = f3; break;
            default: Console.WriteLine("Error: Wrong input!"); return;
        }
        Console.Write("Enter function step: ");
        s = Console.ReadLine();
        float step = 0f;
        while (!float.TryParse(s, NumberStyles.Any, CultureInfo.CurrentCulture, out step))
        {
            Console.WriteLine("Error: Wrong input!");
            Console.Write("Try again: ");
            s = Console.ReadLine();
        }
        Console.Clear();
        build(function, -3f, 3f, step);
        Console.ReadKey();
    }
}
Original topic
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
14.01.2011, 19:26  [ТС]
Не, мне на форму надо вывести... я уже разобрался немного.

Внимание вопрос, в WindowApplications класс Point виден... Как я захожу в мою библиотку SortLibrary, то там нету такого класса... а мне он там нужен для написания метода, который принимает массив Point[].

Как решить данную проблему?)
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
14.01.2011, 19:56
Читай про Chart.
Для использования необходимо добавить ссылку на System.Windows.Forms.DataVisualization.d ll
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.01.2011, 19:57
Цитата Сообщение от Temoxa Посмотреть сообщение
Как я захожу в мою библиотку SortLibrary, то там нету такого класса... а мне он там нужен для написания метода, который принимает массив Point[].
Как решить данную проблему?
Подключи пространство имен
using System.Drawing;
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
14.01.2011, 20:20  [ТС]
Когда просто подключаю в библиотеке using System.Drawing; выдает ошибку, что нет такой библиотеки.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.01.2011, 20:24
Temoxa, еще в References ссылка нужна
1
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
14.01.2011, 21:07  [ТС]
Да, спасибо) подключил)

Теперь другой вопрос как подсчитать сложность вот этой сортировки?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < mass.Length - 1; i++)
            {
                for (int j = 0; j < (mass.Length - 1) - i; j++)
                {
                    if (mass[j].X > mass[j + 1].X)
                    {
                        temp.X = mass[j].X;
                        mass[j].X = mass[j + 1].X;
                        mass[j + 1].X = temp.X;
                        count += 8;
                    }
                    count += 1;
                }
                count += 3;
            }
я правильно считаю?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.01.2011, 21:13
Цитата Сообщение от Temoxa Посмотреть сообщение
как подсчитать сложность вот этой сортировки?
А чем определяется сложность сортировки? Мы в свое время мерили скорость выполнения.
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
14.01.2011, 21:20  [ТС]
Мерится в действиях=) т.е = , +, - и т.д) и скока всех их было произведено в сортировке
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
14.01.2011, 21:29
В худшем случае O(n^2)
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.01.2011, 21:32
тогда наверное так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int i = 0; i < mass.Length - 1; i++)
            {
                for (int j = 0; j < (mass.Length - 1) - i; j++)
                {
                    if (mass[j].X > mass[j + 1].X)
                    {
                        temp.X = mass[j].X;
                        mass[j].X = mass[j + 1].X;
                        mass[j + 1].X = temp.X;
                        count += 5;
                    }
                    count += 6;
                }
                count += 4;
            }
count += 1;
Добавлено через 1 минуту
Temoxa, но для каждого вида сортировки давно есть формулы расчета количества итераций, поищи
0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
14.01.2011, 21:46  [ТС]
n - это кол-во элементов?)
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
14.01.2011, 21:48
Если вы это мне, то да, n - это кол-во элементов. И прочитайте это и это.

Не по теме:

Возле сообщения существует такая кнопочка "Быстрый ответ на это сообщение", пожалуйста пользуйтесь ею.

0
14.01.2011, 22:29

Не по теме:

Цитата Сообщение от Alex Sabaka Посмотреть сообщение
В худшем случае O(n^2)
Как так O(n^2)? А как же Bogosort и подобные!

0
14.01.2011, 22:34

Не по теме:

А при чем здесь обезьянья сортировка? У ТС просто улученная bubble sorting.

0
10 / 10 / 3
Регистрация: 19.03.2010
Сообщений: 679
Записей в блоге: 2
15.01.2011, 11:15  [ТС]
Есть метод заполнения рэндомом массива чисел Point
C#
1
2
3
4
5
6
7
8
9
10
11
12
 private void RazbrosTochek() //Метод рэндомно заполнение Points
        {
            for (int i = 0; i < points.Length; i++)
            {
                points[i] = new Point(rnd.Next(400), rnd.Next(250));
            }
 
            Pen p = new Pen(Color.Blue, 1);
            grafik.DrawCurve(p, points);
 
            tempP = points; //Дальше работаем с temp
        }
Есть в классе пузырьковая сортировка, принимающая массив Point

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public int BubbleSort(Point[] mass) // Сортировка Пузырьком
        {
            int count = 0; //Кол-во операций
            Point temp = new Point(0, 0);
 
            for (int i = 0; i < mass.Length - 1; i++)
            {
                for (int j = 0; j < (mass.Length - 1) - i; j++)
                {
                    if (mass[j].X > mass[j + 1].X)
                    {
                        temp.X = mass[j].X;
                        mass[j].X = mass[j + 1].X;
                        mass[j + 1].X = temp.X;
                        count += 8;
                    }
                    count += 1;
                }
                count += 3;
            }
            return count;
        }
И есть событие на копку, где принимается массив tempF и он сортируется... Но почему то вместе с ним и сортируется массив, который мы задавли рэндомно в 1 методе. т.е points!!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void button1_Click(object sender, EventArgs e) //Сортировка Пузырем
        {
 
            grafik.Clear(Color.Gray);
            
            int slojnost;
            slojnost = sort.BubbleSort(tempP);
 
            Pen p = new Pen(Color.Blue, 1);
            grafik.DrawCurve(p, tempP);
 
            DrawStr(slojnost);
        }
Как сделать чтобы сортировался тока tempF, без массива points?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2011, 11:15
Помогаю со студенческими работами здесь

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

Построить график функций
Необходимо составить код для консольного приложения С# по четырем задачам: 1) Компьютер строит график функции y=a*x^2+b*x+c. Переменные...

Как построить график?
Есть массив результатов, надо вывести график только части. Например есть вектор А , а построить только диапазон значений В .

Построить график функции
Построить график функции z = f (x) при a ≤ x ≤ b , разбивая отрезок на n частей. График начертить точками или отрезками прямых линий...

Построить график по точкам
Добрый день, народ. Строю график по точкам: x y 0 0.067 1 0.045 2 ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru