Döôùi ñaây xin phaân tích roõ hôn veà ñoaïn chöông trình naøy, GV giaûng daïy cho HS, Khi thöïc hieän ñeán caâu leänh thöù hai, maùy tính thöû kieåm tra ñieàu kieän Long<Trang vaø co[r]
(1)Tuần: 15 Ngày soạn: 24/11/2008 Tiết: 29
BÀI TẬP I Mục tiêu:
1 Kiến thức:
Vận dụng kiến thức học cấu trúc rẽ nhánh áp dụng làm tập Biết cần thiết cấu trúc rẽ nhánh lập trình
Biết cấu trúc rẽ nhánh sử dụng để dẫn cho máy tính thực thao tác phụ thuộc vào điều kiện
Hiểu cấu trúc rẽ nhánh có hai dạng: Dạng thiếu dạng đủ
Biết ngơn ngữ lập trình có câu lệnh để thể cấu trúc rẽ nhánh Hiểu cấu trúc, hoạt động câu lệnh điều kiện dạng thiếu dạng đủ Pascal Bước đầu viết câu lệnh điều kiện Pascal
2 Kỹ năng :
- Rèn luyện kĩ sử dụng câu trúc rẽ nhánh II Chuẩn bị:
1 Chuẩn bị giáo viên: - Giáo án, tài liệu
- Sách giáo khoa, sách giáo viên, máy chiếu 2 Chuẩn bị học sinh:
- Sách giáo khoa - Đọc trước III Tiến trình lên lớp: 1.Ổn định lớp:
2.Kiểm tra cuõ:
3 Hướng dẫn trả lời câu hỏi tập
Câu 1: Có thể nêu vài ví dụ hoạt động ngày phụ thuộc vào điều kiện Dưới
đây số ví dụ:
a) Nếu đạt điểm tổng kết năm cao 8.5, em đạt danh hiệu "Học sinh giỏi".
b) Nếu khơng cắm điện, máy tính để bàn em không hoạt động c) Nếu bị bệnh, em (cần phải) đến phòng khám để bác sĩ khám bệnh
d) Nếu không tưới đủ nước thời kì phát triển, lúa khơng cho thu hoạch cao
Câu 2: Đáp án: a) Đúng; b) Đúng; c) Sai; d) Sai; e) Sai, x 1.
Câu 3: Giả sử Điểm_1 số điểm người thứ Điểm_2 số điểm người thứ
(2)Điều kiện trị chơi người thứ hai đốn số n Khi Điểm_2 được cộng thêm 1; ngược lại, Điểm_2 giữ nguyên Tương tự, người thứ hai nghĩ số tự nhiên m, điều kiện thứ hai người thứ đốn số m Khi đó Điểm_1 cộng thêm 1; ngược lại, Điểm_1 giữ nguyên
Điều kiện trò chơi sau 10 lần, Điểm_1 > Điểm_2 người thứ nhất được tuyên bố thắng cuộc; ngược lại, người thứ hai thắng Trường hợp Điểm_1 = Điểm_2 khơng có người thắng người thua.
Câu 4: Điều kiện để điều khiển khay trò chơi người chơi nhấn phím mũi tên
hoặc Nếu người chơi nhấn phím , biểu tượng khay di chuyển sang phải đơn vị khoảng cách; phím nhấn, biểu tượng khay di chuyển sang trái Nếu phím khác ngồi hai phím mũi tên nhấn, khay giữ nguyên vị trí
Câu 5: a) Sai (thừa dấu hai chấm);
b) Sai (thừa dấu chấm phẩy thứ nhất); c) Sai (thừa dấu chấm phẩy sau từ then);
d) Đúng, phép gán m:=n không phụ thuộc điều kiện x>5; ngược lại, sai và cần đưa hai câu lệnh a:=b; m:=n; vào cặp từ khoá beginvà end;
e) Sai (thừa dấu chấm phẩy thứ nhất); f) Đúng.
Câu 6: a) Vì 45 chia hết cho 3, điều kiện thoả mãn nên giá trị X tăng lên 1,
tức 6; b) Điều kiện không thoả mãn nên câu lệnh không thực hiện, tức X giữ ngun giá trị
3 Củng cố:
Gv: Hệ thống lại kiến thức trọng tâm cần nắm để áp dụng làm tập 4 Dặn dò:
- Về nhà xem lại tập thực hành Nếu hs có máy tính cá nhân nên thao tác lại nhiều lần cho thành thạo Xem trước
Tuần: 15,16 Ngày soạn: 25/11/2008
Tieát: 30, 31
Bài thực hành Sử dụng lệnh rẽ nhánh
I Mục tiêu: 3 Kiến thức:
Viết câu lệnh điều kiện if then chương trình;
(3)4 Kỹ năng :
- Rèn luyện kĩ sử dụng câu trúc rẽ nhánh II Chuẩn bị:
3 Chuẩn bị giáo viên: - Giáo án, tài liệu
- Sách giáo khoa, sách giáo viên, máy chiếu, phòng máy 4 Chuẩn bị học sinh:
- Sách giáo khoa - Đọc trước III Tiến trình lên lớp: 5.Ổn định lớp:
6.Kiểm tra cũ: 3 Hướng dẫn thực hành Bài 1:
Giữ nguyên yêu cầu đề Đối với câu a, yêu cầu HS mô tả bước để giải toán Các bước để giải toán là:
Bước Nhập hai số nguyên a, b từ bàn phím;
Bước Nếu a < b hiển thị hình giá trị biến a trước đến giá trị biến b; Bước Nếu b < athì hiển thị hình giá trị biến b trước đến giá trị biến a; Bước Kết thúc.
Trên sở phần mơ tả thuật tốn, GV hướng dẫn để HS viết chương trình tương ứng Chương trình sau:
program Sap_xep; uses crt;
var A, B, T: integer;
begin
clrscr;
{Buoc 1: Nhap hai so nguyen a, b tu ban phim} write('Nhap so A:'); readln(A);
write('Nhap so B:'); readln(B);
{Buoc 2: Neu a < b thi hien thi man hinh gia tri bien a truoc roi den gia tri bien b}
if A>B then write(A,' ',B);
{Neu b < a thi hien thi man hinh gia tri bien b truoc roi den gia tri bien a}
if B>A then write(B,' ',A);
readln;
End.
Thuật toán thực chương trình gần với cách nghĩ HS Do vậy, hi vọng HS thấy gần gũi dễ dàng việc tìm hiểu chương trình hiểu hoạt động, cách sử dụng lệnh rẽ nhánh chương trình Hơn nữa, mặt sư phạm nên giới thiệu câu lệnh điều kiện dạng thiếu trước câu lệnh đơn giản câu lệnh điều kiện dạng đủ Sau giới thiệu câu lệnh dạng thiếu, việc giới thiệu câu lệnh dạng đủ thuận lợi
Yêu cầu HS chạy chương trình thử với số liệu có câu c), (SGK)
(4)- Với câu lệnh điều kiện dạng đủ if then else, lưu ý không đặt dấu chấm phẩy sau câu lệnh trước từ khoá else Trong Pascal dùng dấu chấm phẩy để phân cách câu lệnh (không phải kết thúc câu lệnh)
- Đoạn chương trình:
If Long>Trang then writeln('Ban Long cao hon'); If Long<Trang then writeln('Ban Trang cao hon')
else writeln('Hai ban cao bang nhau');
Thoạt nhìn, theo cách suy luận nhiều HS kết hợp hai câu lệnh điều kiện đảm bảo đầy đủ trường hợp, đặc biệt câu lệnh thứ xét đến trường hợp Long>Trang nên câu lệnh thứ hai khơng cịn xét đến trường hợp nữa mà xét đến hai trường hợp lại Long<Trang Long=Trang Cách suy luận như khơng có lí xét trường hợp người xử lí tình Tuy nhiên, máy tính xử lí "máy móc"
Khi máy tính thực đến câu lệnh thứ hai
If Long<Trang then writeln('Ban Trang cao hon')
else writeln('Hai ban cao bang nhau');
thì máy tính "khơng cịn nhớ" thực câu lệnh điều kiện thứ trước
If Long>Trang then writeln('Ban Long cao hon');
Chính vậy, thực đến lệnh thứ hai máy tính lại xét tất trường hợp Vì vậy, dẫn đến lỗi thực chương trình trường hợp Long cao Trang
Dưới xin phân tích rõ đoạn chương trình này, GV giảng dạy cho HS, Khi thực đến câu lệnh thứ hai, máy tính thử kiểm tra điều kiện Long<Trang có trường hợp xảy sau:
- Nếu Long<Trang cho kết đúng, tức Trang cao Long máy hiển thi ra hình dịng chữ 'Ban Trang cao hon' Trong trường hợp câu lệnh trước
If Long>Trang then writeln('Ban Long cao hon');
đã không thực hiển thị hình dịng chữ "Ban Long cao hon" vì biểu thức điều kiệnLong>Trang câu lệnh điều kiện thiếu cho kết quả sai Kết hình hiển thị dịng chữ 'BanTrang cao hon'.
- Nếu Long<Trang cho kết sai, Pascal thực câu lệnh in hình dịng chữ 'Hai ban cao bang nhau' Tuy nhiên, có hai trường hợp dẫn đến biểu thức Long<Trang cho kết sai:
- Long Trang cao nhau, biểu thức điều kiện Long>Trang cho kết sai câu lệnh điều kiện thứ khơng thực việc hiển thị hình dịng chữ Kết hình chỉ có dịng chữ 'Hai ban cao bang nhau'.
- Long cao Trang, biểu thức điều kiện Long>Trang câu lệnh điều kiện thứ cho kết Vì vậy, câu lệnh điều kiện thứ thực hiển thị hình dịng chữ 'BanLong cao hon' Như vậy, màn hình hiển thị hai dịng thơng báo khác 'Ban Long cao hon' va 'Hai ban cao bang nhau' Đây lỗi chương trình cần được chỉnh sửa
(5)HS gõ chương trình vào máy chạy thử với liệu kiểm tra Các số liệu cần phủ kín trường hợp: Trang cao Long, hai bạn cao Long cao Trang
Baøi 2:
HS quan sát kết để phát vấn đề tìm hiểu chương trình, phát lỗi
GV: Có hai cách để chỉnh sửa chương trình để đảm bảo đưa thông báo
Cách đơn giản sử dụng ba câu lệnh điều kiện dạng thiếu sau:
If Long>Trang then writeln('Ban Long cao hon'); If Long=Trang then writeln('Hai ban cao bang nhau'); If Long<Trang then writeln('Ban Trang cao hon');
Cách thứ hai sử dụng câu lệnh điều kiện lồng SGK, mục đích cách giới thiệu cho HS sử dụng câu lệnh điều kiện lồng nhau:
If Long>Trang then writeln('Ban Long cao hon') else If Long<Trang then writeln('Ban Trang cao hon')
else writeln('Hai ban cao bang nhau');
Có thể sử dụng sơ đồ để giải thích hoạt động hai câu lệnh điều kiện lồng để HS hiểu lí câu lệnh hiển thị hình thơng báo
Long>Trang?
writeln('BanLong cao hon');
Đúng
Sai
Long<Trang?
writeln('Ban Trang cao hon')
Đúng
Sai
(6)Bài tập 3: HS cần biết điều kiện để ba số dương a, b, c ba cạnh tam giác thì tổng hai cạnh phải lớn lớn cạnh lại, nghĩa phải đồng thời thoả mãn ba điều kiện a + b > c, b + c > a c + a > b GV hướng dẫn HS cách biểu diễn ba điều kiện trong Pascal:
(a+b>c) and (b+c>a) and (c+a>b)
Điểm khó học sinh biết chuyển biểu thức điều kiện toán học sang biểu diễn Pascal Cần giải thích để HS hiểu dùng phép quan hệ andlà để đảm bảo cả ba điều kiện a + b > c, b + c > a c + a > b đồng thời thoả mãn; Việc phải sử dụng dấu ngoặc tròn phép so sánh để đảm bảo thứ tự ưu tiên thực phép toán và để đảm bảo tham số phép and (và or) giá trị sai (khơng là số)
Cần cho HS đọc, thảo luận kĩ để hiểu chương trình Bài tốn toán yêu cầu chuẩn kiến thức, kĩ Sau học này, HS phải hiểu phải tự viết chương trình giải tốn tương tự (ví dụ kiểm tra tính chất tam giác dựa số đo cạnh: cân, đều, vuông)
Để HS luyện tập thêm câu lệnh điều kiện, phép so sánh, yêu cầu HS viết chương trình cho phép nhập điểm kiểm tra bạn đó, sau thực hiện:
- Nếu điểm nhỏ 5, in dòng chữ "Ban can co gang hon";
- Nếu điểm lớn nhỏ 6.5, in dòng chữ "Ban dat diem trung binh";
- Nếu điểm lớn 6.5 nhỏ 8, in dòng chữ "Ban dat diem Kha";
- Nếu điểm lớn 8, in dòng chữ "Hoan ho ban dat diem Gioi" Hoặc ví dụ khác yêu cầu HS viết chương trình giải phương trình bậc ax + b = 0, với a 0, a, b nhập từ bàn phím Lưu ý, phương trình bậc ẩn số giới thiệu chương trình mơn Tốn lớp (học kì II) Do vậy, HS chưa học
Đúng
writeln('Ban Long cao hon') Long>Trang
writeln('Hai ban cao bang nhau')
writeln('Ban Trang cao hon'
Đúng
Long<Trang
Sai
(7)phương trình mơn Toán, GV nên dành vài phút để HS làm quen với khái niệm
7 Củng cố:
Gv: Hệ thống lại kiến thức trọng tâm cần nắm để áp dụng làm tập (Ghi nhớ SGK/44)
8 Dặn dò:
- Về nhà xem lại tập thực hành Nếu hs có máy tính cá nhân nên thao tác lại nhiều lần cho thành thạo Xem trước
Tuần: 16 Ngày soạn: 28/11/2008
Tieát: 32
TIẾT 31
KIỂM TRA THỰC HÀNH
I Mục tiêu:
- KT: học sinh tái lại kiến thức cấu trúc chung 1 chương trình,.
- KN: Học sinh viết chương trình lập trình đơn giản Chạy được chương trình.
- Thái độ: Nghiêm túc thực hành quản lý phòng máy. II Chuẩn bị:
- GV: Đề kiểm tra, phòng máy thực hành. - HS: chuẩn bị ôn tập nhà.
III Phương pháp: Thực hành. IV Tiến trình dạy
1 Ổn định: kiểm tra sĩ số lớp:
2 Kiểm tra cũ: ( không kiểm tra) 3 Bài mới: Kiểm tra thực hành 45 phút.
Đề bài:
Viết chương trình nhập số nguyên khác từ bàn phím, in thông báo số lớn nhất.
Lưu ý: Trước viết chương trình input, output thuật toán. Đáp án – Biểu điểm.
1 Xác định toán.
(8)- Output: giá trị MAX số a, b, c nhập từ bàn phím 0.5đ 1 Mơ tả thuật tốn.
- Bước 1: Nhập bốn số a, b, c từ bàn phím. 1 đ
- Bước 2: MAX a 1 đ
- Bước 3: Nếu MAX < b MAX b, ngược lại quay lại bước đ
- Bước 4: Nếu MAX < c MAX c 1 đ
- Bước 5: In giá trị MAX kết thúc 1 đ
2 Viết chương trình.
Program Tim_MAX;
Var Max , a , b , c : integer ; 0.5 ñ
BEGIN
Write (' a = ') ; Readln ( a ) ; 0.5 ñ
Write (' b = ') ; Readln ( b ) ; 0.5 ñ
Write (' c = ') ; Readln ( c ) ; 0.5 ñ
Max := a ; 0,5 ñ
If Max < b Then Max := b ; 0.5 ñ
If Max < c Then Max := c ; 0,5 ñ
Writeln (' Gia tri lon nhat la : ', Max ) ; Readln ; 0,5 ñ