Trang 1 trong tổng số 1

Một số dạng bài tập lí thuyết về câu lệnh While trong Pascal

Đã gửi: CN 24 Th4, 2022 21:57
bởi huynhbuutam
CÁC DẠNG BÀI TẬP VỀ CÂU LỆNH WHILE

Cú pháp:
While <Điều kiện> Do <Câu lệnh>;
Lưu ý:
- Nếu có nhiều <Câu lệnh> lặp lại, thì các câu lệnh đó được đặt trong cặp từ khóa Begin và End
- Khi gặp câu lệnh Break, câu lệnh lặp sẽ lặp tức kết thúc.

DẠNG BÀI TẬP 1: Xác định số lần lặp

1. Câu lệnh sau thực hiện bao nhiêu lần lặp?
A := 6;
While A > 3 Do Begin A := A - 2; End; A := A * 2;
=== Giải ===
A = 6;
Thử lần 1: 6 > 3 => Đúng => A = 6 - 2 = 4
Thử lần 2: 4 > 3 => Đúng => A = 4 - 2 = 2
Thử lần 3: 2 > 3 => Sai
A = 2 * 2 = 4
Đáp án: 2 lần lặp

DẠNG BÀI TẬP 2: Xác định giá trị của biến

1. Sau khi thực hiện đoạn chương trình, thì giá trị cuối cùng của biến TB, N, X là bao nhiêu? Số lần lặp bao nhiêu?
TB := -3;
N := 1;
X := TB * N;
While TB < N Do Begin TB := TB + X; X := X + 7; End; N := TB + X; TB := N * 2;
=== Giải ===
TB = -3
N = 1
X = (-3) * 1 = -3
Thử lần 1: (-3) < 1 => Đúng => TB = (-3) + (-3) = -6, X = (-3) + 7 = 4
Thử lần 2: (-6) < 1 => Đúng => TB = (-6) + 4 = -2, X = 4 + 7 = 11
Thử lần 3: (-2) < 1 => Đúng => TB = (-2) + 11 = 9, X = 11 + 7 = 18
Thử lần 4: 9 < 1 => Sai
N = 9 + 18 = 27
TB = 27 * 2 = 54
Đáp án: TB = 54, N = 27, X = 18. Số lần lặp = 3
2. Sau khi thực hiện đoạn chương trình, thì giá trị cuối cùng của biến DTB, N là bao nhiêu? Số lần lặp bao nhiêu?
DTB := 3;
N := -6;
While DTB < 0 Do DTB := DTB + N; N := N * 2;
=== Giải ===
DTB = 3
N = -6
Thử lần 1: 3 < 0 => Sai
N = (-6) * 2 = -12
Đáp án: DTB = 3, N = -6. Số lần lặp = 0
3. Sau khi thực hiện đoạn chương trình, thì giá trị cuối cùng của biến DTB, N là bao nhiêu? Số lần lặp bao nhiêu?
DTB := 3;
N := -6;
While DTB + N < 0 Do Begin DTB := DTB + N; N := N * 2; End;
=== Giải ===
DTB = 3
N = -6
Thử lần 1: 3 + (-6) < 0 => Đúng => DTB = 3 + (-6) = -3, N = (-6) * 2 = -12
Thử lần 2: (-3) + (-12) < 0 => Đúng => DTB = (-3) + (-12) = -15, N = (-12) * 2 = -24
Thử lần 3: (-15) + (-24) < 0 => Đúng => DTB = (-15) + (-24) = -39, N = (-24) * 2 = -48
Đáp án: DTB = Không xác định, N = Không xác định, Số lần lặp = Vô hạn (Vì biến DTB và biến N đều nhỏ hơn 0 và luôn luôn giảm sau mỗi lần lặp, nên DTB + N không bao giờ lớn hơn 0)
4. Sau khi thực hiện đoạn chương trình, thì giá trị cuối cùng của biến DTB, N là bao nhiêu? Số lần lặp bao nhiêu?
DTB := 2;
N := -4;
While DTB + N < 0 Do Begin DTB := DTB + N; If N < -4 Then Break; N := N * 2; End;
=== Giải ===
DTB = 2
N = -4
Thử lần 1: 2 + (-4) < 0 => Đúng => DTB = 2 + (-4) = -2, N = (-4) * 2 = -8
Thử lần 2: (-2) + (-8) < 0 => Đúng => DTB = (-2) + (-8) = -10, Thoát khỏi vòng lặp
Đáp án: DTB = -10, N = -8, Số lần lặp = 2

DẠNG BÀI TẬP 3: Xác định lỗi trong câu lệnh WHILE

Lỗi 1
X := 3;
While X = 3 Do X = X + 1;
=> Phần <Câu lệnh> là một phép so sánh

TB := 7;
While TB := TB + 2 Do TB := 7;
=> Phần <Điều kiện> là một câu lệnh, không trả về giá trị đúng hoặc sai

Lỗi 2
A := 5;
While A < 0 Do ; A := 7;
=> Không có hoạt động lặp (Phần <Câu lệnh>)

Lỗi 3
While 1 = 1 Do WriteLn('Hello');
=> <Điều kiện> luôn cho kết quả là đúng => Lặp vô hạn lần

► Tài liệu Google Drive: Nhấn để xem nội dung