Pascal: BÀI TẬP 4

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Bài tập 4.1:

Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng số nguyên dương n ( Với n được nhập). Yêu cầu nhập lại nếu n <=0

Hướng dẫn:

- Sử dụng kiến thức số lẻ đầu tiên bằng 1. Số lẻ sau bằng số trước cộng với 2.

-  Cho biến i có giá trị ban đầu bằng 1.

-  Dùng vòng lặp while do với điều kiện i < n và công việc bên trong là in i và tăng i lên 2.

Repeat

  write('Nhap so n: ');readln(n);

until n>0;

Dùng để kiểm tra, khống chế điều kiện của dữ liệu vào.

- Trong vòng lặp while nhất thiết phải có một câu lệnh làm thay đổi điều kiện lặp. Ở đây là i:=i+2. Nếu không có sẽ dẫn đến trường hợp lặp vô hạn. Chương trình chạy mãi mà không có lối ra (Không thoát ra khỏi vòng lặp được).

Bài tập 4.2:

Viết chương trình tính n! với n! được định nghĩa như sau:

- n! = 1 với n = 0

- n! = 1.2.3...n (Tích của n số từ 1 đến n).

Yêu cầu: Sử dụng vòng lặp với số lần chưa biết trước:

Hướng dẫn:

- Có thể viết lại: n! = n.(n-1)... 3.2.1.

- Lặp gt = gt*n; n = n-1 với điều kiện n>0.

Bài tập 4.3:

Viết chương trình tính n!! (giai thừa kép) với n!! được định nghĩa như sau:

- n!! = 1 với n = 0

- n!! = 1.3.5..n với n lẻ.

- n!! = 2.4.6..n với n chẵn.

Yêu cầu: Sử dụng vòng lặp với số lần chưa biết trước:

Hướng dẫn:

- Hai số chẵn liên tiếp hơn kém nhau 2. Hai số lẻ liên tiếp cũng vậy.

- Thực hiện tính như giai thừa đơn nhưng với bước nhảy là 2.

Bài tập 4.4:

Viết chương trình cho phép tính tổng của nhiều số (Chưa biết bao nhiêu số). Nhập số 0 để kết thúc quá trình nhập.

Bài tập 4.5:

Viết chương trình tìm ước chung lớn nhất (UCLN) của hai số với yêu cầu sử dụng thuật toán Euclid.

Thuật toán Euclid:

- Nếu a chia hết cho b (a chia b dư 0) thì UCLN(a,b) bằng b

- Nếu a chia b dư r thì UCLN(a,b) = UCLN(b,r)

Hướng dẫn:

- Nhập a, b và gán r = a mod b.

- Lặp với điều kiện r <> 0: b = r, a = b, r = a mod b.

Bài tập 4.6:

Dãy Fibonacy có hai phần tử đầu là 1, 1. Các phần tử sau bằng tổng hai phần tử đứng ngay trước nó: 1, 1, 2, 3, 5, 8, 13, 21, ...

Viết chương trình in ra dãy Fibonacy có phần tử lớn nhất nhỏ hơn n?

Hướng dẫn:

- Cần hai biến F_1 và F có giá trị đầu là 1, 1.

- Thực hiện lặp cho đến khi F >= n.

- Do yêu cầu chỉ in các số bé hơn n nên khi in cần thêm một lệnh kiểm tra.

» Tiếp: SOLUTIONS BÀI TẬP 4
« Trước: Vòng lặp REPEAT và WHILE
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!