Ngày soạn: 10/1/2009
Tiết 19
BÀI TẬP
I - Mục tiêu cần đạt:
+ Kiến thức:
- Củng cố thêm cho HS về cấu trúc rẽ nhánh.
- Luyện tập cho HS về cấu trúc lặp, vận dung giải các bài toán về tìm tổng của dãy số.
+ Kỹ năng:
- Tổ chức, xây dựng chương trình.
- Kiểm soát, hiệu chỉnh chương trình.
+ Thái độ:
- Tích cực, tự giác hoàn thành nhiệm vụ học tập.
- Lòng yêu thích bộ môn.
II – Phương pháp, phương tiện dạy học:
*Phương tiện:
+ GV: - SGK, sách bài tập, sách giáo viên tin 11
- Giáo án, phòng máy tính, máy chiếu (Projector)
+ HS: - SGK tin học 11.
- Học và làm bài tập ở nhà.
* Phương pháp:
- Các PP nhằm tích cực hóa hoạt động học tập của HS
- Thực hành trên máy tính.
III - Tiến trình dạy học:
1. Ổn định tổ chức:
Lớp 11A 11B 11C 11D Ghi chú
Ngày dạy
Sĩ số
2. Kiểm tra bài cũ: Kiểm tra sự chuẩn bị bài ở nhà của HS.
3. Bài mới:
Hoạt động của GV và HS Nội dung
GV: Hãy cho biết sự giống nhau và khác nhau
của hai dạng câu lệnh if-then?
HS: Đứng tại chỗ trả lời.
GV: Câu lệnh ghép là gì? Tại sao phải có câu
lệnh ghép?
HS: Đứng tại chỗ trả lời.
Câu 1:
Giống nhau: Cùng là câu lệnh cấu trúc rẽ nhánh,
khi gặp một điều kiện nào đó thì chọn thực hiện
thao tác thích hợp.
Khác nhau: Trong câu lệnh if-then dạng thiếu,
nếu điều kiện không đúng thì thoát khỏi cấu
trúc rẽ nhánh, thực hiện câu lệnh tiếp theo của
chương trình, còn trong câu lệnh if-then dạng
đủ, nếu điều kiện không đúng thì thực hiện
công việc 2, sau đó mới thoát khỏi cấu trúc rẽ
nhánh, thực hiện câu lệnh tiếp theo của chương
trình.
Câu 2:
Câu lệnh ghép là một câu lệnh được hợp thành
từ nhiều câu lệnh thành phần (đơn hoặc ghép).
Câu lệnh ghép nhằm thực hiện thao tác gồm
nhiều thao tác thành phần. Mỗi thao tác thành
phần ứng với một câu lệnh đơn hoặc câu lênh
GV: Có thể thay câu lệnh while-do để thay
cho câu lệnh for-do được không? Cách làm
ntn?
HS: Đứng tại chỗ trả lời.
GV: yêu cầu HS giải theo cách khác.
GV: Yêu cầu HS cả lớp giải bài tập (viết
chương trình trên máy tính). Tính:
Xác định dữ liệu vào, ra. Viết giải thuật?
HS: Thực hiện.
GV: hãy viết chương trình theo giải thuật vừa
nêu?
HS: Viết chương trình.
GV: Hướng dẫn, sửa sai cho HS.
Yêu cầu HS thực hiện chương trình với n =50.
GV: Có thể sử dụng câu lệnh While – do để
giải bài tập trên không? Hãy thực hiện?
S:=0; i:=1;
While i<=n do
Begin
S:= s+i/(i+1);
I:=i+1;
End;
ghép khác. Về mặt ngôn ngữ lập trình, câu lệnh
ghép là một trong các yếu tố cần thiết để xây
dựng chương trình có cấu trúc.
Câu 3:
Có thể thay thế đoạn chương trình chứa câu
lệnh for-do (dạng tiến) bằng đoạn chương trình
chứa câu lệnh while-do như sau:
i := <giá trị đầu>;
while <i<= giá trị cuối> do
begin
<câu lệnh>;
<tăng i một đơn vị>;
end;
Bài tập 5a (SGK – Tr51):
Dữ liệu vào (Input): Nhập n
Dữ liệu ra (Output): Tổng S
Giải thuật:
B1: Nhập n;
B2: S:=0; i:=1;
B3: Nếu i > n thì đưa ra giá trị S
kết thúc.
B4: S:= S + i/(i+1);
B5: i := i + 1;
quay lại bước 3;
Chương trình:
Program bai5a;
uses crt;
var s: real;
n: byte;
begin
clrscr;
write(‘Nhap n: ‘); readln(n);
s:=0;
for i:=1 to n do
s:=s+i/(i+1);
writeln(‘Tong S = ‘, s:14:6);
readln
end.
1
....
4
3
3
2
2
1
+
++++=
n
n
S
4. Củng cố:
- Phân biệt rõ cách dùng câu lệnh for – do, while – do.
- Chú ý kiểu của biến đếm phải là kiểu đếm được (byte, inetger, word, longint,…)
- Khi các lệnh cần thực hiện sau do nhiều hơn 1 thì phải đặt chúng vào trong cặp từ begin
… end (tạo thành 1 câu lệnh ghép).
5. Hướng dẫn về nhà:
Bài 5b:
uses crt;
var n: longint;
e, sh: real;
begin
clrscr; sh :=1/2; n := 2; e := 2+sh;
while sh>= 2*1E-6 do
begin
inc(n); sh := sh*(1/n); e := e +sh;
end;
writeln(‘ Gia tri e(n) la: ‘, e:10:6);
readln
end.
TỔ TRƯỞNG KÝ DUYỆT