• Khung trình chiếu

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

Các tài liệu liên quan đến công tác bồi dưỡng học sinh
Gửi hồi đáp
Ảnh đại diện người dùng
huynhbuutam
Nhà sáng lập
Nhà sáng lập
Các bài viết: 112
Đã gia nhập lúc: T3 31 Th8, 2021 22:04
Địa điểm: Trường THCS Châu Lăng
Tên thật: Huỳnh Bửu Tâm

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

Bài viết 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
Gửi hồi đáp
  • Similar Topics
    Các hồi đáp
    Lượt xem
    Bài viết cuối