You are on page 1of 6

Bài tập viết mã giả

Ví dụ: Viết mã giả của chương trình kiểm tra số nguyên tố

Algorithm 1: Kiểm tra số nguyên tố


1. Input: integer N
2. Output: Boolean value
3. function isPrime(N)return Boolean
4.
if(N = 2), then
5.
6. return True
7. elseif(N < 2 or N%2 = 0)
8. return False
9. else
10.Z
for i = 3 to sqrt(N)
11. if(N%i = 0),then
12. return False
13. endif
14. i  i + 2
15.
16. endfor
17. endif
return True
endfunction

Sử dụng tài liệu Pseudocode – Guide để thực hiện các yêu cầu sau
Bài 1. Viết mã giả cho thuật toán duyệt đồ thị theo chiều sâu (DFS).
Algorithm 1: Depth-First Search (DFS)

1. Input: Đồ thị G = (V,E), với V = {v1, v2, …, vn}


2.

3.
L[v] là danh sách các đỉnh kế cận với v
4.
Output: Đồ thị đã được duyệt qua các đỉnh theo thứ tự chiều sâu
5.
function DepthFirstSearch(G)
6. for v = 1 to n
7. visited[v] = 0;
endfor
8.
for v = 1 to n
9.
if visited[v] = 0 then
10.
dfs(v);
11. endif
12. endfor
endfunction
13.
function dfs(v)
14.
visited[v] = 1;
15.
for w in L[v]
16. if visited[w] = 0 then
17. dfs(w)
endif
18.
endfor
19.
endfunction
20.

21.

22.
Bài 2. Viết mã giả cho thuật toán duyệt đồ thị theo chiều rộng (BFS).
Algorithm 2: Breadth-First Search (BFS)

1. Input:Đồ thị G = (V,E), với V = {v1, v2, …, vn}


L[v] là danh sách các đỉnh kế cận với v
2.
Đỉnh nguồn s
3.
Output: Đồ thị đã được duyệt qua các đỉnh có thể tới được từ đỉnh nguồn s
function BreadthFirstSearch(G, s){
4.
for v = 1 to n
visited[v] = 0;
5.
endfor

6.
visited[s] = 1;

7. Khởi tạo Q;
Q.enqueue(s);

8.
while !Q.empty() do
9. v = Q.dequeue();
for w in L[v]
10. if visited[w] = 0 then
visited[w] = 1;
11.
Q.enqueu(w);
endif
12.
endfor
13. endwhile
}
14.

15.

16.

17.

18.

19.

20.

21.
22.

23.
1. Q = {0}, visited = [1,0,0,0,0,0,0,0]
2. Q = {1}, visited = [1,1,0,0,0,0,0,0]
3. Q = {3}, visited = [1,1,0,1,0,0,0,0]
4. Q = {2,4}, visited = [1,1,1,1,1,0,0,0]
5. Q = {4}, visited = [1,1,1,1,1,0,0,0]
6. Q = {5}, visited = [1,1,1,1,1,1,0,0]
7. Q = {6}, visited = [1,1,1,1,1,1,1,0]
8. Q = {7}, visited = [1,1,1,1,1,1,1,1]
9. Q = {}, visited = [1,1,1,1,1,1,1,1]

Bài 3. Viết mã giả cho thuật toán xác định chu trình Euler (nếu có) của đồ thị?
Bài 4. Viết mã giả cho thuật toán xác định đường đi Euler (nếu có) của đồ thị?
Bài 5. Viết mã giả cho thuật toán xác định chu trình Hamilton (nếu có) của đồ thị?

Để biểu diễn một chương trình (input, algorithm, output):


1. Dùng ngôn ngữ tự nhiên (natural language)
2. Dùng mã giả (pseudocode)
3. Dùng sơ đồ khối (flow-chart)
4. Dùng ngôn ngữ lập trình (programming language)

Bước 1:
Bước 2:

You might also like