Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- Stroke = array of real;
- var
- n : integer;
- x, y : Stroke;
- xs, ys, op1, op2, r: real;
- procedure InputStroke(var a: Stroke; n: integer);
- var
- i : integer;
- begin
- write('Ввод массива: ');
- SetLength(a, n);
- for i := Low(a) to High(a) do
- read(a[i]);
- end;
- function AverageSum(const a: Stroke): real;
- var
- S : real := 0;
- i : integer;
- n : integer := 0;
- begin
- for i := Low(a) to High(a) do begin
- S := S + a[i];
- inc(n)
- end;
- AverageSum := S / n;
- end;
- function FirstOperand(const x, y: Stroke; xs, ys: real): real;
- var
- S : real := 0;
- i : integer;
- begin
- for i := Low(x) to High(x) do
- S := S + (x[i] - xs)*(y[i] - ys);
- FirstOperand := S;
- end;
- function SecondOperand(const x, y: Stroke; xs, ys: real): real;
- var
- S1 : real := 0;
- S2 : real := 0;
- i: integer;
- begin
- S1 := FirstOperand(x, x, xs, xs);
- S2 := FirstOperand(y, y, ys, ys);
- SecondOperand := S1 * S2;
- end;
- begin
- write('Введите количество элементов массива x и y:');
- readln(n);
- InputStroke(x, n);
- InputStroke(y, n);
- xs := AverageSum(x);
- ys := AverageSum(y);
- op1 := FirstOperand(x,y,xs,ys);
- op2 := SecondOperand(x,y,xs,ys);
- r := op1/op2;
- writeln('Для проверки вычислений:');
- writeln('xs=',xs);
- writeln('ys=', ys);
- writeln('Делимое=', op1);
- writeln('Делитель=', op2);
- writeln('Коэффициент корреляции двух величин R=', r);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement