Задача 8.3 (Программы 3)
Описание файла
Файл "Задача 8.3" внутри архива находится в папке "Программы 3". Документ из архива "Программы 3", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "Задача 8.3"
Текст из документа "Задача 8.3"
Option Explicit On
Option Strict On
Imports System.IO
Module Module1
Sub Main()
Dim N As Integer
Dim reader As StreamReader = New StreamReader("Approximation.txt")
N = Integer.Parse(reader.ReadLine())
Dim t(N - 1), E(N - 1) As Double
For i As Integer = 0 To N - 1
Dim c, d As Double
Dim line As String = reader.ReadLine
Dim semicolon1 As Integer = line.IndexOf(";")
Dim semicolon2 As Integer = line.Substring(semicolon1 + 1).IndexOf(";")
t(i) = Double.Parse(line.Substring(0, semicolon1)) + 273.15
c = Double.Parse(line.Substring(semicolon1 + 1, semicolon2))
d = Double.Parse(line.Substring(semicolon2 + semicolon1 + 2))
E(i) = c * d
Next i
Dim tmean As Double = 0 : Dim Emean As Double = 0
For i As Integer = 0 To N - 1
tmean = tmean + t(i)
Emean = Emean + E(i)
Next i
tmean = tmean / N : Emean = Emean / N
Dim numerator As Double = 0 : Dim denominator As Double = 0
For i As Integer = 0 To N - 1
numerator = numerator + (t(i) - tmean) * (E(i) - Emean)
denominator = denominator + (t(i) - tmean) ^ 2
Next i
Dim A As Double = numerator / denominator
Dim B As Double = Emean - A * tmean
Console.WriteLine("Уравнение прямой:") : Console.WriteLine(vbNewLine)
Console.WriteLine("Y = {0:e5} * X + {1:e5}", A, B) : Console.WriteLine(vbNewLine & vbNewLine)
Dim t1 As Double = 0 : Dim t2 As Double = 0 : Dim t3 As Double = 0 : Dim t4 As Double = 0 : Dim t5 As Double = 0
For i As Integer = 0 To N - 1
t1 = t1 + t(i)
t2 = t2 + E(i)
t3 = t3 + t(i) * E(i)
t4 = t4 + t(i) ^ 2
t5 = t5 + E(i) ^ 2
Next i
Dim r As Double = Math.Abs((N * t3 - t1 * t2) / Math.Sqrt((N * t4 - t1 ^ 2) * (N * t5 - t2 ^ 2)))
Console.WriteLine("Коэффициент корелляции: r = {0:F4}", r) : Console.WriteLine(vbNewLine)
Console.WriteLine("--------------------------------------------------------") : Console.WriteLine(vbNewLine)
Console.WriteLine("i Xi Yi A*Xi+B Delta") : Console.WriteLine(vbNewLine)
Dim writer As StreamWriter = New StreamWriter("Approximation1.csv")
writer.WriteLine("<Xi>;<Yi>;<A*Xi+B>")
For i As Integer = 0 To N - 1
Console.WriteLine("{0}{1,10:F2}{2,15:E3}{3,15:E3}{4,15:E3}", i + 1, t(i), E(i), A * t(i) + B, E(i) - A * t(i) - B)
writer.WriteLine("{0};{1};{2}", t(i), E(i), A * t(i) + B)
Next i
writer.Close()
Console.WriteLine(vbNewLine & vbNewLine)
Console.WriteLine("A = {0:E3}", B) : Console.WriteLine() : Console.WriteLine("B = {0:E3}", -A)
Console.ReadLine()
End Sub
End Module