Использование современной компьютерной техники и программного обеспечения для определения зависимости температуры раствора от величины pH раствора, страница 8

Sred_GroupX, Sred_GroupY – средние арифметические значения величин X и Y для группированных данных.

SredX, SredY – средние арифметические значения величин X и Y для негруппированных данных.

R_Group – коэффициент корреляции, вычисленный по группированным данным.

R – коэффициент корреляции, вычисленный по негруппированным данным.

Sx, Sy – суммы, вычисленные по формулам  (5) и (6).

Koef_Group1,Koef_Group2 – коэффициенты уравнения регрессии, вычисленные по группированным данным.

Koef1, Koef2 – коэффициенты уравнения регрессии, вычисленные по негруппированным данным.

Koef_Lin1, Koef_Lin2 – коэффициенты уравнения регрессии, вычисленные с помощью метода наименьших квадратов.

D, D1, D2 – переменные, содержащие значения главного и вспомогательных определителей для вычисления корней уравнения методом Крамера.

S_Ost, S_Poln – суммы квадратов, вычисляемые по формулам (8).

Koef_R – массив, содержащий значения коэффициентов детерминированности.

Также в подпрограммах были использованы переменные, которые использовались в основном как счетчики циклов и как хранилища различных значений для подсчета тех или иных физических величин.

5.2. Соответствие между блок-схемой и программой.

Программа, обеспечивающая выполнение алгоритма, полностью соответствует приведённая ниже блок-схема:

 


Рис.3 Основная блок-схема программы

5.3. Программа в Turbo Pascal.

Program kursrab;

Const

   Road_Input='D:\vidal\Input.txt';

   Road_Output='D:\vidal\Output.txt';

   Road_Table='D:\vidal\Table.txt';

   n=30; {Количество измерений}

   k=6; {Количество интервалов}

Var

   File_Input,File_Output,File_Table:Text;

   Matrix:Array[1..2,1..n] of Real;

   Matrix_Teor:Array[1..3,1..n] of Real; {Матрица теоретических значений}

   Table:Array[1..6,1..6] of Byte;

   i,j:Byte;

   X_Min,X_Max,Y_Min,Y_Max:Real;

   Hx,Hy:Real;

   Sered_intX:Array[1..1,1..6] of Real;

   Sered_intY:Array[1..6,1..1] of Real;

   Nxi:Array[1..1,1..6] of Integer;

   Nyj:Array[1..6,1..1] of Integer;

   UsZnach_YXi:Array[1..1,1..6] of Real;

   UsZnach_XYj:Array[1..6,1..1] of Real;

   Sum1,Sum2,Sum3:Real;

   Sred_GroupX,Sred_GroupY,SredX,SredY:Real;

   R_Group,R:Real;

   Sx,Sy:Real;

   Koef_Group1,Koef_Group2,Koef1,Koef2,Koef_Lin1,Koef_Lin2:Real;

   D,D1,D2:Real; {Главный и вспомогательные определители}

   S_Ost,S_Poln:Real;

   Koef_R:Array[1..3] of Real;

Procedure Program_Table;

Var

   i,j,t,p:Byte;

   H:Real;

   X,Y:Real;

   X1,X2,Y1,Y2:Real;

Begin

{1.Вычисление максимального и минимального значения x}

   X_Min:=Matrix[1,1];

   X_Max:=Matrix[1,1];

   Y_Min:=Matrix[2,1];

   Y_Max:=Matrix[2,1];

   For i:=1 to n do

   Begin

      If Matrix[1,i] < X_Min then X_Min:=Matrix[1,i];

      If Matrix[1,i] > X_Max then X_Max:=Matrix[1,i];

      If Matrix[2,i] < Y_Min then Y_Min:=Matrix[2,i];

      If Matrix[2,i] > Y_Max then Y_Max:=Matrix[2,i];

   End;

{2.Находим длинну интервалов по x и по y}

   Hx:=(X_Max-X_Min)/k;

   Hy:=(Y_Max-Y_Min)/k;

{3.Заполнение корреляционной таблицы }

   Y1:=Y_Min-1;Y2:=Y_Min+Hy;

   X1:=X_Min-1;X2:=X_Min+Hx;

   For j:=1 to 6 do

   Begin

      For i:=1 to 6 do

      Begin

         For p:=1 to n do

         Begin

            If ((Matrix[1,p] >= X1) and (Matrix[1,p] <= X2)) and

               ((Matrix[2,p] >= Y1) and (Matrix[2,p] <= Y2)) then

               Table[j,i]:=Table[j,i]+1;

         End;

         X1:=X2;

         X2:=X2+Hx;

      End;

      Y1:=Y2;

      Y2:=Y2+Hy;

      X1:=X_Min;X2:=X_Min+Hx;

   End;

End;

Function Summ(Key:String):Real;

Var

   i:Byte;

   S,K:Real;

Begin {Function}

   S:=0;

   If key='x' then

      Begin

         For i:=1 to n do S:=S + Matrix[1,i];

         Summ:=S;

      End

   Else If key='y' then

      Begin

         For i:=1 to n do S:=S + Matrix[2,i];

         Summ:=S;

      End

   Else If key='xy' then

      Begin

         For i:=1 to n do S:=S + Matrix[1,i]*Matrix[2,i];

         Summ:=S;

      End

   Else if key='x^2' then