- Kiểm tra kiến thức về câu lệnh lặp - Rèn luyện một số kỷ năng làm bài tập. - Vận dụng làm một số bài tập cụ thể. - Áp dụng làm một số bài tập tương tự. - Tạo thái độ thích thú trong môn học.
II. Phương pháp, phương tiện.
- Phương pháp: Chủ yếu làm pháp vấn, giải thích, chứng minh. - Phương tiện: Bảng phụ các dạng bài tập, các tài liệu.
III. Các hoạt động dạy học.
Hoạt động giáo viên Hoạt động học sinh Hoạt động 1 : Ôn tập lý thuyết
- GV tổ chức ổn định lớp.
- GV yêu cầu HS ôn tập lý thuyết bài 7 bằng cách trả lời các câu hỏi sau:
- Cấu trúc lặp dùng để làm gì?
- Cấu trúc câu lệnh lặp trong ngôn ngữ Pascal có dạng như thế nào?
- Câu lệnh trên sẽ thực hiện lặp đi lặp lại bao nhiêu lần?
- Lớp trưởng báo cáo sĩ số. - HS lần lượt trả lời các câu hỏi: TL: Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp đi lặp lại nhiều lần một hoặc một nhóm các hoạt động .
TL : Có dạng như sau:
For <biến đếm> := <gtrị đầu> to <gtrị cuối> do < câu lệnh>
Trong đú :
For, to, do là các từ khóa. biến đếm là kiểu nguyên.
Gtrị đầu, gtrị cuối : là các số nguyên.
TL: số lần lặp là :
gtrị cuối - gtrị đầu +1 lần TL: Ban đầu biến đếm nhận giá trị bằng gía trị đầu, sau mỗi lần lặp
- Mỗi lần lặp giá trị biến đếm sẽ như thế nào?
- GV phát vấn từng câu hỏi yêu cầu HS trả lời lần lượt các câu hỏi
- Gọi HS khác nhận xét - GV có thể chấm điểm.
biến đếm sẽ tự động tăng thêm một đơn vị cho đếm khi bằng giá trị cuối.
- Hoạt động 2: Làm bài tập
Bài 1: Sau khi thực hiện đoạn chương trình sau, giá trị của biến j bằng bao nhiêu?
j := 0;
For i := 0 to 5 do j := j+2;
Bài 2: Các câu lệnh Pascal sau có hợp lệ không? a. For i:=100 to 1 do write(‘A’)
b. For i:=1.5 to 10.5 do write(‘A’) c. For i=1 to 10 do write(‘A’) d. For i:=1 to 10 do; write(‘A’) e. Var x : real;
Bài 3: Hãy mô tả thuật toán để tính tổng sau đây:
)2 2 ( 1 ... 5 . 3 1 4 . 2 1 3 . 1 1 + + + + = n n A
Viết chương trình tính tổng trên - GV hướng dẫn HS tự làm.
Bài 4: Viết chương trình tính tổng :
n S *....*1 4 1 * 3 1 * 2 1 * 1 = Với n là số nguyên nhập từ bàn phím. - GV hướng dẫn HS làm.
- Gọi HS lên bảng trình bày.
- HS làm bài tập:
Sau khi thực hiện đoạn chương trình trên giá trị của j là 12 vì mỗi lần lặp j tăng lên 2 đơn vị mà có 6 vòng lặp. - HS trả lời: chỉ có câu e đúng.
- HS viết thuật toán.
- HS viết chương trình : Program tinh_tich; Var n,i : integer; s: real; Begin
Write (‘nhap n =’); readln(n); S:=1; For i:=1 to n do S := S*1/i; Write (‘Tich là :’, s); Readln; End. - Hoạt động 3 : Hướng dẫn về nhà
- Bài tập về nhà : Số hoàn hảo là những số bằng tổng các ước thực của nó. Hãy viết chương trình tìm các số hoàn hảo nhỏ hơn 100.
- GV lấy ví dụ : 6=1+2+3 là các ước của nó. 6 là số hoàn hảo.
- Dặn dò HS về nhà ôn lại phần lý thuyết bài 7, 8 và phần bài tập bài 8.
- HS ghi bài tập về nhà
- Tìm hiểu thế nào là số hoàn hảo lấy ví dụ.
Tiết : 46 NS: 02/02/2010 ND: 08/02/2010 BÀI TẬP
I. Mục đích, yêu cầu.
- Kiểm tra kiến thức về câu lệnh lặp - Rèn luyện một số kỷ năng làm bài tập. - Vận dụng làm một số bài tập cụ thể. - Áp dụng làm một số bài tập tương tự. - Tạo thái độ thích thú trong môn học.
II. Phương pháp, phương tiện.
- Phương pháp: Chủ yếu làm pháp vấn, giải thích, chứng minh. - Phương tiện: Bảng phụ các dạng bài tập, các tài liệu.
III. Các hoạt động dạy học.
Hoạt động giáo viên Hoạt động học sinh Hoạt động 1 : Ôn tập lý thuyết
- GV tổ chức ổn định lớp.
- GV yêu cầu HS ôn tập lý thuyết bài 8 bằng cách trả lời các câu hỏi sau:
- Cấu trúc lặp với số lần chưa biết trước dùng trong những trương hợp nào?
- Cấu trúc câu lệnh lặp với số lần chưa biết trước trong ngôn ngữ Pascal có dạng như thế nào?
- Câu lệnh trên sẽ thực hiện lặp đi lặp lại khi nào thì dừng? - Để tránh lặp lặp vô hạn thì chúng ta phải làm gì?
- GV phát vấn từng câu hỏi yêu cầu HS trả lời lần lượt các câu hỏi
- Lớp trưởng báo cáo sĩ số.
- HS lần lượt trả lời các câu hỏi:
TL: Cấu trúc lặp với số lần chưa biết trước dùng trong trường hợp lặp đi lặp lại nhiều lần 1 công việc nhưng số lần lặp chưa biết trước.
TL : Có dạng như sau: While <điều kiện> do < câu lệnh>
Trong đó :
While , do là các từ khóa. điều kiện thường là một phép so sánh.
TL: Vòng lặp kết thúc khi điều kiện không thõa mãn.
- Gọi HS khác nhận xét. - GV cụ thể chấm điểm.
TL: tránh vòng lặp vô hạn chúng ta phải tác động vào điều kiện. làm cho điều kiện chuyển từ đúng thành sai.
- Hoạt động 2 : Bài tập
Bài 1: Hãy tìm hiểu mỗi đoạn lệnh sau đây và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu lần lặp. (bài số 4 trang 71)
Bài 2 : (số 5 trang 71) .
Bài 3: Tổng trung bình các số từ 1 đến n. Với n nhập từ bàn phím.
- GV hướng dẫn HS tự làm.
Bài 4: Viết chương trình tính tổng :
12 2 1 .... 5 1 3 1 1 + + + + + = n S Với n là số nguyên nhập từ bàn phím. - GV hướng dẫn HS làm.
- Gọi HS lên bảng trình bày.
- HS nghiên cứu làm bài tập làm bài tập: - HS trả lời: chỉ có câu e đúng. HS viết - HS viết chương trình. - HS viết chương trình : Program tinh_tong; Var n,i : integer; s: real; Begin Write (‘nhap n =’); readln(n); S:=1; For i:=1 to n do S := S+1/2i+1; Write (‘Tong là :’, s); Readln; End. - Hoạt động 3 : Hướng dẫn về nhà
- Bài tập về nhà : Số nguyên tố là những số chia hết cho 1 và chia hết cho chính nó. Hãy viết chương trình tìm các số nguyên tố nhỏ hơn 100.
- GV lấy ví dụ 3, 5, 7.
- Dặn dò HS về nhà ôn lại phần lý thuyết bài 7, 8 và phần bài tập bài 7, 8 hoàn chỉnh.
- HS ghi bài tập về nhà
- Tìm hiểu thế nào là nguyên tố lấy ví dụ.
- Ghi nhớ yêu cầu của giáo viên.
Tiết : 47 NS: 08/02/2010 ND: 09/02/2010 BÀI TẬP
I. Mục đích, yêu cầu.
- Kiểm tra kiến thức về các câu lệnh - Rèn luyện một số kỷ năng làm bài tập. - Vận dụng làm một số bài tập cụ thể. - Áp dụng làm một số bài tập tương tự. - Tạo thái độ thích thú trong môn học.
II. Phương pháp, phương tiện.
- Phương pháp: Chủ yếu làm pháp vấn, giải thích, chứng minh. - Phương tiện: Bảng phụ các dạng bài tập, các tài liệu.
III. Các hoạt động dạy học.
Hoạt động giáo viên Hoạt động học sinh HĐ 1: Làm quen với một số bài tập
GV hướng dẫn học sinh HS tự làm một số bài tập có sử dụng các câu lệnh đã học
Bài Tập 3, 4,5 SGK - GV gọi lần lượt 3 em đọc đề và 3 em làm
GV quan sát bài làm của học sinh và nhận xét Bài tập: 1, Mô tả thuật toán và viết chương trình tính biểu thức sau: nlânx x x x+ +...+ , trong đó n, x được nhập từ bàn phím, n<100 GV hướng dẫn sơ qua để học sinh làm
Gọi HS lên bảng trình bày GV theo dõi Nhận xét , đánh giá chốt lại cho điểm
2, Trong các câu lệnh lặp pascal dưới đây, câu lệnh nào sai và sai ở đâu?
a. while i:=1 do t:=10;
HS quan sát đề SGK nghiên cứu theo nhóm và thảo luận để trả lời
Đại diện các nhóm lên bảng trả lời Các HS còn lại làm vào giấy nháp để giáo viên xem
HS các nhóm thảo luận và lên bảng làm
* Thuật toán: Bước 1: nhập x, n Bước 2: A-> x; i->1 Bước 3: i->i+1;
Bước 4: Nếu i<=n; A-> x+A và quay lại bước 2, ngược lại thông báo kết quả, kết thúc thuật toán
Program tinh_can;
Var x, A:real; i, n:integer;
Begin write(' Nhap x='); readln(x); write(' Nhap nx='); readln(n);
A:= Sqrt(x);
For i:=2 to n do A:=sqrt(x+A) Writeln(gia tri can thuc la=',A:5:2); Readln;
End.
HS theo nhóm đọc và tìm hiểu đề Đại diện 4 nhóm lên bảng trả lời và giải
b. while a<b; do write(' b khong nho hơn a'); c. while l=1 do write('toi lap trinh gioi'); d. i:=1; while i<10 do sum:=sum+1; i:=i+1; e. i:=1; x:=5;
while i<=x do i:=i+1; write('gt cua i la ', i); GV ghi đề lên bảng và hướng dẫn học sinh làm theo nhóm
Gọi đại diện từng nhóm học sinh lên bảng trả lời
GV quan sát và chú ý học sinh làm sau đó nhận xét đánh giá.
3/ Đoạn lệnh sau đây: So:=1;
While so<10 do writeln(so); So:=so+1;
Sẽ cho kết quả gì? a. in ra các số từ 1 đến 9 b. in ra các số từ 1 đến 10
c. in ra vô hạn các số 1, mỗi số trên một dòng d. không phương án nào đúng
Gọi hs lên bảng làm
thích câu trả lời
Câu a sai vì thừa dấu hai chấm đầu tiên Câu b sai vì thừa dấu chấm phẩy trước từ khóa do.
Câu c sai vì vũng lặp vụ hạn do điều kiện luôn đúng (lỗi ngữ nghĩa về mặt cú pháp không đúng)
Câu d sai vì vòng lặp vô hạn do không có câu lệnh làm thay đổi biến i
Câu e sai vì vòng lặp được thực hiện, nhưng chỉ có giá trị cuối cùng của i được in ra (lỗi ngữ nghĩa). Nếu muốn in các giá trị của i thì thiếu 2 từ khóa begin và end để gộp câu lệnh cuối thành câu lệnh ghép.
HS tìm hiểu theo nhóm để trả lời
Trong đoạn chương trình thì sẽ cho kết quả câu c vì trong câu c lệnh lặp điều kiện luôn luôn đúng. Trong đoạn ct có câu lệnh tăng gt của i lên 1 đơn vị nhưng câu lệnh này không được thực hiện vì nằm ngoài vòng lặp, vòng lặp thực hiện vô tận. Hai câu lệnh cuối cùng cần được gộp thành 1câu lệnh ghép.
HĐ 2: Tổng kết, dặn dò
GV tổng kết lại kiến thức, phương pháp làm tất cả các bài tập đã học qua
Nhận xét đánh giá việc tiếp thu bài của học sinh, nêu những mặt được và những mặt còn hạn chế khi làm bài tập của từng nhóm HS Dặn HS về nhà ôn tập kỹ để chuẩn bị kiểm tra 1 tiết
HS lắng nghe và tiếp thu HS tiếp thu
Tiết : 48 NS: 08/02/2010 ND: 19/02/2010 KIỂM TRA 1 TIẾT
I. Mục đích, yêu cầu.
- Kiểm tra kiến thức, kỷ năng của hs về:sử các câu lệnh lặp trong ngôn ngữ pascal
- Về kiến thức: Kiểm tra kiến thức về ngôn ngữ lập trình trong pascal, cấu trúc các câu lệnh lặp đã học
- Rèn luyện một số kỷ năng làm bài tập. khai báo và sử dụng các biến
- Về kỷ năng: Viết được một số chương trình đơn giản có sử dụng các câu lệnh lặp đã học
II. Phương pháp, phương tiện.
- Kiểm tra trên giấy: Kiểm tra sau khi học xong các dạng câu lệnh lặp * Đề ra:
Câu 1: Nêu cú pháp của câu lệnh lặp (cả hai dạng là lặp với số lần xác định trước và số lần chưa xác định trước). Mỗi dạng câu lệnh em hãy nêu rõ các thành phần
Câu 2: Trong câu lệnh lặp for...do biến đếm là biến có dữ liệu kiểu gì? Cho 1 ví dụ minh họa
Câu 3: Câu lệnh white...do và câu lệnh for...do khác nhau ở điểm nào? Câu 4: Hãy mô tả thuật toán và viết chương trình tính tổng sau:
12 2 1 .... 5 1 3 1 1 + + + + + = n S Với n là số nguyên nhập từ bàn phím. * Đáp án:
Câu1: + Dạng lặp với số lần biết trước là:
For <biến đếm>:= <gt đầu> to <gt cuối> do <câu lệnh>;
Trong đó: For, to, do là các từ khóa, còn số vòng lặp biết trước=<gt cuối>-<gt đầu>+1; - Khi thực hiện <biến đếm> nhận từ giá trị đầu , sau mỗi vòng lặp biến đếm tự động tăng lên 1 đơn vị cho đến khi = giá trị cuối thì dừng vòng lặp.
<Biến đếm > là biến kiểu nguyên, <gt đầu>; <gt cuối> là các giá trị nguyên + Dạng lặp với số lần chưa biết trước là:
While <điều kiện> do <câu lệnh>; Trong đó: while, do là từ khóa
- Khi thực hiện <điều kiện> được kiểm tra. Nếu <điều kiện> đúng thực hiện <câu lệnh>, quay lại kiểm tra <điều kiện> nếu <điều kiện> vẫn nhận giá trị đúng thì thực hiện lặp <câu lệnh>, nếu điều kiện sai câu lệnh lặp kết thúc
Câu 2: trong câu lệnh for...do thì <biếnđếm> chỉ nhận kiểu dữ liệu nguyên; Ví dụ: for i:=1 to 10 do S:=S+i; (i là biến đếm và chỉ nhận giá trị từ 1 đến 10)
Câu 3: Câu lệnh for...do là câu lệnh lặp với số lần xác định trước và câu lệnh lặp chỉ dừng lại khi biến đếm=giá trị cuối của vòng lặp. Và số vòng lặp được xác định = giá trị cuối- giá trị đầu+1;
Còn câu lệnh while...do là câu lệnh lặp mà số vòng lặp không được xác định trước. Câu lệnh lặp tiếp tục hay dừng lại chỉ phụ thuộc vào điều kiện trong câu lệnh.
Câu 4:
* Thuật toán: Bước 1: S->0; i->0; Bước 2: i->i+1;
Bước 3: Nếu i<=n, S->S+1/2i+1, quay lại bước 2 Bước 4: Kết thúc thuật toán;
* Chương trình : Program tinh_tong; Var n,i : integer; s: real; Begin
Write (‘nhap n =’); readln(n); S:=1; For i:=1 to n do S := S+1/2*i+1; Write (‘Tong là :’, s); Readln; End.
* Thang điểm: Câu 1, 2, 3: mỗi câu đúng 2 điểm, câu 4: đúng thuật toán 2 điểm, đúng chương trình 2 điểm.