|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Программирование с использованием генератора случайных чиселПрограммирование с использованием генератора случайных чиселprogram kursovik; uses crt,graph; var j,help,i,work,button:byte; exitmenu,exitprog:boolean; actionprog,action:char; grmode,grdriver:integer; dat:array[1..3]of real; posle:array[1..100] of real; xcor,ycor:array[1..3]of byte; mat,disp:array[1..10]of real; mat0,disp0,dispmax,matmax,x:real; {*****DrawHelp*****} procedure drawhelp(help:byte); begin textcolor(black); textbackground(white); gotoxy(1,25); case help of 0: write(' F1-Парам. F2-Посл-ти F3-Гистогр. F10-Меню (Alt-x)-Выход '); 1: write(' Задать/изменить параметры '); 2: write(' Просмотреть последовательности '); 3: write(' Просмотреть гистограмму '); 4: write(' Выход '); 5: write(' Esc-Закончить изменение параметров. BckSp-Изменить параметр. F4-Постр. посл-ть'); 6: write(' Нажмите Up или Down для просмотра или Esc для выхода '); end; end; {*****DrawWin*****} procedure drawwin; begin textcolor(white);textbackground(blue); GotoXY(1,2); Write('г'); for i:=2 to 79 do Write('='); Write('¬'); for i:=3 to 23 do begin GotoXY(1,i1); Write('¦'); for j:=2 to 79 do Write(' '); Write('¦'); end; GotoXY(1,24); Write('L'); for i:=2 to 79 do Write('='); Write('-'); { gotoxy(39,2);write('T');} gotoxy(39,24);write('¦'); for i:=5 to 23 do begin gotoxy(39,i); write('¦') end; gotoxy(31,3); writeln('Последовательности'); gotoxy(1,4); write('¦=====================================T============================== ==========¦'); end; {*****DoWork*****} procedure dowork(work:byte); begin case work of 1: begin textcolor(white); textbackground(blue); gotoxy(39,2);write('T'); gotoxy(2,3); writeln(' Нормальный закон: ¦ Экспоненциальный закон:'); gotoxy(1,4); write('¦=====================================+============================== ==========¦'); drawhelp(5); textcolor(white); textbackground(blue); gotoxy(2,6);write(' Мат. ожидание:'); gotoxy(2,8);write(' Дисперсия:');gotoxy(xcor[2],ycor[2]);write(dat[2]:2:1); gotoxy(41,6);write('Коэффициент:');gotoxy(xcor[3],ycor[3]);write(dat[3]:2:1) ; gotoxy(xcor[1],ycor[1]);write(dat[1]:2:1);i:=1; repeat action:=readkey; case action of #27: exitpar:=true; #9: begin i:=i+1; if i<4 then begin gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1); end else begin i:=1; gotoxy(xcor[1],ycor[1]);write(dat[1]:2:1); end; end; #8: begin gotoxy(xcor[i],ycor[i]);write(' '); gotoxy(xcor[i],ycor[i]);read(dat[i]); gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1); if i<3 then i:=i+1 else i:=1; gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1); end; #13: begin if i<3 then i:=i+1 else i:=1; gotoxy(xcor[i],ycor[i]);write(dat[i]:2:1); end; #62: begin for i:=1 to 50 do begin x:=ln(random(65525)+1); posle[i]:=exp(-sqr(x- dat[1])/(2*sqrt(dat[2])))/sqrt(2*pi*dat[2]); x:=exp(1/(random(825))); if x<0 then posle[i+50]:=0 else posle[i+50]:=dat[3]*exp(- dat[3]*x); end; end; end; until exitpar=true; drawwin; end; 2: begin action:=#1; drawhelp(6); textcolor(white); textbackground(blue); exitpar:=false; j:=1; for i:=1 to 19 do begin gotoxy(2,i+4); if i+j-1<10 then write(' ',i+j-1,': ',posle[i+j]:2:6,' ¦ ',i+j+49,': ',posle[i+50+j]:2:6) else write(' ',i+j-1,': ',posle[i+j]:2:6,' ¦ ',i+j+49,': ',posle[i+50+j]:2:6) end; repeat action:=readkey; case action of #72: if j>1 then j:=j-1; #80: if j<32 then j:=j+1; #27: exitpar:=true; end; for i:=1 to 19 do begin gotoxy(2,i+4); if i+j-1<10 then write(' ',i+j-1,': ',posle[i+j]:2:6,' ¦ ',i+j+49,': ',posle[i+50+j]:2:6) else write(' ',i+j-1,': ',posle[i+j]:2:6,' ¦ ',i+j+49,': ',posle[i+50+j]:2:6) end; until exitpar=true; drawwin; end; 3: begin for i:=1 to 10 do begin x:=0; for j:=1 to 10 do x:=x+posle[(i-1)*10+j]; mat[i]:=x/10; mat0:=mat0+x; end; mat0:=mat0/100; for i:=1 to 10 do for j:=1 to 10 do begin disp[i]:=sqr(posle[(i-1)*10+j]-mat[i]); disp0:=sqr(posle[(i-1)*10+j]-mat0); end; matmax:=mat[1]; dispmax:=disp[1]; for i:=1 to 10 do begin if disp[i]>dispmax then dispmax:=disp[i]; if mat[i]>matmax then matmax:=mat[i]; end; initgraph(grdriver,grmode,''); setBKcolor(black);setcolor(8); for i:=1 to 11 do line(5,i*30,15,i*30-10); for i:=1 to 20 do line(i*25+5,330,i*25+15,320); line(5,330,505,330); line(5,330,5,30); for i:=0 to 20 do line(i*25+15,320,i*25+15,20); for i:=1 to 11 do line(15,i*30-10,515,i*30-10); setbkcolor(black); for i:=1 to 10 do begin setcolor(cyan); SetFillStyle(6, 7); Bar3D(13,27+30*(i-1),13+round(mat[i]*10000),35+30*(i-1), 2, TopOn); setcolor(green); SetFillStyle(8, 8); Bar3D(13,35+30*(i-1),13+round(disp[i]*1000000),43+30*(i-1), 2, TopOn); end; SetFillStyle(6, 7); setcolor(8); bar(10, 430, 20, 440); outtextxy(23,432,'- Mat. ozhidanie'); SetFillStyle(8, 8); bar(10, 450, 20, 460); outtextxy(23,452,'- Dispersiya'); readkey; closegraph; drawwin end; end; end; {*****DrawMenu*****} procedure drawmenu(button:byte); const light=green;{15,14,13,12,11,10,9} dark=white;{7,6,5,4,3,2,1} var col:array[1..4]of byte; exitmenu:boolean; begin exitmenu:=false; textcolor(black); drawhelp(1); repeat for i:=1 to 5 do col[i]:=dark; col[button]:=light; gotoxy(1,1); textbackground(col[1]);write(' Параметры '); textbackground(col[2]);write(' Последовательности '); textbackground(col[3]);write(' Гистограмма '); textbackground(col[4]);write(' Выход ');textbackground(dark);write(' '); if button<>5 then action:=readkey else exitmenu:=true; case action of #77: begin if button<4 then begin col[button]:=dark; button:=button+1; col[button]:=light end else begin col[4]:=dark; col[1]:=light; button:=1; end; end; #75: begin if button>1 then begin col[button]:=dark; button:=button-1; col[button]:=light end else begin col[1]:=dark; col[4]:=light; button:=4; end end; #27: exitmenu:=true; #13: case button of 1: begin dowork(1); button:=5 end; 2: begin dowork(2); button:=5 end; 3: begin dowork(3); button:=5 end; 4: begin exitmenu:=true; exitprog:=true end; end; end; if button<>5 then drawhelp(button); until exitmenu=true; drawhelp(0);textbackground(dark);gotoxy(1,1); write(' Параметры Последовательности Гистограмма Выход '); end; {*****Главная программа*****} begin clrscr; xcor[1]:=18; xcor[2]:=18; xcor[3]:=58; ycor[1]:=6; ycor[2]:=8; ycor[3]:=6; dat[1]:=5;dat[3]:=5;dat[2]:=4; grmode:=detect; grdriver:=detect; drawwin; repeat drawmenu(5); drawhelp(0); actionprog:=readkey; case actionprog of #59: dowork(1); #60: dowork(2); #61: dowork(3); #68: begin drawmenu(1); end; #45: exitprog:=true; end; for i:=1 to 10 do begin mat[i]:=0; disp[i]:=0 end; until exitprog=true; end. |
РЕКЛАМА
|
|||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |