- •А.Ю. Демин, в.А. Дорофеев программирование на с#
- •Лабораторная работа №1 Изучение среды разработкиVisualStudio
- •1.1. Интегрированная среда разработчика VisualStudio
- •1.2. Настройка формы
- •1.3. Размещение элементов управления на форме
- •1.4. Размещение строки ввода
- •1.5. Размещение надписей
- •1.6. Написание программы обработки события
- •1.7. Написание программы обработки события нажатия кнопки
- •1.8. Написание программы обработки события загрузки формы
- •1.9. Запуск и работа с программой
- •1.10. Динамическое изменение свойств
- •1.11. Выполнение индивидуального задания
- •Индивидуальные задания
- •Лабораторная работа №2 Линейные алгоритмы
- •2.1. Структура приложения
- •2.2. Работа с проектом
- •2.3. Описание данных
- •Целочисленные типы
- •Типы с плавающей точкой
- •Символьные типы
- •Логический тип данных
- •2.4. Ввод/вывод данных в программу
- •2.5. Арифметические действия и стандартные функции
- •2.6. Пример написания программы
- •2.7. Выполнение индивидуального задания
- •Индивидуальные задания
- •Лабораторная работа №3 Разветвляющиеся алгоритмы
- •3.1. Логические переменные и операции над ними
- •3.2. Условные операторы
- •3.3. Кнопки-переключатели
- •3.4. Пример написания программы
- •3.4.1. Создание формы
- •3.4.2. Создание обработчиков событий
- •Индивидуальные задания
- •Лабораторная работа №4 Циклические алгоритмы
- •4.1. Операторы организации циклов
- •4.2. Цикл с предусловием
- •4.3. Цикл с постусловием
- •4.4. Цикл с параметром
- •4.5. Средства отладки программ
- •4.6. Порядок выполнения задания
- •Индивидуальные задания
- •Лабораторная работа №5 Классы и объекты
- •5.1 Классы и объекты
- •5.2 Динамическое создание объектов
- •5.3 Область видимости
- •5.4 Операции is и as
- •5.5 Сведения, передаваемые в событие
- •Индивидуальные задания
- •Лабораторная работа №6 Строки
- •6.1. Строковый тип данных
- •6.2. Более эффективная работа со строками
- •6.3. Элемент управления ListBox
- •6.3. Порядок выполнения индивидуального задания
- •Индивидуальные задания
- •Лабораторная работа №7 Одномерные массивы
- •7.1. Работа с массивами
- •7.2. Случайные числа
- •7.3. Порядок выполнения индивидуального задания
- •Индивидуальные задания
- •Лабораторная работа №8 Многомерные массивы
- •8.1. Двухмерные массивы
- •8.2. Элемент управления DataGridView
- •8.3. Порядок выполнения задания
- •Индивидуальные задания
- •Лабораторная работа №9 Графики функций
- •9.1. Как строится график с помощью элемента управления Chart
- •8.2. Пример написания программы
- •8.3. Выполнение индивидуального задания
- •Лабораторная работа №10 Компьютерная графика
- •10.1. Событие Paint
- •10.2. Объект Graphicsдля рисования
- •10.3. Методы и свойства класса Graphics
- •Индивидуальное задание
- •Лабораторная работа №11 Анимация
- •11.1. Работа с таймером
- •11.2. Создание анимации
- •11.3. Движение по траектории
- •Индивидуальное задание
- •Лабораторная работа №12 Обработка изображений
- •12.1. Отображение графических файлов
- •12.2. Элементы управления OpenFileDialogиSaveFileDialog
- •12.3. Простой графический редактор
- •Индивидуальное задание
- •Лабораторная работа №13 Методы
- •13.1. Общие понятия
- •13.2. Перегрузка методов
- •13.3. Параметры по умолчанию
- •13.4. Передача параметров по значению и по ссылке
- •Индивидуальное задание
- •Лабораторная работа №14 Сортировка и поиск
- •14.1. Общие понятия
- •14.2. Алгоритмы сортировки. Метод пузырька
- •14.3. Сортировка выбором
- •14.4. Быстрая сортировка
- •14.5. Поиск элемента
- •Индивидуальное задание
- •Лабораторная работа №15 Рекурсия
- •15.1. Общие понятия
- •15.2. Формирование задержки с помощью таймера
- •Индивидуальное задание
- •Индивидуальные задания повышенной сложности
- •Приложение 1. Свойства элементов управления
- •Приложение 2. События элементов управления
- •Приложение 3. Методы для работы со строками
- •Приложение 4. Методы для работы с массивами
- •Литература
- •Программирование на с#
- •Зарегистрировано в Издательстве тпу Размещено на корпоративном портале тпу в полном соответствии с качеством предоставленного оригинал-макета
Лабораторная работа №9 Графики функций
Цель лабораторной работы:изучить возможности построения графиков с помощью элемента управленияСhart. Написать и отладить программу построения на экране графика заданной функции.
9.1. Как строится график с помощью элемента управления Chart
Обычно результаты расчетов представляются в виде графиков и диаграмм. Библиотека .NETFrameworkимеет мощный элемент управленияChartдля отображения на экране графической информации (рис. 9.1).
Рис 8.1. Окно программы с элементом управления
Построение графика (диаграммы) производится после вычисления таблицы значений функции y=f(x)на интервале [Xmin, Xmax] с заданным шагом. Полученная таблица передается в специальный массивPointsобъектаSeriesэлемента управленияСhartс помощью методаDataBindXY. Элемент управленияChartосуществляет всю работу по отображению графиков: строит и размечает оси, рисует координатную сетку, подписывает название осей и самого графика, отображает переданную таблицу в виде всевозможных графиков или диаграмм. В элементе управленияСhartможно настроить толщину, стиль и цвет линий, параметры шрифта подписей, шаги разметки координатной сетки и многое другое. В процессе работы программы изменение параметров возможно через обращение к соответствующим свойствам элемента управленияChart. Так, например, свойствоAxisXсодержит значение максимального предела нижней оси графика и при его изменении во время работы программы автоматически изменяется изображение графика.
8.2. Пример написания программы
Задание:составить программу, отображающую графики функцийsin(x) и cos(x) на интервале [Xmin, Xmax]. Предусмотреть возможность изменения разметки координатных осей, а также шага построения таблицы.
Прежде всего, следует поместить на форму сам элемент управления Chart. Он располагается в панели элементов в разделеДанные.
Список графиков хранится в свойстве Series, который можно изменить, выбрав соответствующий пункт в окне свойств. Поскольку на одном поле требуется вывести два отдельных графика функций, нужно добавить ещё один элемент. Оба элемента, и существующий и добавленный, нужно соответствующим образом настроить: изменить тип диаграммыChartTypeнаSpline. Здесь же можно изменить подписи к графикам с абстрактныхSeries1иSeries2наsin(x)иcos(x)– за это отвечает свойствоLegend. Наконец, с помощью свойстваBorderWidthможно сделать линию графика потолще, а затем поменять цвет линии с помощью свойстваColor.
Ниже приведён текст обработчика нажатия кнопки «Расчёт!», который выполняет все требуемые настройки и расчёты и отображает графики функций:
private void buttonCalc_Click(object sender,
EventArgs e)
{
// Считываем с формы требуемые значения
double Xmin = double.Parse(textBoxXmin.Text);
double Xmax = double.Parse(textBoxXmax.Text);
double Step = double.Parse(textBoxStep.Text);
// Количество точек графика
int count = (int)Math.Ceiling((Xmax - Xmin) / Step)
+ 1;
// Массив значений X – общий для обоих графиков
double[] x = new double[count];
// Два массива Y – по одному для каждого графика
double[] y1 = new double[count];
double[] y2 = new double[count];
// Расчитываем точки для графиков функции
for (int i = 0; i < count; i++)
{
// Вычисляем значение X
x[i] = Xmin + Step * i;
// Вычисляем значение функций в точке X
y1[i] = Math.Sin(x[i]);
y2[i] = Math.Cos(x[i]);
}
// Настраиваем оси графика
chart1.ChartAreas[0].AxisX.Minimum = Xmin;
chart1.ChartAreas[0].AxisX.Maximum = Xmax;
// Определяем шаг сетки
chart1.ChartAreas[0].AxisX.MajorGrid.Interval = Step;
// Добавляем вычисленные значения в графики
chart1.Series[0].Points.DataBindXY(x, y1);
chart1.Series[1].Points.DataBindXY(x, y2);
}