I - MỤC TIÊU
1. Kiến thức
- Viết chương trình Pascal sử dụng câu lệnh lặp với số lần biết trước.
2. Kỹ năng
- Rèn luyện khả năng đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh.
3. Thái độ: Nghiêm túc
II. CHUẨN BỊ
1. Giáo viên: giáo án, máy chiếu
2. Học sinh: Kiến thức cũ, sách, vở.
III - PHƯƠNG PHÁP
- Thuyết trình, giảng giải, vấn đáp.
IV - TIẾN TRÌNH LÊN LỚP
1 - ỔN ĐỊNH (1’)
2 - KIỂM TRA BÀI CŨ
3 - BÀI MỚI (40’)
Ngày soạn: ......................................... Ngày giảng: ..................................................... Tiết 53 BÀI TẬP I - MỤC TIÊU 1. Kiến thức - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần biết trước. 2. Kỹ năng - Rèn luyện khả năng đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh. 3. Thái độ: Nghiêm túc II. CHUẨN BỊ 1. Giáo viên: giáo án, máy chiếu 2. Học sinh: Kiến thức cũ, sách, vở. III - PHƯƠNG PHÁP - Thuyết trình, giảng giải, vấn đáp. IV - TIẾN TRÌNH LÊN LỚP 1 - ỔN ĐỊNH (1’) 2 - KIỂM TRA BÀI CŨ 3 - BÀI MỚI (40’) HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC I. BÀI TẬP VỀ FOR GV: Đưa ra các bài tập ở SGK và gọi học sinh lên bảng trả lời. Bài 2: Câu lệnh lặp có tác dụng làm đơn giản và giảm nhẹ công sức của người viết chương trình. Bài 3: Chúng ta nói rằng khi thực hiện các hoạt động lặp, chương trình kiểm tra một điều kiện. Với lệnh lặp for := to do ; của Pascal, điều kiện cần phải kiểm tra chính là giá trị của biến đếm lớn hơn giá trị cuối. Nếu điều kiện không được thoả mãn, câu lệnh được tiếp tục thực hiện; ngược lại, chuyển sang câu lệnh tiếp theo trong chương trình. Bài 4: 12 Bài 5: Trừ d), tất cả các câu lệnh đều không hợp lệ: a) Giá trị đầu phải nhỏ hơn giá trị cuối; b) Các giá trị đầu và giá trị cuối phải là số nguyên; c) Thiếu dấu hai chấm khi gán giá trị đầu; d) Thừa dấu chấm phẩy thứ nhất, nếu như ta muốn lặp lại câu lệnh writeln('A') mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã được khai báo như là biến có dữ liệu kiểu số thực và vì thế không thể dùng để xác định giá trị đầu và giá trị cuối trong câu lệnh lặp. Bài 6: Thuật toán tính tổng A = Bước 1. Gán A ¬ 0, i ¬ 1. Bước 2. A ¬ . Bước 3. i ¬ i + 1. Bước 4. Nếu i £ n, quay lại bước 2. Bước 5. Ghi kết quả A và kết thúc thuật toán. II. BÀI TẬP VỀ WHILE GV: Đưa ra các bài tập ở SGK và gọi học sinh lên bảng trả lời. Bài 2: Sự khác biệt: a) Câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa được xác định trước. b)Lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực c) Lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thoả mãn, câu lệnh mới được thực hiện. Bài 3: a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng: S:=10; x:=0.5; while S>5.2 do S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng: S:=10; n:=0; while S<10 do begin n:=n+3; S:=S-n end; writeln(S); Bài 4: a) Chương trình thực hiện 5 vòng lặp. b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn. Bài 5: a) Thừa dấu hai chấm trong điều kiện; b) Thiếu dấu hai chấm trong câu lệnh gán; c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận. Cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hằng ngày. Hãy cho biết tác dụng của câu lệnh lặp. Khi thực hiện câu lệnh lặp, chương trình kiểm tra một điều kiện. Với lệnh lặp for := to do ; của Pascal, điều kiện cần phải kiểm tra là gì? Chương trình Pascal sau đây thực hiện gì? var i: integer; begin for i:=1 to 1000 do; end. Các câu lệnh Pascal sau có hợp lệ không, vì sao? for i:=100 to 1 do writeln('A'); for i:=1.5 to 10.5 do writeln('A'); for i=1 to 10 do writeln('A'); for i:=1 to 10 do; writeln('A'); var x: real; begin for x:=1 to 10 do writeln('A'); end. Hãy mô tả thuật toán để tính tổng sau đây: A = . 1) Nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước! 2) Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước. 3) Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó. a) Thuật toán 1 Bước 1. S ¬ 10, x ¬ 0.5. Bước 2. Nếu S £ 5.2, chuyển tới bước 4. Bước 3. S ¬ S - x và quay lại bước 2. Bước 4. Thông báo S và kết thúc thuật toán. b) Thuật toán 2 Bước 1. S ¬ 10, n ¬ 0. Bước 2. Nếu S ≥ 10, chuyển tới bước 4. Bước 3. n ¬ n + 3, S ¬ S - n quay lại bước 2. Bước 4. Thông báo S và kết thúc thuật toán. 4) 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 vòng lặp? Hãy rút ra nhận xét của em. S:=0; n:=0; while S<=10 do begin n:=n+1; S:=S+n end; S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n; 5) Hãy chỉ ra lỗi trong các câu lệnh sau đây: a)X:=10; while X:=10 do X:=X+5; b)X:=10; while X=10 do X=X+5; c)S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n; 4 - CỦNG CỐ (3’) - Biết và phân biệt được các hoạt động lặp với số lần biết trước với các hoạt động lặp với số lần chưa biết trước. 5 - HƯỚNG DẪN VỀ NHÀ (1’) - Về nhà xem lại bài học tiết sau chúng ta kiểm tra 1 tiết (viết) IV. RÚT KINH NGHIỆM : *****&*****
Tài liệu đính kèm: