Расчет погрешностей — Pascal(Паскаль)

program rp;
var i,n:byte;
 a:array [1..100] of real;
 ta,s,c,sr,b,sx,rz,dx,pr:real;

procedure pause; assembler;
label en;
asm
  mov ah,8
  int 21h
  or al,al
  jne en
  int 21h
en: end;

procedure clrscreen; assembler;
asm
  mov ax,600h
  mov bh,7
  xor cx,cx
  mov dx,184fh
  int 10h
  mov ah,2
  xor bh,bh
  xor dx,dx
  int 10h
end;

begin
  repeat
    clrscreen; write('Число измерений: '); readln(n)
  until (n>1) and (n<101);
  write('Введите (x) приборную: '); readln(pr);
  write('Введите ta: '); readln(ta); writeln;
  writeln('Введите результаты: ');
  for i:=1 to n do
  begin
    write('x(',i,'): '); readln(a[i])
  end;
  s:=0; c:=0; writeln;
  for i:=1 to n do s:=s+a[i];
  sr:=s/n; writeln('Среднее: ',sr:10:3); writeln;
  for i:=1 to n do
  begin
    b:=sr-a[i]; c:=c+sqr(b);
    write('(x',i,'): ',b:10:3);
    writeln('          (x',i,')^2: ',sqr(b):10:3)
  end;
  sx:=sqrt(c/(n*(n-1))); writeln;
  writeln('Sx = ',sx:10:3); rz:=sx*ta;
  writeln('Разброс: ',rz:10:3); writeln; dx:=sqrt(sqr(rz)+sqr(pr));
  writeln('Ответ: x = ',sr:10:3,' +- ',dx:10:3); pause
end.

Leave a Comment

1 + 9 =