Решение квадратного уравнения на Visual Basic (исходник) - Лабораторная работа №14719

«Решение квадратного уравнения на Visual Basic (исходник)» - Лабораторная работа

  • 10
  • 3381
фото автора

Автор: navip

Содержание

Аналитический способ

Приближенный способ

Графический способ


Введение

Аналитический способ

Приближенный способ

Графический способ

Option Explicit

Private Const PointsCount As Long = 40

Private Const frame As Single = 300

Private x_min As Double, x_max As Double

Private y_min As Double, y_max As Double

Private kx As Double, ky As Double

Private Sub Form_Load()

fraControl.Left = Me.ScaleWidth - fraControl.Width

picPlot.Move 0, 0, fraControl.Left, Me.ScaleHeight

End Sub

Private Sub cmdGo_Click()

Dim i As Long, x As Double, y As Double

Dim x0 As Single, y0 As Single

x_min = -5: x_max = 10

y_min = -20: y_max = 30

kx = (picPlot.ScaleWidth - 2 * frame) / (x_max - x_min)

ky = (picPlot.ScaleHeight - 2 * frame) / (y_max - y_min)

x0 = -x_min * kx

y0 = -y_min * ky

picPlot.Cls

picPlot.Line (frame + x0, frame)-(frame + x0, picPlot.ScaleHeight - frame), &HA0A0A0

picPlot.Line (frame, picPlot.ScaleHeight - frame - y0)-(picPlot.ScaleWidth - frame, picPlot.ScaleHeight - frame - y0), &HA0A0A0

If chkPoints.Value = vbChecked Then

DrawPoint frame + x_min * kx + x0, picPlot.ScaleHeight - frame - math_func(x_min) * ky - y0

End If

picPlot.CurrentX = frame + x_min * kx + x0

picPlot.CurrentY = picPlot.ScaleHeight - frame - math_func(x_min) * ky - y0

For i = 1 To PointsCount

x = x_min + i * (x_max - x_min) / PointsCount

y = math_func(x)

picPlot.Line -(frame + x * kx + x0, picPlot.ScaleHeight - frame - y * ky - y0)

If chkPoints.Value = vbChecked Then

DrawPoint frame + x * kx + x0, picPlot.ScaleHeight - frame - y * ky - y0

End If

Next i

picPlot.Line (frame, frame)-(picPlot.ScaleWidth - frame, picPlot.ScaleHeight - frame), &H808080, B

End Sub

Private Function math_func(ByVal x As Double) As Double

Dim k As Double, b As Double

If optFunc(0).Value Then

k = 2

b = 3

math_func = k * x + b

ElseIf optFunc(1).Value Then

math_func = 10 * Sin(x)

ElseIf optFunc(2).Value Then

math_func = x * x + 2 * x - 3

End If

End Function

Private Sub DrawPoint(ByVal x As Single, ByVal y As Single)

picPlot.DrawWidth = 3

picPlot.PSet (x, y)

picPlot.DrawWidth = 1

End Sub


Заключение

Option Explicit

Private Const PointsCount As Long = 40

Private Const frame As Single = 300

Private x_min As Double, x_max As Double

Private y_min As Double, y_max As Double

Private kx As Double, ky As Double

Private Sub Form_Load()

fraControl.Left = Me.ScaleWidth - fraControl.Width

picPlot.Move 0, 0, fraControl.Left, Me.ScaleHeight

End Sub

Private Sub cmdGo_Click()

Dim i As Long, x As Double, y As Double

Dim x0 As Single, y0 As Single

x_min = -5: x_max = 10

y_min = -20: y_max = 30

kx = (picPlot.ScaleWidth - 2 * frame) / (x_max - x_min)

ky = (picPlot.ScaleHeight - 2 * frame) / (y_max - y_min)

x0 = -x_min * kx

y0 = -y_min * ky

picPlot.Cls

picPlot.Line (frame + x0, frame)-(frame + x0, picPlot.ScaleHeight - frame), &HA0A0A0

picPlot.Line (frame, picPlot.ScaleHeight - frame - y0)-(picPlot.ScaleWidth - frame, picPlot.ScaleHeight - frame - y0), &HA0A0A0

If chkPoints.Value = vbChecked Then

DrawPoint frame + x_min * kx + x0, picPlot.ScaleHeight - frame - math_func(x_min) * ky - y0

End If

picPlot.CurrentX = frame + x_min * kx + x0

picPlot.CurrentY = picPlot.ScaleHeight - frame - math_func(x_min) * ky - y0

For i = 1 To PointsCount

x = x_min + i * (x_max - x_min) / PointsCount

y = math_func(x)

picPlot.Line -(frame + x * kx + x0, picPlot.ScaleHeight - frame - y * ky - y0)

If chkPoints.Value = vbChecked Then

DrawPoint frame + x * kx + x0, picPlot.ScaleHeight - frame - y * ky - y0

End If

Next i

picPlot.Line (frame, frame)-(picPlot.ScaleWidth - frame, picPlot.ScaleHeight - frame), &H808080, B

End Sub

Private Function math_func(ByVal x As Double) As Double

Dim k As Double, b As Double

If optFunc(0).Value Then

k = 2

b = 3

math_func = k * x + b

ElseIf optFunc(1).Value Then

math_func = 10 * Sin(x)

ElseIf optFunc(2).Value Then

math_func = x * x + 2 * x - 3

End If

End Function

Private Sub DrawPoint(ByVal x As Single, ByVal y As Single)

picPlot.DrawWidth = 3

picPlot.PSet (x, y)

picPlot.DrawWidth = 1

End Sub


Примечания

К работе прилагается программа с исходным кодом.

К работе прилагается все исходники.


Тема: «Решение квадратного уравнения на Visual Basic (исходник)»
Раздел: Информатика
Тип: Лабораторная работа
Страниц: 10
Стоимость
текста
работы:
300 руб.
Нужна похожая работа?
Напишем авторскую работу по вашему заданию.
  • Необходимый уровень антиплагиата
  • Прямое общение с исполнителем вашей работы
  • Бесплатные доработки и консультации
  • Минимальные сроки выполнения
  • Пишем сами, без нейросетей

Мы уже помогли 24535 студентам

Средний балл наших работ

  • 4.89 из 5
Отправьте нам ваше задание
Оценка задания - услуга бесплатная и ни к чему не обязывает.