- Học sinh biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần lặp 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 cho đến khi một điều kiện nào đó được thỏa mãn[r]
(1)Tuần 24 Ngày soạn: 16/03/2020
Tiết 45 Ngày dạy: 18/03/2020
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I MỤC TIÊU BÀI HỌC
1 Kiến thức
- 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 ngôn ngữ lập trình
- 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 để dẫn máy tính thực lặp lặp lại cơng việc đến điều kiện thoả mãn
-Hiểu hoạt động câu lệnh lặp với số lần chưa biết trước while…do Pascal 2 Kĩ
- Hiểu hoạt động câu lệnh lặp với số lần chưa biết trước 3 Thái độ:
- Nghiêm túc học tập, có tinh thần học hỏi, sáng tạo 4 Năng lực hướng tới:
- Năng lực tự học
- Năng lực giải vấn đề
II CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC Giáo viên: Giáo án, sách giáo khoa
Học sinh: Đọc trước nhà III TIẾN TRÌNH GIỜ HỌC
Tổ chức lớp: (1 phút) Ổn định, kiểm diện Kiểm tra cũ: (3 phút)
Câu 1: Hãy nêu cú pháp, ý nghĩa câu lệnh For…do
Câu 2: Hãy nêu cú pháp, ý nghĩa cho ví dụ câu lệnh điều kiện dạng thiếu If…then Bài mới:
HOẠT ĐỘNG Lệnh lặp với số lần chưa biết trước: (35 phút) (1) Mục tiêu:
- 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 ngơn ngữ lập trình
- 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 để dẫn máy tính thực lặp lặp lại công việc đến điều kiện thoả mãn
-Hiểu hoạt động câu lệnh lặp với số lần chưa biết trước while…do Pascal (2) Phương pháp/Kĩ thuật: phát giải vấn đề
(3) Hình thức dạy học: thảo luận nhóm, tự học (4) Phương tiện dạy học: máy chiếu, bảng phụ (5) Sản phẩm:
- Nêu cú pháp, hoạt động cho ví dụ câu lệnh While
- Viết chương trình có sử dụng câu lệnh lặp với số lần biết trước số tình đơn giản Hoạt động giáo viên Hoạt động học sinh Nội dung ghi bảng Đặt vấn đề: Trong sống
hằng ngày, có nhiều hoạt động thực lặp lặp lại nhiều lần Em suy nghĩ trả lời câu hỏi sau:
o Hàng ngày, có hoạt động mà em thường thực lặp lại với số lần xác định trước?
- Gọi học sinh lên trình bày - Yêu cầu nhóm khác nhận
xét
- Giáo viên nhận xét chốt ý Giáo viên yêu cầu học sinh nghiên cứu VD1/sgk/63 thảo luận nhóm hồn thành PHT phút, cử đại diện nhóm lên trình bày giáo viên u cầu
Thảo luận nhóm: hoạt động lặp lại với số lần xác định trước
- Học đến thuộc bài, nhặt rau xong,…
Nhận xét Chú ý
HS nghiên cứu sgk thảo luận nhóm vào điền vào phiếu học tập
Câu trả lời mong muốn GV Input: Các số tự nhiên đầu
(2)- Điều kiện để kết thúc hoạt động? - GV: lưu ý để viết chương trình dẫn máy tính thực hoạt động lặp mà chưa xác định trước số lần lặp, ta sử dụng câu lệnh có dạng lặp với số lần chưa xác định
Yêu cầu học sinh thảo luận nhóm dùng bảng phụ theo phương pháp công đoạn nghiên cứu phần SGK/63 cho biết:
Nhóm : Nêu cú pháp câu lệnh lặp với số lần chưa biết trước
Nhóm : hỉ thành phần cú pháp
Nhóm : Nêu ý nghĩa hoạt động câu lệnh
Nhóm : ho ví dụ lệnh đơn, gh p
Yêu cầu nhóm trao đổi bảng phụ có nhận xét
GV yêu cầu nhóm thảo luận viết chương trình tốn vd1/sgk vào bảng phụ
Yêu cầu nhóm treo bảng phụ
tiên , ,…n
Output: Cộng số tự nhiên để tổng nhỏ lớn 1000
Mơ tả thuật tốn: Bước 1: S0, n0
Bước 2: Nếu S<=1000 chuyển tới bước ; Ngược lại chuyển tới bước
Bước 3: nn+1; SS+n quay lại bước
Bước 4: In kết quả: S n số tự nhiên nhỏ soa cho S>1000 Kết thúc thuật toán Điều kiện để kết thúc hoạt động: S>1000
HS thảo luận nhóm trả lời vào bảng phụ
Trao đổi bảng phụ, trình bày, bổ sung hạn chế
Câu trả lời mong muốn GV a Cú pháp:
While<điềukiện>do<câulệnh>; b Trong đó:
While…do: t khóa Điều kiện: phép so sán + Câu lệnh câu lệnh đơn câu lệnh ghép
c Hoạt động:
B1: Kiểm tra điều kiện
B2: Nếu điều kiện SAI, câu lệnh bị bỏ qua việc thực lệnh lặp kết thúc Nếu điều kiện đúng, thực câu lệnh quay lại B1
d Ví dụ:
VD1: While a<=b a:=a+1; VD2:
While S<=10
begin n:=n-1; S:=S+n end;
HS thảo luận nhóm trả lời vào bảng phụ Trao đổi bảng phụ, trình bày, bổ sung hạn chế
Câu trả lời mong muốn GV Program Tong;
Var S,n:integer; Begin
S:=0;n:=0;
While S<=1000 begin n:=n+1; S:=S+n; end;
Writeln ‘so tu nhien nho nhat
a Cú pháp:
While<điềukiện>do<câulệnh >;
b Trong đó:
While…do: t khóa Điều kiện: phép so sán
+ Câu lệnh câu lệnh đơn câu lệnh ghép c Hoạt động:
B1: Kiểm tra điều kiện B2: Nếu điều kiện SAI, câu lệnh bị bỏ qua việc thực lệnh lặp kết thúc Nếu điều kiện đúng, thực câu lệnh quay lại B1
d Ví dụ:
VD1: While a<=b do a:=a+1;
VD2:
While S<=10
begin n:=n-1; S:=S+n end;
e Vận dụng: Program Tong; Var S,n:integer; Begin
S:=0;n:=0;
While S<=1000 begin n:=n+1; S:=S+n; end;
(3)GV nhận xét GV ý:
* Trong vòng lặp WHILE DO: - Nếu lần kiểm tra đầu tiên, mà kết SAI câu lệnh trong vịng lặp sẽ không thực lần
- Số lần kiểm tra số lần lặp
- Tùy theo điều kiện mà viết câu lệnh vòng lặp cho phù hợp
de S> 000la’, n);
Writeln ‘Tong nho nhat > 000la’, S);
Readln; End HS ý
nhat de S> 000la’, n);
Writeln ‘Tong nho nhat > 000la’, S);
Readln; End
Củng cố: (5 phút)
- Gọi HS lên viết cấu trúc nêu cách thực câu lệnh While…do - Làm câu trắc nghiệm sau:
Câu 1: Đoạn lệnh sau cho kết gì? S:=1; While s < 10 Begin writeln(s); s:=s+1; end; a In số t đến 9;
b In số t đến 10; c In số 1;
d In số 10
Câu 2: Hãy cho đoạn lệnh lặp câu lệnh While để tính tổng S= 1+2+ +10? a S:=0; while i<10 S:=S+i;
b S:=0; i:=0; while i<11 begin S:=S+i; i:=i+1; end; c S:=0; i:=1; while i S:=S+i; i:=i+1;
d S:=0; i:=0; while i<=10 begin S:=S+i; i:=i+1; end; Hướng dẫn nhà: (1 phút)
- Học sinh nắm kiến thức cú pháp, cách thực câu lệnh lặp - Làm tập 3,4 sgk/ 66
- Đọc trước phần lại Phụ lục
PHIẾU HỌC TẬP
Lớp: Nhóm: Phiếu 1: Em điền vào dấu … để thuật toán
* Xác định toán:
Input: Output: * Mô tả thuật toán:
Bước 1: S…………, n………
Bước 2: Nếu ……… chuyển tới ………; Ngược lại chuyển tới ……… Bước 3: n……….; S……… quay lại ………
(4)Tuần 24 Ngày soạn: 16/03/2020
Tiết 46 Ngày dạy: 18/03/2020
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) I MỤC TIÊU BÀI HỌC:
1 Kiến thức:
- Học sinh biết ngơn ngữ lập trình dùng cấu trúc lặp với số lần lặp chưa biết trước để dẫn máy tính thực lặp lặp lại công việc điều kiện thỏa mãn
- Hiểu hoạt động câu lệnh lặp với số lần chưa biết trước While pascal 2 Kĩ năng:
- Rèn luyện kĩ sử dụng câu lệnh lặp không xác định Pascal 3 Thái độ:
- Nghiêm túc học tập, có tinh thần học hỏi, sáng tạo 4 Năng lực hướng tới:
- Năng lực tự học
- Năng lực giải vấn đề
II CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC: Giáo viên: Giáo án, sách giáo khoa
Học sinh: Đọc trước nhà III TIẾN TRÌNH GIỜ HỌC:
Tổ chức lớp: (1 phút) Ổn định, kiểm diện Kiểm tra cũ: (2 phút)
- Nêu cấu trúc ý nghĩa câu lệnh lặp While…do - Tìm lỗi sai câu lệnh sau?
While i:=10 x:=x+1; While i=10 x=x+1; While i=10; x:=x+1; Bài mới:
HOẠT ĐỘNG Tìm hiểu ví dụ lệnh lặp với số chưa biết trước (36 phút)
(1) Mục tiêu: Biết cú pháp hoạt động câu lệnh lặp với số lần trước (2) Phương pháp/Kĩ thuật: Phát giải vấn đề
(3) Hình thức dạy học: Thảo luận nhóm, tự học (4) Phương tiện dạy học: Máy chiếu, bảng phụ (5) Sản phẩm:
- Phát đoạn chương trình sử dụng cú pháp While do, kết thực câu lệnh While
Hoạt động GV Hoạt động HS Nội dung ghi bảng
Giáo viên yêu cầu học sinh thảo luận nhóm khoảng phút, ghi vào giấy trả lời câu hỏi cử đại diện nhóm lên trình bày giáo viên yêu cầu
Đặt vấn đề: Đọc VD2/SGK/ 63: Trả lời câu hỏi sau:
+ Viết thuật toán tốn trên; Gọi học sinh lên trình bày
u cầu nhóm khác nhận xét Giáo viên nhận xét chốt ý
Giao nhiệm vụ: Từ thuật toán trên, thảo luận nhóm viết chương trình thời gian phút
Gọi học sinh lên trình bày u cầu nhóm khác nhận xét Giáo viên nhận xét chốt ý => Nhận xét
Viết thuật toán
Câu trả lời mong muốn GV:
B1: S 0, n
B2: Nếu S1000, S S + n; ngược lại, chuyển tới bước B3: n n + quay lại bước
B4: In kết quả: S n số tự nhiên nhỏ cho S > 1000 Kết thúc thuật tốn
2 Ví dụ lệnh lặp với số lần chưa biết trước
(5)GV: Phân tích chương trình để học sinh hiểu câu lệnh while…do Cho HS xem chương trình chạy máy
Đặt vấn đề: Trong thực tế có nhiều tốn ta sử dụng câu lệnh lặp khác để viết chương trình tốn mà cho kết quả, xét ví dụ 4/ 63/ SGK
Giao nhiệm vụ: Đọc ví dụ 4/ SGK/63, em cho biết cách khai báo toán Giáo viên yêu cầu học sinh lên bảng trình bày khai báo kiểu liệu VD4
Viết chương trình cách sử dụng câu lệnh lặp với số lần biết trước for…do Gọi học sinh lên trình bày
u cầu nhóm khác nhận xét Giáo viên nhận xét chốt ý => Nhận xét
Ngoài cách sử dụng câu lệnh lặp với số lần biết trước for…do, em sử dụng câu lệnh lặp while…do để viết chương trình
Gọi học sinh lên trình bày Yêu cầu HS khác nhận xét Giáo viên nhận xét chốt ý => Nhận xét
GV: Chạy tay (cả hai chương trình cho học sinh xem
So sánh kết chạy hai chương trình GV: Ví dụ cho thấy có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do
Yêu cầu học sinh làm phiếu học tập
Viết chương trình
Câu trả lời mong muốn GV:
Var S, n: integer; Begin
S: = 0; n: = 1; While S<=1000 Begin
S:= S + n; n:= n+ end; Writeln ‘ so n nho nhat de tong > 000 la ’, n – 1); Writeln ‘ tong dau tien > 1000 la ’, S ;
Readln End Lắng nghe Quan sát
Đọc SGK cho biết cách khai báo biến kiểu liệu ví dụ
Học sinh quan sát, tìm hiểu, thảo luận với bạn bàn để khai báo biến kiểu liệu
Trình bày theo định, giải thích khai báo sai
Bổ sung ý kiến bạn Viết lên bảng theo định giáo viên
Nhận xét, bổ sung làm bạn
Suy nghĩ, trả lời
Thực theo yêu cầu Thảo luận theo bàn hồn thành chương trình
Viết chương trình
Câu trả lời mong muốn GV:
Var i: integer; T: Real; Begin T: = 0;
For i: =1 to 100 T:= T + 1/ i; Writeln( T); Readln End Suy nghĩ
Câu trả lời mong muốn GV:
Var i: integer;
(6)T: Real; Begin T: = 0; i:=1; while i<=100 begin
T:= T + 1/ i; i:=i+1 end; Writeln( T);
Readln End
Chú ý quan sát tự chạy tay lại
Hai kết
Củng cố (5 phút): Giáo viên đặt câu hỏi, học sinh trả lời, giáo viên tóm tắt lại nội dung: - Viết cú pháp lệnh lặp với số lần chưa biết trước ?
- Nêu điều kiện cách thực
- Tìm hiểu thêm lặp vô hạn lần – Lỗi lặp cần tránh/ SGK/ 64 Hướng dẫn nhà: (1 phút)
- Học sinh nắm kiến thức cú pháp lặp với số lần chưa biết trước - Ôn lại cách tính số trung bình cộng
- Đọc trước thực hành 6: Sử dụng lệnh lặp While…do Phụ lục
PHIẾU HỌC TẬP
Họ tên: Lớp: Câu 1: Cho biết kết thực đoạn lệnh sau:
S:=1; While s < 10 Begin writeln(s); s:=s+1; end; a In số t đến 9;
b In số t đến 10; c In số 1;
d In số 10
Câu 2: Hãy cho đoạn lệnh lặp câu lệnh While để tính tổng S= 1+2+ +10? a S:=0; while i<10 S:=S+i;
b S:=0; i:=0; while i<11 begin S:=S+i; i:=i+1; end; c S:=0; i:=1; while i S:=S+i; i:=i+1;
d S:=0; i:=0; while i<=10 begin S:=S+i; i:=i+1; end;
Câu 3: Nếu S: = 0, i := Sau thực kết S bao nhiêu: While i<=5
Begin i:=i+1; S:=S+i; End; Writeln('Ket qua la :',S);
a b 10 c 14 d
Câu 4: Nếu S:=10, i:=0 Sau thực câu lệnh kết S bao nhiêu: While S>5
begin i:=i+1; S:=S-i; end; writeln(S);