Введите отклонение детали от заданного
{ биномиального закона распределения }
Procedure Recurro_binomial(n, m : integer; p : real; var p1 : real);
var
i : integer;
begin
Extent(1 - p, n, p1);
for
i := 1 to m do p1 := (p1*(n - i + 1)*p)/(i*(1 - p))
end;
{----------------------------------------------------------------------------------------}
begin
write('Введите дисперсию '); readln(d); c := sqrt(d);
write(' Введите отклонение детали от заданного размера '); readln(e);
write('Введите число измерений '); readln(n);
write('Введите допускаемое число появления ощибок '); readln(m);
pp := 1 - FF(e/c);
sum := 0;
for i := 0 to m do
begin
Recurro_binomial(n, i, pp, p1);
sum := sum + p1
end;
writeln('Вероятность брака равна ', sum:1:6)
end.
К
заданию 16
Program Task16_1;
uses WinCrt;
var
x, y, p, e, pp : real;
i, n, m, a, b : longint;
{----------------------------------------------------------------------------------------}
{ Рекуррентная функция вычисления интеграла вероятностей }
{ Пределы интегрирования от 0 до x. Функция Муавра-Лапласа }
Function
FF(x : real) : real;
var
n : integer;
u, I : real;
begin
if x >= 5
then FF := 1
else if x <= -5
then FF := -1
else
begin
u := x; n := 0; I := 0;
repeat
I := I + u; n := n + 1;
u := -u*(x*x*(2*n - 1)/(2*n*(2*n + 1)))
until abs(u) < 0.00001;
FF := 2*I/sqrt(2*Pi)
end
end;
{----------------------------------------------------------------------------------------}
{ Процедура вычисления числа испытаний при заданной гарантиро- }