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 chưa biết trước while do trong Pascal.
2. Kỹ Năng
- Viết được chương trình có sử dụng vòng lặp while do.
- Rèn luyện đọc hiểu chương trình có sử dụng vòng lặp while do.
3. Thái độ
- Có ý thức, kỹ luật, nghiêm túc, trình bày một vấn đề chặt chẽ, rõ rà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 thực hành, 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 đề.
Tuần : 28 Tiết : 53+54 Ngày soạn: 14/03/2011 Ngày dạy : 15/03/2011 BÀI TẬP 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 chưa biết trước whiledo trong Pascal. 2. Kỹ Năng - Viết được chương trình có sử dụng vòng lặp whiledo. - Rèn luyện đọc hiểu chương trình có sử dụng vòng lặp whiledo. 3. Thái độ - Có ý thức, kỹ luật, nghiêm túc, trình bày một vấn đề chặt chẽ, rõ ràng. 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 thực hành, 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 Ổ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ũ - Viết cấu trúc khai báo biến mảng trong chương trình? - Viết lại thuật toán tìm giá trị lớn nhất và giá trị nhỏ nhất. Trả lời: var : array [ .. ] of ; Thuật toán tìm giá trị nhỏ nhất: B1: Nhập N và dãy A1...An; B2: MinA1; B3: Với I từ 2 đến n thực hiện: Nếu <min thì Min B4: Đưa ra màn hình giá trị nhỏ nhất rồi kết thúc. Thuật toán tìm giá trị lớn nhất: B1: Nhập N và dãy A1...An; B2: MaxA1; B3: Với I từ 2 đến n thực hiện: Nếu >max thì Max B4: Đưa ra màn hình giá trị lón nhất rồi kết thúc. 3. Bài mới Hoạt động của GV Hoạt động của HS Nội dung Hoạt động1: Tìm hiểu một số bài tập Bài 1: Các lệnh khai báo biến mảng sau đây đúng hay sai? Giải thích? a. A: array [1100] of real; b. A: array [1..n] of real; c: A: array [1:n] of real; d: A: array [-7..7] of byte; e: A: array [100..1] of real; f: A: array (-1..10) of byte; Bài giải: a. Sai, cần thay dấu ba chấm bằng dấu hai chấm. b. Sai, các chỉ số phải là giá trị cụ thể. Tuy nhiên nếu n là một hằng số đã được khai báo thì câu lệnh này hợp lệ. c. Sai, cần thay dấu hai chấm bằng dấu hai chấm. d. Đúng. e. Sai, chỉ số đầu không lớn hơn chỉ số cuối; f. Sai, vì phải viết các chỉ số trong ngoặc vuông. - Cho dạng bài tập. - Mời một hs nhắc lại cấu trúc khai báo biến mảng. - Nhận xét. Trình bày lại cấu trúc khai báo (nhấn mạnh lại những điểm cần lưu ý trong cấu trúc trên). - Cho thảo luận nhóm: Yêu cầu các nhóm suy nghĩ và cho biết câu trả lời trên bảng phụ. - Lấy kết quả nhanh và chính xác nhất và diễn giải cho hs hiểu: a) Viết cấu trúc khai báo biến, yêu cầu hs nhìn vào đó để tìm ra lỗi sai sót. b) ? Các chỉ số viết như thế có đúng không? - Nhận xét. Nếu n là một hằng số đã được khai báo thì câu lệnh này sẽ được chấp nhận. - Tương tự nhận xét các câu còn lại. - Đọc đề bài. var : array [ .. ] of ; - Chú ý theo dõi. - Suy nghĩ. Và trình bày. - Không. Vì n không phải là một số cụ thể. - Lắng nghe, theo dõi. - Đưa ra đề bài, yêu cầu hs đọc kỹ đề, tìm ra ý tưởng trên giấy. - Đề bài yêu cầu ta làm gì đây? - Nhận xét. Đưa ra ý tưởng của bài toán. - Từ ý tưởng này hướng dẫn học sinh viết chương trình. ? Vậy bài này ta cần khai báo biến gì, có tất cả bao nhiêu biến. - Kiểu của các biến như thế nào? - Hướng dẫn viết chương trình. - Theo dõi và thực hiện cùng GV. - cho một dãy số thực n và một số thực x bất kì, đếm xem trong dãy số thực đó có bao nhiêu số nhỏ hơn x. - Ghi bài vào vở. - Biến n, x, soluong, I và khai báo biến mảng. - kiểu số thực. Bài 2: Cho một dãy gồm n số thực và một số thực x. Viết chương trình nhập n số thực đó và đếm xem có bao nhiêu số trong dãy không lớn hơn x. Bài giải: Program demso; Var x:real; N, soluong, i: integer; A: array [1..100] of real; Begin Writeln(‘nhap so phan tu cua day va so x de so sanh’); Readln(n,x); Writeln(‘hay nhap’, n); For i:=1 to n do readln (a[i]); soluong:=0; for i:=1 to n do if a[i]<=x then soluong: = soluong+1; writeln(‘trong day co’, soluong, ‘phan tu<’, x); readln; end. Hoạt động: cũng cố Ghi nhớ: Việc sử dụng mảng bao gồm: nhập giá trị cho các thành phần của mảng; duyệt các phần tử của mảng để kiểm tra, tính toán, ta nói công việc này là “xử lí dãy số” - Hệ thống toàn bộ nội dung. - Chú ý: Nêu một số nội dung cần ghi nhớ cần bổ sung. - Lắng nghe.
Tài liệu đính kèm: