BigBoss
24-04-2003, 23:09
Đây là bài viếc dành cho những ai mới lập trình. Trong bài này có những sơ sót mong các bạn góp ý để hoàn thiện hơn. Trong bài này tôi xin dùng ngôn ngữ chung hay còn gọi là mã giả để nêu các thuật toán.
Trước hết tôi xin giới thiệu với các bạn về thuật toán vết dầu loan.
Thuật toán này dựa vào phép đệ quy nên chưa được tốt nếu bạn nào có phương pháp hay hơn xin chỉ giáo.
Dùng một mảng 2 chiều A co n cột và m dòng.
Ta chọn một điểm trong A.
proced vetdauloan(x,y)
{
if(A[x,y]<>0) then A[x,y] = 1;
if(A[x+1,y]<>0) then vetdauloan(x+1,y);
if(A[x,y+1]<>0) then vetdauloan(x,y+1);
if(A[x-1,y]<>0) then vetdauloan(x-1,y);
if(A[x,y-1]<>0) then vetdauloan(x,y-1);
if(A[x+1,y+1]<>0) then vetdauloan(x+1,y+1);
if(A[x-1,y-1]<>0) then vetdauloan(x-1,y-1);
if(A[x+1,y-1]<>0) then vetdauloan(x+1,y-1);
if(A[x-1,y+1]<>0) then vetdauloan(x-1,y+1);
}
Trước hết tôi xin giới thiệu với các bạn về thuật toán vết dầu loan.
Thuật toán này dựa vào phép đệ quy nên chưa được tốt nếu bạn nào có phương pháp hay hơn xin chỉ giáo.
Dùng một mảng 2 chiều A co n cột và m dòng.
Ta chọn một điểm trong A.
proced vetdauloan(x,y)
{
if(A[x,y]<>0) then A[x,y] = 1;
if(A[x+1,y]<>0) then vetdauloan(x+1,y);
if(A[x,y+1]<>0) then vetdauloan(x,y+1);
if(A[x-1,y]<>0) then vetdauloan(x-1,y);
if(A[x,y-1]<>0) then vetdauloan(x,y-1);
if(A[x+1,y+1]<>0) then vetdauloan(x+1,y+1);
if(A[x-1,y-1]<>0) then vetdauloan(x-1,y-1);
if(A[x+1,y-1]<>0) then vetdauloan(x+1,y-1);
if(A[x-1,y+1]<>0) then vetdauloan(x-1,y+1);
}