I. Mục tiêu
1. Kiến thức:
- Biết cách áp dụng câu lệnh While.do vào bài toán cụ thể.
- Biết được một số dạng bài tập áp dụng cấu trúc lặp với số lần không biết trước.
2. Kỹ năng:
- Sử dụng thnh thạo cấu trc lặp với số lần chưa biết trước While.do.
3. Thái độ:
- Học sinh nghiêm túc trong giờ học.
II. Chuẩn bị:
1. Giáo viên: chuẩn bị tốt giáo án, sách giáo khoa.
2. Học sinh: sách giáo khoa, xem trước bài học “ Lặp với số lần chưa biết trước(tt)”, vở ghi bài.
4 trang |
Chia sẻ: lantls | Lượt xem: 5821 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Tiết: 56 Bài 8: lặp với số lần chưa biết trước(bài tập), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuần: 31 Ngày soạn: 01/04/2011
Tiết: 56
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(bài tập)
Mục tiêu
Kiến thức:
Biết cách áp dụng câu lệnh While..do vào bài tốn cụ thể.
Biết được một số dạng bài tập áp dụng cấu trúc lặp với số lần khơng biết trước.
Kỹ năng:
- Sử dụng thành thạo cấu trúc lặp với số lần chưa biết trước While..do.
3. Thái độ:
- Học sinh nghiêm túc trong giờ học.
Chuẩn bị:
Giáo viên: chuẩn bị tốt giáo án, sách giáo khoa.
Học sinh: sách giáo khoa, xem trước bài học “ Lặp với số lần chưa biết trước(tt)”, vở ghi bài.
Phương pháp:
- Thuyết trình, giảng giải, vấn đáp.
Tiến trình lên lớp:
Ổn định lớp.
Kiểm tra bài cũ
? Em hãy nêu lại cấu trúc của câu lệnh lặp chưa biết trước số lần lặp và giải thích rõ từng phần trong câu lệnh.
! While do
Trong đó:
Điều kiện thường là một phép so sánh.
Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
Bài mới
+ Đặt vấn đề:
Chúng ta đã được học cách sử dụng câu lệnh While..do trong bài tốn cụ thể, hơm nay chúng ta sẽ áp dụng câu lệnh này vào giải quyết các bài tập liên quan đến vịng lặp với số lần chưa biết trước.
HOẠT ĐỘNG CỦA GV VÀ HS
NỘI DUNG KIẾN THỨC
Hoạt động 1:Giải quyết bài tập 1: Viết chương trình tính tích của 10 số tự nhiên đầu tiên bằng cách sử dụng câu lệnh for..do và câu lệnh while..do.
GV: + Sử dụng câu lệnh While..do.
Ví dụ này tương tự như những ví dụ đã được học. Em hãy xác định cơng việc lặp đi lặp lại và điều kiện ngừng việc lặp trong bài tốn này là gì? 1 em lên xây dựng thuật tốn của chương trình.
HS: B1: tß1; iß1
B2: Nếu i<=10 thì tßt*I; ißi+1; quay lại bước 2, ngược lại sang bước 3.
B3: In kết quả ra màn hình.
GV: Nhận xét. Cho học sinh lên bảng viết hồn chỉnh chương trình.
HS: var t,i: integer;
Begin
T:=1; i:=1;
While i<=10 do
Begin
T:=t*i;
I:=i+1;
End;
Writeln(‘Tích của 10 so tu nhien dau tien là:’,t);
Readln
End.
GV: Nhận xét và cho học sinh ghi bài vào vở.
GV: + Sử dụng câu lệnh for..do
Hãy viết câu lệnh tính tích t của 10 số tự nhiên đầu tiên.
HS: for i:=1 to 10 do t:=t*I;
GV: Nhận xét và gọi 1 học sinh lên bảng viết lại chương trình hồn chỉnh.
Hoạt động 2: Giải quyết bài tập 2: Viết chương trình kiểm tra số n được nhập từ bàn phím cĩ phải là số nguyên tố hay khơng?
GV: Thế nào là số nguyên tố?
HS: Số nguyên tố là số chỉ chia hết cho 1 và chính nĩ.
GV: nhận xét. Số 3 cĩ phải là số nguyên khơng?
HS: Phải vì số 3 chỉ chia hết cho 1 và 3.
GV: Số 6 cĩ phải là số nguyên tố khơng?
HS: khơng phải là số nguyên tố vì số 6 chia hết cho 1 và 6, ngồi ra nĩ cịn chia hết cho 2 và 3.
Trong tất cả các số tự nhiên cĩ số nào khơng chia hết cho 1 khơng?
HS: Khơng cĩ số nào khơng chia hết cho 1.
GV: Vậy cơng việc của cơ bây giờ là đi kiểm tra xem số tự nhiên n chỉ chia hết cho chính nĩ hay nĩ cịn chia hết cho số nào nữa.
GV: Trong một phép chia muốn biết số bị chia n chia hết cho số chia m hay khơng ta căn cứ vào đâu để xác định? (thương số hay số dư?).
HS: Dựa vào số dư để xác định, nếu số dư bằng khơng thì số n chia hết cho số chia m, ngược lại số dư khác 0 thì số n khơng chia hết cho số chia m (nĩi cách khác số n là số khơng chia hết).
GV: Trong Pascal muốn thực hiện phép chia chỉ lấy kết quả phần dư chúng ta sử dụng kí hiệu nào?
HS: mod.
GV: Muốn lấy phần dư của phép chia (n chia i) ta phải viết câu lệnh như thế nào?
HS: n mod i(số dư).
GV: Để kiểm tra số n chỉ chia hết cho chính nĩ hay cịn chia hết cho số nào khác chúng ta phải làm như thế nào để kiểm tra?
HS: Thực hiện phép chia n lần lượt với các số tự nhiên từ 2 đến n. Nếu n chia hết cho bất kì số tự nhiên nào trước nĩ thì ta kết luận n khơng phải số nguyên tố.
GV: Ta mượn thêm biến I thể hiện cho các số tự nhiên từ 2 đến n, I cĩ các giá trị i=2, 3, 4,…. Và cơ thực hiện phép chia lấy dư (n chia I), sau đĩ cơ kiểm tra số dư với điều kiện: số dư khác khơng hay bằng 0. Nếu số dư khác 0 cơ tiếp tục tăng I lên 1 đơn vị và thực hiện phép chia lấy dư của n với số I mới này.
GV: Em hãy xác định cơng việc lặp và điều kiện lặp trong trường hợp này.
HS: Cơng việc lặp là tăng I lên, điều kiện ngưng việc lặp là số dư của phép chia bằng 0.
GV: Chúng ta sẽ dùng câu lệnh nào để thực hiện việc kiểm tra này?
HS: While..do.
GV: Một em hãy lên bảng và viết cho cơ câu lệnh thực hiện việc kiểm tra này.
HS: While (n mod i) 0 do i:=i+1;
GV: nhận xét. Sau khi thực hiện kiểm tra số n chia hết cho số nào trước nĩ hay khơng chúng ta sẽ in ra kết luận cuối cùng bằng cách so sánh số n và số I, nếu n = I thì in ra kết luận n chính là số nguyên tố, ngược lại in kết luận n khơng phải số nguyên tố.
GV: Muốn thực hiện được lệnh điều kiện này chúng ta phải sử dụng cấu trúc câu lệnh nào? Em hãy cho biết cấu trúc của câu lệnh.
HS: if then else
GV: Trong bài tốn này điều kiện và câu lệnh 1, câu lệnh 2 của chúng ta là gì? Các em hãy viết cho cơ câu lệnh điều kiện để in ra kết luận của bài tốn.
HS: điều kiện n=I, câu lệnh 1 là write(n, ‘ là so nguyen to’) câu lệnh 2 là: write(n, ‘ Khong la so nguyen to’);
If n=I then write(n, ‘ là so nguyen to’) else write(n, ‘ Khong la so nguyen to’);
GV: nhận xét. Cơ đã hướng dẫn các em viết những câu lệnh cần thiết và quan trọng để giải quyết bài tốn này. 1 em hãy lên bảng và viết lại hồn chỉnh chương trình này.
HS: thực hiện viết lại chương trình.
Bài tập 1: Viết chương trình tính tích của 10 số tự nhiên đầu tiên bằng cách sử dụng câu lệnh for..do và câu lệnh while..do.
Bài giải: + Sử dụng câu lệnh While..do.
var t,i: integer;
Begin
T:=1; i:=1;
While i<=10 do
Begin
T:=t*i;
I:=i+1;
End;
Writeln(‘Tích của 10 so tu nhien dau tien là:’,t);
Readln
End.
+ Sử dụng câu lệnh for..do
var t, i: integer;
Begin
For i:=1 to 10 do t:=t*I;
Writeln(‘Tich cua 10 so tu nhien dau tien là:’,t);
Readln
End.
Bài tập 2: Viết chương trình kiểm tra số n được nhập từ bàn phím cĩ phải là số nguyên tố hay khơng?
Bài giải:
Var n, i: integer;
Begin
Write(‘ Nhap so n can kiem tra: ‘);
Readln(n);
If n<=1 then write(n, ‘khong la so nguyen to’)
Else
begin
I:=2;
While (n mod i) 0 do i:=i+1;
If n=I then write(n, ‘ là so nguyen to’) else write(n, ‘ Khong la so nguyen to’);
End;
Readln;
End.
Củng Cố:
Hướng dẫn về nhà:
Xem lại các ví dụ và bài tập đã làm. Làm thêm các bài tập trong sách giáo khoa trang 71.
Rút kinh nghiệm
File đính kèm:
- Lap voi so lan chua biet truoc (bai tap).doc