Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước - Nguyễn Đức Chung

Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước - Nguyễn Đức Chung

CỦNG CỐ KIẾN THỨC:

1. Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp lại nhiều lần 1 hoặc một nhóm các hoạt động.

2. Câu lệnh lặp với số lần biết trước trong Pascal có cú pháp như sau:

For := to do ;

Trong đó:

+ for, to, do: Là các từ khóa

+ là biến kiểu nguyên; , là những giá trị nguyên.

+ Số vòng lặp là biết trước và bằng:

  - + 1

 

pptx 35 trang Hà Thảo 22/10/2024 30
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước - Nguyễn Đức Chung", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO QUỸ LAWRENCE S.TING 
Cuộc thi quốc gia Thiết kế bài giảng e-Learning lần thứ 4 
----------------------------- 
Bài giảng: 
BÀI 8 
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 
Môn Tin học, lớp 8 
Giáo viên: Nguyễn Đức Chung 
nguyenducchung.c2lytutrong@vinhphuc.edu.vn 
Điện thoại di động: 0988418121 
Trường THCS Lý Tự Trọng 
Thị trấn Hương Canh, huyện Bình Xuyên, tỉnh Vĩnh Phúc 
CC-BY-SA 
Tháng 10/2016 
Câu 1. Khi sử dụng lệnh lặp For...To...Do. Số lần lặp sẽ được tính như thế nào? 
Đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Bạn đã trả lời đúng 
Câu trả lời của bạn là: 
Câu trả lời đúng là: 
Bạn chưa hoàn thành câu hỏi 
Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục 
Chấp nhận 
Làm lại 
KIỂM TRA BÀI CŨ 
A) 
Số lần lặp = - 
B) 
Số lần lặp = - + 1 
C) 
Số lần lặp = - - 1 
D) 
Số lần lặp = - + 1 
Câu 2. Cú pháp của lệnh lặp For...To...Do là: 
Đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Bạn đã trả lời đúng 
Câu trả lời của bạn là: 
Câu trả lời đúng là: 
Bạn chưa hoàn thành câu hỏi 
Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục 
Chấp nhận 
Làm lại 
A) 
For := Do To ; 
B) 
For := To Do ; 
C) 
For := To Do ; 
D) 
For = To Do ; 
Câu 3. Hãy chỉ ra các lỗi sai trong các câu lệnh dưới đây? 
CỘT 1 
CỘT 2 
A. 
Biến đếm không phải kiểu số nguyên 
B. 
Thiếu từ khóa do trong lệnh lặp 
C. 
Thừa dấu chấm phảy đầu tiên 
D. 
Giá trị đầu phải nhỏ hơn giá trị cuối 
E. 
Thiếu dấu hai chấm ở lệnh gán cho biến đếm 
C 
For i:=1 to 10; do x:=x+1; 
D 
For i:=10 to 1 do x:=x+1; 
A 
For i:=1.5 to 10.5 do x:=x+1 
B 
For i:=1 to 10 For j:=1 to 10 do x:=x+1; 
E 
For i=1 to 10 do x:=x+1 
Đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Bạn đã trả lời đúng 
Câu trả lời của bạn là: 
Câu trả lời đúng là: 
Bạn chưa hoàn thành câu hỏi 
Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục 
Chấp nhận 
Làm lại 
KẾT QUẢ 
Xem lại 
Tiếp tục 
Điểm của em: 
{score} 
Điểm tối đa: 
{max-score} 
Số câu trả lời đúng: 
{correct-questions} 
Tổng số câu hỏi: 
{total-questions} 
Tỉ lệ đúng: 
{percent} 
Số lần trả lời: 
{total-attempts} 
Question Feedback/Review Information Will Appear Here 
CỦNG CỐ KIẾN THỨC: 
1. Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp lại nhiều lần 1 hoặc một nhóm các hoạt động. 
2 . Câu lệnh lặp với số lần biết trước trong Pascal có cú pháp như sau: 
For := to do ; 
Trong đó: 
+ for, to, do: Là các từ khóa 
+ là biến kiểu nguyên; , là những giá trị nguyên. 
+ Số vòng lặp là biết trước và bằng: 
	 - + 1 
3. Hoạt động: Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp, câu lệnh được thực hiện và biến đếm được tự động tăng thêm 1 đơn vị cho đến khi bằng giá trị cuối. 
Tiếp tục 
Quay lại 
MỤC TIÊU BÀI HỌC: 
a. Kiến thức: 
Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn; 
Hiểu hoạt động của câu lệnh lặp while ...do trong Pascal. 
Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình; 
b. Kĩ năng: 
Sử dụng được lệnh lặp While...do khi viết chương trình 
Nhận biết được đâu là hoạt động lặp với số lần chưa biết trước 
c. Thái độ: 
Nghiêm túc trong quá trình nghiên cứu và thực hành 
Rèn luyện khả năng tư duy, sáng tạo,... của học sinh 
CẤU TRÚC BÀI HỌC: 
1. Các hoạt động lặp với số lần chưa biết trước 
2. Ví dụ về lệnh lặp với số lần chưa biết trước 
3. Lặp vô hạn – lỗi lập trình cần tránh 
1. Các hoạt động lặp với số lần chưa biết trước 
- Trong bài trước chúng ta đã làm quen với các hoạt động lặp với số lần đã được xác định trước. 
Trong thực tế, có nhiều hoạt động được lặp đi lặp lại với số lần chưa biết trước. 
Chẳng hạn, để tính tổng các số nguyên từ 1 đến 100 ta có thể viết câu lệnh lặp để máy tính thực hiện phép cộng 100 lần. 
S = 1 + 2 + 3 + . . .+100 
For i:=1 to 100 do s:=s+i; 
Ví dụ 1 : 
 Một ngày, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy thì thôi . 
S ố lần lặp là chưa biết 
Hoạt động lặp: G ọi điện 
K ết thúc vòng lặp: Có người nhấc máy thì thôi. 
1. Các hoạt động lặp với số lần chưa biết trước 
Ví dụ 2 : 
Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3, ). Ta sẽ được kết quả: 
T 2 = 1 + 2 
T 1 = 1 
T 3 = 1 + 2 + 3 
 tăng dần 
Điều kiện như thế nào thì kết thúc hoạt động lặp? 
1. Các hoạt động lặp với số lần chưa biết trước 
Điều kiện: Khi tổng T n nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp 
 Phân tích bài toán: 
T 0 := 0; n:=0; 
n 
Tổng T n 
Điều kiện T n ≤ 1000 
1 
T 1 = 1 
Đúng 
2 
T 2 = 1 + 2 
Đúng 
3 
T 3 = 1 + 2 + 3 
Đúng 
n 
T n = 1 + 2 + 3 + +n (Sao cho T n nhỏ nhất lớn hơn 1000) 
Sai, kết thúc việc tính tổng 
Ví dụ 2 : 
1. Các hoạt động lặp với số lần chưa biết trước 
Ta có thuật toán như sau: 
Kí hiệu S là tổng cần tìm 
Bước 1 
S  0, n  0. 
Bước 2: 
Nếu S ≤ 100 0 , thì: n  n+1; Ngược lại, chuyển tới bước 4 
S  S + n và quay lại bước 2. 
In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S>1000 . Kết thúc thuật toán. 
* Có thể diễn tả bài toán trên bằng sơ đồ như sau: 
S 1000? 
Sai 
n  n+1; 
S  S+n; 
Đúng 
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào ? 
Việc lặp lại một nhóm hoạt động với số lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể được thỏa mãn và chỉ dừng lại khi điều kiện không thỏa mãn 
Bước 4 : 
Ví dụ 2 : 
1. Các hoạt động lặp với số lần chưa biết trước 
Bước 3: 
S 1000? 
Sai 
n  n+1; 
S  S+n; 
Đúng 
Tổng 
quát 
Điều kiện 
Sai 
Câu lệnh 
Đúng 
Để chỉ dẫn máy tính thực hiện các hoạt động lặp trên, ta có thể sử dụng câu lệnh có dạng: Lặp với số lần chưa biết trước 
1. Các hoạt động lặp với số lần chưa biết trước 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Cú pháp : 
KẾT THÚC 
Bước 1: Kiểm tra điều kiện . 
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 , t hực hiện câu lệnh và quay lại bước 1. 
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện. 
While Do ; 
Để tính tổng của n số tự nhiên đầu tiên, ta có thể sử dụng lệnh lặp For...do (biết trước số lần lặp). Tuy nhiên, em cũng có thể sử dụng câu lệnh While...do để giải quyết bài toán trên 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Ví dụ 3 : 
Video sau đây sẽ mô phỏng bài toán trên với n=5, tức là tính: 
S = 1 + 2 + 3 + 4 + 5 
Chúng ta biết rằng, nếu n (n>0) càng lớn thì 1/n càng nhỏ, nhưng luôn lớn hơn 0 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Ví dụ 4 : 
Với giá trị nào của n thì 1/n < 0.005 hoặc 1/n < 0.003? 
Viết chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước 
Ta thấy rằng, 1/n đạt giá trị lớn nhất khi n = 1 
Phân tích bài toán 
Vì vậy, với một sai_so nhất định, để tìm số n nhỏ nhất để 1/n < sai_so, ta có thuật toán sau: 
Bước 1: x:=1; n:=1; 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Ví dụ 4 : 
Bước 2: Nếu x < sai_so thì chuyển sang bước 4 
Bước 3: n:=n+1; x:= 1/n; 
	 	và quay lại bước 2 
Bước 4: In kết quả: n là số nhỏ nhất để 1/n > sai_so; 
	 	 Kết thúc thuật toán. 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Bước 1 : 
S  0, n  0. 
Bước 2: 
Nếu S≤100 0, thì: n  n+1; S  S + n và quay lại bước 2. 
Ngược lại, chuyển tới bước 3. 
In kết quả: n là số tự nhiên để tổng S nhỏ nhất sao cho S>1000 . Kết thúc thuật toán. 
Dùng câu lệnh lặp While do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk) 
Bước 3: 
Ví dụ 5 : 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Ví dụ 5 : 
var S,n: integer; 
Begin 
S:=0; n:=0; 
while S<=1000 do 
begin 
n:=n+1; 
S:=S+n ; 
end; 
write(‘So tu nhien n de tong >1000 la ’, n); 
write(‘Tong dau tien >1000 la’, S); 
Readln; 
End. 
2 . Ví dụ về lệnh lặp với số lần chưa biết trước 
Ví dụ 6 : 
Viết chương trình tính tổng T = 1 + 1/2 + 1/3 + + 1/100 
Ta có thể sử dụng lệnh lặp với số lần biết trước (For..do) hoặc sử dụng lệnh lặp với số lần chưa biết trước (While..do) để giải quyết bài toán trên 
var T : Real; 
 i:Integer; 
Begin 
T:=0 
End. 
For i:=1 to 100 do T:=T+1/i; 
Writeln(T) 
var T : Real; 
 i:Integer; 
Begin 
T:=0; i:=1 
End. 
While i<=100 do 
Writeln(T) 
Begin T:=T+1/i; i:=i+1; End; 
3. Lặp vô hạn – lỗi lập trình cần tránh 
- Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc. 
var a:integer 
Begin 
a:=5; 
while a <6 do Writeln(‘A’); 
Readln; 
End. 
- Ở chương trình trên, giá trị của biến a luôn bằng 5, do đó điều kiện để vòng lặp kết thúc là a<6 sẽ không bao giờ xảy ra. Vì vậy lệnh in ra kí tự ‘A’ luôn được thực hiện. 
3. Lặp vô hạn – lỗi lập trình cần tránh 
3. Lặp vô hạn – lỗi lập trình cần tránh 
Qua ví dụ trên, chúng ta cần lưu ý: 
Khi thực hiện vòng lặp, giá trị các biến trong điều kiện của câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện sẽ được chuyển từ đúng thành sai . 
Chỉ như thế, chương trình mới không “rơi” vào những “vòng lặp vô tận”, tức là sẽ không bao giờ dừng lại. 
CỦNG CỐ: 
Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ lập trình còn có cấu trúc lặp với số lần lặp chưa biết trước. 
While...do là câu lệnh lặp với số lần chưa biết trước trong Pascal. 
KẾT THÚC 
While Do 
 ; 
Câu 1. Đoạn câu lệnh sau cho kết quả là gì?A:=1;While A<=15 Do Begin Writeln(A); A:=A+2; End; 
Đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Bạn đã trả lời đúng 
Câu trả lời của bạn là: 
Câu trả lời đúng là: 
Bạn chưa hoàn thành câu hỏi 
Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục 
Chấp nhận 
Làm lại 
Câu hỏi củng cố : 
A) 
In ra số 15 
B) 
In ra các số từ 1 đến 15 
C) 
In ra các số chẵn từ 1 đến 15 
D) 
In ra các số lẻ từ 1 đến 15 
Câu 2. Hãy chỉ ra lỗi sai của các câu lệnh sau bằng cách nối giữa 2 cột? 
CỘT 1 
CỘT 2 
A. 
Thừa dấu 2 chấm đầu tiên 
B. 
Vòng lặp vô hạn do điều kiện luôn đúng 
C. 
Vòng lặp được thực hiện nhưng chỉ in giá trị cuối của i 
D. 
Thừa dấu chấm phảy trước từ khóa Do 
E. 
Vòng lặp vô hạn do không có câu lệnh thay đổi biến i 
A 
While i:=1 do t:=10; 
D 
While a<=b; do write(a); 
B 
While 1=1 do write('Lam tot'; 
E 
i:=1; While i<10 do s:=s+i; i:=i+1; 
C 
i:=1; x:=5; While i<x do i:=i+1; write('i =',i); 
Đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Bạn đã trả lời đúng 
Câu trả lời của bạn là: 
Câu trả lời đúng là: 
Bạn chưa hoàn thành câu hỏi 
Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục 
Chấp nhận 
Làm lại 
Câu 3: Với đoạn lệnh sau, chương trình thực hiện bao nhiêu vòng lặp?S:=0; n:=0; While S <= 10 do n:=n+1; S:=S+n; 
Đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục 
Bạn đã trả lời đúng 
Câu trả lời của bạn là: 
Câu trả lời đúng là: 
Bạn chưa hoàn thành câu hỏi 
Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục 
Chấp nhận 
Làm lại 
A) 
Thực hiện 0 vòng lặp 
B) 
Thực hiện 5 vòng lặp 
C) 
Thực hiện 10 vòng lặp 
D) 
Lặp vô hạn lần 
KẾT QUẢ 
Xem lại 
Tiếp tục 
Điểm của em: 
{score} 
Điểm tối đa: 
{max-score} 
Số câu trả lời đúng: 
{correct-questions} 
Tổng số câu hỏi: 
{total-questions} 
Tỉ lệ đúng: 
{percent} 
Số lần trả lời: 
{total-attempts} 
Question Feedback/Review Information Will Appear Here 
Phần mềm Pascal Study 
HƯỚNG DẪN VỀ NHÀ 
- Nắm được cú pháp và ý nghĩa của câu lệnh While..do 
- Chú ý tránh các lỗi “lặp vô hạn” khi viết chương trình 
- Làm bài tập: 3, 4, 5 (Trang 70, SGK) và 7.8, 7.9 (Trang 61, SBT) 
- Đọc trước bài thực hành 6: “ Sử dụng lệnh lặp While do ” 
CHÚC CÁC EM HỌC TỐT 
GOODBYE SEE AGAIN 
Tư liệu tham khảo 
1. SGK Tin học dành cho THCS quyển 3 – NXBGD Việt Nam 
2 . Bài tập tin học dành cho THCS quyển 3 – NXBGD Việt Nam 
3 . Câu hỏi và bài tập trắc nghiệm Tin học 8 – NXB Hà Nội 
4. Học tốt Tin học dành cho THCS quyển 3 – NXB 
Quốc Gia Hà Nội 
5 . SGV Tin học dành cho THCS quyển 3 – NXBGD Việt Nam 
7 . Phần mềm Turbo Pascal, Pascal Study, Benten Movie GIF, Adobe Presenter; Camtasia Studio; Total Video Converter, Crocodile ICT 605, Macromedia Flash 8 
8 . Một số Website: 
6 . Bài tập ngôn ngữ lập trình Pascal – NXBGD ĐH Quốc Gia Hà Nội 

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

  • pptxbai_giang_tin_hoc_lop_8_bai_8_lap_voi_so_lan_chua_biet_truoc.pptx
  • docxThuyet minh.docx