Bài giảng Tin học Lớp 11 - Câu lệnh while - Nguyễn Lê Hiếu

Bài giảng Tin học Lớp 11 - Câu lệnh while - Nguyễn Lê Hiếu

Cấu trúc lặp với số lần chưa biết trước và câu lệnh While

Bài toán đặt vấn đề

Câu lệnh lặp While

Các bài tập áp dụng và nâng cao

 

Một ao sẽ được phủ kín nếu số cây bèo trong ao nhiều hơn hoặc bằng A cây. Giả sử tuần 1 có B cây, sau mỗi tuần số bèo tăng lên gấp đôi cộng thêm 1 cây. Sau T tuần thì ao đã được bèo phủ kín. Viết chương trình tính T.

Câu hỏi:

Bài toán trên có thao tác nào liên quan đến chủ đề đang nghiên cứu?

Xác định bài toán và xây dựng thuật toán bằng liệt kê.

 

pptx 32 trang Ngát Lê 25/10/2024 180
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 11 - Câu lệnh while - Nguyễn Lê Hiếu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giới thiệu 
1 
Bài toán đặt vấn đề 
3 
Các bài tập áp dụng và nâng cao 
2 
Câu lệnh lặp While 
Cấu trúc lặp với số lần chưa biết trước và câu lệnh While 
Gv: Nguyễn Lê Hiếu 
THPT Lệ Thủy – Q. Bình 
Chương III: 
Cấu trúc rẽ nhánh và lặp 
Bài: Câu lệnh While 
TIN HỌC 11 
Kiểm tra bài cũ 
BÀI TẬP TRẮC NGHIỆM 
(gồm 5 câu, mỗi câu 2 điểm) 
Chúc các em làm bài tốt! 
Câu 1: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác 
Câu trả lời của em: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Cho hai dạng lặp FOR trong PASCAL như sau: ( trong đó : ) 
Dạng tiến: FOR := TO DO ; 
Dạng lùi: FOR := DOWNTO DO ; 
Chọn phát biểu sai trong các phát biểu đưới dây : 
A) 
Biến đếm là biến đơn, thường có kiểu nguyên. 
B) 
Với mỗi giá trị của biến đếm trong khoảng từ giá trị đầu đến giá trị cuối, câu lệnh sau DO được thực hiện một lần. 
C) 
Phải có lệnh thay đổi biến đếm trong mỗi sau DO trong cấu trúc lặp này, vì giá trị của biến đếm không được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp. 
D) 
Ở dạng lặp tiến câu lệnh sau 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. 
Câu 2: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác 
Câu trả lời của em: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Cho hai dạng lặp FOR trong PASCAL như sau: ( trong đó : ) 
Dạng tiến: FOR := TO DO ; 
Dạng lùi: FOR := DOWNTO DO ; 
Chọn phát biểu đúng trong các phát biểu đưới dây : 
A) 
Ở dạng lặp tiến câu lệnh sau DO luôn được thực hiện ít nhất một lần. 
B) 
Ở dạng lặp lùi câu lệnh sau 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. 
C) 
Ở dạng lặp lùi câu lệnh sau DO có thể không được thực hiện lần nào, đó là trường hợp giá trị cuối nhỏ hơn giá trị đầu. 
D) 
Biểu thức giá trị đầu và biểu thức giá trị cuối có thể thuộc kiểu số thực. 
Câu 3: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác 
Câu trả lời của em: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ? 
For i := 10 downto 1 do write(i, ‘ ’); 
A) 
1 2 3 4 5 6 7 8 9 10 
B) 
10 9 8 7 6 5 4 3 2 1 
C) 
Đưa ra 10 dấu cách 
D) 
Không đưa ra kết quả gì 
Câu 4: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác 
Câu trả lời của em: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ? 
For i := 10 to 1 do write(i, ‘ ’); 
A) 
1 2 3 4 5 6 7 8 9 10 
B) 
10 9 8 7 6 5 4 3 2 1 
C) 
Đưa ra 10 dấu cách 
D) 
Không đưa ra kết quả gì 
Câu 5: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác 
Câu trả lời của em: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Trong NNLT Pascal, đoạn chương trình sau thực hiện công việc gì ? 
 T := 0 ; 
 For i := 1 to N do 
	If (i mod 3 = 0) and (i mod 5 = 0) then T := T + i ; 
A) 
Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến N ; 
B) 
Tính tổng các ước thực sự của N ; 
C) 
Tìm một ước số của số N ; 
D) 
Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến N ; 
Kết quả 
Số điểm của em 
{score} 
Số điểm tối đa 
{max-score} 
Số lần thử 
{total-attempts} 
Question Feedback/Review Information Will Appear Here 
Xem lại 
Tiếp tục 
Nếu em dưới 60% điểm, em sẽ phải làm lại cho đến khi đạt 60% trở lên! Cố lên nhé! Chúc em thành công! 
1. Bài toán 
Một ao bèo sẽ được phủ kín nếu số cây bèo trong ao nhiều hơn hoặc bằng A cây . Giả sử tuần 1 có B cây , sau mỗi tuần số bèo tăng lên gấp đôi cộng thêm 1 cây . Sau T tuần thì ao đã được bèo phủ kín. Viết chương trình tính T. 
A: số lượng bèo phủ kín ao 
B: số lượng bèo ban đầu 
Mỗi tuần số bèo tăng gấp đôi +1 
T: số tuần cần thiết để bèo phủ kín ao 
1. Bài toán 
Giả sử: Tuần thứ T=1; Số bèo có B=2; Ao sẽ kín nếu số bèo A>=45 
Xem minh họa: 
1. Bài toán 
Một ao sẽ được phủ kín nếu số cây bèo trong ao nhiều hơn hoặc bằng A cây . Giả sử tuần 1 có B cây , sau mỗi tuần số bèo tăng lên gấp đôi cộng thêm 1 cây . Sau T tuần thì ao đã được bèo phủ kín. Viết chương trình tính T . 
Câu hỏi: 
Bài toán trên có thao tác nào liên quan đến chủ đề đang nghiên cứu? 
Xác định bài toán và xây dựng thuật toán bằng liệt kê. 
03:00 
02:59 
02:58 
02:57 
02:56 
02:55 
00:07 
00:06 
00:05 
00:04 
00:03 
00:02 
00:01 
00:00 
Thời gian 3 phút bắt đầu! 
(để tiện cho BGK, thời gian được rút ngắn lại) 
1. Bài toán 
2. Thuật toán: 
Bước 1. Nhập vào A, B 
Bước 2. T:=1 
Bước 3. Chừng nào B<A thì còn thực hiện các công việc sau : 
	 Công việc 1 : T:=T+1 
	Công việc 2 : B := B * 2 + 1 
Bước 4. Thông báo số tuần 
Bước 5. Kết thúc. 
A 
B 
T 
CHƯƠNG TRÌNH 
Input 
Output 
1. Lặp: Cứ sau mỗi tuần số bèo tăng lên gấp đôi cộng 1 
2. Câu lệnh while - do 
Trong đó: 
Điều kiện : Là biểu thức quan hệ hoặc là logic. 
Câu lệnh : Là một câu lệnh của Pascal (đơn hoặc ghép). 
WHILE DO ; 
Cú pháp: 
Chừng nào điều kiện còn đúng thì còn thực hiện câu lệnh. 
Điều kiện 
Đúng 
Câu lệnh 
Sai 
Điều kiện 
Đúng 
Câu lệnh 
Điều kiện 
Đúng 
Câu lệnh 
Điều kiện 
Sai 
2. Câu lệnh while - do 
Ví dụ 1: Tính tổng S= 1+2+ +N(N>1 ) 
S:=0; i:=1; 
Chừng nào i<=N thì còn thực hiện 
	Cv1: S:=S+i; 
	Cv2: i:=i+1; 
WHILE DO ; 
Cú pháp: 
S:=0; i:=1; 
WHILE i<=N DO 
 BEGIN 
	S:=S+i; 
 	i:=i+1; 
 END ; 
Ví dụ 2: 
S :=0; i:=1; 
WHILE i<5 DO 
 BEGIN 
	S:=S+i; 
 END; 
Nhận xét: 
- Lặp vô hạn, cần có câu lệnh làm thay đổi biểu thức ĐK 
- Ctrl+Break, F9 hoặc đóng Pascal: Ctrl+Alt+Del 
30 
29 
05 
04 
03 
02 
01 
00 
30 giây bắt đầu 
Chẳng hạn: 
S :=0; i:=1; 
WHILE i<=N DO 
 BEGIN 
	S:=S+i; 
 	 i:=i+1; 
 END ; 
2. Câu lệnh while - do 
Thuật toán: 
Bước 1. Nhập vào A, B 
Bước 2. T:=1 
Bước 3. Chừng nào B<A thì còn thực hiện các công việc sau : 
	 Công việc 1 : T:=T+1 
	Công việc 2 : B := B * 2 + 1 
Bước 4. Thông báo số tuần 
Bước 5. Kết thúc . 
While B< A Do 
	Begin 
	 T:=T+1; 
	 B:= B*2 + 1; 
	End; 
30 
29 
05 
04 
03 
02 
01 
00 
30 giây bắt đầu 
2. Câu lệnh while - do 
Program Ao_Beo ; 
Var A, B, T : Integer; 
BEGIN 
	 Writeln (‘ Nhap so luong beo phu kin A= ‘); Readln ( A ) ; 
	 Writeln (‘ Nhap so luong beo ban dau B= ‘); Readln ( B ) ; 
	 T:=1; 
	 While B< A Do 
	Begin 
	T:=T+1; 
	B:= B*2 + 1; 
	End; 
	Write(‘ So tuan = ‘, T); 
END. 
3. Một số ví dụ 
Câu 1: Xem hình ảnh và trả lời câu hỏi: 
Hành động gì mà có đặc điểm liên quan đến bài học hôm nay? 
Hành động đó thực hiện bao nhiêu lần? 
Hành động đó sẽ còn thực hiện khi nào? 
3. Một số ví dụ 
Câu 1: Xem hình ảnh và trả lời câu hỏi: 
Hành động là: hành động lặp lại nhặt sỏi bỏ vào lọ 
Hành động đó thực hiện bao nhiêu lần? Chưa biết trước 
Hành động đó sẽ còn thực hiện khi nào? Chừng nào nước chưa dâng lên thành lọ thì còn nhặt sỏi bỏ vào lọ 
3. Một số ví dụ 
Câu 2: Giá trị của S bằng bao nhiêu sau khi thực hiện xong đoạn chương trình dưới đây: 
S:=0; i:=0; 
WHILE I<=5 DO 
 BEGIN 
	S:=S+I; 
	I:=I+1; 
 END; 
KHỞI TẠO 
0 
1 
LẦN LẶP THỨ 1 
0+1=1 
2 
LẦN LẶP THỨ 2 
1+2 =3 
3 
LẦN LẶP THỨ 3 
3+3=6 
4 
LẦN LẶP THỨ 4 
6+4=10 
5 
LẦN LẶP THỨ 5 
10+5=15 
6 
S 
i 
 S = 1 + 2 + 3 + 4 + 5 
Nhận xét: 
Có thể sử dụng câu lệnh While - Do thay thế cho câu lệnh For - To - Do 
For i:= 1 to 5 do S:=S+i; 
3. Một số ví dụ 
Câu 3: Cho đoạn chương trình: 
a:=4; b:=12; 
WHILE a<>b DO 
 If a>b then a:= a-b Else b:=b-a; 
Hãy chọn đáp án đúng sau khi thực hiện xong đoạn chương trình trên: 
A. a=4; b=2; B. a=4; b=4; C . a=12; b=12; D. a=0; b=0; 
KHỞI TẠO 
4 
12 
LẦN LẶP THỨ 1 
4 
8 
LẦN LẶP THỨ 2 
4 
4 
LẦN LẶP THỨ 3 
b 
a 
Nhận xét: Đoạn chương trình tìm ước số chung lớn nhất của hai số a, b nguyên dương. 
03:00 
02:59 
02:58 
02:57 
02:56 
02:55 
00:07 
00:06 
00:05 
00:04 
00:03 
00:02 
00:01 
00:00 
Thời gian 3 phút bắt đầu! 
3. Một số ví dụ 
Câu 4: Lập CT nhập vào hai số nguyên dương M, N tìm UCLN của hai số đó. 
B1: Nhập M,N; 
B2 : Chừng nào M N 
 nếu M>N thì M:=M-N, 
 ng­ược lại thì N:=N-M; 
B3: Thông báo UCLN là M 
B4: Kết thúc 
Thuật toán 
B1: Readln(M,N); 
B2 : While M<>N DO 
	 IF M>N then M:=M-N 
	 else N:= N-M; 
B3 : Write(‘UCLN la: ‘, M); 
B4: End. 
Các bước viết chương trình 
3. Một số ví dụ 
Câu 5: Ví dụ về sử dụng vòng lặp vô hạn 
Cho số thực a. Tìm số nguyên dương N nhỏ nhất thỏa mãn: 
1 + 1/2 + 1/3 + + 1/N > a 
Var a, s:real; n:longint; 
BEGIN 
 Write(‘Nhap gia tri a=‘); Readln(a); 
 s:=1; n:=1; 
 While true do 
 Begin 
 if s>a then break; {rẽ nhánh để thoát lặp vô hạn} 
 n:=n+1; 
 s:= s + 1/n; 
 End; 
 Write(n); 
END. 
Chương trình 
Tóm tắt 
Cú pháp câu lệnh While: 
WHILE DO ; 
Nếu mà luôn luôn đúng thì câu lệnh While sẽ lặp vô hạn . 
Câu lệnh While có thể thay thế cho câu lệnh For 
Bài tập làm thêm: 
Hoàn thiện bài AO BÈO; bài tìm USCLN 
Làm bài tập 7, 8 sgk - trang 51 
Câu lệnh Repeat - Until 
Bài tập cuối bài 
BÀI TẬP TRẮC NGHIỆM 
(gồm 5 câu, mỗi câu 2 điểm) 
Chúc các em làm bài tốt! 
Câu 1: 
A) 
Tính biểu thức điều kiện 
B) 
Nếu biểu thức điều kiện sai thì thoát khỏi câu lệnh lặp 
C) 
Nếu biểu thức điều kiện đúng thì thực hiện câu lệnh 
D) 
Quay lại bước tính biểu thức điều kiện 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác! 
Câu trả lời của em là: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập! 
Trả lời 
Bỏ chọn 
Sử dụng thao tác kéo thả để sắp xếp các bước dưới đây theo đúng thứ tự: 
Câu 2: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác! 
Câu trả lời của em là: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập! 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng với cú pháp câu lệnh While có một câu lệnh đơn ? 
A) 
While a>5 do a := a – 1 ; 
B) 
While a>5 do; a := a – 1 
C) 
While a>5 do a = a – 1 ; 
D) 
While a>5 ; do a := a – 1 ; 
Câu 3: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác! 
Câu trả lời của em là: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập! 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Câu lệnh WHILE – DO PASCAL có dạng : 
WHILE DO ; 
Chọn phát biểu đúng trong các phát biểu dưới đây: 
A) 
Biểu thức điều kiện được tính và kiểm tra, nếu biểu thức đó sai thì câu lệnh sau DO được thực hiện. 
B) 
Khi xác định được trước số lần lặp vẫn có thể dùng lệnh WHILE – DO 
C) 
Câu lệnh sau DO bao giờ cũng được thực hiện ít nhất một lần. 
D) 
điều kiện trong lệnh WHILE – DO có thể là một biểu thức kiểu nguyên hoặc kiểu kí tự. 
Câu 4: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác! 
Câu trả lời của em là: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập! 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Chọn phát biểu sai trong các phát biểu sau đây: 
A) 
Để mô tả việc lặp đi lặp lại một số thao tác (hoặc câu lệnh) trong một thuật toán ta có thể dùng cấu trúc lặp. 
B) 
Tùy từng trường hợp cụ thể (khi mô tả một thuật toán), khi thì ta biết trước số lần lặp, khi thì ta không cần hoặc không xác định được trước số lần lặp các thao tác nào đó. 
C) 
Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán. 
D) 
Không thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không dùng cấu trúc lặp. 
Câu 5: 
Em trả lời đúng rồi - Click vào đây để tiếp tục nhé! 
Em trả lời sai rồi - Click vào đây để tiếp tục nhé! 
Em trả lời chính xác! 
Câu trả lời của em là: 
Câu trả lời đúng là: 
Em chưa hoàn thành bài tập! 
Em phải hoàn thành bài tập trước khi tiếp tục! 
Trả lời 
Bỏ chọn 
Chọn phát biểu đúng trong các phát biểu sau đây: 
A) 
Có thể dùng câu lệnh FOR để thay thế cho câu lệnh lặp WHILE. 
B) 
Câu lệnh lặp không được xuất hiện trong đứng sau từ khóa THEN của cấu trúc rẽ nhánh. 
C) 
Câu lệnh rẽ nhánh không được xuất hiện trong của một cấu trúc lặp. 
D) 
Một cấu trúc lặp có thể xuất hiện trong của một cấu trúc lặp khác. 
Quiz 
Số điểm của em là: 
{score} 
Tổng số điểm 
{max-score} 
Số lần thử 
{total-attempts} 
Question Feedback/Review Information Will Appear Here 
Xem lại 
Tiếp tục 
Tài liệu tham khảo 
Thank you! 

Tài liệu đính kèm:

  • pptxbai_giang_tin_hoc_lop_11_cau_lenh_while_nguyen_le_hieu.pptx
  • docThiet lap Flash.doc
  • doc_ Thuyet minh nguyenhieu_while.doc