Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

BÀI TẬP TỔNG HỢP

HỌC PHẦN KỸ THUẬT LẬP TRÌNH


NĂM 2022
Phần A. Lý thuyết
Câu 01. Tìm kiếm tuyến tính (linear search)
a. Trình bày ý tưởng và cho biết độ phức tạp của giải thuật.
b. Minh hoạ thuật toán (từng bước chạy) theo thuật toán tìm kiếm tuyến tính với dãy:
9 2 10 8 3 7
Với giá trị tìm kiếm lần lượt là: x = 8, x = 5.
Câu 02. Tìm kiếm nhị phân (binary search)
a. Trình bày ý tưởng và cho biết độ phức tạp của giải thuật.
b. Minh hoạ thuật toán (từng bước chạy) theo thuật toán tìm kiếm nhị phân với dãy:
0 4 5 8 11 15 28
với các giá trị tìm kiếm lần lượt là x = 5, x = 14.
d. Minh hoạ thuật toán (từng bước chạy) theo thuật toán tìm kiếm nhị phân với dãy:
A C D E F G M
Với các giá trị x = C, x = M và x = K.
c. Minh hoạ thuật toán (từng bước chạy) theo thuật toán tìm kiếm nhị phân với dãy:
31 28 15 11 8 5 4
Với các giá trị x = 5, x = 14 và x = 32.
Câu 03. Minh hoạ quá trình sắp xếp theo từng bước hoán vị.
Cho dãy ký tự: S A M P L E
a. Sắp xếp dãy tăng dần (interchange sort, selection sort, quicksort).
b. Sắp xếp dãy giảm dần (interchange sort, selection sort, quicksort).
Phần B. Bài tập viết code
Câu 4. Cho mảng số nguyên a với n là số lượng phần tử.
a. Viết hàm sinh mảng a với các giá trị ngẫu nhiên trong đoạn [a, b].
b. Viết hàm tìm vị trí của phần tử có giá trị âm lớn nhất trong dãy.
c. Viết hàm tìm phần tử có giá trị gần x nhất.
d. Viết hàm kiểm tra mảng có đối xứng hay không?
e. Viết hàm đảo ngược vị trí các phần tử trong mảng.
Câu 05. Cho danh sách nhân viên (được lưu trữ bằng cấu trúc mảng)
Biết thông tin của nhân viên bao gồm: mã số nhân viên (11 ký tự), họ lót (25 ký tự), tên (15 ký
tự), năm sinh (số nguyên), lương (số thực), giới tính (true: nam /false: nữ).
a. Khai báo cấu trúc dữ liệu của một nhân viên.
b.Viết hàm nhập danh sách các nhân viên
c.Viết hàm xuất danh sách các nhân viên
d.Viết hàm tìm nhân viên theo mã số nhân viên.
e.Viết hàm sắp xếp nhân viên theo tên
f.Viết hàm sắp xếp nhân viên theo năm sinh giảm dần, nếu năm sinh bằng nhau thì sắp
theo mã số nhân viên.
g. Viết hàm xuất nhân viên có lương cao nhất
h. Viết hàm xuất nhân viên nữ có lương cao nhất.
i. Xóa một nhân viên theo mã số.
Câu 06. Cho mảng 2 chiều a, kích thước n x n
a. Viết hàm xuất các phần tử tại các vị trí như hình
X X
x X
X
x X
X X
b. Viết hàm xuất các phần tử tại các vị trí như hình
X x X
X X X
X X X X
x X X
x x X

c. Viết hàm tìm phần tử dương nhỏ nhất trên a.


d. Viết hàm tính tổng các giá trị lớn nhất trên dòng.
e. Viết hàm tìm dòng có tổng các giá trị lớn nhất.
f. Viết hàm sắp xếp a với thứ tự các giá trị của hàng tăng dần.
g. Viết hàm sắp xếp a với thứ tự tăng dần từ trái qua phải và từ trên xuống dưới như hình
1 2 3
4 5 6
7 8 9
h. Viết hàm sắp xếp a với thứ tự tăng dần từ trên xuống dưới và từ trái qua phải như hình
1 4 7
2 5 8
3 6 9
i. Viết hàm sắp xếp a với thứ tự tăng dần như hình
1 2 3
6 5 4
7 8 9
j. Viết hàm sắp xếp a với thứ tự tăng dần như hình
1 6 7
2 5 8
3 4 9
k. Dịch chuyển ma trận 1 dòng từ trên xuống

1 2 3 => 7 8 9
5 6 1 2 3
4 4 5 6
7 8 9
l. Dịch chuyển ma trận 1 cột trái sang phải
1 2 3 3 1 2
4 5 6 => 6 4 5
7 8 9 9 7 8

Câu 07. Viết các hàm sau dưới dạng đệ quy


a. Đổi số n (hệ thập phân) sang hệ cơ số b.
b. Tính tổng các chữ số của số nguyên n.
c. Viết hàm đệ quy tìm ước chung lớn nhất của hai số nguyên dương a, b.
d. Viết hàm đệ quy tính C(n, k) biết:
C(n, k) = 1 nếu k = 0 hoặc k = n
C(n, k) = 0 nếu k > n
C(n ,k) = C(n-1, k) + C(n-1, k-1) nếu 0<k<n
Câu 08. Cho f(n) biết f(0)=1, f(1)=2, f(n)=2*f(n-1) + 4*f(n-2)
a. Tính f(5) và vẽ cây phân tích đệ quy f(5).
b. Viết hàm tính f(n) đệ quy và khử đệ quy (dùng vòng lặp).
Câu 09. Cho dãy số X(n) được định nghĩa như sau:
X0 = 1, X1 = 2, Xn = n2.X0 + (n-1)2X1 + …+ Xn-1
a. Tính X(5).
b. Viết hàm đệ quy tính xn với n ≥ 0.
Câu 10. Cho mảng a nguyên với n phần tử.
Viết các hàm sau dưới dạng đệ qui và khử đệ qui :
a. Xuất các số nguyên tố trong a.
b. Tìm vị trí phần tử x trong a (tìm kiếm tuyến tính).
c. Tổng giá trị các số nguyên tố trong a.
d. Đếm các số hoàn hảo trong a.
e. Kiểm tra mảng a có phải là mảng tăng dần.
f. Kiểm tra a có tồn tại số hoàn hảo (số hoàn thiện).
g. Kiểm tra a có toàn dương.
h. Sắp xếp a tăng dần theo interchange sort, selection sort, quicksort.
i. Sắp xếp a giảm dần theo interchange sort, selection sort, quicksort.

You might also like