- •Var temp,code: integer;
- •Val(inp, out, code);
- •Var temp,code: integer;
- •Val(inp, out, code);
- •Var temp,code: integer;
- •Val(inp, out, code);
- •Var temp,code: integer;
- •Val(inp, out, code);
- •Ver: real;
- •Var temp,code: integer;
- •Val(inp, out, code);
- •Var temp,code: integer;
- •Val(inp, out, code);
- •Ver: real;
- •Var temp,code: integer;
- •Val(inp, out, code);
Проверка теоретических расчетов посредством их сравнения с данными, полученными в результате работы экспериментальных моделей, созданных с помощью языка 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);