Пример программного модуля для решения задачи «Треугольник» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Пример программного модуля для решения задачи «Треугольник»

Поиск

 

Пример программного модуля для решения задачи табулирование функцииy=Sin(ln(1+x)/x)*Exp(x)

Function yy(x As Double) As Double

If (x = 0) Then yy = Sin(1) Else yy = Sin(Application.Ln(1 + x) / x) * Exp(x)

End Function

Sub Pabota1()

Dim x As Double

Dim y As Double, i As Double, h As Double

Worksheets(1).Activate

Do

Do

prom = InputBox("Введите начальную границу отрезка a=")

If Not IsNumeric(prom) Then MsgBox ("Повторите ввод")

Loop Until IsNumeric(prom)

a = prom

Do

prom = InputBox("Введите конечную границу отрезка b=")

If Not IsNumeric(prom) Then MsgBox ("Повторите ввод")

Loop Until IsNumeric(prom)

b = prom

If a >= b Then MsgBox ("Повторите ввод")

Loop Until a < b

Do

prom = InputBox("Количество шагов табулирования n=")

If Not IsNumeric(prom) Then MsgBox ("Повторите ввод")

Loop Until IsNumeric(prom)

n = prom

Worksheets("Лист1").Activate

Cells.Clear

Range("d1") = "Контрольная работа №2"

Range("c2") = "Табулирование функции y=Sin(ln(1+x)/x)*Exp(x)"

Range("e3") = "Исходные данные"

Range("d4") = "Начальная граница функции a=" & CSng(a)

Range("d5") = "Конечная граница функции b=" & CSng(b)

Range("d6") = "Количество шагов табулирования n=" & CByte(n)

h = (b - a) / n

Range("d7") = "Шаг табулирования h=" & CSng(h)

Range("b8") = "Результаты вычислений"

Range("b9") = "№ п/п"

Range("c9") = "x"

Range("d9") = "y"

Range("e9") = "Экстремумы"

x = a

For i = 1 To n + 1

x = a + (i - 1) * h

Range(Cells(9 + i, 2), Cells(9 + i, 2)) = CSng(i)

Range(Cells(9 + i, 3), Cells(9 + i, 3)) = CSng(x)

If x <= -1 Then Range(Cells(9 + i, 4), Cells(9 + i, 4)) = "Не существует"

If x <> -1 Then Range(Cells(9 + i, 4), Cells(9 + i, 4)) = CSng(yy(x))

Next i

For i = 1 To n + 1

If Cells(9 + i, 4).Value = Application.Max(Range("d10:D30").Value) Then Range(Cells(9 + i, 5), Cells(9 + i, 5)) = "Максимум"

If Cells(9 + i, 4).Value = Application.Min(Range("d10:D30").Value) Then Range(Cells(9 + i, 5), Cells(9 + i, 5)) = "Минимум"

Next i

End Sub


Пример программного модуля для решения задачи построение графика функции следующего задания:

Function yy(x As Double) As Double

a = 1

b = 1

c = 2

d = 3

If (x < 0) Then yy = (a + x ^ 2 / (b + x ^ 2))

If (x >= 0) And (x <= 1) Then yy = c * (Cos(x)) ^ 2 * Exp(-x)

If (x > 1) Then yy = (1 + Abs(2 * Sin(d * x)) ^ (1 / 3)) ^ (1 / 2)

End Function

Sub Pabota1()

Dim x As Double

Dim y As Double, i As Double, h As Double

Worksheets(1).Activate

Do

Do

prom = InputBox("Введите начальную границу отрезка a1 = ")

If Not IsNumeric(prom) Then MsgBox ("Повторите ввод")

Loop Until IsNumeric(prom)

a1 = prom

Do

prom = InputBox("Введите конечную границу отрезка b1 = ")

If Not IsNumeric(prom) Then MsgBox ("Повторите ввод")

Loop Until IsNumeric(prom)

b1 = prom

If a1 >= b1 Then MsgBox ("Повторите ввод")

Loop Until a1 < b1

Do

prom = InputBox("Количество шагов табулирования n=")

If Not IsNumeric(prom) Then MsgBox ("Повторите ввод")

Loop Until IsNumeric(prom)

n = prom

Worksheets("Лист1").Activate

Cells.Clear

Range("d1") = "График 1"

Range("c2") = "Табулирование функции y = f(x) "

Range("e3") = "Исходные данные"

Range("d4") = "Начальная граница функции a1= " & CSng(a1)

Range("d5") = "Конечная граница функции b1= " & CSng(b1)

Range("d6") = "Количество шагов табулирования n= " & CByte(n)

h = (b1 - a1) / n

Range("d7") = "Шаг табулирования h=" & CSng(h)

Range("b8") = "Результаты вычислений"

Range("b9") = "№ п/п"

Range("c9") = "x"

Range("d9") = "y"

Range("e9") = "Экстремумы"

x = a1

For i = 1 To n + 1

x = a1 + (i - 1) * h

Range(Cells(9 + i, 2), Cells(9 + i, 2)) = CSng(i)

Range(Cells(9 + i, 3), Cells(9 + i, 3)) = CSng(x)

Range(Cells(9 + i, 4), Cells(9 + i, 4)) = CSng(yy(x))

Next i

For i = 1 To n + 1

If Cells(9 + i, 4).Value = Application.Max(Range("d10:D30").Value) Then Range(Cells(9 + i, 5), Cells(9 + i, 5)) = "Максимум"

If Cells(9 + i, 4).Value = Application.Min(Range("d10:D30").Value) Then Range(Cells(9 + i, 5), Cells(9 + i, 5)) = "Минимум"

Next i

End Sub


Sub Pabota3()

Worksheets(3).Activate

Dim a As Double, b As Double, c As Double, p As Double, s As Double

a = InputBox("Введите  a=")

b = InputBox("Введите b=")

c = InputBox("Введите c=")

Worksheets("Лист3").Activate

Cells.Clear

Range("a1") = "Задание: Вычисление площади треугольника"

Range("a2") = " a="

Range("a3") = " b ="

Range("a4") = " c ="

Range("a6") = " p ="

Range("b2") = CSng(a)

Range("b3") = CSng(b)

Range("b4") = CSng(c)

p = (a + b + c) / 2

Range("b6") = CSng(p)

If (p * (p - a) * (p - b) * (p - c)) <= 0 Then Range("a7") = " Нет решения " Else

 If (p * (p - a) * (p - b) * (p - c)) > 0 Then

 s = (p * (p - a) * (p - b) * (p - c)) ^ (1 / 2)

 r = s / p

 r1 = a * b * c / (4 * s)

End If

If (p * (p - a) * (p - b) * (p - c)) > 0 Then

Range("a8") = " s ="

Range("d10") = " r ="

Range("f10") = " R ="

Range("b8") = CSng(s)

Range("e10") = CSng(r)

Range("g10") = CSng(r1)

End If

End Sub




Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 58; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.005 с.)