Diễn đàn hỏi đáp học thuật - Download Tài Liệu Miễn Phí
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn hỏi đáp học thuật - Download Tài Liệu Miễn PhíĐăng Nhập

VỮNG TIN - TIẾP BƯỚC - THÀNH CÔNG


descriptionBài 13. Mã Đi Tuần EmptyBài 13. Mã Đi Tuần

more_horiz
Chương trình này có tác dụng là chạy từng bước bài toán Mã Đi Tuần, giúp cho các bạn học sinh - sinh viên hiểu rõ hơn về thuật toán này (mình hy vọng là như vậy!)

Các bạn download tại đây:
http://www.mediafire.com/?m3az00iomm5

Sau khi down về xong, các bạn nhấp đúp vào file để cài đặt, sau khi cài đặt xong sẽ xuất hiện ngoài desktop shortcut của chương trình.

Các bạn cứ việc nhấp đúp vào shortcut là chạy chương trình. Các bạn cứ yên tâm, tuyệt đối 100% không có virus.

(Chương trình viết bằng C++ for dos, vì thế không hỗ trợ trên WINDOWS 7)

Sau khi sử dụng, các bạn vui lòng góp ý giúp mình hoàn thiện chương trình hơn!

Cảm ơn các bạn!

descriptionBài 13. Mã Đi Tuần EmptyBài toán mã đi tuần

more_horiz
Bài toán mã đi tuần

Code:

#include "iostream.h"
#include "stdio.h"
#include "conio.h"
#define max 10
int A[max][max]; //Mang danh dau
int B[max][max]; //Mang luu duong di
int X[8]={-1,-2,-2,-1,1,2,2,1};
int Y[8]={-2,-1,1,2,2,1,-1,-2};
int n,x,y,Dem=0;
//Khoi tao
void Init(){
   cout<<"Nhap n = ";
   cin>>n;
   cout<<"Nhap x = ";
   cin>>x;
   cout<<"Nhap y = ";
   cin>>y;
   for(int i = 0; i<n; i++)
   for(int j = 0; j<n; j++)
      A[i][j] = 0;   //Tat ca cac o chua duoc danh dau
   B[x][y] = 1;      //Duong di dau tien
   A[x][y] = 1;      //Danh dau o duoc chon
}
//Xuat ket qua ra man hinh
void Out(){
   Dem++;
   for(int i = 0; i<n; i++) {
      for(int j = 0; j<n; j++) {
         printf("%3d",B[i][j]);
      }
      cout<<endl;
   }
   cout<<endl;
}
//Tim duong di
void Try(int i) {
   if(i > n*n)
      Out();
   else {
      for(int j = 0; j<8; j++) {
         int x1 = x + X[j];
         int y1 = y + Y[j];
         if(x1>=0 && x1<n && y1>=0 && y1<n && A[x1][y1]==0){
            A[x1][y1] = 1;   //danh dau o (i,j)
            B[x1][y1] = i;   //luu lai duong di
            x = x1;         //lay toa do x moi
            y = y1;         //lay toa do y moi
            Try(i+1);      //tim duong di tiep theo
            A[x1][y1] = 0;   //phuc hoi o (i,j)
            B[x1][y1] = 0;   //xem nhu o chua di qua
            x = x1 - X[j];   //phuc hoi dinh x
            y = y1 - Y[j];   //phuc hoi dinh y
         }
      }
   }
}
//chuong trinh chinh
void main() {
   clrscr();
   Init();
   Try(2);
   if (Dem==0)
      cout<<"Khong co duong di";
   else
      cout<<"So phuong an tim duoc"<<Dem;
   getch();
}
privacy_tip Permissions in this forum:
Bạn không có quyền trả lời bài viết
power_settings_newLogin to reply