Tải bản đầy đủ (.pdf) (6 trang)

GIÁO ÁN BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC TIN 8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (785.96 KB, 6 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Tuần 24 </b> <b>Ngày soạn: 16/03/2020 </b>


<b>Tiết 45 </b> <b>Ngày dạy: 18/03/2020 </b>


<b>BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC </b>


<b>I. MỤC TIÊU BÀI HỌC </b>


<i><b>1. Kiến thức </b></i>


- 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


- 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 với số lần chưa biết trước while…do trong Pascal.
<i><b>2. Kĩ năng </b></i>


- Hiểu được hoạt động của câu lệnh lặp với số lần chưa biết trước.
<i><b>3. Thái độ: </b></i> <i> </i>


- Nghiêm túc trong học tập, có tinh thần học hỏi, sáng tạo.
<i><b>4. Năng lực hướng tới: </b></i>


<i><b>- Năng lực tự học. </b></i>


- Năng lực giải quyết vấn đề.


<b>II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC </b>
 Giáo viên: Giáo án, sách giáo khoa


 Học sinh: Đọc trước bài ở nhà


<b>III. TIẾN TRÌNH GIỜ HỌC </b>


 Tổ chức lớp: (1 phút) Ổn định, kiểm diện
 Kiểm tra bài cũ: (3 phút)


<b>Câu 1: Hãy nêu cú pháp, ý nghĩa câu lệnh For…do </b>


<b>Câu 2: Hãy nêu cú pháp, ý nghĩa và cho ví dụ về câu lệnh điều kiện dạng thiếu If…then </b>
 Bài mới:


 HOẠT ĐỘNG 1. Lệnh lặp với số lần chưa biết trước: (35 phút).
<i>(1) Mục tiêu: </i>


- 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


- 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 với số lần chưa biết trước while…do trong Pascal.
<i>(2) Phương pháp/Kĩ thuật: phát hiện và giải quyết vấn đề. </i>


<i>(3) Hình thức dạy học: thảo luận nhóm, tự học. </i>
<i>(4) Phương tiện dạy học: máy chiếu, bảng phụ. </i>
<i>(5) Sản phẩm: </i>


- Nêu được cú pháp, hoạt động và cho được ví dụ về câu lệnh While...do


- 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 trong một số tình huống đơn giản.
<b>Hoạt động của giáo viên </b> <b>Hoạt động của học sinh </b> <b>Nội dung ghi bảng </b>
<b>Đặt vấn đề: Trong cuộc sống </b>



hằng ngày, có nhiều hoạt động
được thực hiện lặp đi lặp lại nhiều
lần. Em hãy suy nghĩ và trả lời câu
hỏi sau:


o Hàng ngày, có những hoạt động
nào mà em thường thực hiện lặp
lại với một số lần không thể xác
định trước?


<b>- </b> Gọi học sinh lên trình bày.
<b>- </b> Yêu cầu các nhóm khác nhận


xét.


<b>- </b> Giáo viên nhận xét và chốt ý
Giáo viên yêu cầu học sinh nghiên
cứu VD1/sgk/63 và thảo luận
nhóm hồn thành PHT trong 3
phút, cử đại diện nhóm lên trình
bày khi giáo viên yêu cầu


Thảo luận nhóm: các hoạt động
lặp lại với số lần không thể xác
định trước.


<b>- </b> Học bài đến khi thuộc bài,
nhặt rau cho đến khi 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.


<i>Câu trả lời mong muốn của GV </i>
Input: Các số tự nhiên đầu


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

- Điều kiện để kết thúc hoạt động?
- GV: lưu ý để viết chương trình
chỉ dẫn máy tính thực hiện các
hoạt động lặp mà chưa xác định
trước được số lần lặp, ta có thể 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 1
SGK/63 và 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ỉ ra các thành phần
trong cú pháp


Nhóm : Nêu ý nghĩa hoạt động


của câu lệnh


Nhóm : ho ví dụ lệnh đơn,
gh p


Yêu cầu các nhóm trao đổi bảng
phụ có nhận xét


GV yêu cầu các nhóm thảo luận và
viết chương trình bài tốn ở
vd1/sgk vào bảng phụ.


Yêu cầu các nhóm treo bảng phụ


tiên , ,…n


Output: Cộng bao nhiêu số tự
nhiên để tổng nhỏ nhất lớn hơn
1000


Mô tả thuật toán:
Bước 1: S0, n0


Bước 2: Nếu S<=1000 thì
chuyển tới bước ; Ngược lại
chuyển tới bước 4


Bước 3: nn+1; SS+n và
quay lại bước 2



Bước 4: In kết quả: S và n là số
tự nhiên nhỏ nhất 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 và trả lời
vào bảng phụ


Trao đổi bảng phụ, trình bày, bổ
sung các hạn chế


<i>Câu trả lời mong muốn của GV </i>
a. Cú pháp:


While<điềukiện>do<câulệnh>;
b. Trong đó:


While…do: là các t khóa.
Điều kiện: là một phép so sán
+ Câu lệnh có thể là câu lệnh
đơn hoặc 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
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 B1.


d. Ví dụ:


VD1: While a<=b do a:=a+1;
VD2:


While S<=10 do


begin n:=n-1; S:=S+n
end;


HS thảo luận nhóm và trả lời
vào bảng phụ. Trao đổi bảng
phụ, trình bày, bổ sung các hạn
chế


<i>Câu trả lời mong muốn của GV </i>
Program Tong;


Var S,n:integer;
Begin


S:=0;n:=0;


While S<=1000 do
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: là các t khóa.
Điều kiện: là một phép so
sán


+ Câu lệnh có thể là câu lệnh
đơn hoặc 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 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 B1.


d. Ví dụ:


VD1: <b>While </b> a<=b <b>do </b>
a:=a+1;


VD2:



While S<=10 do


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 do
begin n:=n+1; S:=S+n;
end;


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

GV nhận xét
GV chú ý:


* Trong vòng lặp WHILE . . . DO:
- Nếu ngay lần kiểm tra đầu tiên,
mà kết quả là SAI thì các câu lệnh
<b>trong vịng lặp </b>sẽ <b>khơng được </b>
<b>thực hiện lần nào. </b>


- Số lần kiểm tra chính là số lần
lặp.


- <b>Tùy theo điều kiện mà viết các </b>


<b>câu lệnh trong vòng lặp cho phù </b>
hợp.


de S> 000la’, n);


Writeln ‘Tong nho nhat
> 000la’, S);


Readln;
End.
HS chú ý


nhat de S> 000la’, n);


Writeln ‘Tong nho nhat
> 000la’, S);


Readln;
End.


 Củng cố: (5 phút)


- Gọi một HS lên viết cấu trúc và nêu cách thực hiện câu lệnh While…do.
- Làm các câu trắc nghiệm sau:


<b>Câu 1: Đoạn lệnh sau đây cho kết quả là gì? </b>
S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end;
a. In ra các số t đến 9;



b. In ra các số t đến 10;
c. In ra số 1;


d. In ra số 10.


<b>Câu 2: Hãy cho biết đâu là đoạn lệnh lặp bằng câu lệnh While...do để tính tổng S= 1+2+...+10? </b>
a. S:=0; while i<10 do S:=S+i;


b. S:=0; i:=0; while i<11 do begin S:=S+i; i:=i+1; end;
c. S:=0; i:=1; while i do S:=S+i; i:=i+1;


d. S:=0; i:=0; while i<=10 do begin S:=S+i; i:=i+1; end;
 Hướng dẫn về nhà: (1 phút)


- Học sinh nắm các kiến thức về cú pháp, cách thực hiện câu lệnh lặp.
- Làm bài tập 3,4 sgk/ 66


- Đọc trước phần còn lại của bài.
<b>Phụ lục </b>


<i><b>PHIẾU HỌC TẬP </b></i>


Lớp: ...
Nhóm: ...
<b>Phiếu 1: Em hãy điền vào dấu … để được thuật toán </b>


<b>* Xác định bài toán: </b>


Input: ...
Output: ...


<b>* Mô tả thuật toán: </b>


Bước 1: S…………, n………


Bước 2: Nếu ……….. thì chuyển tới ………; Ngược lại chuyển tới ……….
Bước 3: n……….; S………..và quay lại ………


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>Tuần 24 </b> <b>Ngày soạn: 16/03/2020 </b>


<b>Tiết 46 </b> <b>Ngày dạy: 18/03/2020 </b>


<b>BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) </b>


<b>I. MỤC TIÊU BÀI HỌC: </b>


<i><b>1. Kiến thức: </b></i>


- 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.


- Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước While ... do trong pascal.
<i><b>2. Kĩ năng: </b></i>


- Rèn luyện kĩ năng sử dụng các câu lệnh lặp không xác định trong Pascal.
<i><b>3. Thái độ: </b></i>


- Nghiêm túc trong học tập, có tinh thần học hỏi, sáng tạo.
<i><b>4. Năng lực hướng tới: </b></i>


<i><b>- Năng lực tự học. </b></i>



- Năng lực giải quyết vấn đề.


<b>II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC: </b>
 Giáo viên: Giáo án, sách giáo khoa


 Học sinh: Đọc trước bài ở nhà
<b>III. TIẾN TRÌNH GIỜ HỌC: </b>


 Tổ chức lớp: (1 phút) Ổn định, kiểm diện
 Kiểm tra bài cũ: (2 phút)


- Nêu cấu trúc và ý nghĩa của câu lệnh lặp While…do.
- Tìm lỗi sai trong các câu lệnh sau?


While i:=10 do x:=x+1;
While i=10 do x=x+1;
While i=10; do x:=x+1;
 Bài mới:


 HOẠT ĐỘNG 1. Tìm hiểu ví dụ về lệnh lặp với số chưa biết trước (36 phút).


<i>(1) Mục tiêu: Biết được cú pháp và hoạt động của câu lệnh lặp với số lần không biết trước. </i>
<i>(2) Phương pháp/Kĩ thuật: Phát hiện và giải quyết vấn đề. </i>


<i>(3) Hình thức dạy học: Thảo luận nhóm, tự học. </i>
<i>(4) Phương tiện dạy học: Máy chiếu, bảng phụ. </i>
<i>(5) Sản phẩm: </i>


- Phát hiện đoạn chương trình nào sử dụng cú pháp While...do, kết quả khi thực hiện câu lệnh While...do.



<b>Hoạt động của GV </b> <b>Hoạt động của HS </b> <b>Nội dung ghi bảng </b>


Giáo viên yêu cầu học sinh thảo luận nhóm
khoảng 3 phút, ghi vào giấy trả lời câu hỏi
và cử đại diện nhóm lên trình bày khi được
giáo viên yêu cầu


Đặt vấn đề: Đọc VD2/SGK/ 63:
Trả lời các câu hỏi sau:


+ Viết thuật toán của bài toán trên;
Gọi học sinh lên trình bày.


Yêu cầu các nhóm khác nhận xét.
Giáo viên nhận xét và chốt ý


<i><b>Giao nhiệm vụ: Từ thuật toán ở trên, </b></i>
<i><b>thảo luận nhóm viết chương trình trong </b></i>
<i><b>thời gian 5 phút </b></i>


Gọi học sinh lên trình bày.
Yêu cầu các nhóm khác nhận xét.
Giáo viên nhận xét và chốt ý
=> Nhận xét.


Viết thuật toán


<i>Câu trả lời mong muốn của </i>
<i>GV: </i>



B1: S 0, n 1


B2: Nếu S1000, S S + n;
ngược lại, chuyển tới bước 4.
B3: n n + 1 và quay lại
bước 2


B4: 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.


<b>2. Ví dụ về lệnh lặp với số </b>
<b>lần chưa biết trước. </b>


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<i><b>GV: Phân tích chương trình để học sinh </b></i>
hiểu hơn câu lệnh while…do. Cho HS xem
chương trình chạy trên máy.


<b>Đặt vấn đề: Trong thực tế có nhiều bài </b>
tốn ta có thể sử dụng các câu lệnh lặp
khác nhau để viết chương trình của một bài
tốn mà vẫn cho cùng một kết quả, chúng
ta cùng xét ví dụ 4/ 63/ SGK.


<b>Giao nhiệm vụ: Đọc ví dụ 4/ SGK/63, các </b>
em cho biết cách khai báo của bài toán trê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 dữ liệu của VD4.


Viết chương trình bằng 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 các nhóm khác nhận xét.
Giáo viên nhận xét và 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 hãy sử dụng câu
lệnh lặp while…do để viết chương trình
trên


Gọi học sinh lên trình bày.
Yêu cầu các HS khác nhận xét.
Giáo viên nhận xét và chốt ý
=> Nhận xét.


<i><b>GV: Chạy tay (cả hai chương trình cho </b></i>
học sinh xem


So sánh kết quả khi chạy hai chương trình
<i><b>GV: Ví dụ này cho thấy rằng chúng ta có </b></i>
thể sử dụng câu lệnh <b>while…do thay cho </b>
câu lệnh for…do


<b>Yêu cầu học sinh làm phiếu học tập </b>


Viết chương trình


<i>Câu trả lời mong muốn của </i>


<i>GV: </i>


Var S, n: integer;
Begin


S: = 0; n: = 1;
While S<=1000 do
Begin


S:= S + n; n:= n+ 1 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 và cho biết cách
khai báo biến cùng kiểu dữ
liệu của ví dụ 4


Học sinh quan sát, tìm hiểu,
thảo luận với bạn cùng bàn để
khai báo biến và kiểu dữ liệu
đúng


Trình bày theo chỉ định, giải


thích khai báo sai


Bổ sung ý kiến của bạn
Viết lên bảng theo chỉ định
của giáo viên


Nhận xét, bổ sung bài làm
của bạn


Suy nghĩ, trả lời


Thực hiện 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


<i>Câu trả lời mong muốn của </i>
<i>GV: </i>


Var i: integer;
T: Real;
Begin
T: = 0;


For i: =1 to 100 do
T:= T + 1/ i;
Writeln( T);
Readln
End.


Suy nghĩ


<i>Câu trả lời mong muốn của </i>
<i>GV: </i>


Var i: integer;


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

T: Real;
Begin
T: = 0; i:=1;
while i<=100 do
begin


T:= T + 1/ i; i:=i+1 end;
Writeln( T);


Readln
End.


Chú ý quan sát và tự chạy tay
lại


Hai kết quả bằng nhau


 Củng cố (5 phút): Giáo viên đặt các 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 và cách thực hiện.


- Tìm hiểu thêm về lặp vô hạn lần – Lỗi lặp cần tránh/ SGK/ 64.


 Hướng dẫn về nhà: (1 phút)


- Học sinh nắm các kiến thức về 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 bài thực hành 6: Sử dụng lệnh lặp While…do.
<b>Phụ lục </b>


<i><b>PHIẾU HỌC TẬP </b></i>


Họ tên: ...
Lớp: ...
<b>Câu 1: Cho biết kết quả khi thực hiện đoạn lệnh sau: </b>


S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end;
a. In ra các số t đến 9;


b. In ra các số t đến 10;
c. In ra số 1;


d. In ra số 10.


<b>Câu 2: Hãy cho biết đâu là đoạn lệnh lặp bằng câu lệnh While...do để tính tổng S= 1+2+...+10? </b>
a. S:=0; while i<10 do S:=S+i;


b. S:=0; i:=0; while i<11 do begin S:=S+i; i:=i+1; end;
c. S:=0; i:=1; while i do S:=S+i; i:=i+1;


d. S:=0; i:=0; while i<=10 do begin S:=S+i; i:=i+1; end;



<b>Câu 3: Nếu S: = 0, i := 1. Sau khi thực hiện kết quả của S là bao nhiêu: </b>
While i<=5 do


Begin i:=i+1; S:=S+i; End;
Writeln('Ket qua la :',S);


a. 4 b. 10 c. 14 d. 5


<b>Câu 4: Nếu S:=10, i:=0 Sau khi thực hiện câu lệnh kết quả của S là bao nhiêu: </b>
While S>5 do


begin i:=i+1; S:=S-i; end;
writeln(S);


</div>

<!--links-->

×