Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распечатка. Проги..docx
Скачиваний:
6
Добавлен:
04.09.2019
Размер:
575.93 Кб
Скачать

Проверка теоретических расчетов посредством их сравнения с данными, полученными в результате работы экспериментальных моделей, созданных с помощью языка Pascal.

Работа 1.

Текст программы:

uses crt;

procedure head(st:string);

begin

clrscr;

writeln(st);

writeln;

end;

procedure verif(inp:string;var out:integer;var fl:boolean;hd:string);

var temp,code: integer;

begin

fl:=true;

val(inp, out, code);

if code=0 then

begin

fl:=true;

writeln;

end

else begin

head(hd);

writeln('Uncorrect! Please, input Number.');

write('Input: ');

fl:=false;

end;

end;

procedure karti;

var card: array[1..100] of byte;

i, j, ok, n: integer;

ver: real;

key: char;

procedure ABC(c: integer; st: string; n:integer);

var i: integer;

begin

randomize;

for i:=1 to c do

card[i]:=1;

for i:=c+1 to 100 do

card[i]:=0;

ok:=0;

for i:=1 to n do

begin

j:=random(100)+1;

if card[j]=1 then ok:=ok+1;

end;

ver:=ok/n;

writeln('veroyatnost` ',st,' = ',ver:4:2);

writeln;

end;

begin

repeat

head('***Karti***');

writeln('Please, input number of experiments...');

write('Input: ');

readln(n);

writeln;

ABC(10,'A',n);

ABC(19,'B',n);

ABC(20,'C',n);

ABC(9,'A\B',n);

ABC(20,'(A+B)^C',n);

writeln('any key to continue, Esc to exit...');

key:=readkey;

until key=#27;

end;

begin

karti;

end.

Рис.1. Результат работы программы ***Karti*** (Работа 1).

Работа 2 (первая часть).

Текст программы:

uses crt;

procedure head(st:string);

begin

clrscr;

writeln(st);

writeln;

end;

procedure verif(inp:string;var out:integer;var fl:boolean;hd:string);

Var temp,code: integer;

begin

fl:=true;

Val(inp, out, code);

if code=0 then

begin

fl:=true;

writeln;

end

else begin

head(hd);

writeln('Uncorrect! Please, input Number.');

write('Input: ');

fl:=false;

end;

end;

procedure otrezok;

var x,y,verA,verB,verC,verD,ver: real;

ok, i, n:integer;

key: char;

begin

randomize;

repeat

head('***Otrezok***');

writeln('Please, input number of experiments...');

write('Input: ');

readln(n);

writeln;

ok:=0;

for i:=1 to n do

begin

x:=random(1001)/1000;

y:=random(1001)/1000;

if (x>=0)and(x<=1)and(y>=0)and(y<=1)and(x<1-y) then ok:=ok+1;

end;

verA:=ok/n;

ok:=0;

for i:=1 to n do

begin

x:=random(1001)/1000;

y:=random(1001)/1000;

if (x>=0)and(x<=1)and(y>=0)and(y<=1)and(y<x*x) then ok:=ok+1;

end;

verB:=ok/n;

ok:=0;

for i:=1 to n do

begin

x:=random(1001)/1000;

y:=random(1001)/1000;

if (x>=0)and(x<=0.5)and(y>=0)and(y<=0.5) then ok:=ok+1;

end;

verC:=ok/n;

ok:=0;

for i:=1 to n do

begin

x:=random(1001)/1000;

y:=random(1001)/1000;

if not((x>=0.5)and(x<=1)and(y>=0.5)and(y<=1)) then ok:=ok+1;

end;

verD:=ok/n;

ok:=0;

for i:=1 to n do

begin

x:=random(1001)/1000;

y:=random(1001)/1000;

if not(((x>=0)and(x<=0.5)and(y<=x*x)and(y>=0))or((y>=x*x)and(y>=1-x)and(y<=1)))

then ok:=ok+1;

end;

ver:=ok/n;

writeln('veroyatnost` A = ',verA:4:2);

writeln('veroyatnost` B = ',verB:4:2);

writeln('veroyatnost` C = ',verC:4:2);

writeln('veroyatnost` D = ',verD:4:2);

writeln('veroyatnost` (AUB)^(-BU-C) = ',ver:4:2);

writeln;

writeln('any key to continue, Esc to exit...');

key:=readkey;

until key=#27;

end;

begin

otrezok;

end.

Рис.2. Результат работы программы ***Otrezok*** (Работа 2).

Работа 2 (вторая часть).

Текст программы:

uses crt;

procedure head(st:string);

begin

clrscr;

writeln(st);

writeln;

end;

procedure verif(inp:string;var out:integer;var fl:boolean;hd:string);

Var temp,code: integer;

begin

fl:=true;

Val(inp, out, code);

if code=0 then

begin

fl:=true;

writeln;

end

else begin

head(hd);

writeln('Uncorrect! Please, input Number.');

write('Input: ');

fl:=false;

end;

end;

procedure okruznosti;

var x, y, ver: real;

ok, i, n: integer;

key: char;

begin

randomize;

repeat

head('***Okruznosti***');

writeln('Please, input number of experiments...');

write('Input: ');

readln(n);

writeln;

ok:=0;

for i:=1 to n do

begin

x:=(random(1001))/1000;

y:=(random(31401))/10000;

if (x>0.7071)and(x<1)and(y>0)and(y<3.14)and(x>sin(y)) then ok:=ok+1;;

end;

ver:=ok/n;

writeln('iskomaya veroyatnost` = ',ver:4:3);

writeln;

writeln('any key to continue, Esc to exit...');

key:=readkey;

until key=#27;

end;

begin

okruznosti;

end.

Рис.3. Результат работы программы ***Okruznosti*** Работа 2 (вторая часть).

Работа 4.

Текст программы:

uses crt;

procedure head(st:string);

begin

clrscr;

writeln(st);

writeln;

end;

procedure verif(inp:string;var out:integer;var fl:boolean;hd:string);