Решить уравнение методом Эйлера, исправить ошибки в коде - VB

Узнай цену своей работы

Формулировка задачи:

Писал программу все бы ничего только, зараз, не хочет работать. Писал на Visual basic 6. код:
Листинг программы
  1. Dim x(), e(), em(), o() As Single
  2. Private i, n As Integer
  3. Private x0, xk, y0, h, miny, maxy, minx, maxx As Single
  4. Functiоn f(a, b) As Single
  5. f = (Exp(a) - b) / a
  6. End Functiоn
  7. Private Sub Eiler()
  8. ReDim x(n + 1)
  9. ReDim e(n + 1)
  10. e(0) = y0
  11. For i = 0 To n
  12. x(i) = x0 + (i * h)
  13. e(i + 1) = e(i) + h * f(x(i), e(i))
  14. Next i
  15. End Sub
  16. Private Sub EilerM()
  17. ReDim x(n + 1)
  18. ReDim em(n + 1)
  19. em(0) = y0
  20. For i = 0 To n
  21. x(i) = x0 + i * h
  22. em(i + 1) = em(i) + h * f(x(i) + h / 2, em(i) + h / 2 * f(x(i), em(i)))
  23. Next i
  24. End Sub
  25. Private Sub Obhee()
  26. ReDim x(n + 1)
  27. ReDim o(n + 1)
  28. maxy = y0
  29. miny = y0
  30. maxx = x0
  31. minx = x0
  32. For i = 0 To n
  33. x(i) = x0 + (i * h)
  34. o(i) = (Exp(x(i)) + 1 - Exp(1)) / x(i)
  35. Next i
  36. End Sub
  37. Private Sub Command1_Click()
  38. x0 = Val(Text1.Text)
  39. y0 = Val(Text2.Text)
  40. xk = Val(Text3.Text)
  41. h = Val(Text4.Text)
  42. n = Round((xk - x0) / h)
  43. MSFlexGrid1.Cols = 4
  44. MSFlexGrid1.Rows = n + 2
  45. MSFlexGrid1.TextMatrix(0, 0) = "x"
  46. MSFlexGrid1.TextMatrix(0, 1) = "Общее рещение"
  47. MSFlexGrid1.TextMatrix(0, 2) = "эйлер"
  48. MSFlexGrid1.TextMatrix(0, 3) = "Эйлер модиф."
  49. Eiler
  50. EilerM
  51. Obhee
  52. For i = 0 To n
  53. MSFlexGrid1.TextMatrix(i + 1, 0) = Str(x(i))
  54. MSFlexGrid1.TextMatrix(i + 1, 1) = Str(o(i))
  55. MSFlexGrid1.TextMatrix(i + 1, 2) = Str(e(i))
  56. MSFlexGrid1.TextMatrix(i + 1, 3) = Str(em(i))
  57. Next i
  58. minx = x(0)
  59. maxx = x(n)
  60. miny = o(0)
  61. maxy = o(n)
  62. If e(n) > o(n) Then maxy = e(n)
  63. If em(n) > o(n) Then maxy = em(n)
  64. If e(n) > em(n) Then maxy = e(n)
  65. Label10.Captiоn = Str(miny)
  66. Label11.Captiоn = Str(maxy)
  67. Label8.Captiоn = Str(minx)
  68. Label12.Captiоn = Str(maxx)
  69. Picture1.Cls
  70. kx = (Picture1.Width - 1200) / (xk - x0)
  71. ky = (Picture1.Height - 1000) / (maxy - miny)
  72. For i = 0 To n - 1
  73. z1 = (720 + (x(i) - x0) * kx)
  74. z2 = (5400 - (e(i) - miny) * ky)
  75. z3 = (720 + (x(i + 1) - x0) * kx)
  76. z4 = (5400 - (e(i + 1) - miny) * ky)
  77. Picture1.Line (z1, z2)-(z3, z4), RGB(9999, 0, 0)
  78. Next i
  79. For i = 0 To n - 1
  80. z1 = (720 + (x(i) - x0) * kx)
  81. z2 = (5400 - (em(i) - miny) * ky)
  82. z3 = (720 + (x(i + 1) - x0) * kx)
  83. z4 = (5400 - (em(i + 1) - miny) * ky)
  84. Picture1.Line (z1, z2)-(z3, z4), RGB(0, 9999, 0)
  85. Next i
  86. For i = 0 To n - 1
  87. z1 = (720 + (x(i) - x0) * kx)
  88. z2 = (5400 - (o(i) - miny) * ky)
  89. z3 = (720 + (x(i + 1) - x0) * kx)
  90. z4 = (5400 - (o(i + 1) - miny) * ky)
  91. Picture1.Line (z1, z2)-(z3, z4), RGB(0, 0, 9999)
  92. Next i
  93. End Sub
Помогите найти ошибку. необходимо решить уравнение методом Эйлера.

Решение задачи: «Решить уравнение методом Эйлера, исправить ошибки в коде»

textual
Листинг программы
  1. Dim x() As Single, e() As Single, em() As Single, o() As Single
  2. Dim i As Integer, n As Integer
  3. Dim x0 As Single, xk As Single, y0 As Single
  4. Dim h As Single, miny As Single, maxy As Single
  5. Dim minx As Single, maxx As Single
  6. Function f(a, b) As Single
  7.      f = (Exp(a) - b) / a
  8. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы