Nội dung của Bài 7: Câu lệnh lặp dưới đây sẽ giúp các em biết được nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình, hiểu hoạt động của câu lệnh lặp với số lần biết trước for...do trong Pascal, viết đúng lệnh for...do trong một số tình huống đơn giản, hiểu lệnh ghép trong Pascal,... Mời các em cùng theo dõi bài học để tìm hiểu chi tiết.
Tóm tắt lý thuyết
1.1. Các công việc phải thực hiện
Trong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi lặp lại nhiều lần.
Ví dụ:
- Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà
- Các em học bài thì phải đọc đi đọc lại nhiều lần cho đến khi thuộc bài
Ví dụ số lần lặp biết trước: Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà.
Ví dụ số lần lặp không biết trước: Trong một trận cầu lông các em lặp đi lặp lại công việc đánh cầu cho đến khi kết thúc trận cầu.
Tóm lại: Khi viết chương trình máy tính, trong nhiều trường hợp ta cũng phải viết lặp lại nhiều câu lệnh chỉ để thực hiện 1 phép tính nhất định.
1.2. Câu lệnh lặp - một lệnh thay cho nhiều lệnh
Ví dụ 1: Giả sử cần vẽ 3 hình vuông có cạnh 1 đơn vị. Mỗi hình vuông là ảnh dịch chuyển của hình bên trái nó một khoảng cách 2 đơn vị.
Hình 1. Ba hình vuông
Thuật toán:
- Bước 1. Vẽ hình vuông (vẽ liên tiếp bốn cạnh và trở về đỉnh ban đầu)
- Bước 2. Nếu số hình vuông đã vẽ được ít hơn 3, di chuyển bút vẽ về bên phải 2 đơn vị và trở lại bước 1, ngược lại kết thúc thuật toán
Bài toán vẽ một hình vuông:
Hình 2. Các bước vẽ hình vuông
Thuật toán mô tả các bước để vẽ hình vuông:
- Bước 1. k \(\leftarrow\) 0 (k là số đoạn thẳng đã vẽ được)
- Bước 2. k \(\leftarrow\) k+1. Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 900 sang phải
- Bước 3. Nếu k < 4 thì trở lại Bước 2; Ngược lại, kết thúc thuật toán
Trong đó, biến k được sử dụng như là biến đếm để ghi lại số cạnh đã vẽ được.
Ví dụ 2: Tính tổng 100 số tự nhiên đầu tiên S=1+2+…+100
Thuật toán:
- Bước 1. Sum \(\leftarrow\) 0; i \(\leftarrow\) 0
- Bước 2. i \(\leftarrow\) i + 1
- Bước 3. Nếu i \(\leq\) 100, thì Sum \(\leq\) Sum + i và quay lại Bước 2
- Bước 4. Thông báo kết quả và kết thúc thuật toán
KẾT LUẬN:
- Cách mô tả các hoạt động lặp trong thuật toán như ví dụ trên được gọi là cấu trúc lặp
- Để chỉ thị cho máy tính thực hiện cấu trúc lặp với một câu lệnh gọi là câu lệnh lặp
1.3. Ví dụ về câu lệnh lặp
Cú pháp:
For < Biến đếm > := < Giá trị đầu > to < Giá trị cuối > do < Câu lệnh >;
Trong đó:
- For, to, do là các từ khóa
- Biến đếm là biến kiểu nguyên
- Giá trị đầu, giá trị cuối là các giá trị nguyên
Lưu ý:
- Giá trị đầu phải nhỏ hơn giá trị cuối
- Câu lệnh không làm thay đổi giá trị của biến đếm
- Nếu câu lệnh nhiều hơn một lệnh thì phải đặt trong cặp Begin … end
Hoạt động của vòng lặp:
- Bước 1: Biến đếm nhận giá trị đầu
- Bước 2: Chương trình kiểm tra biểu thức điều kiện, nếu biểu thức điều kiện đúng thì thực hiện câu lệnh
- Bước 3: Biến đếm tự động tăng lên 1 đơn vị và quay lại Bước 2
- Bước 4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát ra khỏi vòng lặp
Ví dụ 3: Chương trình sau sẽ in ra màn hình thứ tự lần lặp.
Chương trình mẫu:
Program ViDu3;
Var i: Integer;
Begin
For i:=1 to 10 do
Writeln ('Day la lan lap thu ',i);
Readln;
End.
Ví dụ 4: In một chữ "O" trên màn hình.
Chương trình mẫu:
Program ViDu4;
Uses crt;
Var i:Integer;
Begin
Clrscr;
For i:=1 to 20 do
Begin
Writeln('O'); Delay(100);
End;
Readln;
End.
Hình 3. Câu lệnh đơn và câu lệnh ghép
Câu lệnh đơn giản writeln('O') và delay(100) được đặt trong hai từ khóa begin và end để tạo thành một câu lệnh ghép trong Pascal.
1.4. Tính tổng và tích bằng câu lệnh lặp
Ví dụ 5: Chương trình sau đây sẽ tính tổng N số tự nhiên đầu tiên với N nhập từ bàn phím.
Chương trình mẫu:
Program tinh_tong;
Var N,i: Integer;
S: longint;
Begin
Clrscr;
Writeln(‘Nhap N =’);
Readln(N);
S:=0;
For i:=1 to N do
S:=S+i;
Witeln(‘tong la:’,S);
Readln;
End.
Ví dụ 6: Ta kí hiệu N! là tích N số tự nhiên đầu tiên: N! = 1.2.3…N.
Chương trình mẫu:
Program tinh_giai_thua;
Var N,i: Integer;
P: Longint;
Begin
Clrscr;
Write(‘Nhap N =’);
readln(N);
P:=1;
For i:=1 to N do
P:=P*i;
Wirteln(N,’!=’,P);
Readln;
End.
2. Luyện tập Bài 7 Tin học 8
Sau khi học xong Bài 7: Câu lệnh lặp, các em cần ghi nhớ:
- Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thỏa mãn
- Mọi ngôn ngữ lập trình đều có các câu lệnh lặp để thể hiện cấu trúc lặp
- Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần cho trước bằng câu lệnh For…do
2.1. Trắc nghiệm
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 8 Bài 7 cực hay có đáp án và lời giải chi tiết.
-
- A. for < biến đếm > : = < giá trị đầu > to < giá trị cuối > do < câu lệnh >;
- B. for < biến đếm > := < giá trị cuối > to < giá trị đầu > do < câu lệnh >;
- C. for < biến đếm > = < giá trị đầu > to < giá trị cuối >; do < câu lệnh >;
- D. for < biến đếm > = < giá trị đầu > to < giá trị cuối > do < câu lệnh >;
-
- A. Rửa rau tới khi sạch
- B. Học bài cho tới khi thuộc bài
- C. Gọi điện tới khi có người nghe máy
- D. Ngày tắm 2 lần
-
- A. Một lệnh thay cho nhiều lệnh
- B. Các câu lệnh được viết lặp đi lặp lại nhiều lần
- C. Vì câu lệnh có tên là lệnh lặp
- D. Cả (A), (B), (C) đều sai
Câu 4-Câu 10: Xem thêm phần trắc nghiệm để làm thử Online
2.2. Bài tập SGK
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 8 Bài 7 để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Bài tập 1 trang 60 SGK Tin học 8
Bài tập 2 trang 60 SGK Tin học 8
Bài tập 3 trang 60 SGK Tin học 8
Bài tập 4 trang 61 SGK Tin học 8
Bài tập 5 trang 61 SGK Tin học 8
Bài tập 6 trang 61 SGK Tin học 8
3. Hỏi đáp Bài 7 Tin học 8
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học Chúng tôi sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 8 Chúng tôi