Проектный практикум по C#. Задание 3

Пару месяцев назад выпала возможность немного попрактиковаться с языком программирования C#. Необходимо было решить 3 задания. Начнем от обратного.

Описание задания

Составить и отладить процедуру вычисления заданной в таблице функции y(x) для каждого из заданных значений параметра a и при всех заданных значениях аргумента x.

Заданные значения:

Функция y(x) Значения x Значения a
xнач xкон Дx
a*Cos(2x)/(a+4) 360° 1 ; 2 ; 3 ; 4

Задача не сложная как можно заметить. Для отображения воспользуемся самой же формой, на которой разместим три элемента формы: кнопка (Button), табличные данные (элемент DataGridView) и диаграмма (Chart).

Описывать слишком подробно не буду, т.к. в сети Интернет достаточно уроков по программированию в C#.

Итак, вы создали новое приложение Windows Forms. Поместили на новую форму несколько элементов. Теперь нужно задать необходимые свойства для нашей формы, кнопки, DataGridView, диаграммы и нескольких Label.

Вид формы в Visual Studio

Параметры для Button1:

Location.X: 12

Location.Y: 12

Size.Width: 255

Size.Height: 23

Text: Вычислить функцию y=a * Cos(2 * x) / (a + 4)

Параметры для DataGridView1:

Location.X: 12

Location.Y: 102

Size.Width: 566

Size.Height: 259

Visible: false

Параметры для Chart1:

Location.X: 12

Location.Y: 367

Size.Width: 566

Size.Height: 240

Visible: false

Параметры для Label1:

Font.Bold: true

Location.X: 191

Location.Y: 73

Size.Width: 254

Size.Height: 13

Text: РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЯ ФУНКЦИИ

Visible: false

Параметры для Label2:

ForeColor: Highlight

Location.X: 251

Location.Y: 86

Size.Width: 122

Size.Height: 13

Text: Значения параметра а

Visible: false

Параметры для Form1:

Size.Width: 298

Size.Height: 86

Text: Задание 3

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

Итоговая формаОднако при нажатии на кнопку пока еще ничего не происходит, т.к. мы не написали обработчик при нажатии на кнопку. Давайте опишем его. Нажмите два раза на кнопку и автоматически создаться тело обработчика.

Сразу выкладываю полностью код обработчика Button1_Click:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim a As Single, x As Single, i As Integer

    Me.Width = 625 ' Ширина формы
    Me.Height = 640 ' Высота формы

    ' Включение отображения элементов
    Me.Label1.Visible = True
    Me.Label2.Visible = True
    Me.DataGridView1.Visible = True
    Me.Chart1.Visible = True

    ' Название первого столбца для аргумента Х
    DataGridView1.Columns.Add("X", "Значения арг-та X")
    ' Заполнить названия столбцов для аргумента А
    For a = 1 To 4.001
        DataGridView1.Columns.Add("X" & a, a)
        Chart1.Series.Add(a - 1) ' Добавляем в коллекцию графики
    Next a

    ' Заполнение аргумента Х от 0" до 360" с шагом 6 
    For x = 0 To 360.001 Step 6
        DataGridView1.Rows.Add({x, 1 * Math.Cos(2 * x) / (1 + 4),
                               2 * Math.Cos(2 * x) / (2 + 4),
                               3 * Math.Cos(2 * x) / (3 + 4),
                               4 * Math.Cos(2 * x) / (4 + 4)})
    Next x

    Chart1.Titles.Add("График функции")

    ' Рисуем сразу диаграмму
    Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Line ' Тип диаграммы линейная
    Chart1.Series(1).ChartType = DataVisualization.Charting.SeriesChartType.Line
    Chart1.Series(2).ChartType = DataVisualization.Charting.SeriesChartType.Line
    Chart1.Series(3).ChartType = DataVisualization.Charting.SeriesChartType.Line
    For i = 0 To DataGridView1.Rows.Count - 1
        Chart1.Series(0).Points.AddXY(DataGridView1.Item(0, i).Value, DataGridView1.Item(1, i).Value)
        Chart1.Series(0).LegendText = "a=1"

        Chart1.Series(1).Points.AddXY(DataGridView1.Item(0, i).Value, DataGridView1.Item(2, i).Value)
        Chart1.Series(1).LegendText = "a=2"

        Chart1.Series(2).Points.AddXY(DataGridView1.Item(0, i).Value, DataGridView1.Item(3, i).Value)
        Chart1.Series(2).LegendText = "a=3"

        Chart1.Series(3).Points.AddXY(DataGridView1.Item(0, i).Value, DataGridView1.Item(4, i).Value)
        Chart1.Series(3).LegendText = "a=4"
    Next i
End Sub

В коде уже есть местами комментарии.

При нажатии на кнопку происходит изменение размеров формы и появляются на своих местах скрытые ранее элементы при помощи свойства Visible. Затем задаются названия для первой строки DataGridView. Потом происходит заполнение аргумента x от 0 до 360° с шагом 6. Далее уже вычисляются значения для каждого a с использованием заданной функции y(x).

После вычисления добавляем на диаграмму ее название. Задаем тип диаграммы и выводим для каждого параметра a.

Результат работы

В результате у нас получилось рассчитать данные и вывести их удобном виде. А вы можете пойти дальше и добавить больше разнообразия, например, поиграться с диаграммой.

На этом у меня все, будут вопросы, пишите.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

SoladieM

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

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: