ASM1 - PROG102 - Greenwich 2021, Exercises of Wireless Networking

Greenwich asm. Distinction , merit , pass, student ceremony

Typology: Exercises

2020/2021

Uploaded on 08/06/2021

minhnghia2907
minhnghia2907 🇺🇸

1 document

1 / 14

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
HCMUS Khoa Điện tử - Viễn thông
HUE UNIVERSITY
COLLEGE OF FOREIGN LANGUAGES
DEPARTMENT OF ENGLISH

REPORT ON THE PRACTICAL TRAINING COURSE AT HUE MONUMENTS
CONSERVATION CENTER
TOPIC: KHAI DINH TOMB
Supervisor: Trần Thành Trung
Trainee: Lê Thị Hạnh Nhân
Student’s code: 18F7511362
Class: ANHK15B
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Partial preview of the text

Download ASM1 - PROG102 - Greenwich 2021 and more Exercises Wireless Networking in PDF only on Docsity!

HUE UNIVERSITY

COLLEGE OF FOREIGN LANGUAGES

DEPARTMENT OF ENGLISH

REPORT ON THE PRACTICAL TRAINING COURSE AT HUE MONUMENTS

CONSERVATION CENTER

TOPIC: KHAI DINH TOMB

Supervisor: Trần Thành Trung Trainee: Lê Thị Hạnh Nhân Student’s code: 18F Class: ANHK15B

MỤC LỤC

  • LỜI MỞ ĐẦU
  • NHẬN XÉT CỦA GIẢNG VIÊN
  • MỤC LỤC
  • I. MÃ ĐI TUẦN
    • 1.Mô tả bài toán.....................................................................................................
    • 2.Thuật toán..........................................................................................................
    • 3.Lập trình b ài toán...............................................................................................
  • II. TÁM QUÂN HẬU
    • 1.Mô tả bài toán.....................................................................................................
    • 2.Thuật toán..........................................................................................................
    • 3.Lập trình b ài toán...............................................................................................
  • III. SUDOKU
    • 1.Mô tả bài toán.....................................................................................................
    • 2.Thuật toán..........................................................................................................
    • 3.Lập trình b ài toán...............................................................................................

I/ Bài toán mã đi tuần (~source code/ madituan.cpp )

1.Mô tả bài toán:

Đề bài: Mã đi tuần là bài toán về việc di chuyển một quân mã trên bàn cờ vua (8 x 8). Quân mã được đặt ở một ô bất kì trên một bàn cờ trống. Nó phải di chuyển theo quy tắc của cờ vua để đi qua mỗi ô trên bàn cờ đúng một lần. Input: Tọa độ ban đầu x, y của quân mã trên bàn cờ. Output: -Xuất ra tất cả cách di chuyển của quân mã (từ 1 đến 64) -Nếu không có lời giải, xuất “Khong co cach giai !”

2.Thuật toán:

Cách di chuyển quân mã : Nước đi của một quân mã giống hì nh chữ L và nó có thể di chuyển tất cả các hướng. Ở một vị trí thích hợp thì quân mã có thể di chuyển tối đa đến được 8 vị trí nằm trong bàn cờ. 2 mảng X[i], Y[i] chứa các cặp giá trị mà quân mã có thể di chuyển. Các bước đi đó là: ( -2, -1), ( -2, 1), ( -1, -2), ( -1, 2), ( 1, - 2), ( 1, 2), ( 2, -1), ( 2, 1) thỏa mãn |x| + |y| = 3 Kiểm tra tính hợp lệ của nước đi: Khởi tạo 1 ma trận A[8x8] = {0} lưu vị trí từng ô trên bàn cờ. Tất cả mảng đều khởi tạo giá trị là 0 (quân mã chưa đi qua). Sử dụng thuật toán đệ quy (quay lui) để t ìm đường đi cho quân mã: Gọi x,y là vị trí ban đầu của quân mã, th ì vị trí tiếp theo mà quân mã đi sẽ có dạng x+X[i], y+Y[i]. Một vị trí được gọi là hợp lệ thì sẽ thỏa mãn các tính chất sau:  0 < x+X[i]≤ n.

II/ Bài toán 8 quân hậu: (~source code/ 8hau.cpp )

1.Mô tả bài toán

Đề bài: Trên bàn cờ có kích thước 8x8 ô, đặt 8 quân hậu sao cho chúng không ăn lẫn nhau (theo luật cờ vua quốc tế). Có nghĩa l à không có cùng 2 quân h ậu trên cùng m ột hàng, cột hay đường chéo.

2. Thuật toán

a) Xác định bàn cờ Xây dựng bàn cờ 8x8 dựa trên ma trận 8x8, dùng bi ến x dể đánh dâu các hàng từ trên xuống( 1 đến 8), dùng bi ến y để đánh dấu các cột từ trái qua phải (1 đến 8). Hình 2.1 X ác định bàn cờ dựa trên ma trận 8x8. b) Xác định điều kiện tấn công của 2 quân hậu Quân hậu có khả năng đi 8 hướng xung quanh nó nên các trường hợp tấn công:  Chung cột  Chung hàng  Chung đường chéo VD: Cho 2 quân ở tọa độ(x,y) như sau: Quân hậu A ở vị trí (5,2), quân hậu B ở vị trí (2,5).

Hình 2.2 V í dụ 2 quân hậu ở vị trí (5,2) và (2,5) Xét đi ều kiện chung cột yA  yB (2  5) Xét đi ều kiện chung hàng xA  xB (5  2) Xét đi ều kiện chung đường chéo |xA – xB| = |yA –yB| (|5 – 2| = |2 –5|)  Quân hậu A và quân hậu B tấn công nhau c) Sử dụng thuật toán đệ quy để tìm v ị trí các quân hậu: Đầu tiên đặt quân hậu thứ nhất vào cát cột trên hàng 1 sau đó đặt quân hậu thứ hai vào các cột trên hàng thứ 2 xét đi ều kiện không chung cột, hàng, đường chèo v ới quân hậu thứ nhất để truy vết vị trí quân hậu không tấn công quân hậu thứ nhất, tiếp tục đặt quân hậu thứ 3 vào các cột hàng 3 xét đi ều kiện để không bị các quân hậu trước tấn công, tiếp tục cho đến khi xét quân h ậu thứ tám để in ra 1 kết quả.

3.Lập trình b ài toán...............................................................................................

Hàm kiểm tra 2 quân hậu có tấn công nhau không bool kiemtra(int x2, int y2) { for (int i = 1; i < x2; i++) if (a[i] == y2 || abs(i - x2) == abs(a[i] - y2)) return false; return true; }

VD: |1|5|8|6|3|7|2|4|

Hình 3.2 K ết quả sắp xếp lần đầu tiên Tương ứng với hình 3.3 trên b àn cờ 8x Hình 3.3 K ết quả sắp xếp lần đầu tiên trên bàn cờ 8x

III/ Trò chơi Soduku: (~source code/ sudoku.cpp )

1.Mô tả bài toán.....................................................................................................

Đề bài: Hì nh vuông chia thành 9x9 ô vuông nhỏ. Mỗi ô vuông con có giá trị khoảng từ 1 đến 9. Ban đầu hì nh vuông có một số ô vuông con cho trước (điền sẵn số) và còn lại là trống. Hãy điền các số từ 1-9 vào các ô con lại sao cho: hàng ngang-hàng dọc là các số khác nhau từ 1-9,mỗi khối 3x3 chính là các số khác nhau từ 1-9. Input : Mảng A có kích thước 9x9, mỗi ô theo đề bài sẽ có giá trị điền trước, ô điền có giá trị 0. Output : Nếu không tồn tại giải pháp thì in ra “No solution”. Ngược lại phải in 81 số đó, và phân cách giống như đầu vào.

2.Thuật toán..........................................................................................................

a) Xác định vị trí ô trống cần điền (có giá trị là 0) Nhận vào giá trị mảng ma trận kích thước 9x9, những ô trống cần điền có giá trị 0, ngược lại những ô còn lại cho trước có giá trị từ 1 – 9. b) Thử lần lượt các giá trị vào các ô trống Điền vào các ô trống lần lượt giá trị 1 – 9 và kiểm tra tính hợp lệ của nó. Tính hợp lệ của một số khi được điền vào là:  Số đó xuất hiện duy nhất trên hàng  Số đó xuất hiện duy nhất trên cột  Số đó xuất hiện duy nhất trong ô vuông 3x3 chứa số đó c) Sử dụng thuật toán đệ quy để điền vào các ô trống đó: X ét từng ô trống (có giá trị 0), kiểm tra lần lượt giá trị 1-9 theo điều kiện (theo hàng, theo cột, theo ô vuông 3x3), gán ô đó cho giá trị thoả mãn rồi tiếp tục x ét những ô tiếp theo, lặp lại cho đến khi dòng tiếp theo vượt quá số dòng của sudoku.

// Kiem tra gia tri neu khac 0 se tiep tuc truy xuat if (A[row][col] != 0) { next(row, col); solve(row, col); } else { // Dien thu gia tri 1-9, kiem tra dieu kien sudoku for (int i = 1; i < 10; i++) { if (isValid(row, col, i)) { int prevRow = row; int prevCol = col; A[row][col] = i; next(row, col); solve(row, col); if (ans) return; row = prevRow; col = prevCol; A[row][col] = 0; } } } }  Hàm đệ quy solve nhận giá trị dòng và cột: o Điểm dừng của hàm đệ quy solve là khi số dòng tăng lên là 9, lúc đó kết quả trả về true và thoát khỏi hàm đệ quy o Khi chưa dừng, hàm sẽ xé t nếu chỉ số đang xé t có giá trị khác 0, đệ quy ở chỉ số tiếp theo o Ngược lại, điền lần lượt giá trị 1-9 và kiểm tra sự tồn tại của giá trị đó với hàng, cột, ô vuông, nếu hợp lệ (khi giá trị đó chưa tồn tại) thì chỉ số đang xé t nhận giá trị đó và đi đến chỉ số kế tiếp, nếu không thì gán lại giá trị chỉ số đó là 0 và thử tiếp các giá trị khác.

Kết quả: Trường hợp đề bài cho, có cách giải Trường hợp thay đổi giá trị [0,0] = 5, không có cách giải