Tin học 8 Bài 7: Câu lệnh lặp
Lý thuyết tổng hợp Tin học lớp 8 Bài 7: Câu lệnh lặp chọn lọc năm 2021 – 2022 mới nhất gồm tóm tắt lý thuyết và hơn 500 bài tập ôn luyện Tin 8. Hy vọng bộ tổng hợp lý thuyết Tin học lớp 8 sẽ giúp học sinh củng cố kiến thức, ôn tập và đạt điểm cao trong các bài thi trắc nghiệm môn Tin học 8.
Bài 7: Câu lệnh lặp
A. Lý thuyết
• Nội dung chính
- Cấu trúc lặp
- Câu lệnh for…do thể hiện cấu trúc lặp với số lần lặp cho trước
1. Câu lệnh lặp – một lệnh hay nhiều lệnh
- Xét ví dụ: tính tổng 100 số tự nhiên đầu tiên, tức là tính:
S = 1 + 2 + 3 + … + 100
Hoạt động chính khi giải bài toán này là thực hiện phép cộng.
INPUT: Dãy 100 số tự nhiên đầu tiên: 1, 2, …, 100.
OUTPUT: Giá trị tổng 1 + 2 + … + 100.
Thuật toán:
- B1: SUM ← 0; I ← 0.
- B2: SUM ←SUM + I; I← I + 1.
- B3: nếu I ≤ 100, thì quay lại bước 2. Ngược lại, thông báo giá trị SUM và kết thúc thuật toán.
Kết luận:
- Cách mô tả hoạt động lặp trong thuật toán như ví dụ trên 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 1 câu lệnh, gọi là câu lệnh lặp.
2. Câu lệnh lặp for…do
- Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần, mỗi lần là 1 vòng lặp. số vòng lặp là biết trước và bằng giá trị cuối – giá trị đầu + 1
- Cú pháp:
For<biến đếm > := <giá trị đầu> to <giá trị cuối> do <câu lệnh>
- Biến đếm phải là kiểu nguyên. Ban đầu sẽ có giá trị đầu, sau mỗi vòng lặp biến đếm tự động tăng cho đến khi băng giá trị cuối.
Ví dụ 1: chương trình in ra thứ tự lần lặp
Ví dụ 2: để in 1 chữ ″O″ trên màn hình, nếu in chữ ″O″ nhiều lần ta sẽ thu được hình ảnh quả trứng rơi từ trên xuống.
- Trong ví dụ trên có sử dụng câu lệnh ghép, là nhiều lệnh đặt trong cặp từ khóa begin và end;
3. Tính tổng và tích bằng câu lệnh lặp
Ví dụ 1: chương tình sau đây sẽ tính tổng của N số tự nhiên đầu tiên, với N là số tự nhiên được nhập vào từ bàn phím.
Ví dụ 2: ta kí hiệu N! là tích N số tự nhiên đầu tiên, đọc là N giai thừa.
N! = 1.2.3…N
B. Bài tập trắc nghiệm
Câu 1:Kiểu dữ liệu của biến đếm trong lệnh lặp For – do:
A. Cùng kiểu với giá trị đầu và giá trị cuối
B. Chỉ cần khác kiểu với giá trị đầu
C. Cùng kiểu với các biến trong câu lệnh
D. Không cần phải xác định kiểu dữ liệu
Kiểu dữ liệu của biến đếm trong lệnh lặp For – do cùng kiểu với giá trị đầu và giá trị cuối. Biến đếm là biến đơn, thường là kiểu nguyên.
Đáp án: A
Câu 2:Hoạt động nào sau đây lặp với số lần lặp biết trước?
A. Giặt 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 đánh răng 2 lần
Hoạt động ngày đánh răng 2 lần là lặp với số lần lặp biết trước vì ngày nào cũng như ngày nào mình đều đánh răng 2 lần.
Đáp án: D
Câu 3:Chọn cú pháp câu lệnh lặp là:
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 >;
Cú pháp câu lệnh lặp:
For<biến đếm > := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trong đó: biến đếm phải là kiểu nguyên. Ban đầu sẽ có giá trị đầu, sau mỗi vòng lặp biến đếm tự động tăng cho đến khi băng giá trị cuối.
Đáp án: A
Câu 4: Câu lệnh For..to..do kết thúc :
A. Khi biến đếm nhỏ hơn giá trị cuối
B. Khi biến đếm lớn hơn giá trị cuối
C. Khi biến đếm nhỏ hơn giá trị đầu
D. Khi biến đếm lớn hơn giá trị đầu
Câu lệnh For..to..do kết thúc khi biến đếm lớn hơn giá trị cuối. Vì biến đếm chỉ có thể chạy từ giá trị đầu đến giá trị cuối.
Đáp án: B
Câu 5:Cho các câu lệnh sau hãy chỉ ra câu lệnh đúng :
A. for i:=1 to 10; do x:=x+1;
B. for i:=1 to 10 do x:=x+1;
C. for i:=10 to 1 do x:=x+1;
D. for i =10 to 1 do x:=x+1;
Cú pháp câu lệnh lặp:
For<biến đếm > := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trong đó: biến đếm phải là kiểu nguyên. Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối.
Đáp án: B
Câu 6:Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu nào?
A. Integer
B. Real
C. String
D. Tất cả các kiểu trên đều được
Cú pháp câu lệnh lặp:
For<biến đếm > := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trong đó: biến đếm phải là kiểu nguyên ( Integer)
Đáp án: A
Câu 7:Đoạn chương trình sau giải bài toán nào?
For I:=1 to M do
If (I mod 3 = 0) and (I mod 5 = 0) then
T := T + I;
A. Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M
B. Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M
C. Tổng các số chia hết cho 3 trong phạm vi từ 1 đến M
D. Tổng các số chia hết cho 5 trong phạm vi từ 1 đến M
Đoạn chương trình
For I:=1 to M do { I chạy trong phạm vi từ 1 đến M}
If (I mod 3 = 0) and (I mod 5 = 0) then { kiểm tra I chia hết cho 3 và cho 5 không}
T := T + I; {Cộng dồn vào tổng}
Đáp án: B
Câu 8:Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1 đến 100
A. 1
B. 100
C. 99
D. Tất cả đều sai
Số vòng lặp của bài toán được tính = giá trị cuối – giá trị đầu + 1 = 100 – 1 + 1 =100 vòng.
Đáp án: B
Câu 9:Trong lệnh lặp For – do:
A. Giá trị đầu phải nhỏ hơn giá trị cuối
B. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
C. Giá trị đầu phải lớn hơn giá trị cuối
D. Giá trị đầu phải bằng giá trị cuối
Trong lệnh lặp For – do 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.
Đáp án: B
Câu 10:Sau khi thực hiện đoạn chương trình sau:
S:=10;
For i:=1 to 4 do S:=S+i;
Giá trị của biến S bằng bao nhiêu?
A. 20
B. 14
C. 10
D. 0
Ban đầu S được gán giá trị bằng 10. Sau các vòng lặp S có giá trị là:
Với i=1 → S= 10 + 1= 11
Với i= 2 → S= 11 + 2 = 13
Với i=3 → S= 13 + 3 = 16
Với i=4 → S=16 + 4 = 20
Đáp án: A