Tài liệu Mô phỏng cuộc chạy thi giửa 2 tàu chiến gọi là tàu 1 và tàu 2.

  • Số trang: 40 |
  • Loại file: PDF |
  • Lượt xem: 60 |
  • Lượt tải: 0
nganguyen

Đã đăng 34345 tài liệu

Mô tả:

Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368 bµi 2. 1.§Ò bµi: M« pháng cuéc ch¹y thi giöa 2 tµu chiÕn gäi lµ Tµu 1 vµ Tµu 2. Néi dung nh- sau: Cã 2 tµu chiÕn gäi lµ Tµu1 vµ Tµu 2 xuÊt ph¸t t¹i cïng mét c¨n cø ®iÓm vµ ®i ®Õn ®Ých trong mét lé tr×nh dµi Y (km). Trong qu¸ tr×nh ®i th× c¸c tµu ph¶i dõng l¹i tiÕp nhiªn liÖu däc ®-êng. Do cã dùa vµo trang thiÕt bÞ hiÖn ®¹i vµ ®-îc chÕ t¹o víi c«ng nghÖ cao h¬n nªn Tµu 1 cã vËn tèc lín h¬n Tµu 2 tuy nhiªn còng v× lý do ®ã mµ Tµu1 cã hÖ sè s½n sµng xuÊt ph¸t bÐ thua hÖ sè s½n sµng xuÊt ph¸t cña Tµu 2. Trªn ®-êng ®i cø mçi lÇn dõng l¹i ®Ó tiÕp nhiªn liÖu c¸c tµu l¹i tiÕp tôc xuÊt ph¸t víi hÖ sè s½n sµng lÇn l-îc lµ hssst1 vµ hssst2. Qu·ng ®-êng ®i ®-îc cña c¶ hai tµu ®-îc céng dån. H·y thiÕt lËp mét bµi to¸n m« pháng víi c¸c hÖ sè s½n sµng lµ mét sè ngÉu nhiªn sao cho Tµu 2 cã x¸c suÊt vÒ ®Ých lín h¬n Tµu 1. 2. Ph©n tÝch ®Ò bµi. Bµi to¸n nµy thuéc lo¹i bµi to¸n m« h×nh ho¸ hÖ ngÉu nhiªn víi biÕn ngÉu nhiªn ë ®©y lµ hÖ sè s½n sµng xuÊt ph¸t cña c¸c tµu. Trong thuËt gi¶i nµy th× vËn tèc cña c¸c tµu cã thÓ ®-îc thÓ hiÖn qua qu·ng ®-êng mµ nã di chuyÓn ®-îc trong mét kho¶ng thêi gian nhÊt ®Þnh cho tr-íc. Nh- vËy khi thùc hiÖn gieo mét sè ngÉu nhiªn th× ta ph¶i so s¸nh víi c¸c hÖ sè s½n sµng cña c¶ hai tµu ®Ó ra quyÕt ®Þnh tµu nµo xuÊt ph¸t. Thùc hiÖn gieo c¸c sè ngÉu nhiªn ®Ó thö lµ néi dung cña ph-¬ng ph¸p m« h×nh ho¸ hÖ ngÉu nhiªn. Néi dung cña ph-¬ng ph¸p ®-îc tr×nh bµy ë trong bµi 1. 3. C¸c biÕn ngÉu nhiªn Nh- trªn ®· tr×nh bµy sù xuÊt ph¸t cña c¸c tµu ®-îc ®¸nh gi¸ qua mét sè ngÉu nhiªn ®ã lµ hÖ sè xuÊt ph¸t. NhvËy biÕn ngÉu nhiªn ë ®©y chÝnh lµ hÖ sè xuÊt ph¸t. NÕu nhhÖ sè s½n sang cña c¸c tµu ®-îc lÊy c¸c gi¸ trÞ trong kho¶ng [0,1] th× sè ngÉu nhiªn lµ mét sè cã ph©n bè U(0,1). 4. Ph©n tÝch gi¶i thuËt. Gi¶i thuËt cho bµi to¸n trªn ®-îc x©y dùng nh- sau: + Cho tr-íc c¸c th«ng sè kh«ng ®æi trong qu¸ tr×nh chuyÓn ®éng nh- vËn tèc cña c¸c tÇu vµ qu·ng ®-êng di chuyÓn sau mçi lÇn tiÕp nhiªn liÖu. + Gieo mét sè ngÉu nhiªn x=U(0,1): NÕu xhssst1 th× Tµu 2 xuÊt ph¸t + Thùc hiÖn so s¸nh qu·ng ®-êng di chuyÓn ®-îc cña c¶ hai tµu so víi ®é dµi qu·ng ®-êng Ên ®Þnh tr-íc nÕu tÇu nµo vÒ ®Ých tr-íc th× kÕt thóc cuéc ch¬i. 5. L-u ®å thuËt gi¶i nh- sau: NhËp sè liÖu hssst1,hssst2 NhËp Y LÊy x=U(0,1) x<=hssst1 § Tau1cd, Tµu 2cd S S § hssst1<=x<=hssst2 xt1=xt1+x01 or xt2=xt2+x02 S Tµu 2cd S xt1=Y or xt2=Y xt2=xt2+x02 S § xt2=Y § END 6.§iÒu kiÖn ®Çu, ®iÒu kiÖn dõng m« pháng. §iÒu kiÖn ®Çu ë ®©y lµ kho¶ng c¸c cña hµnh tr×nh vµ c¸c kho¶ng c¸c chuyÓn ®éng cña Tµu 1 vµ Tµu 2. §iÒu kiÖn dõng chuyÓn ®éng lµ khi mét trong 2 tµu vÒ ®Ých. 7.Ch-¬ng tr×nh m« pháng. Ch-¬ng tr×nh sau ®-îc x©y dùng trªn ng«n ng÷ C víi m· nguån ®-îc cho d-íi ®©y. #include"mou.h" #include"iostream.h" #include"math.h" #include"conio.h" #include"stdio.h" #include"graphics.h" #define Enter 13 void Write_text(int x1, int y1,double x,char*s,int color); void write_value(int*x,int*y,char*s); void read_value(int*x,int*y,char*s); int Nhap_kc_tau1(void); int Nhap_kc_tau2(void); double Nhap_hsss_tau1(void); double Nhap_hsss_tau2(void); void Data_in(void); void tau1_cd(void); void tau2_cd(void); void ve_tau1(void); void ve_tau2(void); void Win(void); void Run(void); void button(int y2,int color,char x1,int y1,int s[],int x2,int color_s,int size); void button1(int x1,int y1,int x2,int y2,int color); void _line(int x1, int y1, int x2, int y2, int color); void _line1(int x1,int y1,int x2,int y2); void main_h(void); void help(void); int xt,yt,xr,yr,nt,nr,i,j=0,k=0,t=0,kct1,kct 2,a=0; double hst1,hst2; char*pr,*pt; void write_value(int*x,int*y,char*s) { outtextxy(*x,*y,s); *x+=textwidth(s); } void read_value(int*x,int*y,char*s) { int i=0;char ch[2]; ch[1]=0; while(1) { ch[0]=getch(); if(ch[0]==Enter) break; write_value(x,y,ch); s[i]=ch[0]; ++i; } s[i]=0; } int Nhap_kc_tau1() { int xt1=220,yt1=380; char*st1; read_value(&xt1,&yt1,st1); return atoi(st1); } int Nhap_kc_tau2() { int xt2=220,yt2=435; char*st2; read_value(&xt2,&yt2,st2); return atoi(st2); } double Nhap_hsss_tau1() { int xst1=470,yst1=380; char*sst1; read_value(&xst1,&yst1,sst1); return atof(sst1); } double Nhap_hsss_tau2() { int xst2=470,yst2=435; char*sst2; read_value(&xst2,&yst2,sst2); return atof(sst2); } void Data_in(void) { char ch; setcolor(1); kct1=Nhap_kc_tau1(); kct2=Nhap_kc_tau2(); hst1=Nhap_hsss_tau1(); hst2=Nhap_hsss_tau2(); //ch=getch(); // if(ch==Enter) Run(); // Run(); } void ve_tau1(void) { setcolor(RED); ellipse(100,50,0,360,20,8); ellipse(100,46,190,357,20,6); line(107,44,110,38); circle(110,38,2); line(93,44,90,38); circle(90,38,2); setfillstyle(SOLID_FILL,BLUE); floodfill(101,54,RED); setfillstyle(SOLID_FILL,MAGENTA); floodfill(94,45,RED); } void ve_tau2(void) { setcolor(7); ellipse(100,50,0,360,20,8); ellipse(100,46,190,357,20,6); line(107,44,110,38); circle(110,38,2); line(93,44,90,38); circle(90,38,2); setfillstyle(SOLID_FILL,GREEN); floodfill(101,54,7); setfillstyle(SOLID_FILL,13); floodfill(94,45,7); } void tau2_cd(void) { if(j<1) putimage(50,170,pr,XOR_PUT); j=j+1; if(j>1) putimage(xr,yr,pr,XOR_PUT); xr=50+kct2*(j-1);yr=170; while(xr=540) { setcolor(15); outtextxy(250,250,"Tau 2 thang"); putimage(xr,yr,pr,XOR_PUT); Win(); putimage(xr,yr,pr,XOR_PUT); } chien if(xr>=kct2*j+50) putimage(xr,yr,pr,XOR_PUT); } } void tau1_cd() { if(k<1) putimage(50,250,pt,XOR_PUT); k=k+1; if(k>1) putimage(xt,yt,pt,XOR_PUT); xt=50+kct1*(k-1);yt=250; while(xt=540) { setcolor(15); outtextxy(250,250,"Tau 1 thang"); putimage(xt,yt,pt,XOR_PUT); Win(); putimage(xt,yt,pt,XOR_PUT); } if(xt>=kct1*k+50) putimage(xt,yt,pt,XOR_PUT); } } /*void rua_tho_cd(); { if(j<1) chien putimage(50,200,pr,XOR_PUT); j=j+1; if(j>1) putimage(xr,yr,pr,XOR_PUT); if(k<1) putimage(50,300,pt,XOR_PUT); k=k+1; if(k>1) putimage(xt,yt,pt,XOR_PUT); xr=50+70*(j-1);yr=200; xt=50+98*(k-1);yt=300; while((xr<70*j+50)&(xt<98*k+50)) { putimage(xr,yr,pr,XOR_PUT); delay(500); putimage(xr,yr,pr,XOR_PUT); xr=xr+7; putimage(xt,yt,pt,XOR_PUT); delay(200); putimage(xt,yt,pt,XOR_PUT); xt=xt+10; if(xr==540) { setcolor(15); outtextxy(250,250,"Rua chien thang"); putimage(xr,yr,pr,XOR_PUT); Win(); putimage(xr,yr,pr,XOR_PUT); } if(xt==540) { setcolor(15); outtextxy(250,250,"Tho thang"); putimage(xt,yt,pt,XOR_PUT); chien Win(); putimage(xt,yt,pt,XOR_PUT); } if(xr>=70*j+50) putimage(xr,yr,pr,XOR_PUT); if(xt>=98*k+50) putimage(xt,yt,pt,XOR_PUT); } } */ void Write_text(int x1, x,char*s,int color) { gcvt(x,5,s); setcolor(color); outtextxy(x1,y1,s); } int y1,double void y2,int button(int x1,int color,char y1,int s[],int size) { setfillstyle(1,color); bar(x1,y1,x2,y2); setcolor(15); setlinestyle(0,0,1); line(x1,y1,x2,y1); line(x1,y1,x1,y2); setcolor(0); line(x2,y2,x2,y1); line(x2,y2,x1,y2); settextjustify(1,1); x2,int color_s,int
- Xem thêm -