Построение графика функции на промежутке с определенным шагом

Элемент управления Chart, его функциональные особенности и оценка возможностей, основные свойства и значение. Разработка с помощью данного элемента Windows-приложения для построения графиков функций. Анализ кода полученной программы и его листинг.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 14.06.2014
Размер файла 51,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Построение графика функции на промежутке с определенным шагом

Задание

программа приложение управление chart

Создать Windows-приложение для построения графиков функций, которое предлагает пользователю ввести данные начала промежутка (xn), конца промежутка (xk) и шага изменения переменной (xh) (сделать проверку правильности ввода данных). На одной координатной плоскости должны быть построены три графика f1 (x), f2 (x), f3 (x) разного цвета.

1. Теоретическая часть

Элемент управления Chart

Элемент управления Chart позволяет создавать диаграммы для сложного статистического или финансового анализа. Этот элемент поддерживает следующие функциональные возможности:

? ряды данных, области диаграммы, оси, условные обозначения, метки и заголовки;

? привязку данных;

? операции с данными: копирование, разбиение, слияние, выравнивание, группирование, сортировку, поиск, фильтрацию и т.д.;

? статистические и финансовые формулы;

? расширенную настройку внешнего вида диаграммы: трехмерную графику, сглаживание, освещение и перспективу;

? события и индивидуальную настройку.

С помощью компонента Chart (чертеж) удобнее всего выполнять построение графиков функции по уравнению на промежутке.

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

1) нужно добавить компонент Chart на форму;

2) щелкнуть левой кнопкой по пункту «Series» окна «Свойства»

3) в результате увидим окно редактора коллекции Series

4) чтобы на одном компоненте Chart построить несколько графиков функции, нужно выбрать страницу Series (левая часть окна) и щелкнуть по кнопке Добавить (если нужно построить несколько графиков на одной координатной плоскости, то нужно сделать соответствующее количество Series);

5) в правой части окна для каждой Series можно сделать индивидуальные настройки, основные из них:

1. ChartType - тип диаграммы для представления данных;

2. XValueType - тип значений, хранимых на оси ОХ;

3. YValueType - тип значений, хранимых на оси ОY;

4. Color - цвет точки данных;

5. BorderColor - задает цвет границ;

6. ShadowColor - задает цвет тени;

7. Font - шрифт точки данных;

8. LabelBackColor - задает цвет фона метки;

9. LabelForeColor - задает цвет метки;

10. IsVisibleInLegend - включает / выключает отображение легенды;

Многие из этих параметров можно также задавать программно, например:

Series^ plot1 = chart1->Series[0];

if (colorDialog1->ShowDialog()==System: Windows: Forms: DialogResult:OK)

plot1->Color = colorDialog1->Color;

В данном случае изменяется цвет графика функции при выборе цвета в диалоговом окне «ColorDialog».

Если графики функций нужно распечатать, то на черно-белом принтере линии будут неразличимыми. В этом случае нужно использовать возможности страницы Series и из списка опций BorderdashStyle выбрать другую прорисовку линии (например, точками) или в опции BorderWidth выбрать большую толщину линии (по умолчанию стоит значение 1).

Свойства элемента управления Chart

Основные свойства элемента управления Chart отображены:

1. BackColor - Задает цвет фона для объекта Chart

2. BackHatchStyle - Задает стиль штриховки для элемента управления Chart

3. BackImage - Задает фоновое изображение для элемента правления Chart BackImageTransparen

4. Color - Задает прозрачный цвет элемента управления Chart

5. BorderColor - Задает цвет границы диаграммы

6. BorderDashStyle - Задает стиль границы

7. BorderlineColor - Задает цвет линии границы

8. BorderlineDashStyle - Задает стиль линии границы

9. BorderlineWidth - Задает толщину линии границы

10. BorderWidth - Задает ширину границы диаграммы

11. Font - Получает свойства шрифта для элемента управления

12. FontHeight - Задает высоту шрифта элемента управления

13. ForeColor - Задает цвет текста элемента управления Chart

14. Height - Задает высоту элемента управления

15. Series - Возврат объекта класса SeriesCollection

16. Size - Задает размер элемента управления Chart

17. Visible - Включает / выключает элемент управления

1.3 События элемента управления Chart

1. BackColorChanged - Происходит при изменении значения свойства

2. BackColor Click - Происходит при щелчке элемента управления

3. DoubleClick - Происходит, когда элемент управления дважды щелкается

4. Enter - Происходит при входе в элемент управления

5. FontChanged - Происходит при изменении значения свойства Font

6. ForeColorChanged - Происходит при изменении значения свойства ForeColor

7. Leave - Происходит, когда фокус ввода покидает элемент управления

8. MouseClick - Генерируется при щелчке элемента управления мышью

9. Move - Происходит при перемещении элемента управления

10. VisibleChanged - Происходит при изменении значения свойства Visible мер выполнения работы

Ход выполнения

1. Входим в среду Visual Studio 2010. Создаем проект - Приложение WindowsForms Visual C#.

2. Свойству FormBorderStyle формы (стиль рамки окна) присвоить значение FixedToolWindow. Это значение определяет окно как диалоговое, его размеры на этапе прогона приложения (в процессе работы приложения) не могут быть изменены.

3. В верхней части окна разместить Label1 и в свойстве Text занести текст «Построение графика функции на интервале [xn; xk]».

4. Ниже под Label1 разместить компонент Сhart1. Выделить его и зайти в окно свойств; выбать свойство Series и нажать на троеточие.

5. Нажать на кнопку Добавить и у нас появится Series1 в левой части окна (каждая серия способна строить на компоненте Сhart1 новый график, поэтому, если нужно построить несколько графиков на одной координатной плоскости, то нужно сделать соответствующее количество Series).

6. В правой части этого же окна выбрать подпункт «Данные» свойства Series1, а в нем пункт XValueType и с помощью выпадающего списка выбрать параметр «Double». Аналогично для пункта YValueType выбрать параметр «Double».

7. Ниже в правой части этого же окна выбрать подпункт «Диаграмма» свойства Series1, а в нем - пункт ChartType и с помощью выпадающего списка выбрать параметр «Spline» (это позволяет соединять точки кривой линией).

8. И последняя настройка компонента Сhart1: в правой части этого же диалогового окна выбрать подпункт «Условные обозначения» свойства Series1, а в нем - пункт IsVisibleInLegend и с помощью выпадающего списка выбрать параметр «False» (это позволяет не отображать легенду в диаграмме).

9. Ниже компонента Сhart1 разместить четыре компонента Label: Label2, Label3, Label4, Label5.

10. Выделить Label2 и в свойстве Text занести текст «Введите интервал построения графика». Аналогично выделить Label3 и в свойстве Text занести текст «Введите начальное значение ХN=», для Label4 - в свойстве Text занести текст «Введите конечное значение ХK=» и для Label5 в свойстве Text занести текст «Введите значение шага XH=».

11. Напротив компонента Label3 разместить компонент TextBox1, напротив компонента Label4 - компонент TextBox2, а напротив компонента Label5 - компонент TextBox3.

12. В правом нижнем углу разместить две кнопки Button1 и Button2.

13. Выделить компонент Button1 и в свойство Text занести текст «Нарисовать график». При нажатии на эту кнопку будет в компоненте Сhart1 рисоваться график функции.

14. Выделить компонент Button2 и в свойство Text занести текст «Выход».

2. Код программы

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System. Threading. Tasks;

using System. Windows. Forms;

namespace pizdec

{

public partial class Form1: Form

{

public Form1 ()

{

InitializeComponent();

}

private void button1_Click (object sender, EventArgs e)

{

double x, xn, xk, xh, y;

chart1. Series[0].ChartType = System. Windows. Forms. DataVisualization. Charting. SeriesChartType. Spline;

chart1. Series[1].ChartType = System. Windows. Forms. DataVisualization. Charting. SeriesChartType. Spline;

chart1. Series[2].ChartType = System. Windows. Forms. DataVisualization. Charting. SeriesChartType. Spline;

if ((textBox1. Text!= «») && (textBox2. Text!= «») && (textBox3. Text!= «»))

{

xn = Convert. ToDouble (textBox1. Text);

xk = Convert. ToDouble (textBox2. Text);

xh = Convert. ToDouble (textBox3. Text);

}

else

{

MessageBox. Show («Данные заполнены неверно», «Ошибка ввода данных»,

MessageBoxButtons.OK, MessageBoxIcon. Exclamation); return;

}

 // Проверка правильности ввода данных

if ((xn >= xk) || (xh > (xk - xn)))

{

MessageBox. Show («Данные заполнены неверно», «Ошибка ввода данных»,

MessageBoxButtons.OK, MessageBoxIcon. Exclamation); return;

}

 // Вводим первый график

x = xn;

while (x<= xk)

{

y = (Math. Abs (Math. Pow (x, 5))) * (1 / Math. Tan (x + 2));

chart1. Series[0].Points. AddXY (x, y);

x = x + xh;

}

 // выводим второй график

x = xn;

while (x <= xk)

{

y = (5 * x + Math. Pow (x, 2)) / Math. Pow((Math. Pow (x, 2)) + 3, 3);

chart1. Series[1].Points. AddXY (x, y);

x = x + xh;

}

 // выводим третий график

x = xn;

while (x <= xk)

{

y = (Math. Pow (Math. Sin (x + 3), 2)) / (Math. Pow (x, 5) - (1 / Math. Tan (Math.PI * Math. Pow (x, 3))));

chart1. Series[2].Points. AddXY (x, y);

x = x+ xh;

}

}

private void button2_Click (object sender, EventArgs e)

{

Application. Exit();

}

private void Form1_Load (object sender, EventArgs e)

{

}

private void chart1_Click (object sender, EventArgs e)

{

}

}

}

namespace pizdec

{

partial class Form1

{

 /// <summary>

 /// Требуется переменная конструктора.

 /// </summary>

private System. ComponentModel.IContainer components = null;

 /// <summary>

 /// Освободить все используемые ресурсы.

 /// </summary>

 /// <param name= «disposing»>истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>

protected override void Dispose (bool disposing)

{

if (disposing && (components!= null))

{

components. Dispose();

}

base. Dispose(disposing);

}

#region Код, автоматически созданный конструктором форм Windows

 /// <summary>

 /// Обязательный метод для поддержки конструктора - не изменяйте

 /// содержимое данного метода при помощи редактора кода.

 /// </summary>

private void InitializeComponent()

{

System. Windows. Forms. DataVisualization. Charting. ChartArea chartArea1 = new System. Windows. Forms. DataVisualization. Charting. ChartArea();

System. Windows. Forms. DataVisualization. Charting. Legend legend1 = new System. Windows. Forms. DataVisualization. Charting. Legend();

System. Windows. Forms. DataVisualization. Charting. Series series1 = new System. Windows. Forms. DataVisualization. Charting. Series();

System. Windows. Forms. DataVisualization. Charting. Series series2 = new System. Windows. Forms. DataVisualization. Charting. Series();

System. Windows. Forms. DataVisualization. Charting. Series series3 = new System. Windows. Forms. DataVisualization. Charting. Series();

this.label1 = new System. Windows. Forms. Label();

this.label2 = new System. Windows. Forms. Label();

this.label3 = new System. Windows. Forms. Label();

this.label4 = new System. Windows. Forms. Label();

this.label5 = new System. Windows. Forms. Label();

this.textBox1 = new System. Windows. Forms. TextBox();

this.textBox2 = new System. Windows. Forms. TextBox();

this.textBox3 = new System. Windows. Forms. TextBox();

this.button1 = new System. Windows. Forms. Button();

this.button2 = new System. Windows. Forms. Button();

this.pictureBox1 = new System. Windows. Forms. PictureBox();

this.chart1 = new System. Windows. Forms. DataVisualization. Charting. Chart();

((System. ComponentModel.ISupportInitialize) (this.pictureBox1)).BeginInit();

((System. ComponentModel.ISupportInitialize) (this.chart1)).BeginInit();

this. SuspendLayout();

 //

 // label1

 //

this.label1. AutoSize = true;

this.label1. BackColor = System. Drawing. SystemColors. Info;

this.label1. Font = new System. Drawing. Font («Showcard Gothic», 14.25F, System. Drawing. FontStyle. Bold, System. Drawing. GraphicsUnit. Point, ((byte) (0)));

this.label1. ForeColor = System. Drawing. SystemColors. ActiveCaptionText;

this.label1. Location = new System. Drawing. Point (150, 7);

this.label1. Name = «label1»;

this.label1. Size = new System. Drawing. Size (511, 23);

this.label1. TabIndex = 0;

this.label1. Text = «Построение графика функции на интервале [xn; xk]»;

 //

 // label2

 //

this.label2. AutoSize = true;

this.label2. BackColor = System. Drawing. SystemColors. Window;

this.label2. FlatStyle = System. Windows. Forms. FlatStyle. Flat;

this.label2. Location = new System. Drawing. Point (477, 41);

this.label2. Name = «label2»;

this.label2. Size = new System. Drawing. Size (207, 13);

this.label2. TabIndex = 2;

this.label2. Text = «Введите интервал построения графика»;

 //

 // label3

 //

this.label3. AutoSize = true;

this.label3. Location = new System. Drawing. Point (430, 71);

this.label3. Name = «label3»;

this.label3. Size = new System. Drawing. Size (188, 13);

this.label3. TabIndex = 3;

this.label3. Text = «Введите начальное значение ХN=»;

 //

 // label4

 //

this.label4. AutoSize = true;

this.label4. Location = new System. Drawing. Point (430, 104);

this.label4. Name = «label4»;

this.label4. Size = new System. Drawing. Size (172, 13);

this.label4. TabIndex = 4;

this.label4. Text = «Введите конечное значение ХK=»;

 //

 // label5

 //

this.label5. AutoSize = true;

this.label5. Location = new System. Drawing. Point (429, 138);

this.label5. Name = «label5»;

this.label5. Size = new System. Drawing. Size (151, 13);

this.label5. TabIndex = 5;

this.label5. Text = «Введите значение шага XH=»;

 //

 // textBox1

 //

this.textBox1. Location = new System. Drawing. Point (629, 67);

this.textBox1. Name = «textBox1»;

this.textBox1. Size = new System. Drawing. Size (100, 20);

this.textBox1. TabIndex = 6;

 //

 // textBox2

 //

this.textBox2. Location = new System. Drawing. Point (629, 100);

this.textBox2. Name = «textBox2»;

this.textBox2. Size = new System. Drawing. Size (100, 20);

this.textBox2. TabIndex = 7;

 //

 // textBox3

 //

this.textBox3. Location = new System. Drawing. Point (629, 132);

this.textBox3. Name = «textBox3»;

this.textBox3. Size = new System. Drawing. Size (100, 20);

this.textBox3. TabIndex = 8;

 //

 // button1

 //

this.button1. Location = new System. Drawing. Point (99, 373);

this.button1. Name = «button1»;

this.button1. Size = new System. Drawing. Size (220, 23);

this.button1. TabIndex = 9;

this.button1. Text = «Нарисовать график»;

this.button1. UseVisualStyleBackColor = true;

this.button1. Click += new System. EventHandler (this.button1_Click);

 //

 // button2

 //

this.button2. Location = new System. Drawing. Point (480, 372);

this.button2. Name = «button2»;

this.button2. Size = new System. Drawing. Size (157, 23);

this.button2. TabIndex = 10;

this.button2. Text = «Выход»;

this.button2. UseVisualStyleBackColor = true;

this.button2. Click += new System. EventHandler (this.button2_Click);

 //

 // pictureBox1

 //

this.pictureBox1. Image = global:pizdec. Properties. Resources._1;

this.pictureBox1. Location = new System. Drawing. Point (136, 41);

this.pictureBox1. Name = «pictureBox1»;

this.pictureBox1. Size = new System. Drawing. Size (183, 140);

this.pictureBox1. SizeMode = System. Windows. Forms. PictureBoxSizeMode. AutoSize;

this.pictureBox1. TabIndex = 0;

this.pictureBox1. TabStop = false;

 //

 // chart1

 //

chartArea1. Name = «ChartArea1»;

this.chart1. ChartAreas. Add(chartArea1);

legend1. Name = «Legend1»;

this.chart1. Legends. Add(legend1);

this.chart1. Location = new System. Drawing. Point (30, 197);

this.chart1. Name = «chart1»;

series1. ChartArea = «ChartArea1»;

series1. ChartType = System. Windows. Forms. DataVisualization. Charting. SeriesChartType. Line;

series1. IsVisibleInLegend = false;

series1. Legend = «Legend1»;

series1. Name = «Series1»;

series1.XValueType = System. Windows. Forms. DataVisualization. Charting. ChartValueType. Double;

series1.YValueType = System. Windows. Forms. DataVisualization. Charting. ChartValueType. Double;

series2. ChartArea = «ChartArea1»;

series2. ChartType = System. Windows. Forms. DataVisualization. Charting. SeriesChartType. Spline;

series2. IsVisibleInLegend = false;

series2. Legend = «Legend1»;

series2. Name = «Series2»;

series2.XValueType = System. Windows. Forms. DataVisualization. Charting. ChartValueType. Double;

series2.YValueType = System. Windows. Forms. DataVisualization. Charting. ChartValueType. Double;

series3. ChartArea = «ChartArea1»;

series3. ChartType = System. Windows. Forms. DataVisualization. Charting. SeriesChartType. Line;

series3. IsVisibleInLegend = false;

series3. Legend = «Legend1»;

series3. Name = «Series3»;

series3.XValueType = System. Windows. Forms. DataVisualization. Charting. ChartValueType. Double;

series3.YValueType = System. Windows. Forms. DataVisualization. Charting. ChartValueType. Double;

this.chart1. Series. Add(series1);

this.chart1. Series. Add(series2);

this.chart1. Series. Add(series3);

this.chart1. Size = new System. Drawing. Size (678, 163);

this.chart1. TabIndex = 11;

this.chart1. Text = «chart1»;

this.chart1. Click += new System. EventHandler (this.chart1_Click);

 //

 // Form1

 //

this. AutoScaleDimensions = new System. Drawing. SizeF (6F, 13F);

this. AutoScaleMode = System. Windows. Forms. AutoScaleMode. Font;

this. ClientSize = new System. Drawing. Size (741, 410);

this. Controls. Add (this.chart1);

this. Controls. Add (this.pictureBox1);

this. Controls. Add (this.button2);

this. Controls. Add (this.button1);

this. Controls. Add (this.textBox3);

this. Controls. Add (this.textBox2);

this. Controls. Add (this.textBox1);

this. Controls. Add (this.label5);

this. Controls. Add (this.label4);

this. Controls. Add (this.label3);

this. Controls. Add (this.label2);

this. Controls. Add (this.label1);

this. FormBorderStyle = System. Windows. Forms. FormBorderStyle. FixedToolWindow;

this. Name = «Form1»;

this. Text = «Form1»;

this. Load += new System. EventHandler (this. Form1_Load);

((System. ComponentModel.ISupportInitialize) (this.pictureBox1)).EndInit();

((System. ComponentModel.ISupportInitialize) (this.chart1)).EndInit();

this. ResumeLayout(false);

this. PerformLayout();

}

#endregion

private System. Windows. Forms. Label label1;

private System. Windows. Forms. Label label2;

private System. Windows. Forms. Label label3;

private System. Windows. Forms. Label label4;

private System. Windows. Forms. Label label5;

private System. Windows. Forms. TextBox textBox1;

private System. Windows. Forms. TextBox textBox2;

private System. Windows. Forms. TextBox textBox3;

private System. Windows. Forms. Button button1;

private System. Windows. Forms. Button button2;

private System. Windows. Forms. PictureBox pictureBox1;

private System. Windows. Forms. DataVisualization. Charting. Chart chart1;

}

}

Размещено на Allbest.ru


Подобные документы

  • Основы программирования на 32-битном Ассемблере, разработка с его помощью программы, демонстрирующей работу одного из разделов ОС Windоws. Описание используемых АРI-функций как интерфейса программирования приложений. Листинг программы, результаты работы.

    курсовая работа [164,5 K], добавлен 18.05.2014

  • Методика разработки, практической апробации программы в среде Turbo Pascal по построению графика прямой линии регрессии. Формирование блок-схемы данной программы, ее листинг. Построение графика с помощью математических формул и графического модуля Graph.

    контрольная работа [46,2 K], добавлен 22.07.2011

  • Определение возможностей математического пакета и изучение методов вычисления выражений в Mathcad. Возможности построения графиков функций одной переменной. Просмотр и способы построения графика функции одного аргумента и участков двухмерных графиков.

    контрольная работа [384,8 K], добавлен 06.03.2011

  • Графики вещественнозначных функций вещественного переменного. Построение двумерных графиков. Пример построения графика синусоиды. Пример использования функции subplot. Оформление двумерных графиков в системе MatLab. Основные функции оформления графиков.

    курсовая работа [826,3 K], добавлен 30.04.2019

  • Техническое задание и блок-схема алгоритма программы построения графиков функций. Инструкция по инсталляции и описание работы программного продукта GRAPHIC. Инструкция оператору и ограничения данной версии программы. Программный код приложения.

    курсовая работа [391,2 K], добавлен 05.12.2009

  • Сравнение графиков заданной функции и интерполяционных полиномов на определенном интервале при двух вариантах выбора узлов (равномерно с шагом, по Чебышеву). Создание программы на основе метода Ньютона для построения графиков и расчета значений функции.

    контрольная работа [1,1 M], добавлен 07.07.2012

  • Обзор и комплексный анализ операционной системы Windows Vista, оценка ее преимуществ и недостатков. Разработка программы, которая реализует алгоритм очереди на 20 элементов. Построение блок-схемы и листинг алгоритма, контрольный пример его работы.

    курсовая работа [4,2 M], добавлен 20.11.2013

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Изучение синтаксиса пользовательских функций. Разработка приложения для вычисления параметров системы управления запасами. Синтаксис элемента "Список аргументов функции". Основные правила написания программного кода. Основные операторы языка VBA.

    лабораторная работа [119,0 K], добавлен 22.09.2016

  • Структурная схема получения гороскопа по дате рождения. Листинг исходных кодов программы и руководство пользователя. Ввод данных с помощью объекта класса QDateEdit. Разработка пользовательского интерфейса. Выбор стратегии тестирования и отладка программы.

    курсовая работа [1,0 M], добавлен 31.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.