Ошибка ран тайм 13 тайп мисматч - VB

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

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

ребята вот у меня есть такая прога
Листинг программы
  1. Dim t As Double
  2. Dim strFileName As String
  3. Dim strFileContent As String
  4. Dim nFreeFile As Integer
  5. Dim nFileLenght As Integer
  6. Private Sub cbRas_Click()
  7. Dim xt(30), yt(30), xm(120), ym(2, 120), x, Y(2), H, H1, Smax, Amax As Double
  8. V = 0.00182
  9. A = 0.082
  10. C = 696
  11. M = 2.03
  12. K = 989
  13. P0 = 100000
  14. G = 1.2
  15. Y(1) = 0
  16. Y(2) = 0
  17. H = t / 120
  18. H1 = H / 100
  19. x = 0
  20. xm(1) = 0
  21. ym(1, 1) = 0
  22. ym(2, 1) = 0
  23. Smax = ym(1, 1)
  24. Amax = ym(2, 1)
  25. Val (Text2(0))
  26. Val (Text2(1))
  27. Val (Text2(2))
  28. Val (Text2(3))
  29. Val (Text2(4))
  30. Val (Text2(5))
  31. Val (Text2(6))
  32. Val (Text2(7))
  33. Val (Text2(8))
  34. Val (Text2(9))
  35. Val (Text2(10))
  36. Val (Text2(11))
  37. Val (Text2(12))
  38. Val (Text2(13))
  39. Val (Text2(14))
  40. Val (Text2(15))
  41. Val (Text2(16))
  42. Val (Text2(17))
  43. Val (Text2(18))
  44. Val (Text2(19))
  45. Val (Text2(20))
  46. Val (Text2(21))
  47. Val (Text2(22))
  48. Val (Text2(23))
  49. Val (Text2(24))
  50. Val (Text2(25))
  51. Val (Text2(26))
  52. Val (Text2(27))
  53. Val (Text2(28))
  54. Val (Text2(29))
  55. Val (Text2(30))
  56. Val (Text3(0))
  57. Val (Text3(1))
  58. Val (Text3(2))
  59. Val (Text3(3))
  60. Val (Text3(4))
  61. Val (Text3(5))
  62. Val (Text3(6))
  63. Val (Text3(7))
  64. Val (Text3(8))
  65. Val (Text3(9))
  66. Val (Text3(10))
  67. Val (Text3(11))
  68. Val (Text3(12))
  69. Val (Text3(13))
  70. Val (Text3(14))
  71. Val (Text3(15))
  72. Val (Text3(16))
  73. Val (Text3(17))
  74. Val (Text3(18))
  75. Val (Text3(19))
  76. Val (Text3(20))
  77. Val (Text3(21))
  78. Val (Text3(22))
  79. Val (Text3(23))
  80. Val (Text3(24))
  81. Val (Text3(25))
  82. Val (Text3(26))
  83. Val (Text3(27))
  84. Val (Text3(28))
  85. Val (Text3(29))
  86. Val (Text3(30))
  87. For I = 0 To 30
  88. xt(I) = Text2(I)
  89. yt(I) = Text3(I)
  90. Next
  91. For k1 = 2 To 121
  92. For k2 = 1 To 100
  93. F1 = Y(2)
  94. F2 = (-C / M) * Y(2) - K / M * Y(1) + A / M * (P(x, xt, yt, 30) + (1 - (V / (V - A * Y(1))) ^ G)) * 100000
  95. x = x + H1
  96. Y(1) = Y(1) + F1 * H1
  97. Y(2) = Y(2) + F2 * H1
  98. Next
  99. xm(k1) = x
  100. ym(1, k1) = Y(1) * 100
  101. ym(2, k1) = Y(2)
  102. If Abs(ym(1, k1)) > Abs(Smax) Then Smax = ym(1, k1)
  103. If Abs(ym(2, k1)) > Abs(Amax) Then Amax = ym(2, k1)
  104. Next
  105. Print Smax, Amax
  106. End Sub
  107. Function P(x, xt, yt, N) As Double
  108. For I = 1 To N
  109. If x > xt(30) Or x < xt(30) Then x = xt(30)
  110. If x >= xt(I - 1) And x <= xt(I) Then GoTo 100
  111. Next
  112. Print 'Значение х лежит вне таблич. знач.
  113. Stop
  114. 100: P = yt(I - 1) + (yt(I) - yt(I - 1)) * (x - xt(I - 1)) / (xt(I) - xt(I - 1)) ' тут ошибка
  115. Return
  116. End Function
и когд запускаю прогу выбивает как раз ошибку 13 по метке 100, видимо я где-то накосячил с типом данных переменных... помогите чем можете!!!

Решение задачи: «Ошибка ран тайм 13 тайп мисматч»

textual
Листинг программы
  1.  Function P(x, xt, yt, N) As Double
  2.      For I = 0 To (N - 1)
  3.     If x > xt(30) And x < xt(30) - t / 10000 Then x = xt(30)
  4.     If x >= xt(I) And x <= xt(I + 1) Then GoTo 100
  5.     Next
  6.     Print 'Значение х лежит вне таблич. знач.'
  7.    Stop
  8. ' выделенный блок - начало
  9. 100:   P = yt(I) + (yt(I + 1) - yt(I)) * (x - xt(I)) / (xt(I + 1) - xt(I))
  10. ' выделенный блок - конец
  11.     End Function
  12.        
  13.  Private Sub cbRas_Click()
  14. ' выделенный блок - начало
  15. Dim xt(30) As Double, yt(30) As Double, xm(120) As Double, ym(2, 120) As Double, x As Double, Y(2) As Double, H As Double, H1 As Double, Smax As Double, Amax As Double
  16. t = xt(30)
  17. ' выделенный блок - конец
  18. V = 0.00182
  19. A = 0.082
  20. C = 696
  21. M = 2.03
  22. K = 989
  23. P0 = 100000
  24. G = 1.2
  25. Y(1) = 0
  26. Y(2) = 0
  27. H = t / 120
  28. H1 = H / 100
  29. x = 0
  30. xm(1) = 0
  31. ym(1, 1) = 0
  32. ym(2, 1) = 0
  33. Smax = ym(1, 1)
  34. Amax = ym(2, 1)
  35. ' выделенный блок - начало
  36. For I = 0 To 30
  37. xt(I) = Val(Text2(I).Text)
  38. yt(I) = Val(Text3(I).Text)
  39. Next
  40. ' выделенный блок - конец
  41.    For k1 = 2 To 121
  42.     For k2 = 1 To 100
  43.     F1 = Y(2)
  44.     F2 = (-C / M) * Y(2) - K / M * Y(1) + A / M * (P(x, xt, yt, 30) + (1 - (V / (V - A * Y(1))) ^ G)) * 100000
  45.     x = x + H1
  46.     Y(1) = Y(1) + F1 * H1
  47.     Y(2) = Y(2) + F2 * H1
  48.     Next
  49.         xm(k1) = x
  50.     ym(1, k1) = Y(1) * 100
  51.     ym(2, k1) = Y(2)
  52.     If Abs(ym(1, k1)) > Abs(Smax) Then Smax = ym(1, k1)
  53.     If Abs(ym(2, k1)) > Abs(Amax) Then Amax = ym(2, k1)
  54.     Next
  55.     Print Smax, Amax
  56.     End Sub
  57.    
  58.  
  59.  
  60.  
  61. Private Sub cbStart_Click()
  62.  
  63. cdCommonDialog.ShowOpen
  64.  
  65. strFileName = cdCommonDialog.FileName
  66.  
  67. nFreeFile = FreeFile
  68.  
  69. If strFileName <> "" Then
  70.  
  71. Open strFileName For Input As nFreeFile
  72.  
  73. nFileLenght = FileLen(strFileName)
  74.  
  75. strFileContent = Input(nFileLenght, #nFreeFile)
  76.  
  77. txtFile.Text = strFileContent
  78.  
  79. Close
  80.  
  81. End If
  82.  
  83. End Sub

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


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

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

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

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

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

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