Bài thực hành về kiểu dữ liệu mảng
B1: Giả sử mảng A đã được sắp xếp theo thứ tự tăng dần. Viết hàm để kiểm tra xem phần tử X có trong mảng A hay không? Hướng dẫn: So sánh x với phần tử ở giữa mảng A[giua]. Nếu x=A[giua] thì dừng (vị trí cần tìm là chỉ số của phần tử ...
B1:Giả sử mảng A đã được sắp xếp theo thứ tự tăng dần. Viết hàm để kiểm tra xem
phần tử X có trong mảng A hay không?
Hướng dẫn: So sánh x với phần tử ở giữa mảng A[giua]. Nếu x=A[giua] thì dừng (vị trí cần tìm
là chỉ số của phần tử giữa của mảng). Ngược lại, nếu x>A[giua] thì tìm ở đoạn sau của
mảng [giua+1,cuoi], ngược lại thì tìm ở đoạn đầu của mảng [dau,giua-1].
B2: Viết chương trình tìm ma trận chuyển vị của ma trận A.
Hướng dẫn: Dùng mảng 2 chiều để lưu trữ ma trận. Gọi B là ma trận chuyển vị của ma trận A, ta có: Bij = Aji.
B3:Giải phương trình bằng phương pháp chia nhị phân.
Hướng dẫn: Giả sử cần tìm nghiệm của phương trình f(x)=0 trên đoạn [a,b] với y=f(x) đồng biến và đơn trị trên đoạn [a,b]. Ta giải như sau:
Gọi m là trung điểm của đoạn [a,b]. Nếu f(m)*f(a)<0 thì giới hạn đoạn tìm nghiệm
thành [a,m]. Tương tự đối với đoạn [m,b]. Quá trình này lặp lại cho đến khi f(m)<ε,
lức này ta có 1 nghiệm gần đúng là m.
Giả sử f(x) là một đa thức: f(x) = a0 + a1x + a2x2 + ... + anxn
Lúc này, ta có thể dùng mảng một chiều để lưu trữ các hệ số ai của đa thức.
B4 :Viết chương trình nhập vào số tự nhiên N (N lẻ), sau đó điền các số từ 1 đến n2
vào trong một bảng vuông sao cho tổng các hàng ngang, hàng dọc và 2 đường chéo
đều bằng nhau (bảng này được gọi là Ma phương).
Ví dụ: Với N=3 và N=5 ta có
Hướng dẫn:Xuất phát từ ô bên phải của ô nằm giữa. Đi theo hướng đông bắc để điền các số 1, 2, ...
Khi điền số, cần chú ý một số nguyên tắc sau:
- Nếu vượt ra phía ngoài bên phải của bảng thì quay trở lại cột đầu tiên.
- Nếu vượt ra phía ngoài bên trên của bảng thì quay trở lại dòng cuối cùng.
- Nếu số đã điền k chia hết cho N thì số tiếp theo sẽ được viết trên cùng một hàng
với k nhưng cách 1 ô về phía bên phải.
B5 :Viết chương trình nhập vào 2 mảng số nguyên A, B đại diện cho 2 tập hợp
(không thể có 2 phần tử trùng nhau trong một tập hợp). Trong quá trình nhập, phải
kiểm tra: nếu phần tử vừa nhập vào đã có trong mảng thì không bổ sung vào mảng. In
ra màn hình các phần tử là giao của 2 tập hợp A, B.
Hướng dẫn: Duyệt qua tất cả các phần tử
. Nếu
thì viết ai ra màn hình.