Kiến thức - Hiểu hoạt động của câu lệnh lặp với số lần biết trước for…do trong Pascal.. - Củng cố kiến thức vòng lặp với số lần biết trước và câu lệnh ghép.. - Sử dụng được câu lệnh ghép
Trang 1
-Tuần : 21
Tiết : 39+40
Ngày soạn: 09/01/2011 Ngày dạy : 10/01/2011
BÀI TẬP
I Mục tiêu
1 Kiến thức
- Hiểu hoạt động của câu lệnh lặp với số lần biết trước for…do trong Pascal
- Hiểu lệnh ghép trong Pascal
- Củng cố kiến thức vòng lặp với số lần biết trước và câu lệnh ghép
2 Kỹ Năng
- Viết được chương trình có sử dụng vòng lặp for…do
- Sử dụng được câu lệnh ghép viết một số bài toán đơn giản
- Rèn luyện đọc hiểu chương trình có sử dụng vòng lặp for…do
3 Thái độ
- Có ý thức, kỹ luật, nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
II Chuẩn bị
- GV: Soạn giáo án , SGK, máy chiếu, phòng máy…
- HS: Vở ghi, SGK, đọc trước nội dung bài học, tìm hiểu một số bài toán và chỉ
ra thuật toán
III Phương pháp
- Vấn đáp, thuyết trình, trực quan
- Đặt vấn đề, giải quyết vấn đề
IV Hoạt động dạy và học
1 Ổn định lớp tổ chức lớp
- kiểm tra sĩ số lớp
- Ổn định trật tự
2 Kiểm tra bài cũ
- Nêu cấu trúc câu lệnh lặp đơn, câu lệnh lặp ghép, có biết ý nghĩa của câu lệnh lặp
3 Bài mới
- Trong bài học trước em đã được học về câu lệnh lặp, bài học hôm nay chúng
ta làm các bài tập có sử dụng câu lệnh lặp
Trang 2
HĐ 1: Bài tập dạng
lí thuyết.
GV: Đưa ra đề bài
toán, yêu cầu học
sinh nghiên cứu theo
nhóm
GV: Nhận xét kết
quả cuối cùng
GV: Đưa bài tập 2
lên bảng, yêu cầu
một học sinh đứng
tại chỗ trả lời
GV: Kết luận kết quả
của bài 2
GV: Đưa ra đề bài
toán, yêu cầu học
sinh nghiên cứu theo
nhóm
GV: Nhận xét.
HĐ 2: Bài tập dạng
thực hành.
GV: Đưa bài tập.
GV: Ghi kết quả suy
luận của học sinh lên
bảng
Bài 1: SGK/T60 HS: Hoạt động
theo nhóm tìm câu trả lời
HS: Đại diện của
hai nhóm trình bày kết quả của nhóm
Bài 2: SGK/T60 HS: Một học
sinh đứng tại chỗ trả lời bài tập 2
một học sinh khác đứng tại chỗ nhận xét
Bài 3: SGK/T60 HS: Hoạt động
theo nhóm tìm câu trả lời
HS: Đại diện của
hai nhóm trình bày kết quả của nhóm
Bài 4: SGK/T61 HS: Suy luận kết
quả theo lí thuyết
HS: gõ chương
trình vào máy và chạy thử
HS: So sánh kết
Bài 1: SGK (T60)
Ví dụ: Các ngày trong tuần các em đều
lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà
Các em học bài thì phải đọc đi đọc lại nhiều lần cho đến khi thuộc bài
Bài 2: SGK (T60)
Câu lệnh lặp có tác dụng chỉ dẫn cho máy tính thực hiện lặp lại một câu lệnh hay một nhóm câu lệnh với một số lần nhất định
Câu lệnh lặp làm giảm nhẹ công sức của người viết chương trình
Bài 3 : SGK (T60)
Điều kiện cần kiểm tra trong câu lệnh lặp for … do là giá trị của biến đếm phải nằm trong đoạn [giá trị đầu, giá trị cuối ], nếu thoả mãn điều kiện đó thì câu lệnh sẽ được thực hiện, nếu không thoả mãn câu lệnh sẽ bị bỏ qua
Bài 4: SGK (T61)
Giá trị của j sau mỗi lần lặp sẽ được tăng thêm 2 đơn vị 2, 4, 6, 8, 10, 12
Gõ chương trình vào máy chạy thử:
Program bai_tap_4;
Uses crt;
Var i,j:integer;
Trang 3
-GV: Đưa ra đề bài
toán và yêu cầu một
học sình đứng tại vị
trí để trả lời bài tập
GV: Nhận xét kết
quả câu trả lời của 2
bạn
GV: Đưa ra bài tập.
GV: Giúp các em
hoàn thành thuật
toán
Bài 5: SGK/T61 HS: Một em
đứng tại vị trí trả lời, 1 em khác nhận xét
Bài 6: SGK/T61 HS: Làm việc
theo nhóm, sau 5 phút đại diện của
2 nhóm sẽ lên báo báo kết quả
Các nhóm khác nhận xét
End
Bài 5: SGK (T61)
Tất cả các câu lệnh đều không hợp lệ vì:
a) Giá trị đầu lớn hơn giá trị cuối
b) Giá trị đầu và giá trị cuối có kiểu là số thực không cùng kiểu với biến đếm c) Sai cấu trúc câu lệnh
d) Sai cấu trúc câu lệnh
e) Biến đếm có kiểu là kiểu số thực nên không hợp lệ
Bài 6: SGK (T 61)
Mô tả thuật toán
Bước 1: nhập n
A<-0, i<-1
Bước 2: A ← i i( 1+2) .
Bước 3: i<-i+1 Bước 4: Nếu i<=n quay về bước 2 Bước 5: Ghi kết quả A ra màn hình và
kết thúc thuật toán
4 Củng cố
- Giáo viên hệ thống lại toàn bộ nội dung bài học
- Giáo viên nhận xét tiết học, rút kinh nghiệm tiết học
5 Hướng dẫn về nhà
- Học bài theo sách giáo khoa và vở ghi, ôn lại các kiến thức chính đã học và luyện viết, làm đi làm lại nhiều lần
- Học kĩ lí thuyết, viết chương trình tính tông 100 số tự nhiên, N số tự nhiên đầu tiên
- về nhà viết chương trình pascal bài 6 SGK (T61)
- Đọc bài mới tuần sau học
Trang 4
-Bài 1 Thuật toán:
Bước 1 Nhập các số n và x
Bước 2 A ← 1, i ← 0 (A là biến lưu luỹ thừa bậc n của x)
Bước 3 i←i + 1, A ← A.x
Bước 4 Nếu i < n, quay lại bước 3.
Bước 5 Thông báo kết quả A là luỹ thừa bậc n của x và kết thúc thuật toán.
Chương trình Pascal có thể như sau:
Var n,i,x: integer; a: longint;
Begin
Write('Nhap x='); readln(x);
Write('Nhap n='); readln(n);
A:=1;
For i:=1 to n do A:=A*X;
Writeln(x,' mu ',n,' bang ',A);
End.
Bài 2 Thuật toán:
Bước 1 Nhập số n
Bước 2 A←−32768 (gán SNN có thể trong các số kiểu nguyên cho A), i ←1
Bước 3 Nhập số thứ i và gán giá trị đó vào biến A.
Bước 4 Nếu Max < A, Max ← A
Bước 5 i ←i + 1
Bước 6 Nếu i ≤ n, quay lại bước 3.
Bước 7 Thông báo kết quả Max là số lớn nhất và kết thúc thuật toán.
Chương trình Pascal có thể như sau:
Uses crt;
Var n,i,Max,A: integer;
Begin
Trang 5
-Begin
Write('Nhap so thu ',i,':'); Readln(A);
if Max<A then Max:=A
End;
Writeln('So lon nhat: ',Max);
End.
Lưu ý: Trong chương trình trên chúng ta chỉ sử dụng hai biến A và Max để giải
bài toán Một cách tự nhiên, để nhập n số chúng ta cần tới n biến Tuy nhiên, ở đây
việc xử lí các giá trị trong dãy số có thể thực hiện bằng cách chỉ cần so sánh các giá trị
đã được nhập vào, do đó chúng ta chỉ cần một biến để lưu lần lượt các giá trị nhập vào
là đủ Một cách giải quyết khác là sử dụng biến mảng (xem bài tập 6, bài 9)
Bài 3 Lời giải bài này tương tự như lời giải của bài 9 ở trên (xem thuật toán trong lời
giải bài tập 5a, bài 5) Chương trình Pascal có thể như sau:
Uses crt;
Var n,i,SoDuong,A: integer;
Begin
Clrscr;
Write('Nhap N='); Readln(n);
If n>0 then
Begin
For i:=1 to n do
Write('Nhap so thu ',i,':'); Readln(A);
If A>0 then SoDuong:=SoDuong+1 End;
Writeln('So cac so duong = ',SoDuong)
Else writeln('n phai > 0!');
End.