8(8412)74-58-38
(с 10-00 до 20-00 МСК)
Зачётик.Ру - помогаем студентам в учёбе

У нас можно недорого заказать курсовую, контрольную, реферат или диплом

Главная / готовые работы / Лабораторные работы / Информатика

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

Содержание

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


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


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

Введение (выдержка)

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


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


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

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

Примечания

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

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

Информация о работе

Тип: Лабораторная работа
Страниц: 10
Год: 2011
300 p.
Не подошла эта работа?
Узнайте стоимость написания
работы по Вашему заданию.

Закажите авторскую работу по Вашему заданию!
Контрольная работа
от 100 p.
cрок: от 1 дня
Реферат
от 600 p.
cрок: от 1 дня
Курсовая работа
от 1000 p.
cрок: от 3 дней
Дипломная работа
от 6000 p.
cрок: от 6 дней
Отчет по практике
от 1000 p.
cрок: от 3 дней
Решение задач
от 150 p.
cрок: от 1 дня
Лабораторная работа
от 200 p.
cрок: от 1 дня
Доклад
от 300 p.
cрок: от 2 дней
Заказать работу очень просто!
Вы оформляете заявку
Получаете доступ в лк
Вносите предоплату
Автор пишет работу
Получаете уведомление
о готовности
Вносите доплату
Скачиваете готовую
работу из лк
X
X