Giải Tin học 11: Bài 10. Cấu trúc lặp | Myphamthucuc.vn

Giải Tin học 11: Bài 10. Cấu trúc lặp

Bài 10. Cấu trúc lặp

1. Lặp

Với a là số nguyên và a > 2, xét các bài toán sau đây:

Nhận xét:

– Với cả hai bài toán, dễ thấy cách để tính tổng S có nhiều điểm tương tự:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 2)

– Việc cộng này được lặp lại một số lần.

+ Đối với bài toán 1, số lần lặp là 100 và việc cộng vào tổng S sẽ kết thúc khi đã thực hiện việc cộng 100 lần.

+ Đối với bài toán 2, số lần lặp chưa biết trước nhưng việc cộng vào tổng S sẽ kết thúc khi điều kiện:

 Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất

Tóm lại:

– Trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Một trong các đặc trưng của máy tính là có khả năng thực hiện hiệu quả các thao tác lặp.

– Cấu trúc lặp mô tả thao tác lặp và được phân biệt hai loại là lặp với số lần biết trước và lặp với số lần chưa biết trước.

– Các ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc điều khiển lặp.

Xem thêm:  [LỜI GIẢI CHUẨN] Nhờ tiếp giáp biển nên nước ta có

2. Lặp có số lần lặp biết trước và câu lệnh for-do

Có hai thuật toán Tong_1a và Tong_1b để giải bài toán 1 như sau:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 4)

Một số lưu ý:

– Số lần lặp của cả hai thuật toán trên là biết trước và như nhau (100 lần).

– Trong thuật toán Tong_1a, giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N > 100 (N = 101) thì kết thúc lặp (thực hiện đủ 100 lần) →Cách lặp trong thuật toán Tong_1a là dạng tiến.

– Trong thuật toán Tong_1b, giá trị N bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N < 1 (N = 0) thì kết thúc lặp (thực hiện đủ 100 lần) → Cách lặp trong thuật toán Tong_1b là dạng lùi.

a. Cấu trúc lặp với số lần biết trước

Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh for-do với hai dạng tiến và lùi như sau:

– Dạng lặp tiến:

for < biến đếm > := < giá trị đầu > to < giá trị cuối > do < câu lệnh >; ​

– Dạng lặp lùi:

for < biến đếm > := < giá trị cuối > downto < giá trị đầu > do < câu lệnh >; ​

Trong đó:

– Biến đếm là biến đơn, thường có kiểu nguyên.

– Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối. Nếu giá trị đầu lớn hơn giá trị cuối thì vòng lặp không được thực hiện.

Xem thêm:  Viết một đoạn văn ngắn về Vũng Tàu bằng Tiếng Anh lớp 9 | Myphamthucuc.vn

– Hoạt động của lệnh for-do:

+ Ở dạng lặp tiến, câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối.

+ Ở dạng lặp lùi, câu lệnh viết sau từ khóa do được thực hiện tuần tự, với giá trị của biến đếm từ giá trị cuối đến giá trị đầu.

Chú ý 1: Giá trị của biến đếm được điều chỉnh tự động, vì vậy câu lệnh viết sau do không được thay đổi giá trị biến đếm.

b. Một số ví dụ minh họa

Ví dụ 1. Sau đây là hai chương trình cài đặt các thuật toán Tong_1a và Tong_1b.

Chương trình cài đặt thuật toán Tong_1a:

PHP:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 6)

Ví dụ 2. Chương trình sau thực hiện việc nhập từ bàn phím hai số nguyên dương M và N ( M < N ), tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N.

Chương trình cài đặt:

PHP:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 7)

3. Lặp với số lần chưa biết trước và câu lệnh while-do

Thuật toán Tong_2:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 8)

Như vậy, việc lặp với số lần chưa biết trước sẽ chỉ kết thúc khi một điều kiện cho trước được thoả mãn.

a. Cấu trúc lặp với số lần chưa biết trước

Để mô tả cấu trúc lặp như vậy, Pascal dùng câu lệnh while-do có dạng:

while < điều kiện > do < câu lệnh >;

Trong đó:

– Điều kiện là biểu thức quan hệ hoặc lôgic;

Xem thêm:  Dàn ý cảm nghĩ về tình cảm bà cháu trong bài Tiếng gà trưa (ngắn gọn, hay nhất) | Myphamthucuc.vn

– Câu lệnh là một câu lệnh của Pascal.

Việc thực hiện lệnh while-do được thể hiện trên sơ đồ ở hình 1 dưới đây:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 9)

Hình 1. Sơ đồ lặp với số lần lặp chưa biết trước

b. Một số ví dụ minh họa

Ví dụ 3. Sau đây là chương trình cài đặt thuật toán Tong_2.

 Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 10)

Hình 2. Sơ đồ khối của thuật toán Tong_2

PHP:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 11)

Ví dụ 4. Tìm ước chung lớn nhất (UCLN) của hai số nguyên dương M và N.

Thuật toán tìm ước chung lớn nhất:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 12)
Hình 3. Sơ đồ khối của thuật toán tìm ước chung lớn nhất

Chương trình sau thể hiện thuật toán tìm ước chung lớn nhất:

PHP:

Giải Tin học 11: Bài 10. Cấu trúc lặp - Chi tiết, hay nhất (ảnh 13)

Chú ý 2: Các câu lệnh trong vòng lặp thường được lặp lại nhiều lần, vì vậy để tăng hiệu quả của chương trình thì những thao tác không cần lặp lại nên đưa ra ngoài vòng lặp.

Xem thêm bài viết thuộc chuyên mục: Học tập