Pascal: BÀI TẬP 5
Giải phóng thời gian, khai phóng năng lực
Bài tập 5.1:
Viết chương trình cho phép nhập n số và in ra theo thứ tự ngược lại. Ví dụ nhập 3, 5, 7 thì in ra 7, 5, 3.
Hướng dẫn:
- Dùng biến n để lưu lượng số cần nhập.
- Dùng mảng để lưu các số vừa nhập.
- Cho i chạy từ n về 1 để in các số vừa nhập.
Bài tập 5.2:
Viết chương trình nhập dãy n số và in ra tổng các số lẻ trong dãy số vừa nhập.
Hướng dẫn:
Thực hiện cộng dồn các số lẻ bằng lệnh:
if M[i] mod 2=1 then tong:=tong+M[i]
Bài tập 5.3:
Viết chương trình nhập n số, xoá số thứ k trong n số vừa nhập.In ra n-1 số còn lại.
n = 10 (Nhập 10 phần tử)
Ví dụ: Nhập 2, 3, 4, 5, 6, 8, 7, 6, 5, 4.
k = 8 (Xoá phần tử thứ 8).
In ra: 2, 3, 4, 5, 6, 8, 7, 5, 4.
Hướng dẫn:
Xoá phần tử k bằng cách ghi đè phần tử thứ k+1 lên nó.
Bài tập 5.4:
Viết chương trình cho phép nhập một dãy gồm n số nguyên. Nhập thêm một số và chèn thêm vào dãy sau phần tử k.
Hướng dẫn:
- Dời các phần tử từ vị trí k về sau một bước.
- Nhập giá trị cần chèn vào vị trí k.
Bài tập 5.5:
Viết chương trình cho phép nhập n số và cho biết số nhỏ nhất trong các số vừa nhập là số thứ mấy.
Hướng dẫn:
- Dùng biến n để lưu lượng số cần nhập.
- Dùng mảng để lưu các số vừa nhập.
- Cho Min = M[1], j = 1 (Xem phần tử đầu tiên là bé nhất)
- So sánh Min với n-1 số còn lại. Trong quá trình so sánh nếu Min > M[i] thì gán Min = M[i], j=i và tiếp tục so sánh .
Bài tập 5.6:
Viết chương trình cho phép nhập n số sắp xếp và in ra các số đã nhập theo thứ tự tăng dần.
Bài tập 5.7:
Viết chương trình in dãy n số fibonacy.
Hướng dẫn:
- Sử dụng mảng M để chứa dãy n số fibonacy. Tạo lập hai phần tử đầu tiên là 1, 1.
- Cho i chạy từ 3 đến n. M [i] = M[i-1]+M[i-2].
- In n phần tử đầu tiên của mảng.
Bài tập 5.8:
Viết chương trình in ra màn hình tam giác Pascal. Ví dụ, với n=4 sẽ in ra hình sau:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
... Hàng thứ n được xác định từ hàng n-1:
- Phần tử đầu tiên và phần tử cuối cùng đều bằng 1.
- Phần tử thứ 2 là tổng của phần tử thứ nhất và thứ 2 của hàng n-1
- Phần tử thứ k của hàng thứ n là tổng của phần tử thứ k-1 và k của hàng thứ n-1.
Thuật toán:
Bước 1: Khởi tạo một mảng một chiều n phần tử có giá trị 0.
Bước 2: Khởi tạo giá trị cho hàng thứ nhất M[1,1] = 1.
Bước 3: - Đối với hàng thứ i tính giá trị phần tử từ phần tử thứ i + 1 xuống phần tử thứ 2: M[j]:=M[j] + M[j-1]
- In ra hàng thứ i.
Giải phóng thời gian, khai phóng năng lực