|
Проверка теоретических расчетов посредством их сравнения с данными, полученными в результате работы экспериментальных моделей, созданных с помощью языка 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);
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 turist;
var j,i,ok,A2B,n: integer;
ver1,ver2: real;
key: char;
begin
randomize;
repeat
head('***Turist***');
writeln('Please, input number of experiments...');
write('Input: ');
readln(n);
writeln;
ok:=0;
A2B:=0;
for i:=1 to n do
begin
j:=random(4)+1;
if j=1 then
begin
j:=random(3)+1;
if j=3 then ok:=ok+1;
end
else
if j=2 then
begin
ok:=ok+1;
A2B:=A2B+1;
end
else
if j=3 then ok:=ok+1
else
if j=4 then
begin
j:=random(4)+1;
if (j=1)or(j=2) then ok:=ok+1;
end;
end;
ver1:=ok/n;
ver2:=A2B/ok;
writeln('veroyatnost` popadaniya v B = ',ver1:5:4);
writeln;
writeln('veroyztnost` prohoda po AH2B = ',ver2:5:4);
writeln;
writeln('any key to continue, Esc to exit...');
key:=readkey;
until key=#27;
Рис.4. Результат работы программы ***Turist*** (Работа 4).
Работа 5 (a).
Текст программы:
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 moneta;
const hd='***Brosaniye moneti***';
var
moneta, cntj, cnti, cntN, i, j: integer;
ver: real;
st: string;
fl: boolean;
key: char;
begin
randomize;
repeat
head(hd);
writeln('Please, input number of experiments...');
write('Input: ');
fl:=false;
repeat
readln(st);
verif(st,cntN,fl,hd);
until fl=true;
cnti:=0;
cntj:=0;
for i:=1 to cntN do
begin
for j:=1 to 5 do
begin
moneta:=random(2);
write(moneta);
if moneta=1 then cntj:=cntj+1;
end;
write(' ');
if cntj>=4 then cnti:=cnti+1;
cntj:=0;
end;
writeln;
writeln;
write('Gerb vipal ne menee 4-ex raz v ');
textcolor(green);write(cnti);textcolor(7);
write(' seriyah broskov');
writeln;
ver:=cnti/cntN;
writeln('veroyatnost`= ',ver:5:4);
writeln;
writeln('any key to continue, Esc to exit...');
key:=readkey;
until key=#27;
end;
begin
moneta;
end.
Рис.5. Результат работы программы ***Brosaniye moneti*** (Работа 5 (a)).
Работа 5 (б).
Текст программы:
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 semena;
const arr=10000;
hd='***Experiment s semenami***';
var sem: array [1..arr] of byte;
i,j,k,sorn,udachno: longint;
percent, ver, mid, all:real;
temp: byte;
key: char;
sr, ii, n:integer;
fl: boolean;
st:string;
begin
randomize;
repeat
head(hd);
writeln('Please, input number of experiments...');
write('Input: ');
repeat
readln(st);
verif(st,n,fl,hd);
until fl=true;
writeln('please wait...');
for i:=1 to 40 do
sem[i]:=1;
for i:=41 to arr do
sem[i]:=0;
udachno:=0;
for k:=1 to n do
begin
for i:=1 to arr do
begin
j:=random(arr)+1;
temp:=sem[j];
sem[j]:=sem[i];
sem[i]:=temp;
end;
sorn:=0;
for i:=1 to 500 do
if sem[i]=1 then sorn:=sorn+1;
if sorn=5 then udachno:=udachno+1;
end;
ver:=udachno/n;
writeln;
writeln('kuchek s 5-u sornyakami=',udachno,' iz ',n,' experimentov');
writeln;
writeln('Veroyatnost`=',ver:5:3);
writeln;
writeln('any key to continue, Esc to exit...');
key:=readkey;
until key=#27;
end;
begin
semena;
end.
Рис.6. Результат работы программы ***Experiment s semenami*** (Работа 5 (б)).
Работа 5 (в).
Текст программы:
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 strelba_po_celi;
const n=300000;
var
targ: array[1..10] of byte;
i, j, hit, well, ver1:longint;
ver: real;
k:longint;
key: char;
begin
randomize;
repeat
well:=0;
repeat
clrscr;
head('***Strelba***');
writeln('Vvedite veroyatnost` popadaniya pri 1-om vistrele (0,3 ili 0,6): ');
write('Input: 0,');
readln(ver1);
until (ver1=3)or(ver1=6);
for i:=1 to ver1 do
targ[i]:=1;
for i:=ver1+1 to 10 do
targ[i]:=0;
for k:=1 to n do
begin
hit:=0;
for i:=1 to 100 do
begin
j:=random(10)+1;
if targ[j]=1 then hit:=hit+1;
end;
if hit> 50 then well:=well+1;
end;
ver:=well/n;
write('Veroyatnost`= ');
writeln(ver:8:7);
writeln;
writeln('any key to continue, Esc to exit...');
key:=readkey;
until key=#27;
end;
begin
strelba_po_celi;
end.
Рис.6. Результат работы программы ***Strelba*** (Работа 5 (в)) при вероятности попасть по цели 0.3.
Рис.6. Результат работы программы ***Strelba*** (Работа 5 (в)) при вероятности попасть по цели 0.6.
Работа 5 (г).
Текст программы:
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 detali;
const a=1;
var det:array[1..10] of byte;
i, j,k, kgod, n, m, well, midint: integer;
mid, ver: real;
key:char;
sumn:longint;
begin
repeat
head('***Detali***');
writeln('Please, input number of experiments...');
write('Input: ');
readln(m);
writeln;
sumn:=0;
randomize;
for i:=2 to 10 do
det[i]:=1;
det[1]:=0;
for j:=1 to m do
begin
kgod:=0;
n:=0;
repeat
n:=n+1;
i:=random(10)+1;
if det[i]=1 then kgod:=kgod+1;
until kgod=50;
sumn:=sumn+n;
end;
mid:=sumn/m;
midint:=trunc(mid);
writeln('nuzno vzyat` ',mid:2:0,' detaley');
writeln;
kgod:=0;
well:=0;
for k:=1 to m do
begin
for i:=1 to midint do
begin
j:=random(10)+1;
if det[j]=1 then kgod:=kgod+1;
end;
if kgod=50 then well:=well+1;
kgod:=0;
end;
ver:=well/m;
write('veroyatnost` poyavleniya 50 godnix detaley v partii iz ');
writeln(mid:2:0,' detaley = ',ver:5:4);
writeln;
writeln('any key to continue, Esc to exit...');
key:=readkey;
until key=#27;
end;
begin
detali;
end.
Рис.6. Результат работы программы ***Detali*** (Работа 5 (г)).
Дата добавления: 2015-09-29; просмотров: 18 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Информация о видеоролике: | | | «Экономика предприятий и организаций»!:) |