Bài giảng Tin học 11 - Bài 10: Cấu trúc lặp - Năm học 2022-2023 - Nguyễn Lan Hương - Trường THPT Nguyễn Thái Học

Bài giảng Tin học 11 - Bài 10: Cấu trúc lặp - Năm học 2022-2023 - Nguyễn Lan Hương - Trường THPT Nguyễn Thái Học

Ta thấy trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Một trong các đặc trưng của máy tính là khả năng thực hiện hiệu quả các thao tác lặp. Cấu trúc lặp mô tả thao tác lặp và được phân biệt hai loại là lặp với số lần biết trước và lặp với số lần chưa biết trước.

Trong Pascal và một số ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc lặp. Trong tiết này ta chỉ nghiên cứu cấu trúc lặp với số lần biết trước.

 

pptx 12 trang Trí Tài 03/07/2023 1680
Bạn đang xem tài liệu "Bài giảng Tin học 11 - Bài 10: Cấu trúc lặp - Năm học 2022-2023 - Nguyễn Lan Hương - Trường THPT Nguyễn Thái Học", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ta thấy trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Một trong các đặc trưng của máy tính là khả năng thực hiện hiệu quả các thao tác lặp. Cấu trúc lặp mô tả thao tác lặp và được phân biệt hai loại là lặp với số lần biết trước và lặp với số lần chưa biết trước. 
Trong Pascal và một số ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc lặp . Trong tiết này ta chỉ nghiên cứu cấu trúc lặp với số lần biết trước . 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Thuật toán tính tổng 
Nhập a=3 
S=3+1+2+3+4+5+6+7+8+9+10=58 
Vậy số lần lặp của thuật toán trên là biết trước (10 lần).Kết quả 
Nhập a 
S ←a;N←0; 
N>10? 
S ←S+N; 
N ←N+1; 
Đưa ra S 
rồi kết thúc 
B1 
B2 
B3 
B4 
B5 
B6 
Đ 
S 
Thuật toán này lặp ở những bước nào? Và khi nào thì thuật toán dừng. 
S=a+1+2+3+ +10 
Trong thuật toán, giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>10 thì kết thúc lặp. Ta nói cách lặp trong thuật toán trên là dạng lặp tiến 
Nhập a 
S ←a;N←0; 
N>10? 
S ←S+N; 
N ←N+1; 
Đưa ra S 
rồi kết thúc 
B1 
B2 
B3 
B4 
B5 
B6 
Đ 
S 
Pascal dùng câu lệnh lặp for-do thể hiện dạng lặp với số lần biết trước như sau: 
Dạng lặp tiến: 
For := to do ; 
Chú ý: ở đây có thể là câu lệnh đơn hoặc câu lệnh ghép. 
*Cách hoạt động: Các em xem SGK 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Chương trình tính tổng S=a+1+2+ +10 
Program Tong; 
Uses crt; 
Var S:real; 
	a,N:Integer; 
Begin 
Clrscr; 
Write(‘nhap vao a’); 
Readln(a); 
S:=a; 
For N:=1 to 10 do 
	S:=S+N; 
Writeln(‘tong s la’,S:8:2); 
Readln 
End. 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Ngoài cách tính tổng S là S=a+1+2+3 +10 thì ta còn có cách tính S nào khác không? 
S=a+10+9+8+ +1 
Ta dễ dàng thấy cách để tính tổng S như sau: 
-Xuất phát, S được gán giá trị a 
-Tiếp theo, cộng vào S một giá trị N với N=10, 9, 8, ,1 
Việc cộng được lặp lại với số lần là 10 và việc tính tổng S sẽ kết thúc khi đã thực hiện việc cộng N vào S 10 lần. 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Thuật toán tính tổng 
Nhập a=3 
S=3+10+9+8+7+6+5+4+3+2+1=58 
Vậy số lần lặp của thuật toán trên là biết trước (10 lần). 
N ←N-1; 
Nhập a 
S ←a;N←11; 
N<1? 
S ←S+N; 
Đưa ra S 
rồi kết thúc 
B1 
B2 
B3 
B4 
B5 
B6 
Đ 
S 
Thuật toán này lặp ở những bước nào? Và khi nào thì thuật toán dừng. 
Trong thuật toán, giá trị N khi bắt đầu tham gia vòng lặp là 10 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 thì kết thúc lặp. Ta nói cách lặp trong thuật toán trên là dạng lặp lùi. 
Nhập a 
S ←a;N←11; 
N<1? 
S ←S+N; 
N ←N-1; 
Đưa ra S 
rồi kết thúc 
B1 
B2 
B3 
B4 
B5 
B6 
Đ 
S 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Pascal dùng câu lệnh lặp for-do thể hiện dạng lặp với số lần biết trước như sau: 
Dạng lặp lùi: 
For := downto do ; 
Chú ý: ở đây có thể là câu lệnh đơn hoặc câu lệnh ghép. 
*Cách hoạt động: Các em xem SGK 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Chương trình tính tổng S=a+10+9+8+ +1 
Program Tong; 
Uses crt; 
Var S:real; 
	a,N:Integer; 
Begin 
Clrscr; 
Write(‘nhap vao a’); 
Readln(a); 
S:=a; 
For N:=10 downto 1 do 
	S:=S+N; 
Writeln(‘tong s la’,S:8:2); 
Readln 
End. 
2.Lặp với số lần biết trước và câu lệnh For-do: 
Ví dụ 1 : Cho biết kết quả khi thực hiện chương trình sau: 
Uses crt; 
Var i:byte; 
Begin 
Clrscr; 
For i:=5 downto 1 do 
Writeln(‘Xin chao cac ban!’); 
Readln; 
End. 
Xin chao cac ban! 
Xin chao cac ban! 
Xin chao cac ban! 
Xin chao cac ban! 
Xin chao cac ban! 
Kết quả chương trình sẽ in ra màn hình 5 dòng: 
Ví dụ 2 : Cho biết kết quả khi thực hiện chương trình sau: 
Uses crt; 
Var i:byte; 
Begin 
Clrscr; 
For i:=5 downto 1 do 
Writeln(i); 
Readln; 
End. 
Kết quả chương trình sẽ in ra màn hình là: 
5 
4 
3 
2 
1 

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

  • pptxbai_giang_tin_hoc_11_bai_10_cau_truc_lap_nam_hoc_2022_2023_n.pptx