0

Mô phỏng cuộc thi chạy giữa 2 tàu chiến

13 708 0
  • Mô phỏng cuộc thi chạy giữa 2 tàu chiến

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 17/08/2012, 07:04

Mô phỏng cuộc thi chạy giữa 2 tàu chiến 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 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 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 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ênNh 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. Nh vậy biến ngẫu nhiên ở đây chính là hệ số xuất phát. Nếu nh hệ 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 x<hssst1 thì cả hai tàu xuất phátNếu x<hssst2 và x>hssst1 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. Lu đồ thuật giải nh sau:Nhập số liệuhssst1,hssst2Lấy x=U(0,1)Nhập Yx<=hssst1hssst1<=x<=hssst2ĐTau1cd,Tàu 2cdSSENDxt1=Y orxt2=Yxt1=xt1+x01 orxt2=xt2+x02ĐTàu 2cdxt2=xt2+x02xt2=YĐSSĐS6.Điều kiện đầu, điều kiện dừng 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 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 13void 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 x1,int y1,int x2,int y2,int color,char s[],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,kct2,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<kct2*j+50){putimage(xr,yr,pr,XOR_PUT);delay(500);putimage(xr,yr,pr,XOR_PUT);xr=xr+7;if(xr>=540){ setcolor(15); outtextxy(250,250,"Tau 2 chien thang"); putimage(xr,yr,pr,XOR_PUT); Win(); putimage(xr,yr,pr,XOR_PUT);}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<kct1*k+50){putimage(xt,yt,pt,XOR_PUT);delay(200);putimage(xt,yt,pt,XOR_PUT);xt=xt+10;if(xt>=540){ setcolor(15); outtextxy(250,250,"Tau 1 chien 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)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 chien thang"); putimage(xt,yt,pt,XOR_PUT); 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, int y1,double x,char*s,int color){gcvt(x,5,s);setcolor(color);outtextxy(x1,y1,s);}void button(int x1,int y1,int x2,int y2,int color,char s[],int color_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);settextstyle(0,0,size);setcolor(color_s);outtextxy((x1+x2)/2,(y1+y2)/2,s);}void button1(int x1,int y1,int x2,int y2,int color){setfillstyle(1,color);bar(x1,y1,x2,y2);setcolor(0);setlinestyle(0,0,1);line(x1,y1,x2,y1);line(x1,y1,x1,y2);setcolor(15);line(x2,y2,x2,y1);line(x2,y2,x1,y2);}void _line(int x1, int y1, int x2, int y2, int color){setcolor(color);line(x1,y1,x2,y1);line(x2,y1,x2,y2);line(x2,y2,x1,y2);line(x1,y2,x1,y1);}void _line1(int x1, int y1, int x2, int y2){setfillstyle(1,9);bar(x1+1,y1+1,x2-1,y2-1);setcolor(0);line(x1,y1,x2,y1);line(x1,y1,x1,y2);line(x1+1,y2-1,x2-1,y2-1);line(x2-1,y2-1,x2-1,y1+1);setcolor(15);line(x1+1,y1+1,x2-1,y1+1);line(x1+1,y1+1,x1+1,y2-1);line(x1,y2,x2,y2);line(x2,y2,x2,y1);}void help(){int mh,mode;mh=DETECT;mode=1;initgraph(&mh,&mode," \\bgi");setbkcolor(1);cleardevice();Reset_mouse();Show_mouse();_line(2,2,637,478,15);_line(5,5,634,475,2);_line(7,8,630,472,15);_line(137,127,523,333,15);_line(135,125,525,335,2);settextstyle(7,0,1);setcolor(5);Hide_mouse();button1(140,130,520,330,11);setcolor(8);settextjustify(0,0);settextstyle(0,0,1);outtextxy(146,150,"Phan mem mo phong va mo hinh hoa bai 2");outtextxy(240,170,"Nhom sinh vien thiet ke:");outtextxy(280,190,"Nguyen Le Hoa");outtextxy(280,210,"Doan Phi Hung");outtextxy(280,230,"Hoang Vu Hung");outtextxy(280,250,"Lai Thien Hung");outtextxy(165,270,"Phan mem duoc hoan thanh voi su giup do cua");outtextxy(240,290,"PGS.TS Nguyen Cong Hien");setcolor(12);outtextxy(265,310,"-------***-------");Show_mouse();button(180,380,240,410,2,"Return",1,1);button(420,380,480,410,2,"Exit",1,1);while(1){Click_mouse();if(Win_mouse(180,380,240,410)==1&&Click_mouse()==1){main_h();}if(Win_mouse(420,380,480,410)==1&&Click_mouse()==1){exit(1);}}}void Run(){double n1;int n,i=0,k=1; // a=a+50;char*s;//randomize();while(xt<540 & xr<540&k){k=0;i=i+1;n=rand() % 10;n1=n*0.1;Write_text(100+40*i,130,n1,s,1);if((n1>hst1)&(n1<=hst2)){tau2_cd();delay(1000);}// elseif(n1<=hst1){tau1_cd();tau2_cd();delay(1000);}k=1; }}void Win(){int x[1001],y[1001],k;int i,n;char*p[1001];for(i=1;i<=1000;++i){x[i]=random(getmaxx())-10;y[i]=random(getmaxy())-10;if(x[i]<0) x[i]=0;if(y[i]<0) y[i]=0;n=imagesize(x[i],y[i],x[i]+10,y[i]+10);p[i]=(char*)malloc(n);getimage(x[i],y[i],x[i]+10,y[i]+10,p[i]);}while(t<5) // do{for(i=1;i<=100;++i){setfillstyle(SOLID_FILL,i%15+1);pieslice(x[i]+5,y[i]+5,0,360,5);}delay(500);for(i=100;i>=1;--i)putimage(x[i],y[i],p[i],COPY_PUT);delay(500);t=t+1;}}void main_h(void){long *p;int mh=0,mode=0;int xmax ,ymax;initgraph(&mh,&mode," \\bgi ");Hide_mouse();ve_tau2();Show_mouse();nt=imagesize(79,36,121,59);pt=(char*)malloc(nt);getimage(79,36,121,59,pt);Hide_mouse();ve_tau1();Show_mouse();randomize();nr=imagesize(79,36,121,59);pr=(char*)malloc(nr);getimage(79,36,121,59,pr);cleardevice();Reset_mouse();setfillstyle(1,3);xmax=getmaxx();ymax=getmaxy();bar(0,0,xmax,ymax);Show_mouse();_line(2,2,637,478,15);_line(5,5,634,475,13);_line(7,8,630,472,15);[...]... suất Tàu 2 thắng nhiều hơn tàu 1.10. Tài liệu tham khảo.1. Giáo trình hình hoá hệ thống và phỏng- PGS.TS Nguyễn Công Hiền 2. Ngôn ngữ lập trình C- Phạm Văn ất. line(x2,y2,x1,y2);line(x1,y2,x1,y1);}void _line1(int x1, int y1, int x2, int y2){setfillstyle(1,9);bar(x1+1,y1+1,x2-1,y2-1);setcolor(0);line(x1,y1,x2,y1);line(x1,y1,x1,y2);line(x1+1,y2-1,x2-1,y2-1);line(x2-1,y2-1,x2-1,y1+1);setcolor(15);line(x1+1,y1+1,x2-1,y1+1);line(x1+1,y1+1,x1+1,y2-1);line(x1,y2,x2,y2);line(x2,y2,x2,y1);}void... y2){setfillstyle(1,9);bar(x1+1,y1+1,x2-1,y2-1);setcolor(0);line(x1,y1,x2,y1);line(x1,y1,x1,y2);line(x1+1,y2-1,x2-1,y2-1);line(x2-1,y2-1,x2-1,y1+1);setcolor(15);line(x1+1,y1+1,x2-1,y1+1);line(x1+1,y1+1,x1+1,y2-1);line(x1,y2,x2,y2);line(x2,y2,x2,y1);}void help(){int mh,mode;mh=DETECT;mode=1;initgraph(&mh,&mode," \\bgi");setbkcolor(1);cleardevice();Reset_mouse();Show_mouse();_line (2, 2,637,478,15);_line(5,5,634,475 ,2) ;_line(7,8,630,4 72, 15);_line(137, 127 , 523 ,333,15);_line(135, 125 , 525 ,335 ,2) ;settextstyle(7,0,1);setcolor(5);Hide_mouse();button1(140,130, 520 ,330,11);setcolor(8);settextjustify(0,0);settextstyle(0,0,1);outtextxy(146,150,"Phan...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... đó 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 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... \\bgi");setbkcolor(1);cleardevice();Reset_mouse();Show_mouse();_line (2, 2,637,478,15);_line(5,5,634,475 ,2) ;_line(7,8,630,4 72, 15);_line(137, 127 , 523 ,333,15);_line(135, 125 , 525 ,335 ,2) ;settextstyle(7,0,1);setcolor(5);Hide_mouse();button1(140,130, 520 ,330,11);setcolor(8);settextjustify(0,0);settextstyle(0,0,1);outtextxy(146,150,"Phan mem mo phong va mo hinh hoa bai 2& quot;);outtextxy (24 0,170,"Nhom sinh vien thiet ke:");outtextxy (28 0,190,"Nguyen Le Hoa");outtextxy (28 0 ,21 0,"Doan Phi Hung");outtextxy (28 0 ,23 0,"Hoang Vu Hung");outtextxy (28 0 ,25 0,"Lai Thien Hung");outtextxy(165 ,27 0,"Phan... */setcolor(15);outtextxy(150,380,"KC_tau 1:");outtextxy(150,435,"KC_tau 2: ");outtextxy(400,380,"Hsss_tau 1:");outtextxy(400,435,"Hsss_tau 2: ");button1 (20 0,370 ,25 0,390,15);button1 (20 0, 425 ,25 0,445,15);button1(450,370,500,390,15);button1(450, 425 ,500,445,15);button1(100, 120 ,540,140,15);putimage(50 ,25 0,pt,XOR_PUT);putimage(50,170,pr,XOR_PUT);while(1){Click_mouse();if(... duoc");setcolor(15);outtextxy(60,150,"Tau2");outtextxy(60 ,23 0,"Tau1");/* Vung chuc nang */Show_mouse();_line1(15,350,619,465);_line1(15,17,619,100);button(50,45,100,75 ,2, "Help",1,1);button(170,45 ,22 0,75 ,2, "Run",1,1);button (29 0,45,340,75 ,2, "Reset",1,1);button(410,45,460,75 ,2, "Data",1,1);button(530,45,580,75 ,2, "Exit",1,1);/* Vung vao... x<hssst1 thì cả hai tàu xuất phátNếu x<hssst2 và x>hssst1 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. Lu đồ thuật gi¶i nh sau: setcolor(RED);_line(50,150,53,300,15);//outtextxy(50,40,"Gia tri ngau nhien nhan duoc:");//outtextxy(50 ,20 ,"Click Run button... Hung");outtextxy (28 0 ,25 0,"Lai Thien Hung");outtextxy(165 ,27 0,"Phan mem duoc hoan thanh voi su giup do cua");outtextxy (24 0 ,29 0,"PGS.TS Nguyen Cong Hien");setcolor( 12) ;outtextxy (26 5,310," *** ");Show_mouse();button(180,380 ,24 0,410 ,2, "Return",1,1); ... thuộc loại bài toán 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. . 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. y2){setfillstyle(1,9);bar(x1+1,y1+1,x2-1,y2-1);setcolor(0);line(x1,y1,x2,y1);line(x1,y1,x1,y2);line(x1+1,y2-1,x2-1,y2-1);line(x2-1,y2-1,x2-1,y1+1);setcolor(15);line(x1+1,y1+1,x2-1,y1+1);line(x1+1,y1+1,x1+1,y2-1);line(x1,y2,x2,y2);line(x2,y2,x2,y1);}void
- Xem thêm -

Xem thêm: Mô phỏng cuộc thi chạy giữa 2 tàu chiến, Mô phỏng cuộc thi chạy giữa 2 tàu chiến, Mô phỏng cuộc thi chạy giữa 2 tàu chiến

Hình ảnh liên quan

1. Giáo trình Mô hình hoá hệ thống và mô phỏng-PGS.TS Nguyễn Công Hiền 2. Ngôn ngữ lập trình C- Phạm Văn ất. - Mô phỏng cuộc thi chạy giữa 2 tàu chiến

1..

Giáo trình Mô hình hoá hệ thống và mô phỏng-PGS.TS Nguyễn Công Hiền 2. Ngôn ngữ lập trình C- Phạm Văn ất Xem tại trang 13 của tài liệu.