Trang
MỤC LỤC
Nhận xét của giáo viên..........................................................................................1
Mẫu chấm niên luận..............................................................................................2
Mục lục..................................................................................................................3
I. GIỚI THIỆU......................................................................................................4
1. Lời mở đầu........................................................................................................4
2. Đặc tả đề tài.......................................................................................................4
II. GIẢI QUYẾT VẤN ĐỀ...................................................................................4
1- Tạo dữ liệu nguồn.............................................................................................4
2- Nhập..................................................................................................................5
3- Thuật toán tìm kiếm theo chiều sâu (dfs)..........................................................6
4- int ok.................................................................................................................7
5- void chuan bi.....................................................................................................8
6- void tim.............................................................................................................9
7- void xuly.........................................................................................................10
8- void xuat..........................................................................................................11
9- void main.........................................................................................................12
III. KẾT LUẬN – ĐÁNH GIÁ...........................................................................13
1- Ưu điểm..........................................................................................................13
2- Nhược điểm.....................................................................................................13
3- Hướng phát triển.............................................................................................13
IV. PHỤ LỤC......................................................................................................13
1- Hướng dẫn chạy demo....................................................................................13
2- Tài liệu tham khảo...........................................................................................15
Trang
I. GIỚI THIỆU
1- Lời mở đầu
Trong cuộc sống có nhiều vấn đề bộc ta phải lựa chọn hoặc tìm ra những
phương án để giải quyết được vấn đề. Trong toán học cũng thế để giải một bài
toán đòi hỏi ta phải chọn được phương án giải được bài toán một cách tối ưu để
int m,n,i,j,d,s;
FILE *f;
void nhap()
{
f=fopen(inp,"r");
fscanf(f,"%d %d",&m,&n);
Trang
fscanf(f,"%d %d %d %d",&inx,&iny,&outx,&outy);
for (i=0;i<m;++i)
for (j=0;j<n;++j) fscanf(f,"%d",&a[i][j]);
fclose(f);
}
int ok(int i,int j)
{
if ((i<0)||(i>=m)||(j<0)||(j>=n)) return 0;
if ((a[i][j]!=0)||(c[i][j]!=0)) return 0;
return 1;
}
void dfs(int i,int j)
{
if ((i==outx-1)&&(j==outy-1)) d=1;
else
{
int k;
for (k=1;k<=4;++k)
if (ok(i+dx[k],j+dy[k]))
{
c[i+dx[k]][j+dy[k]]=k;
dfs(i+dx[k],j+dy[k]);
}
chuanbi();
dfs(inx-1,iny-1);
if (d==1) tim();
}
void xuat()
{
FILE *f;
f=fopen(out,"w");
if (d != 1)fprintf(f,"Noresult");
if (d==1)
{
/*for (i=0;i<m;++i)
{
for (j=0;j<n;++j)
if (c[i][j]!=0) fprintf(f,"1 ");else fprintf(f,"0 ");
fprintf(f,"\n");
}*/
fprintf(f,"%d\n",s);
for (i=s;i>=0;i--) fprintf(f,"%4d%4d\n",x[i],y[i]);
// for (i=s;i>=0;i--) fprintf(f,"%d\n",y[i]);
}
fclose(f);
}
int main()
{
nhap();
xuly();
Trang
xuat();
return 0;
0 4 3 1 8 6
0 5 4 1 8 7
0 6 4 2 9 7
0 7 4 3 9 8
0 8 5 3 9 9
1 8 6 3
2 8 6 2
2 7 6 1
2 6 7 1
2 5 8 1
2- Nhập
Sau khi đọc ma trận kề và chuyển từ ma trận kề sang mê cung được minh họa
bởi đoạn code và sơ đồ khối sau:
void nhap()
{
f=fopen(inp,"r");
fscanf(f,"%d %d",&m,&n);
fscanf(f,"%d %d %d %d",&inx,&iny,&outx,&outy);
for (i=0;i<m;++i)
for (j=0;j<n;++j) fscanf(f,"%d",&a[i][j]);
fclose(f);
}
Trang
f = fopen (inp,”r”)
i<001
end
j<01
i ++
a[i][j]