Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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



Проверка теоретических расчетов посредством их сравнения с данными, полученными в результате работы экспериментальных моделей, созданных с помощью языка 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 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Информация о видеоролике: | «Экономика предприятий и организаций»!:)

mybiblioteka.su - 2015-2024 год. (0.077 сек.)