Задача 13(2) (Программы 3)
Описание файла
Файл "Задача 13(2)" внутри архива находится в папке "Программы 3". Документ из архива "Программы 3", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "Задача 13(2)"
Текст из документа "Задача 13(2)"
Option Strict On
Imports System.IO
Module Module1
Const h As Double = 0.001
Const mass As Double = 1
Function a(ByVal x As Double) As Double
Return -2 * (1 - Math.Exp(-x)) * Math.Exp(-x) / mass
End Function
Sub Main()
Dim file As StreamWriter = New StreamWriter("data.csv")
Dim max As Integer = CInt(30 / h)
Dim x(max) As Double
Dim v(max) As Double
x(0) = 2
v(0) = 0
Dim T As Double
Dim time As Double
Dim i As Double
Dim abc, b As Double
Dim n As Integer = 0
file.WriteLine("t; x(t); v(t)")
Do While i < 30
If i = 0 Then
file.WriteLine("{0};{1};{2}", i * h, x(0), v(0))
Else
x(CInt(i / h)) = x(CInt(i / h) - 1) + h * v(CInt(i / h) - 1)
v(CInt(i / h)) = v(CInt(i / h) - 1) + h * a(x(CInt(i / h) - 1))
file.WriteLine("{0};{1};{2}", i, x(CInt(i / h)), v(CInt(i / h)))
abc = Math.Sign(v(CInt(i / h) - 1))
b = Math.Sign(v(CInt(i / h)))
If abc <> b Then
T = i - time
time = i
End If
End If
i = i + h
Loop
file.WriteLine(T * 2)
file.Close()
End Sub
End Module