fork download
  1. 'Определение массивов, констант, переменных
  2. Private Const pi As Double = 3.1415926
  3. Private Const mu0 As Double = 4 * 3.1415926 * 10 ^ -7
  4. Private Const gz As Double = 9.81
  5. Dim D As Double, z As Double, hk As Double, bk As Double, w As Double
  6. Dim dpr As Double, t As Double, p As Double, a As Double
  7. Dim m As Double, H As Double, V0 As Double, x0 As Double
  8. Dim C As Double, UC0 As Double, R1 As Double, xon As Double
  9. Dim Da As Double, hp As Double, Sa As Double, Rk As Double
  10. Dim G1 As Double, G0 As Double, Ga As Double, Gm As Double
  11. Dim xoff As Double, Switch As Double, times As Double
  12. Dim UC(1000000) As Double, PSI(1000000) As Double
  13. Dim V(1000000) As Double, X(1000000) As Double, Tx(1000000) As Double
  14. Dim tper As Double, i As Double, xz As Double, xtm As Double, Step As Double
  15. Private Enum Value
  16. UC_i = 1: PSI_i = 2: X_i = 3: V_i = 4
  17. End Enum
  18. 'Процедура вычислений
  19. Private Sub Calc(all As Long)
  20. InitGrid
  21. DoEvents
  22. 'Считывание данных
  23. D = Val(Text1.Text): z = Val(Text2.Text) * 0.001
  24. hk = Val(Text3.Text) * 0.01: bk = Val(Text4.Text) * 0.01
  25. w = Val(Text5.Text): dpr = Val(Text6.Text) * 0.001
  26. t = Val(Text7.Text): p = Val(Text8.Text) * 10 ^ -8
  27. a = Val(Text9.Text) * 0.001: m = Val(Text10.Text)
  28. H = Val(Text11.Text) * 0.001: V0 = Val(Text12.Text)
  29. x0 = Val(Text13.Text) * 0.001: C = Val(Text14.Text) * 10 ^ -6
  30. UC0 = Val(Text15.Text): R1 = Val(Text16.Text): xon = Val(Text17.Text) * 0.001
  31. '"Основные соотношения"
  32. Da = D - 2 * z: hp = D / 4: Sa = pi * Da * Da / 4
  33. Rk = (4 * p * w * (D + bk) / dpr / dpr)
  34. Rk = Rk * (1 + a * (t - 20))
  35. G1 = mu0 * pi * bk * (2 * D + bk) / 6 / hk
  36. G0 = G1 + mu0 * D * (0.815 + 2 / (1 + hk / hp))
  37. Ga = mu0 * pi * (Da + z) * hp / 2 / z
  38. Gm = G1 + Ga: xoff = H + x0: Em = Abs(m * gz)
  39. 'Начальные условия
  40. Switch = 0: i = 0: Step = 0.000001 * all: times = 0
  41. UC(0) = UC0: PSI(0) = 0: V(0) = V0: X(0) = x0
  42. 'Точка старта расчета
  43. 0
  44. 'Блок выбора дальнейшего алгоритма расчета
  45. If Switch = 1 Then GoTo 10
  46. If Switch = 2 Then GoTo 20
  47. If Switch = 3 Then GoTo 30
  48. If Switch = 4 Then GoTo 40
  49. If Switch = 5 Then GoTo 50
  50. If Switch = 6 Then GoTo 60
  51. If Switch = 7 Then GoTo 70
  52. While (Switch = 0)
  53. DoEvents
  54. 'груз падает, ключи закрыты, условие выхода - или груз упал, или груз прошел точку включения
  55. k1 = gz: k2 = 1: K1V = k1: K1X = k2 * V(i): K2V = k1: K2X = k2 * (V(i) + 0.5 * Step * K1X)
  56. K3V = k1: K3X = k2 * (V(i) + 0.5 * Step * K2X): K4V = k1: K4X = k2 * (V(i) + Step * K3X)
  57. i = i + 1: times = times + Step: Tx(i) = times: UC(i) = UC(i - 1): PSI(i) = PSI(i - 1)
  58. V(i) = V(i - 1) + Step * (K1V + 2 * K2V + 2 * K3V + K4V) / 6
  59. X(i) = X(i - 1) + Step * (K1X + 2 * K2X + 2 * K3X + K4X) / 6
  60. 'если груз прошел точку включения
  61. If X(i) - xon > 0 Then
  62. If UC(i) > 0 And PSI(i) = 0 Then
  63. pk = tCorr(xon, X_i)
  64. Correction pk
  65. t1 = pk
  66. Switch = 1 'открыть тиристор
  67. End If
  68. End If
  69. If X(i) - xoff > 0 Then
  70. Switch = 4: If xz = 0 Then xz = i
  71. pk = tCorr(xoff, X_i)
  72. Correction pk
  73. t2 = pk
  74. If F(i) > Em Then
  75. V(i) = -V(i - 1) / 1000000
  76. Switch = 0 ' считать исчо :)
  77. Else
  78. V(i) = 0
  79. End If
  80. End If
  81. If t1 > 0 And t2 > 0 Then
  82. If t1 > t2 Then Switch = 1
  83. If t2 >= t1 Then
  84. If F(i) > Em Then Switch = 0 Else Switch = 4
  85. End If
  86. End If
  87. t1 = 0: t2 = 0
  88. Wend
  89. GoTo 0
  90.  
  91. 10 While (Switch = 1)
  92. DoEvents
  93. k1 = -1 / (C * w * w): k2 = 1: k3 = -Rk / (w * w): k4 = gz: k5 = 1 / (2 * m * w * w): k6 = 1
  94. K1C = k1 * PSI(i) / G(i): K1L = k2 * UC(i) + k3 * PSI(i) / G(i)
  95. K1V = k4 + k5 * PSI(i) * PSI(i) * dGdx(i) / G(i) / G(i)
  96. K1X = k6 * V(i): K2C = k1 * (PSI(i) / G(i) + 0.5 * Step * K1C)
  97. K2L = k2 * (UC(i) + 0.5 * Step * K1L) + k3 * (PSI(i) / G(i) + 0.5 * Step * K1L)
  98. K2V = k4 + k5 * ((PSI(i) ^ 2) / (G(i) ^ 2) * dGdx(i) + 0.5 * Step * K1V)
  99. K2X = k6 * (V(i) + 0.5 * Step * K1X): K3C = k1 * (PSI(i) / G(i) + 0.5 * Step * K2C)
  100. K3L = k2 * (UC(i) + 0.5 * Step * K2L) + k3 * (PSI(i) / G(i) + 0.5 * Step * K2L)
  101. K3V = k4 + k5 * ((PSI(i) ^ 2) / (G(i) ^ 2) * dGdx(i) + 0.5 * Step * K2V)
  102. K3X = k6 * (V(i) + 0.5 * Step * K2X): K4C = k1 * (PSI(i) / G(i) + 0.5 * Step * K3C)
  103. K4L = k2 * (UC(i) + Step * K3L) + k3 * (PSI(i) / G(i) + Step * K3L)
  104. K4V = k4 + k5 * ((PSI(i) ^ 2) / (G(i) ^ 2) * dGdx(i) + Step * K3V)
  105. K4X = k6 * (V(i) + Step * K3X): i = i + 1: times = times + Step: Tx(i) = times
  106. UC(i) = UC(i - 1) + Step * (K1C + 2 * K2C + 2 * K3C + K4C) / 6
  107. PSI(i) = PSI(i - 1) + Step * (K1L + 2 * K2L + 2 * K3L + K4L) / 6
  108. V(i) = V(i - 1) + Step * (K1V + 2 * K2V + 2 * K3V + K4V) / 6
  109. X(i) = X(i - 1) + Step * (K1X + 2 * K2X + 2 * K3X + K4X) / 6
  110. 'груз может упасть, диод может открытся
  111. If X(i) - xoff > 0 Then
  112. Switch = 5: If xz = 0 Then xz = i
  113. pk = tCorr(xoff, X_i)
  114. Correction pk
  115. t1 = pk
  116. If F(i) > Em Then
  117. V(i) = -V(i - 1) / 1000000
  118. Switch = 1 'Считать исчо
  119. Else
  120. V(i) = 0
  121. End If
  122. End If
  123. If UC(i) < 0 Then
  124. pk = tCorr(0, UC_i)
  125. Correction pk
  126. t2 = pk
  127. Switch = 3 'открыть диод
  128. End If
  129. If t1 > 0 And t2 > 0 Then
  130. If t2 > t1 Then Switch = 3
  131. If t1 >= t2 Then
  132. If F(i) > Em Then Switch = 1 Else Switch = 5
  133. End If
  134. End If
  135. t1 = 0: t2 = 0
  136. Wend
  137. GoTo 0
  138.  
  139. 20 While (Switch = 2)
  140. DoEvents
  141. k2 = -R1 / (w * w): k3 = gz: k4 = 1 / (2 * m * w * w): k5 = 1
  142. K1L = k2 * PSI(i) / G(i): K1V = k3 + k4 * (PSI(i) ^ 2 * dGdx(i) / G(i) ^ 2): K1X = k5 * V(i)
  143. K2L = k2 * (PSI(i) / G(i) + 0.5 * Step * K1L)
  144. K2V = k3 + k4 * ((PSI(i) / G(i)) ^ 2 * dGdx(i) + 0.5 * Step * K1V)
  145. K2X = k5 * (V(i) + 0.5 * Step * K1X): K3L = k2 * (PSI(i) / G(i) + 0.5 * Step * K2L)
  146. K3V = k3 + k4 * ((PSI(i) / G(i)) ^ 2 * dGdx(X(i)) + 0.5 * Step * K2V)
  147. K3X = k5 * (V(i) + 0.5 * Step * K2X): K4L = k2 * (PSI(i) / G(i) + Step * K2L)
  148. K4V = k3 + k4 * ((PSI(i) / G(i)) ^ 2 * dGdx(i) + Step * K3V)
  149. K4X = k5 * (V(i) + Step * K3X): i = i + 1: times = i * Step: Tx(i) = times: UC(i) = UC(i - 1)
  150. PSI(i) = PSI(i - 1) + Step * (K1L + 2 * K2L + 2 * K3L + K4L) / 6
  151. V(i) = V(i - 1) + Step * (K1V + 2 * K2V + 2 * K3V + K4V) / 6
  152. X(i) = X(i - 1) + Step * (K1X + 2 * K2X + 2 * K3X + K4X) / 6
  153. 'груз может упасть, ток может кончится
  154. If X(i) - xoff > 0 Then
  155. Switch = 6: If xz = 0 Then xz = i
  156. pk = tCorr(xoff, X_i)
  157. Correction pk
  158. If F(i) > Em Then
  159. V(i) = -V(i - 1) / 1000000
  160. Switch = 2
  161. Else
  162. V(i) = 0
  163. End If
  164. End If
  165. If tok(i) < 0.01 Then
  166. If Switch = 6 Then Switch = 4
  167. End If
  168. Wend
  169. GoTo 0
  170.  
  171. 30 While (Switch = 3)
  172. DoEvents
  173. k1 = -1 / (C * w * w): k2 = -1 / (C * R1): k3 = 1: k4 = -Rk / (w * w): k5 = gz: k6 = 1 / (2 * m * w * w): k7 = 1
  174. K1C = k1 * PSI(i) / G(i) + k2 * UC(i): K1L = k3 * UC(i) + k4 * PSI(i) / G(i)
  175. K1V = k5 + k6 * PSI(i) * PSI(i) * dGdx(i) / G(i) / G(i): K1X = k7 * V(i)
  176. K2C = k1 * (PSI(i) / G(i) + 0.5 * Step * K1C) + k2 * (UC(i) + 0.5 * Step * K1C)
  177. K2L = k3 * (UC(i) + 0.5 * Step * K1L) + k4 * (PSI(i) / G(i) + 0.5 * Step * K1L)
  178. K2V = k5 + k6 * (PSI(i) * PSI(i) / G(i) / G(i) * dGdx(i) + 0.5 * Step * K1V)
  179. K2X = k7 * (V(i) + 0.5 * Step * K1X)
  180. K3C = k1 * (PSI(i) / G(i) + 0.5 * Step * K2C) + k2 * (UC(i) + 0.5 * Step * K2C)
  181. K3L = k3 * (UC(i) + 0.5 * Step * K2L) + k4 * (PSI(i) / G(i) + 0.5 * Step * K2L)
  182. K3V = k5 + k6 * (PSI(i) * PSI(i) / G(i) / G(i) * dGdx(i) + 0.5 * Step * K2V)
  183. K3X = k7 * (V(i) + 0.5 * Step * K2X)
  184. K4C = k1 * (PSI(i) / G(i) + Step * K3C) + k2 * (UC(i) + Step * K3C)
  185. K4L = k3 * (UC(i) + Step * K3L) + k4 * (PSI(i) / G(i) + Step * K3L)
  186. K4V = k5 + k6 * (PSI(i) * PSI(i) / G(i) / G(i) * dGdx(i) + Step * K3V)
  187. K4X = k7 * (V(i) + Step * K3X): i = i + 1: times = i * Step: Tx(i) = times
  188. UC(i) = UC(i - 1) + Step * (K1C + 2 * K2C + 2 * K3C + K4C) / 6
  189. PSI(i) = PSI(i - 1) + Step * (K1L + 2 * K2L + 2 * K3L + K4L) / 6
  190. V(i) = V(i - 1) + Step * (K1V + 2 * K2V + 2 * K3V + K4V) / 6
  191. X(i) = X(i - 1) + Step * (K1X + 2 * K2X + 2 * K3X + K4X) / 6
  192. 'груз может упасть, тиристор может закрытся, диод может закрытся
  193. If X(i) - xoff > 0 Then
  194. Switch = 7: If xz = 0 Then xz = i
  195. pk = tCorr(xoff, X_i)
  196. Correction pk
  197. If F(i) > Em Then
  198. V(i) = -V(i - 1) / 1000000
  199. Switch = 3 'Считать исчо
  200. Else
  201. V(i) = 0
  202. End If
  203. End If
  204. p = tok(i): p1 = Abs(UC(i) / R1) ' ток в катушке и ток в резисторе .. разность - ток в конденсаторе
  205. If 2 * p1 > p Then
  206. Switch = 2 'закрыть тиристор
  207. End If
  208. If p < 0.01 Then
  209. If Switch = 2 Then Switch = 4 Else Switch = 1
  210. End If
  211. Wend
  212. GoTo 0
  213.  
  214. 40 For i = i To FindMaxFrom(i) - 10
  215. UC(i) = UC(i - 1): PSI(i) = PSI(i - 1): X(i) = X(i - 1): V(i) = V(i - 1)
  216. Next i
  217. GoTo 100
  218.  
  219. 50 While (Switch = 5)
  220. DoEvents
  221. k1 = -1 / (C * w * w): k2 = 1: k3 = -Rk / (w * w): k4 = 0: k5 = 0
  222. K1C = k1 * PSI(i) / G(i): K1L = k2 + k3 * PSI(i) / G(i)
  223. K2C = k1 * (PSI(i) / G(i) + 0.5 * Step * K1C): K2L = k2 + k3 * (PSI(i) / G(i) + 0.5 * Step * K1L)
  224. K3C = k1 * (PSI(i) / G(i) + 0.5 * Step * K2C): K3L = k2 + k3 * (PSI(i) / G(i) + 0.5 * Step * K2L)
  225. K4C = k1 * (PSI(i) / G(i) + Step * K3C): K4L = k2 + k3 * (PSI(i) / G(i) + Step * K3L)
  226. i = i + 1: times = times + Step: Tx(i) = times: V(i) = V(i - 1): X(i) = X(i - 1)
  227. UC(i) = UC(i - 1) + Step * (K1C + 2 * K2C + 2 * K3C + K4C) / 6
  228. PSI(i) = PSI(i - 1) + Step * (K1L + 2 * K2L + 2 * K3L + K4L) / 6
  229. 'диод может открытся
  230. If UC(i) < 0 Then
  231. pk = tCorr(0, UC_i)
  232. Correction pk
  233. Switch = 6 'открыть диод
  234. End If
  235. Wend
  236. GoTo 0
  237.  
  238. 60 While (Switch = 6)
  239. DoEvents
  240. k2 = -R1 / (w * w): K1L = k2 * PSI(i) / G(X(i)): K2L = k2 * (PSI(i) / G(X(i)) + 0.5 * Step * K1L)
  241. K3L = k2 * (PSI(i) / G(X(i)) + 0.5 * Step * K2L): K4L = k2 * (PSI(i) / G(X(i)) + Step * K2L)
  242. i = i + 1: times = i * Step: Tx(i) = times: UC(i) = UC(i - 1): V(i) = V(i - 1): X(i) = X(i - 1)
  243. PSI(i) = PSI(i - 1) + Step * (K1L + 2 * K2L + 2 * K3L + K4L) / 6
  244. If tok(i) < 0.1 Then Switch = 4
  245. Wend
  246. GoTo 0
  247.  
  248. 70 While (Switch = 7)
  249. DoEvents
  250. k1 = -1 / (C * w * w): k2 = -1 / (R1 * C): k3 = 1: k4 = -Rk / (w * w)
  251. K1C = k1 * PSI(i) / G(X(i)) + k2 * UC(i): K1L = k3 * UC(i) + k4 * PSI(i) / G(X(i))
  252. K2C = k1 * (PSI(i) / G(X(i)) + 0.5 * Step * K1C) + k2 * (UC(i) + 0.5 * Step * K1C)
  253. K2L = k3 * (UC(i) + 0.5 * Step * K1L) + k4 * (PSI(i) / G(X(i)) + 0.5 * Step * K1L)
  254. K3C = k1 * (PSI(i) / G(X(i)) + 0.5 * Step * K2C) + k2 * (UC(i) + 0.5 * Step * K2C)
  255. K3L = k3 * (UC(i) + 0.5 * Step * K2L) + k4 * (PSI(i) / G(X(i)) + 0.5 * Step * K2L)
  256. K4C = k1 * (PSI(i) / G(X(i)) + Step * K3C) + k2 * (UC(i) + Step * K3C)
  257. K4L = k3 * (UC(i) + Step * K3L) + k4 * (PSI(i) / G(X(i)) + Step * K3L)
  258. i = i + 1: times = times + Step: Tx(i) = times: V(i) = V(i - 1): X(i) = X(i - 1)
  259. UC(i) = UC(i - 1) + Step * (K1C + 2 * K2C + 2 * K3C + K4C) / 6
  260. PSI(i) = PSI(i - 1) + Step * (K1L + 2 * K2L + 2 * K3L + K4L) / 6
  261. p = tok(X(i)): p1 = Abs(UC(i) / R1)
  262. If 2 * p1 > p Then Switch = 6
  263. If tok(i) < 0.1 Then Switch = 4
  264. Wend
  265. GoTo 0
  266.  
  267. 'Рисование графиков
  268. 100
  269. mx = 3420 / FindMaxFrom(i): Y = 1860 / 2
  270. For i = 1 To i Step all
  271. DoEvents
  272. Picture1.PSet (mx * i, Y + 0 - 310 / 0.5 * V(i)) ' 0.5 м\с \ дел
  273. Picture2.PSet (mx * i, Y + 620 - 310 / 0.01 * ((H + x0) - X(i))) ' 10 мм \ дел
  274. Picture3.PSet (mx * i, Y + 620 - 310 / 150 * UC(i)) ' 150 В \ дел
  275. Picture4.PSet (mx * i, Y + 620 - 310 / 2.5 * PSI(i)) ' 2.5 А*в \ дел
  276. Picture5.PSet (mx * i, Y + 620 - 310 / 3 * tok(i)) ' 3 А \ дел
  277. Picture6.PSet (mx * i, Y + 620 - 310 / 0.25 * Ba(i)) ' 0.25 Тл \ дел
  278. Next i
  279. i = i - 1: xtm = i / 10000000 * all
  280. Timer1.Enabled = False
  281. Form1.Caption = "-=ММАиРЭС=- -=Курсовая работа=- -=Автор: Богданов Антон=- -=Тольятти, 2006=-"
  282. MsgBox "Цена деления шкалы X равна " + Str$(xtm) + " с." + vbCrLf + _
  283. "Посадочная скорость равна " + Str$(round(V(xz - 1))) + " м/с." + vbCrLf + _
  284. "Время падения равно " + Str$(Tx(xz - 1)) + " c." + vbCrLf + _
  285. "Поосадочная скорость без демпфирования равна " + Str$(round(Sqr(2 * H * gz))) + " м/с."
  286. End Sub
  287. Private Sub Correction(ByVal tmr As Double)
  288. UC(i) = (tmr * (UC(i) - UC(i - 1)) - UC(i) * Tx(i - 1) + UC(i - 1) * Tx(i)) / (Tx(i) - Tx(i - 1))
  289. PSI(i) = (tmr * (PSI(i) - PSI(i - 1)) - PSI(i) * Tx(i - 1) + PSI(i - 1) * Tx(i)) / (Tx(i) - Tx(i - 1))
  290. X(i) = (tmr * (X(i) - X(i - 1)) - X(i) * Tx(i - 1) + X(i - 1) * Tx(i)) / (Tx(i) - Tx(i - 1))
  291. V(i) = (tmr * (V(i) - V(i - 1)) - V(i) * Tx(i - 1) + V(i - 1) * Tx(i)) / (Tx(i) - Tx(i - 1))
  292. Tx(i) = tmr
  293. End Sub
  294. Private Function tCorr(ByVal ValOfParam As Double, k As Value) As Double
  295. X1 = Tx(i - 1): X2 = Tx(i)
  296. If k = PSI_i Then Y1 = PSI(i - 1): Y2 = PSI(i)
  297. If k = UC_i Then Y1 = UC(i - 1): Y2 = UC(i)
  298. If k = V_i Then Y1 = V(i - 1): Y2 = V(i)
  299. If k = X_i Then Y1 = X(i - 1): Y2 = X(i)
  300. tCorr = (ValOfParam * (X2 - X1) - X2 * Y1 + X1 * Y2) / (Y2 - Y1)
  301. End Function
  302. 'Функция для построения ГОСТовского графика (ось Х)
  303. Private Function FindMaxFrom(tre As Double) As Double
  304. Dim k As Double, zon As Integer
  305. k = 5: zon = 1
  306. 1 While (k < tre)
  307. k = k * 10
  308. Wend
  309. FindMaxFrom = k
  310. If ((k / tre) < 1.01 Or (k / tre) > 5) And zon <> 1 Then k = 1: GoTo 1
  311. End Function
  312. Private Function F(k As Double) As Double
  313. F = Abs((tok(k) * w * w * tok(k) / 2) * dGdx(k))
  314. End Function
  315. Private Function Ba(k As Double) As Double
  316. Ba = w * (G(k) - G1) * tok(k) / Sa
  317. End Function
  318. Private Function G(k As Double) As Double
  319. Dim gamma As Double
  320. Dim a_a As Double
  321. gamma = (Gm - G0) / G0
  322. a_a = ((Gm + G0 - 2 * G1) ^ 2) / (mu0 * Sa * (Gm - G0))
  323. G = G0 * gamma / (1 + Exp(a_a * X(i))) + G0
  324. End Function
  325. Private Function dGdx(k As Double) As Double
  326. Dim gamma As Double, a_a As Double
  327. gamma = ((Gm - G0) / G0)
  328. a_a = ((Gm + G0 - 2 * G1) ^ 2) / (mu0 * Sa * (Gm - G0))
  329. dGdx = -G0 * gamma * a_a * Exp(a_a * X(i)) / ((1 + Exp(a_a * X(i))) ^ 2)
  330. End Function
  331. Private Function tok(k As Double) As Double
  332. tok = PSI(k) / (w * w * G(k))
  333. End Function
  334. Private Sub Command1_Click()
  335. Erase UC(): Erase X(): Erase V(): Erase PSI(): Erase Tx()
  336. Form1.Caption = " ": Timer1.Enabled = True: xz = 0
  337. DoEvents
  338. If Check1.Value = 0 Then Calc 1 Else Calc 10
  339. End Sub
  340. Private Sub InitGrid()
  341. 'Рисование сеток
  342. Picture1.Cls: Picture2.Cls: Picture3.Cls: Picture4.Cls: Picture5.Cls: Picture6.Cls
  343. sy = 1860: sx = 3420
  344. Picture1.Line (1, 1)-(1, sy), RGB(128, 128, 128): Picture6.Line (sx, 1)-(sx, sy), RGB(128, 128, 128)
  345. Picture1.Line (1, 1)-(sx, 1), RGB(128, 128, 128): Picture1.Line (1, sy)-(sx, sy), RGB(128, 128, 128)
  346. Picture1.Line (sx, 1)-(sx, sy), RGB(128, 128, 128): Picture2.Line (1, 1)-(1, sy), RGB(128, 128, 128)
  347. Picture2.Line (1, 1)-(sx, 1), RGB(128, 128, 128): Picture2.Line (1, sy)-(sx, sy), RGB(128, 128, 128)
  348. Picture2.Line (sx, 1)-(sx, sy), RGB(128, 128, 128): Picture3.Line (1, 1)-(1, sy), RGB(128, 128, 128)
  349. Picture3.Line (1, 1)-(sx, 1), RGB(128, 128, 128): Picture3.Line (1, sy)-(sx, sy), RGB(128, 128, 128)
  350. Picture3.Line (sx, 1)-(sx, sy), RGB(128, 128, 128): Picture4.Line (1, 1)-(1, sy), RGB(128, 128, 128)
  351. Picture4.Line (1, 1)-(sx, 1), RGB(128, 128, 128): Picture4.Line (1, sy)-(sx, sy), RGB(128, 128, 128)
  352. Picture4.Line (sx, 1)-(sx, sy), RGB(128, 128, 128): Picture5.Line (1, 1)-(1, sy), RGB(128, 128, 128)
  353. Picture5.Line (1, 1)-(sx, 1), RGB(128, 128, 128): Picture5.Line (1, sy)-(sx, sy), RGB(128, 128, 128)
  354. Picture5.Line (sx, 1)-(sx, sy), RGB(128, 128, 128): Picture6.Line (1, 1)-(1, sy), RGB(128, 128, 128)
  355. Picture6.Line (1, 1)-(sx, 1), RGB(128, 128, 128): Picture6.Line (1, sy)-(sx, sy), RGB(128, 128, 128)
  356. For i = 1 To sx Step 342
  357. Picture1.Line (i, 1)-(i, sy), RGB(128, 128, 128): Picture2.Line (i, 1)-(i, sy), RGB(128, 128, 128)
  358. Picture3.Line (i, 1)-(i, sy), RGB(128, 128, 128): Picture4.Line (i, 1)-(i, sy), RGB(128, 128, 128)
  359. Picture5.Line (i, 1)-(i, sy), RGB(128, 128, 128): Picture6.Line (i, 1)-(i, sy), RGB(128, 128, 128)
  360. Next i
  361. For i = 1 To sy Step 310
  362. Picture1.Line (1, i)-(sx, i), RGB(128, 128, 128): Picture2.Line (1, i)-(sx, i), RGB(128, 128, 128)
  363. Picture3.Line (1, i)-(sx, i), RGB(128, 128, 128): Picture4.Line (1, i)-(sx, i), RGB(128, 128, 128)
  364. Picture5.Line (1, i)-(sx, i), RGB(128, 128, 128): Picture6.Line (1, i)-(sx, i), RGB(128, 128, 128)
  365. Next i
  366. End Sub
  367. Private Sub Command2_Click()
  368. Clipboard.Clear: Clipboard.SetData Picture1.Image
  369. po.SetFocus
  370. SendKeys ("V[t]"): SendKeys ("^v"): SendKeys ("0.5 m\s" + Chr$(13))
  371. DoEvents
  372. Clipboard.Clear: Clipboard.SetData Picture2.Image
  373. po.SetFocus
  374. SendKeys ("H[t]"): SendKeys ("^v"): SendKeys ("10 mm" + Chr$(13))
  375. DoEvents
  376. Clipboard.Clear: Clipboard.SetData Picture3.Image
  377. po.SetFocus
  378. SendKeys ("UC[t]"): SendKeys ("^v"): SendKeys ("150 V" + Chr$(13))
  379. DoEvents
  380. Clipboard.Clear: Clipboard.SetData Picture4.Image
  381. po.SetFocus
  382. SendKeys ("PSI[t]"): SendKeys ("^v"): SendKeys ("2.5 A*n" + Chr$(13))
  383. DoEvents
  384. Clipboard.Clear: Clipboard.SetData Picture5.Image
  385. po.SetFocus
  386. SendKeys ("I[t]"): SendKeys ("^v"): SendKeys ("3 A" + Chr$(13))
  387. DoEvents
  388. Clipboard.Clear: Clipboard.SetData Picture6.Image
  389. po.SetFocus
  390. SendKeys ("B[t]"): SendKeys ("^v"): SendKeys ("0.25 Tl" + Chr$(13))
  391. SendKeys ("Axis X - " + Str$(xtm) + " sec." + Chr$(13))
  392. SendKeys ("Vol. end speed - " + Str$(round(V(xz - 1))) + " m/sec." + Chr$(13))
  393. SendKeys ("Time fall - " + Str$(Tx(xz - 1)) + " sec." + Chr$(13))
  394. SendKeys ("Vol. end speed without dempfing - " + Str$(round(Sqr(2 * H * gz))) + " m/sec." + Chr$(13))
  395. SendKeys ("Energy of kick: " + Str$((round3(V(xz - 1) / Sqr(2 * H * gz)) ^ 2 * 100)) + " [max 6.25] percents.")
  396. DoEvents
  397. po.SaveFile "Grafiks.doc": po.SetFocus
  398. SendKeys ("^a"): SendKeys (Chr$(8))
  399. Timer1.Enabled = True
  400. 'Сохранение массивов значений в текстовый файл
  401. Open "out.txt" For Output As #1
  402. Print #1, "Шаг", "Время", "UC", "PSI", "V", "X", "I", "B"
  403. For i = 1 To i
  404. DoEvents
  405. Print #1, Str$(i), round2(Tx(i)), round2(UC(i)), round2(PSI(i)), round2(V(i)), round2(X(i)), round2(tok(i)), round2(Ba(i))
  406. Next i
  407. Close
  408. Timer1.Enabled = False
  409. Form1.Caption = "-=ММАиРЭС=- -=Курсовая работа=- -=Автор: Богданов Антон=- -=Тольятти, 2006=-"
  410. End Sub
  411. Private Sub Form_Load()
  412. InitGrid
  413. End Sub
  414. Private Function round(inp As Double) As Double
  415. round = Int(inp * 10 ^ 9 + 0.5) / 10 ^ 9
  416. End Function
  417. Private Function round2(inp As Double) As Double
  418. round2 = Int(inp * 10 ^ 6 + 0.5) / 10 ^ 6
  419. End Function
  420. Private Function round3(inp As Double) As Double
  421. round3 = Int(inp * 10 ^ 4 + 0.5) / 10 ^ 4
  422. End Function
  423. Private Sub Form_Unload(Cancel As Integer)
  424. End
  425. End Sub
  426. Private Sub Timer1_Timer()
  427. Form1.Caption = Form1.Caption + " ."
  428. If Len(Form1.Caption) > 50 Then Form1.Caption = ""
  429. End Sub
  430.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Visual Basic.Net Compiler version 0.0.0.5943 (Mono 3.8 - tarball)
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

/home/ELWVCX/prog.vb (2,14) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (3,14) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (4,14) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (5,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (6,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (7,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (8,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (9,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (10,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (11,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (12,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (13,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (14,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (19,12) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (20,9) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (21,9) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (23,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (24,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (25,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (26,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (27,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (28,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (29,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (30,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (32,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (33,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (34,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (35,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (36,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (37,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (38,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (40,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (41,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (43,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (45,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (46,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (47,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (48,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (49,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (50,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (51,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (52,6) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (53,9) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (55,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (56,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (57,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (58,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (59,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (61,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (62,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (63,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (64,19) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (65,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (66,15) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (67,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (68,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (69,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (70,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (71,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (72,19) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (73,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (74,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (75,10) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (76,15) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (77,9) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (78,6) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (79,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (80,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (81,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (82,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (83,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (84,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (85,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (86,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (87,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (88,5) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (89,5) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (91,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (92,9) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (93,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (94,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (95,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (96,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (97,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (98,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (99,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (100,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (101,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (102,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (103,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (104,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (105,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (106,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (107,4) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (108,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (109,2) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (111,3) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (112,11) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (113,7) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (114,15) : error VBNC30203: Identifier expected.
/home/ELWVCX/prog.vb (115,7) : error VBNC30203: Identifier expected.
vbnc : Command line : error VBNC30041: Too many errors.
stdout
Standard output is empty