Вывод данных и график - VB

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

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

Проблема: 1)Нужно переделать вывод данных в файл таким образом, чтобы после каждого нового запуска программы они перезаписывались вместо предыдущих (сейчас программа выводит данные, добавляя их к старым, в итоге в txt файле и новые и старые данные). Печать в файл на 91 строке Создание файла: 50-62 строки 2)Нужно поменять количество цифр после запятой (сейчас программа печатает 111,111111111111, а нужно чтобы округляло до 111,11) Задача: Построить график распределения температур во времени по: Tau; T1(5); T1(10); T1(20) все эти данные нужно брать из txt файла в который выводит (печатает) программа ранее. Tau - это время(интервал времени) в секундах T1(5); T1(10); T1(20) - это температуры в цельсиях [IMG]http://i.***********/i4/09/c2/af72890ebe935345c21654476937.jpeg[/IMG]
Листинг программы
  1. Const RO As Double = 7600#
  2. Const Cm As Double = 720#
  3. Const LamDA0 As Double = 50#
  4. Const K As Double = 0.22
  5. Const S As Double = 0.1
  6. Const T0_1 As Double = 20#
  7. Const T0_2 As Double = 50#
  8. Const Tc As Double = 1200#
  9. Const ALFC As Double = 22#
  10. Const q As Double = 0#
  11. Const dTau As Double = 5#
  12. Const dx As Double = 0.005
  13. Const N As Integer = 20
  14. Const TauPr As Double = 1800#
  15. Dim NewFSO As New ErrObject
  16. Dim sNameFolder As Double
  17. Dim sNameFile As Double
  18. Dim File
  19. Dim i As Integer, Rc As Double, R1 As Double, R2 As Double, R0 As Double, J As Integer, Tau As Double, TauFlag As Double
  20. Dim A(N) As Double, B(N) As Double, C(N) As Double, D(N) As Double 'dbl при ошибках добавить и имена
  21. 'Dim dblALF1 As Double, dblBETA1 As Double
  22. Dim ALF(N) As Double, BETA(N) As Double 'dbl при ошибках добавить и имена
  23. Dim T1(N) As Double, T2(N) As Double 'dbl при ошибках добавить и имена
  24. Dim MAS(1 To 20) As Integer 'массив
  25. Function LA(T As Double) As Double
  26. If T < 800 Then
  27. a0 = 57#
  28. b0 = -0.056
  29. Else
  30. a0 = 14.58
  31. b0 = 0.019
  32. End If
  33. LA = a0 + b0 * T
  34. End Function
  35. Function Tcr() As Double
  36. Tcr = 0#
  37. For i = 1 To N
  38. Tcr = Tcr + T2(i)
  39. Next i
  40. Tcr = Tcr / N
  41. End Function
  42. Private Sub Command1_Click()
  43. Picture1.Print i; T1(5); T1(10); T1(20)
  44. Picture1.Print Tau / 3600#
  45. End Sub
  46. Private Sub cbCreate_Click()
  47. ' Создание файла
  48. Dim NewFile As TextStream
  49. sNameFile = dirFolders.Path + "E:\NewFile.txt" + txtNameFile.Text
  50. Set NewFile = NewFSO.CreateTextFile(sNameFile)
  51. filFiles.Refresh
  52. End Sub
  53.  
  54. Private Sub Command2_Click()
  55. '--------------выводить график по нажтию на кнопку
  56. End Sub
  57.  
  58. Private Sub Form_Load()
  59. Open "D:\NewFile.txt" For Append As #1
  60. Tau = 0#
  61. TauFlag = 0#
  62. 'Dim i(1 To 20) As Integer 'одномерный масив????????
  63. 'Начальные данные
  64. For i = 1 To 20 'до 20 т.к. у нас 20 точек
  65. If i <= 4 Then
  66. T1(i) = T0_2
  67. Else
  68. T1(i) = T0_1
  69. End If
  70. Next i
  71. '--------------------------------------------
  72. Do
  73. Tau = Tau + dTau
  74. TauFlag = TauFlag + dTau
  75. If TauFlag = TauPr Then
  76. TauFlag = 0#
  77. Print #1, Tau; T1(5); T1(10); T1(20)
  78. End If
  79. For i = 1 To N
  80. If i = 1 Then
  81. Rc = 1# / ALFC
  82. R1 = 0.5 * dx / LA(T1(i)) 'R1 = dx / (2# * LamDA0)
  83. R2 = 0.5 * dx / LA(T1(i + 1)) 'R2 = dx / (2# * LamDA0)
  84. A(1) = 0#
  85. B(1) = (Cm * RO * dx) / dTau + 1# / (Rc + R1) + 1# / (R1 + R2)
  86. C(1) = -1# / (R2 + R1)
  87. D(1) = (Cm * RO * dx) / dTau * T1(i) + Tc / (Rc + R1) 'правильно ли указал Т
  88. End If
  89. If i > 1 And i < N Then
  90. R0 = 0.5 * dx / LA(T1(i - 1)) 'R0 = dx / (2# * LamDA0) 'R(i-1), правильно ли указал Т1
  91. R1 = 0.5 * dx / LA(T1(i)) 'R1 = dx / (2# * LamDA0) 'R(i)
  92. R2 = 0.5 * dx / LA(T1(i + 1)) 'R2 = dx / (2# * LamDA0)
  93. 'Tij как это описать-----------------------------
  94. A(i) = -1# / (R0 + R1)
  95. B(i) = (Cm * RO * dx) / dTau + 1# / (R0 + R1) + 1# / (R2 + R1)
  96. C(i) = -1# / (R2 + R1)
  97. D(i) = (Cm * RO * dx) / dTau * T1(i) 'правильно ли указал Т
  98. End If
  99. If i = N Then
  100. R0 = 0.5 * dx / LA(T1(i - 1)) 'R0 = dx / (2# * LamDA0) 'R(i-1)
  101. R1 = 0.5 * dx / LA(T1(i)) 'R1 = dx / (2# * LamDA0) 'R(i)
  102. 'Tij как описать-----------------------------
  103. A(N) = -1# / (R0 + R1)
  104. B(N) = (Cm * RO * dx) / dTau + 1# / (R0 + R1)
  105. C(N) = 0#
  106. D(N) = (Cm * RO * dx) / dTau * T1(i) 'правильно ли указал Т
  107. End If
  108. Next i
  109. For i = 1 To N
  110. If i = 1 Then
  111. ALF(1) = -C(1) / B(1)
  112. BETA(1) = D(1) / B(1)
  113. Else
  114. ALF(i) = -C(i) / (B(i) + A(i) * ALF(i - 1)) 'правильно ли указал ALF1
  115. BETA(i) = (-A(i) * BETA(i - 1) + D(i)) / (B(i) + A(i) * ALF(i - 1)) 'правильно ли указал ALF1
  116. End If
  117. Next i
  118. For i = N To 1 Step -1
  119. If i = N Then
  120. T2(i) = BETA(i) 'где используется бетта
  121. Else
  122. T2(i) = ALF(i) * T2(i + 1) + BETA(i) 'точно ли Т0_2 в начале
  123. End If
  124. Next i
  125. For i = 1 To N
  126. T1(i) = T2(i)
  127. Next i
  128. Loop Until Tcr() >= 800
  129. '---------------------------------------
  130. Close #1
  131. End Sub

Решение задачи: «Вывод данных и график»

textual
Листинг программы
  1. Private Sub Command3_Click()
  2. With MSChart1
  3.       ' Displays a 3d chart with 8 columns and 8 rows
  4.      ' data.
  5.      .chartType = VtChChartType2dLine
  6.       .ColumnCount = 3
  7.       .RowCount = 15
  8.       For Column = 1 To 3
  9.          For Row = 1 To 15
  10.             .Column = Column
  11.             .Row = Row
  12.             .Data = Row * 54
  13.          Next Row
  14.       Next Column
  15.       ' Use the chart as the backdrop of the legend.
  16.      .ShowLegend = True
  17.       .SelectPart VtChPartTypePlot, index1, index2, _
  18.       index3, index4
  19.       .EditCopy
  20.       .SelectPart VtChPartTypeLegend, index1, _
  21.       index2, index3, index4
  22.       .EditPaste
  23.    End With

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


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

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

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

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

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

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