Tiết 46
BÀI TẬP
Lệnh lặp với số lần chưa biết trước Cú pháp
*
Trong đó:- Điều kiện thường là một phép so sánh
- Câu lệnh có thể là câu lệnh đơn hay câu lệnh ghép
Sơ đồ
Điều kiện ?
Câu lệnh
Sai Đúng
While <điều kiện> do <câu lệnh>;
- Bước 1: Kiểm tra điều kiện Các bước
thực hiện
Tiết 46: Bài tập
I. Hệ thống kiến thức cũ:
Điều kiện?
Câu lệnh
- Bước 2: Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1
A A
A A
Tính tổng các số tự nhiên từ 1 đến 20.B B
B B
Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số.D D
D D
Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng.C C C
C
Mỗi ngày học bài 2 lần.30 29 28 26 27 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 98 76543210 Câu 1: Hoạt động nào sau đây lặp với số
lần chưa biết trước?
Tiết 46: Bài tập
II. Bài tập:
Câu 1: (Bài 2 sgk trang 71) Hãy cho biết sự khác biệt giữa câu lệnh lặp với số lần lặp biết trước và câu lệnh lặp với số lặp lần chưa biết trước?
* Câu lệnh lặp For..do
- Là câu lệnh biết trước được số lần lặp
- Điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa.
- Câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện.
* Câu lệnh lặp While..do
- Điều kiện tổng quát hơn nhiều, có thể là kiểm tra giá trị của một số thực, cũng có thể là một điều kiện khác.
- Trước hết điều kiện được kiểm tra. Nếu điều kiện đúng, câu lệnh mới được thực hiện.
ĐÁP ÁN
* Hoạt động nhóm trong 3 phút
- Là câu lệnh chưa biết trước được số lần lặp
T:=0; i:=1;
While i<1000 do ; bigin
T:=T + 1/i;
i:=i + 1;
End ;
Writeln (T);
Câu 2: Em hãy xác định lỗi trong các đoạn chương trình sau đây:
Thừa dấu ;
T khoá ừ sai
Tiết 46: Bài tập
II. Bài tập:
Tiết 46: Bài tập
Câu 3. Em hãy xác định điền kiện, câu lệnh trong vòng lặp while.. do của đoạn chương trình sau đây:
While a <= b do Begin
a := a + 1;
b:=b-1;
end;
Writeln (a);
Đáp án:
- Điều kiện: a<=b
- Câu lệnh là: a:=a+1;
b:=b-1;
Tiết 46: Bài tập
Câu 3. Em hãy xác định điền kiện, số lần lặp của lệnh while do và kết quả in ra màn hình tổng S của đoạn chương trình tính tổng sau :
S:= 0;
While i <= 10 do Begin
S:= S + i;
i:=i+1;
end;
Writeln (S);
Đáp án:
- Điều kiện:
- Số lần lặp là :
- Kết quả in ra màn hình của tổng S là :
i<=10
10
55
B. 15
Câu 4. Khi đoạn chương trình sau được thực hiện, giá trị cuối cùng tổng S bằng bao nhiêu?
S:= 0;
While i <= 5 do
Begin S:= S + i; i:=i+1; end;
Writeln (S);
A. 10 C. 14
D . 16
Tiết 46: Bài tập
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
d ) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ; Thừa dấu :
Thiếu dấu :
Thiếu Begin
Câu 5: Trong các câu lệnh sau câu lệnh nào đúng, câu lệnh nào sai? Nếu sai em hãy chỉ ra sai ở đâu?
c) s:=0; n:=2; while s<=10 do s:=s+n;
Đúng
Tiết 46: Bài tập
II. Bài tập:
Câu 6: Đọc 2 đoạn lệnh sau, cho biết ý nghĩa của các đoạn lệnh và rút ra nhận xét?
Đoạn 2
Đoạn 1 Đoạn 2
Program doan1;
Var s:real; n,i:integer;
Begin
Write(‘nhap gia tri n can tinh tong’);
readln(n);
For i:=1 to n do s:=s+i;
Writeln(‘tong can tim la s: =’,s:2:0);
Readln;
End.
Program doan2;
Var s:real; n,i:integer;
Begin i:=0;
Write(‘nhap gia tri n can tinh tong’);
readln(n);
While i<=n do Begin
s:=s+i;
i:=i+1;
End;
Writeln(‘tong can tim la’,s:2:0);
Readln;
End.
Đoạn 1
Lặp với số lần chưa biết trước Cú pháp
*
Trong đó:- Điều kiện thường là một phép so sánh
- Câu lệnh có thể là câu lệnh đơn hay câu lệnh ghép
Sơ đồ
Điều kiện ?
Câu lệnh
Sai Đúng
While <điều kiện> do <câu lệnh>;
- Bước 1: Kiểm tra điều kiện Các bước
thực hiện
CỦNG CỐ - DẶN DÒ
- Bước 2: Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
Nếu điều kiện đúng, thực hiện
CỦNG CỐ - DẶN DÒ
- Về nhà tìm hiểu thêm một số bài tập chuyển từ số vòng lặp biết trước sang số vòng lặp chưa biết trước.
- Tìm hiểu nội dung bài 1 trong bài thực hành 6.
- Thực hành thêm ở nhà nếu có máy tính