Tiết 11

Bài 9. CẤU TRÚC RẼ NHÁNH

A. Mục tiêu
1. Kiến thức:
- Biết khái niệm rẽ nhánh.
- Hiểu cú pháp câu lệnh IF dạng thiếu và đủ.
- Hiểu ý nghĩa câu lệnh ghép.
- Vận dụng được câu lệnh IF trong lập trình.
2. Kỹ năng:
- Vận dụng đúng, hợp lý câu lệnh IF dạng thiếu và đủ cho từng bài toán.
- Sử dụng đúng câu lệnh ghép.
- Trình bày cấu trúc chương trình đẹp, hợp lý.
3. Thái độ:
Tính chính xác, khoa học, thẩm mỹ.
B. Phương pháp dạy học – Phương tiện dạy học
1. Phương pháp dạy học:
Thuyết trình, vấn đáp, nêu vấn đề, trực quan.
2. Phương tiện dạy học:
a. Thầy: Giáo án, bảng phụ, SGK, SGV.
b. Trò: SGK, vở ghi.
C. Tiến trình lên lớp
1. Ổn định lớp: 1’
Yêu cầu lớp trưởng báo cáo sỉ số, ổn định lớp.
2. Gợi động cơ bài mới: 2’
Chúng ta đã được làm quen với cấu trúc chương trình, các kiểu dữ liệu, phép toán,
câu lệnh gán, tổ chức vào/ra đơn giản và cách thực hiện chương trình trong môi
trương Pascal. Hôm nay chúng ta sẽ đi nghiên cứu một cấu trúc chương trình cụ thể,
đó là “cấu trúc rẽ nhánh”.
3. Nội dung bài mới:
Hoạt động 1: Tìm hiểu khái niệm rẽ nhánh
Mục đích: Giúp học sinh biết khái niệm rẽ nhánh và phân biệt hai loại rẽ nhánh.
Thời
Hoạt động của GV
gian
4‟
- Nêu ví dụ thực tiễn
minh hoạ cho tổ chức rẽ
nhánh:
1. Chiều nay nếu trời
không mưa Trung sẽ đi
xem đá bóng.
2. Chiều nay nếu trời
không mưa Trung sẽ đi
xem đá bóng, nếu trời
mưa thì Trung sẽ ở nhà

Chuong 3 tin 11

Hoạt động của HS

Nội dung

- Chú ý theo dõi các 1. Rẽ nhánh
dẫn dắt và ví dụ của Cấu trúc câu:
giáo viên để suy nghĩ
Nếu … thì …
tìm ví dụ tương tự.
Gọi là cấu trúc rẽ nhánh
dạng thiếu.
Cấu trúc câu:
Nếu … thì …, ngược lại
thì …
Gọi là cấu trúc rẽ nhánh

Page 1
6‟

xem tivi.
- Yêu cầu học sinh tìm
thêm một số ví dụ tương
tự.
- Yêu cầu học sinh đưa ra
cấu trúc chung của cách
diễn đạt đó.
- Nhận xét.
- Nêu các bước để kết
luận nghiệm của phương
trình bậc hai: ax2 + bx +
c = 0 (a≠0).

dạng đủ.

- Nếu ... thì ...
- Nếu ... thì... nếu
không ... thì...
- Cả lớp ghi bài.
- Theo dõi và thực
hiện yêu cầu của giáo
viên.
+ Tính delta.
+ Nếu delta<0 thì kết
luận phương trình vô
nghiệm.
+ Nếu delta>=0 thì
kết luận phương trình
có nghiệm:
x
=
(b+sqrt(delta))/(2a)
x
=
(-bsqrt(delta))/(2a)
- Nhận xét, bổ sung.

Mọi ngôn ngữ lập trình đều
có các câu lệnh để mô tả cấu
trúc rẽ nhánh.

- Nhận xét, đánh giá phần
bài làm của HS.
- Quan sát sơ đồ.
- Treo bảng phụ sơ đồ thể
hiện cấu trúc rẽ nhánh
lên bảng (phần ví dụ giải
phương trình bậc hai ở
trên).

Hoạt động 2: Tìm hiểu cú pháp câu lệnh IF dạng thiếu và đủ, câu lệnh ghép
Mục đích: Giúp học sinh biết được cấu trúc lệnh rẽ nhánh IF-THEN-ELSE và câu
lệnh ghép.
Thời
gian

Hoạt động của GV

Chuong 3 tin 11

Hoạt động của HS

Nội dung

Page 2
8‟

4‟

- Yêu cầu học sinh
nghiên cứu sách giáo
khoa và dựa vào các ví
dụ của tổ chức rẽ nhánh
để đưa ra cấu trúc chung
của lệnh rẽ nhánh.
- Nêu vấn đề trong
trường hợp khuyết: Khi
không đề cập đến việc gì
xảy ra nếu điều kiện
không thoả mãn, ta có
cấu trúc như thế nào?
- Cho ví dụ cụ thể từng
dạng(ví dụ trong SGK).
- Gợi ý sự cần thiết của
lệnh ghép. Đưa cấu trúc
của lệnh ghép.
- Khi giải thích về lệnh,
lệnh1, lệnh 2, giáo viên
nói: Sau then và else các
em thấy chỉ được phép
đặt một lệnh. Trong thực
tế, thường lại là nhiều
lệnh.
- Yêu cầu học sinh
nghiên cứu sách giáo
khoa và cho biết cấu trúc
để ghép các lệnh thành
một lệnh.

Chuong 3 tin 11

1. Nghiên cứu sách
giáo khoa và trả lời
If <điều kiện> then
<lệnh 1> else <lệnh
2>;

2. Học sinh chú ý
lắng nghe và trả lời:
- Khi đó ta có lệnh
khuyết.
If <điều kiện> then
<lệnh>;
- Theo dõi và ghi bài.
- Theo dõi dẫn dắt
của giáo viên để trả
lời
- Ta phải nhóm nhiều
lệnh thành môt lệnh.

- Cấu trúc của lệnh
ghép:
Begin
<Các lệnh cần ghép>;
End;

2. Câu lệnh If-then
Để mô tả cấu trúc rẽ nhánh,
Pascal sử dụng lệnh 2 dạng
lệnh:
a) Dạng thiếu
if <điều kiện> then
<câu lệnh>;
b) Dạng đủ
if <điều kiện> then
<câu lệnh 1> else <câu
lệnh 2>;
Trong đó:
- điều kiện: là biểu thức
lôgic;
- câu lệnh: là một câu
lệnh trong Pascal.
- Dạng thiếu: Nếu điều kiện
đúng (có giá trị TRUE) thì
câu lệnh được thực hiện;
ngược lại câu lệnh bị bỏ qua.
- Dạng đủ: Nếu điều kiện
đúng thì câu lệnh 1 được
thực hiện; ngược lại thì câu
lệnh 2 được thực hiện.
Ví dụ:
Để tìm số lớn nhất trong 2 số
a và b, ta thực hiện 1 trong 2
cách:
Cách 1:
Max:=a;
If b>a then Max:=b;
Cách 2:
If b>a then Max:=b else
Max:=a;
3. Câu lệnh ghép
Ngôn ngữ lập trình cho
phép gộp một dãy câu
lệnh thành một câu lệnh
ghép có dạng:
begin
<các câu lệnh>;
end;
Ví dụ:
If D<0 then
writeln(„PTVN‟) else
begin

Page 3
x1:=(-bsqrt(D))/(2*a);
x2:=-b/a – x1;
end;
Hoạt động 3: Rèn luyện kĩ năng vận dụng lệnh IF
Mục đích: Áp dụng câu lệnh IF vào bài tập cụ thể để học sinh nắm rõ hơn.
Thời
Hoạt động của GV
gian
10‟
Nêu nội dung của bài tập,
mục đích yêu cầu của bài
tập.
Ví dụ 1: Tìm nghiệm của
phương trình bậc hai.
- Hãy nêu các bước chính
để trả lời nghiệm của
phương trình bậc hai.
- Trong bài toán này ta
cần bao nhiêu lệnh rẽ
nhánh. Dạng nào?

7‟

- Chia nhóm thảo luận và
gọi lên bảng làm bài.
- Chuẩn hoá lại chương
trình cho cả lớp bằng
chương trình mẫu giáo
viên.
Ví dụ 2: Tính số ngày
của năm N
- Yêu cầu học sinh đưa ra
ý tưởng giải.
- Chốt lại ý tưởng, hướng
dẫn học sinh sử dụng câu
lệnh rẽ nhánh cho thích
hợp.
- Cho lớp thảo luận và
lên bảng trình bày.

Chuong 3 tin 11

Hoạt động của HS

Nội dung

Ghi đề bài, chú ý mục 4. Một số ví dụ
đích yêu cầu của bài Ví dụ 1:
tập.
Tìm nghiệm thực của
phương trình bậc 2:
ax2+bx+c=0 với a≠0.
- Học sinh suy nghĩ
Chương trình(sgk_trang
trả lời.
41).
- Trả lời: Có thể sử
dụng hai lệnh rẽ
nhánh dạng khuyết,
cũng có thể sử dụng
một lệnh dạng đủ.
- Thảo luận và viết
chương trình lên
bảng.
- Học sinh khác nhận
xét, bổ sung.

Ví dụ 2:
Tính số ngày của năm N,
biết rằng năm nhuận là
năm chia hết cho 400
hoặc chia hết cho 4
nhưng không chia hết
cho 100. Năm nhuận có
số ngày là 366, năm
không nhuận có số ngày
là 365.
Chương
41).

trình(sgk_trang

- Ghi chép nội dung
chương trình đúng
mà giáo viên đã kết
luận.

- Học sinh suy nghĩ
trả lời.

Page 4
- Nhận xét, giải thích.

- Học sinh thảo luận
và lên bảng làm bài.
- Học sinh khác nhận
xét, bổ sung.
- Ghi bài.

4. Củng cố: 2’
- Cấu trúc chung của cấu trúc rẽ nhánh.
- Sự thực hiện của máy khi gặp cấu trúc rẽ nhánh IF.
- Sơ đồ thực hiện của cấu trúc rẽ nhánh IF.
5. Dặn dò: 1’
- Trả lời câu hỏi 1, 2, 4 sách giáo khoa, trang 50.
- Viết chương trình nhập vào ba số bất kỳ và in ra màn hình giá trị lớn nhất của ba số.
- Chuẩn bị bài mới: §10. Cấu trúc lặp.

Tiết 12+13

Cấu trúc lặp
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán;
- Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước;
- Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể.
2. Kỹ năng:
- Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp;
- Viết đúng các lệnh lặp với số lần biết trước, lệnh lặp kiểm tra điều kiện trước;
- Viết được thuật toán của một số bài toán đơn giản.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Giáo án, SGK, bảng phụ.
2. Học sinh: Vở ghi, SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Viết cấu trúc câu lệnh sẽ nhánh dạng thiếu và dạng đủ? Lấy ví dụ?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung

Chuong 3 tin 11

Page 5
GV : Đưa ra bài toán, yêu cầu học sinh tìm cách
để lập trình giải các bài toán này .
1. Khái niệm lặp
HS : Đưa ra cách giải của mình, học sinh có thể - Xét 2 bài toán như sau với a > 2 là số nguyên cho
đưa ra những cách giải khác nhau .
trước :
GV : Đưa ra cách giải cho bài toán .
Giải theo các lệnh tuần tự
S1:=0;
If (1/a>0.0001) then S1:=S1+ 1/a;
If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1);
If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2);
If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3);
…

Bài toán 1 : Tính tổng
1 1

1

1

S1= aa a2... 100
1
a
Bài toán 2 : Tính Tổng
1 1

1

1

...
S2= aa a ... N
1
2
a
1

.
Với điều kệin a N 00001
HS : Nhận xét với việc giải bài toán theo cách đó ?
Với N = 100 thì lặp 100 lần như thế nhưng theo
việc kiểm tra điều kiện thì không biết phải làm Cách giải :
theo cách nào? Theo cả hai trường hợp thì đều quá
Bắt đầu S được gán giá trị 1/a.
dài.
Tiếp theo mỗi lần cộng thêm vào S là
1/(a+N) với N = 1, 2, 3, …
Với bài toán 1, việc cộng thêm dừng khi
1/(a+N) < 0.0001, => số lần lặp chưa biết.
Với bài toán 2, việc cộng thêm dừng khi N =
100, => số lần lặp đã biết trước.
Để học sinh hiểu được khái niệm lặp, giáo viên
đưa ra một số ví dụ trong thực tế được tính toán
Trong lập trình, có những thao tác phải lặp lại
lặp đi lặp lại nhiều lần.
VD1 : Bài toán gửi tiền vào ngân hàng. Hằng nhiều lần, khi đó ta gọi là cấu trúc lặp.
tháng phải tính lãi và cộng thêm vào gốc đang gửi Lặp thường có 2 loại :
 Lặp với số lần biết trước .
hay nói cách khác gốc của tháng sau = gốc + lãi
 Lặp với số lần không biết trước .
tháng trước.
NNLT nào cũng cung cấp một số câu lệnh để mô tả
VD 2: Tính tổng của một đoạn số nguyên mà
các cấu trúc lặp như trên.
không được dùng công thức.
Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong
ngôn ngữ Pascal.

2. Lặp có số lần biết trước và câu lệnh for – do
GV : Đưa ra ví dụ:
So sánh hai thuật toán sau:

Chuong 3 tin 11

Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết
trước :

Page 6
Thuật toán
Tong_1a
B1:
S:=1/a;
N:=0;
B2: N:=N+1;
B3: Nếu N >100
thì chuyển sang
bước 5;
B4: S:= S +
1/(a+ N) rồi
quay lại B2;
B5: Đưa ra S rồi
kết thúc.

Thuật toán
Tong_1b
B1:
S:=1/a;
N:=101;
B2: N := N -1;
B3: Nếu N < 1
thì chuyển sang
bước 5;
B4:
S:=
S+
1/(a+N) rồi quay
lại B2;
B5: Đưa ra S rồi
kết thúc.

- Lặp dạng tiến:
For <biến đếm> := <giá trị đầu> to <giá trị cuối>
do <câu lệnh>;
- Lặp dạng lùi
For <biến đếm> := <giá trị cuối> downto <giá trị
đầui> do <câu lệnh>;

Trong đó:
 Biến đếm thường là biến kiểu số nguyên.
 Giá trị đầu, giá trị cuối là các biểu thức
cùng kiểu với biến đếm. Giá trị đầu phải
nhỏ hơn hay bằng giá trị cuối.
 Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá
trị đầu đến giá trị cuối.
 Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá
trị cuối đến giá trị đầu.
GV : Gọi một số học sinh nhận xét về 2 thuật toán
 Tương ứng với mỗi giá trị của biến đếm,
trên về một số vấn đề :
câu lệnh sau do thực hiện 1 lần
 Thuật toán có lặp không?
 Lặp bao nhiêu lần?
 Hai thuật toán giống và khác nhau như thế
Ví dụ 1 : Hai chương trình cài đặt thuật toán
nào?
tong_1a và tong_1b .
 Cái gì thay đổi trong thuật toán này?
Sau khi so sánh hai thuật toán trên, giáo viên đưa
ra hai cách lặp trong ngôn ngữ Pascal, giải thích ý
nghĩa của các thành phần trong câu lệnh .
GV : Lấy ví dụ minh họa trong Pascal để các em
thấy được sự thay đổi giá trị của biến đếm trong
một chương trình thực sự của Pascal .
Với 2 ví dụ này, giáo viên nên gõ sẵn chương
trình và cho học sinh quan sát việc chạy chương
trình, giáo viên vừa cho chạy chương trình vừa giải
thích ý nghĩa các lệnh trong chương trình (chú ý
nhiều đến lệnh lặp) .
GV : Đưa ra thuật toán hoặc có thể yêu cầu học
sinh tự xây dựng thuật toán giải bài toán 2, nếu tự
xây dựng được thuật toán thì các em sẽ hiểu hơn
về lặp không biết trước số lần
Đưa thêm ví dụ : Nhắc lại bài toán gửi tiền
vào ngân hàng: Nếu có số tiền là A, muốn gửi vào
ngân hàng để được số tiền là B > A thì cần gửi
trong bao lâu với lãi suất là k%.
Yêu cầu học sinh đưa ra cách giải cho bài toán
này .

Ví dụ 2 : Tính tổng các số nguyên chia hết cho 3
hoặc 5 trong phạm vi từ M đến N (M<N).

3. Lặp với số lần chưa biết trước và câu lệnh
while – do
Để giải bài toán 2 ta dùng thuật toán như sau :
Bước 1 : S :=1/a; N :=0;
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến
bước 5 ;
Bước 3: N :=N +1;
Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc

GV : Phân tích phương án trả lời của học sinh sau

Chuong 3 tin 11

Page 7
đó đưa ra lời giải cho bài toán.

- Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu
điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn.
_ Pascal sử dụng câu lệnh lặp While
GV : Đưa ra cấu trúc câu lệnh While – Do Trong - Do để tổ chức lặp với số lần chưa viết như sau
Pascal, giải thích ý nghĩa các thành phần.
HS : Lắng nghe và ghi chép.
While <Điều kiện> Do <Câu lệnh>;
Trong đó
- Điều kiện là biểu thức quan hệ hoặc logic.
- Câu lệnh là một câu lệnh trong Pascal.
Ý nghĩa : Khi điều kiện còn đúng thì còn thực
hiện câu lệnh sau Do sau đó lại quay lại kiểm tra
điều kiện.
Ví dụ 1 : Chương trình của bài toán 1.
GV: Nên gõ sãn những ví dụ này để học sinh có
thể quan sát chương trình, giáo viên chạy thử
chương trình trong Pascal.
Riêng với VD 2, trước khi đưa ra thuật toán, GV
nên cho học sinh xây dựng thuật toán tìm ước
chung lớn nhất (đã học ở lớp 10)
Chạy chương trình với nhiều cặp M, N khác nhau.

Ví dụ 2 : Tìm ước chung lớn nhất của M và N.

Thuật toán :
B1: Nếu M = N thì ƯCLN := M;
Kết thúc.
B2: Nếu M > N thì M := M – N rồi quay lại B1,
Tốt nhất chạy từng bước, cho học sinh thấy sự thay ngược lại N := N – M rồi quay lại B1
đổi của các biến.
Sau đây là chương trình tìm UCLN;

IV. Củng cố:
 Nhắc lại một số khái niệm mới;
 Nhắc lại cấu trúc câu lệnh.
V. Dặn dò:
 Cho bài tập về nhà.

Chuong 3 tin 11

Page 8
Tiết 14 + 15

Bài tập và thực hành 2
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
- Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh;
- Làm quen với việc hiệu chỉnh chương trình.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK.
2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Bài toán. Bộ số Pi-ta-go.
Biết rằng bộ ba số nguyên dương a, b, c được
gọi là bộ số Pi-ta-go nếu tổng các bình phương
của hai số bằng bình phương của số còn lại. Viết
chương trình nhập từ bàn phím ba số nguyên
dương a, b, c và kiểm tra xem chúng có là bộ số
Pi-ta-go hay không?
GV: giải thích bài toán.
HS: Đưa phương án có thể xảy ra của bài toán.
Kiểm tra xem có đẳng thức nào trong ba đẳng
thức sau đây xảy ra hay không:
2
2
2
Những công việc cần thực hiện:
a
b
c
a) Gõ chương trình sau:
2
2
2
program Pi_ta_go;
b
a
c
uses crt;
2
2
2
c
a
b
var a, b, c: integer;
a2, b2, c2: longint;
begin
clrscr;
HS: gõ đoạn chương trình.
write(„a, b, c:‟);
GV: Chú ý, trước else không có dấu chấm phẩy
readln(a, b, c);
(;).
a2:=a;
b2:=b;
c2:=c;
a2:=a2*a;
b2:=b2*b;

Chuong 3 tin 11

Page 9
c2:=c2*c;
if (a2 = b2 + c2) or (b2 = c2 + a2) or (c2 = a2
+ b2) then
writeln(„ Ba so da nhap la bo so Pi-ta-go‟)
else
write(„ Ba so da nhap khong la bo so Pi-tago‟);
readln
end.
b) Lưu chương trình với tên PITAGO lên đĩa.
c) Nhấn phím F7 để thực hiện từng câu lệnh
chương trình, nhập các giá trị a = 3, b = 4, c = 5.
d) Vào bảng chọn Debug mở cửa sổ hiệu chỉnh để HS: Thực hiện thao tác lưu chương trình.
xem giá trị a2, b2, c2.
e) Nhấn phím F7 để thực hiện các câu lệnh tính
những giá trị nói trên, so sánh với kết quả a2 = 9,
b2 = 16, c2 = 25.
GV: Theo dõi và hướng dẫn HS thực hiện các
phần của bài thực hành.
GV: Hướng dẫn cụ thể ở từng máy một.

f) Quan sát quá trình rẽ nhánh.
g) Lặp lại các bước trên với bộ dữ liệu a = 700, b
= 1000, c = 800.
h) Nếu thay dãy lệnh
a2:=a;
b2:=b;
c2:=c;
a2:=a2*a;
b2:=b2*b;
c2:=c2*c;
bằng dãy lệnh
a2:=a*a;
b2:=b*b;
c2:=c*c;
thì kết quả có gì thay đổi với bộ dữ liệu cho ở câu
g?

HS: Nếu thực hiện xong các yêu cầu trong bài
thực hành thì có thể làm một số bài tập trong SGK
(t.51).
GV: Gợi ý cho HS thực hiện các bài tập này.
IV. Củng cố:
V. Dặn dò:
Tiết 16

Kiểm tra 1 tiết
Ngày soạn:...../......; Ngày giảng:..../......

Chuong 3 tin 11

Page 10
I. Mục tiêu
1. Kiến thức:
- Củng cố và ghi nhớ kiến thức cơ bản của chương 2
2. Kỹ năng:
- Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những
chương trình TP.
II. Chuẩn bị của GV và HS:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Kiểm tra bằng bài viết trên lớp.
GV: Phát đề cho HS, quan sát HS làm bài.
Bài kiểm tra gồm 20 câu trắc nghiệm.
HS: Làm bài nghiêm túc, không sử dụng tài liệu.
IV. Củng cố:
V. Dặn dò: Ôn tâp toàn bộ chương 2 và bài “Cấu trúc rẽ nhánh”.
Giờ sau kiểm tra học kì.

Tiết 18

Kiểm tra học kì I
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:

Chuong 3 tin 11

Page 11
- Củng cố và ghi nhớ kiến thức cơ bản của toàn bộ nội dung học kì I.
2. Kỹ năng:
- Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những
chương trình viết bằng ngôn ngữ lập trình Pascal.
II. Chuẩn bị của GV và HS:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Kiểm tra bằng bài viết trên lớp.
GV: Phát đề cho HS, quan sát HS làm bài.
Bài kiểm tra gồm 30 câu trắc nghiệm.
HS: Làm bài nghiêm túc, không sử dụng tài liệu.
IV. Củng cố:
V. Dặn dò:

Chuong 3 tin 11

Page 12
Tiết 19

Cấu trúc lặp (T)

Ngày soạn:...../......; Ngày giảng:..../......
I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Giáo án, SGK, bảng phụ.
2. Học sinh: Vở ghi, SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Viết cấu trúc của câu lệnh lặp với số lần biết trước? Lấy ví dụ?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
3. Lặp với số lần chưa biết trước và câu lệnh
while – do
Để giải bài toán 2 ta dùng thuật toán như sau :
Bước 1 : S :=1/a; N :=0;
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến
GV : Đưa ra cấu trúc câu lệnh While – Do Trong
bước 5 ;
Pascal, giải thích ý nghĩa các thành phần.
HS : Lắng nghe và ghi chép.
Bước 3: N :=N +1;
Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc
- Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu
điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn.
_ Pascal sử dụng câu lệnh lặp While
- Do để tổ chức lặp với số lần chưa viết như sau
While <Điều kiện> Do <Câu lệnh>;
GV: Nên gõ sãn những ví dụ này để học sinh có
thể quan sát chương trình, giáo viên chạy thử
chương trình trong Pascal.
Riêng với VD 2, trước khi đưa ra thuật toán, GV
nên cho học sinh xây dựng thuật toán tìm ước
chung lớn nhất (đã học ở lớp 10)
Chạy chương trình với nhiều cặp M, N khác nhau.

Trong đó
- Điều kiện là biểu thức quan hệ hoặc logic.
- Câu lệnh là một câu lệnh trong Pascal.
Ý nghĩa : Khi điều kiện còn đúng thì còn thực
hiện câu lệnh sau Do sau đó lại quay lại kiểm tra
điều kiện.

Tốt nhất chạy từng bước, cho học sinh thấy sự thay
Ví dụ 1 : Chương trình của bài toán 1.
đổi của các biến.
Ví dụ 2 : Tìm ước chung lớn nhất của M và N.

Chuong 3 tin 11

Page 13
Thuật toán :
B1: Nếu M = N thì ƯCLN := M;
Kết thúc.
B2: Nếu M > N thì M := M – N rồi quay lại B1,
ngược lại N := N – M rồi quay lại B1
Sau đây là chương trình tìm UCLN;
IV. Củng cố:
 Nhắc lại một số khái niệm mới;
 Nhắc lại cấu trúc câu lệnh.
V. Dặn dò:
 Cho bài tập về nhà.

Chuong 3 tin 11

Page 14
Tiết 20

Bài tập

Ngày soạn:...../......; Ngày giảng:..../......
I. Mục tiêu
1. Kiến thức:
- Củng cố thêm về cấu trúc rẽ nhánh;
2. Kỹ năng:
- Luyện cấu trúc lặp, chú ý bài tìm tổng của dãy số;
- Tiếp tục làm quen với các công cụ hiệu chỉnh chương trình.
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Viết cấu trúc câu lệnh lặp với số lần chưa biết trước? Lấy ví dụ?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
GV: Hướng dẫn và giải đáp các thắc mắc của HS
về một số bài tập ở nhà.
GV: Yêu cầu HS chữa bài tập 4 trên bảng.
HS: Lên bảng chữa bài.
GV: Sửa lỗi và hoàn chỉnh bài 4.

Bài 4
a)
if (sqr(x)+sqr(y)<=1) then z:= sqr(x) + sqr(y)
GV: Rèn luyệ, uốn nắn HS về cách viết các câu else if y>=x then z:=x + y else z:=0.5;
lệnh sao cho chính xác và gọn gàng, mỗi câu lệnh b)
nên viết trên một dòng để thuận tiện cho quá trình
if (sqr(x-a) + sqr(y-b))<=sqr(r) then z:=abs(x) +
theo dõi thực hiện từng lệnh.
abs(y) else z:=x+y;
HS: Rèn luyện tính cẩn thận, chu đáo khi lập trình,
rèn luyện cách hiệu chỉnh chương trình khi gặp lỗi
và cách kiểm thử lại chương trình thông qua một
số test.
Bài 5
GV: Yêu cầu cả lớp cùng giải bài tập 5.b.
IV. Củng cố:
V. Dặn dò: Đọc trước bài Kiểu mảng.

Chuong 3 tin 11

Page 15

Chuong 3 tin 11

  • 1.
    Tiết 11 Bài 9.CẤU TRÚC RẼ NHÁNH A. Mục tiêu 1. Kiến thức: - Biết khái niệm rẽ nhánh. - Hiểu cú pháp câu lệnh IF dạng thiếu và đủ. - Hiểu ý nghĩa câu lệnh ghép. - Vận dụng được câu lệnh IF trong lập trình. 2. Kỹ năng: - Vận dụng đúng, hợp lý câu lệnh IF dạng thiếu và đủ cho từng bài toán. - Sử dụng đúng câu lệnh ghép. - Trình bày cấu trúc chương trình đẹp, hợp lý. 3. Thái độ: Tính chính xác, khoa học, thẩm mỹ. B. Phương pháp dạy học – Phương tiện dạy học 1. Phương pháp dạy học: Thuyết trình, vấn đáp, nêu vấn đề, trực quan. 2. Phương tiện dạy học: a. Thầy: Giáo án, bảng phụ, SGK, SGV. b. Trò: SGK, vở ghi. C. Tiến trình lên lớp 1. Ổn định lớp: 1’ Yêu cầu lớp trưởng báo cáo sỉ số, ổn định lớp. 2. Gợi động cơ bài mới: 2’ Chúng ta đã được làm quen với cấu trúc chương trình, các kiểu dữ liệu, phép toán, câu lệnh gán, tổ chức vào/ra đơn giản và cách thực hiện chương trình trong môi trương Pascal. Hôm nay chúng ta sẽ đi nghiên cứu một cấu trúc chương trình cụ thể, đó là “cấu trúc rẽ nhánh”. 3. Nội dung bài mới: Hoạt động 1: Tìm hiểu khái niệm rẽ nhánh Mục đích: Giúp học sinh biết khái niệm rẽ nhánh và phân biệt hai loại rẽ nhánh. Thời Hoạt động của GV gian 4‟ - Nêu ví dụ thực tiễn minh hoạ cho tổ chức rẽ nhánh: 1. Chiều nay nếu trời không mưa Trung sẽ đi xem đá bóng. 2. Chiều nay nếu trời không mưa Trung sẽ đi xem đá bóng, nếu trời mưa thì Trung sẽ ở nhà Chuong 3 tin 11 Hoạt động của HS Nội dung - Chú ý theo dõi các 1. Rẽ nhánh dẫn dắt và ví dụ của Cấu trúc câu: giáo viên để suy nghĩ Nếu … thì … tìm ví dụ tương tự. Gọi là cấu trúc rẽ nhánh dạng thiếu. Cấu trúc câu: Nếu … thì …, ngược lại thì … Gọi là cấu trúc rẽ nhánh Page 1
  • 2.
    6‟ xem tivi. - Yêucầu học sinh tìm thêm một số ví dụ tương tự. - Yêu cầu học sinh đưa ra cấu trúc chung của cách diễn đạt đó. - Nhận xét. - Nêu các bước để kết luận nghiệm của phương trình bậc hai: ax2 + bx + c = 0 (a≠0). dạng đủ. - Nếu ... thì ... - Nếu ... thì... nếu không ... thì... - Cả lớp ghi bài. - Theo dõi và thực hiện yêu cầu của giáo viên. + Tính delta. + Nếu delta<0 thì kết luận phương trình vô nghiệm. + Nếu delta>=0 thì kết luận phương trình có nghiệm: x = (b+sqrt(delta))/(2a) x = (-bsqrt(delta))/(2a) - Nhận xét, bổ sung. Mọi ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc rẽ nhánh. - Nhận xét, đánh giá phần bài làm của HS. - Quan sát sơ đồ. - Treo bảng phụ sơ đồ thể hiện cấu trúc rẽ nhánh lên bảng (phần ví dụ giải phương trình bậc hai ở trên). Hoạt động 2: Tìm hiểu cú pháp câu lệnh IF dạng thiếu và đủ, câu lệnh ghép Mục đích: Giúp học sinh biết được cấu trúc lệnh rẽ nhánh IF-THEN-ELSE và câu lệnh ghép. Thời gian Hoạt động của GV Chuong 3 tin 11 Hoạt động của HS Nội dung Page 2
  • 3.
    8‟ 4‟ - Yêu cầuhọc sinh nghiên cứu sách giáo khoa và dựa vào các ví dụ của tổ chức rẽ nhánh để đưa ra cấu trúc chung của lệnh rẽ nhánh. - Nêu vấn đề trong trường hợp khuyết: Khi không đề cập đến việc gì xảy ra nếu điều kiện không thoả mãn, ta có cấu trúc như thế nào? - Cho ví dụ cụ thể từng dạng(ví dụ trong SGK). - Gợi ý sự cần thiết của lệnh ghép. Đưa cấu trúc của lệnh ghép. - Khi giải thích về lệnh, lệnh1, lệnh 2, giáo viên nói: Sau then và else các em thấy chỉ được phép đặt một lệnh. Trong thực tế, thường lại là nhiều lệnh. - Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cấu trúc để ghép các lệnh thành một lệnh. Chuong 3 tin 11 1. Nghiên cứu sách giáo khoa và trả lời If <điều kiện> then <lệnh 1> else <lệnh 2>; 2. Học sinh chú ý lắng nghe và trả lời: - Khi đó ta có lệnh khuyết. If <điều kiện> then <lệnh>; - Theo dõi và ghi bài. - Theo dõi dẫn dắt của giáo viên để trả lời - Ta phải nhóm nhiều lệnh thành môt lệnh. - Cấu trúc của lệnh ghép: Begin <Các lệnh cần ghép>; End; 2. Câu lệnh If-then Để mô tả cấu trúc rẽ nhánh, Pascal sử dụng lệnh 2 dạng lệnh: a) Dạng thiếu if <điều kiện> then <câu lệnh>; b) Dạng đủ if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>; Trong đó: - điều kiện: là biểu thức lôgic; - câu lệnh: là một câu lệnh trong Pascal. - Dạng thiếu: Nếu điều kiện đúng (có giá trị TRUE) thì câu lệnh được thực hiện; ngược lại câu lệnh bị bỏ qua. - Dạng đủ: Nếu điều kiện đúng thì câu lệnh 1 được thực hiện; ngược lại thì câu lệnh 2 được thực hiện. Ví dụ: Để tìm số lớn nhất trong 2 số a và b, ta thực hiện 1 trong 2 cách: Cách 1: Max:=a; If b>a then Max:=b; Cách 2: If b>a then Max:=b else Max:=a; 3. Câu lệnh ghép Ngôn ngữ lập trình cho phép gộp một dãy câu lệnh thành một câu lệnh ghép có dạng: begin <các câu lệnh>; end; Ví dụ: If D<0 then writeln(„PTVN‟) else begin Page 3
  • 4.
    x1:=(-bsqrt(D))/(2*a); x2:=-b/a – x1; end; Hoạtđộng 3: Rèn luyện kĩ năng vận dụng lệnh IF Mục đích: Áp dụng câu lệnh IF vào bài tập cụ thể để học sinh nắm rõ hơn. Thời Hoạt động của GV gian 10‟ Nêu nội dung của bài tập, mục đích yêu cầu của bài tập. Ví dụ 1: Tìm nghiệm của phương trình bậc hai. - Hãy nêu các bước chính để trả lời nghiệm của phương trình bậc hai. - Trong bài toán này ta cần bao nhiêu lệnh rẽ nhánh. Dạng nào? 7‟ - Chia nhóm thảo luận và gọi lên bảng làm bài. - Chuẩn hoá lại chương trình cho cả lớp bằng chương trình mẫu giáo viên. Ví dụ 2: Tính số ngày của năm N - Yêu cầu học sinh đưa ra ý tưởng giải. - Chốt lại ý tưởng, hướng dẫn học sinh sử dụng câu lệnh rẽ nhánh cho thích hợp. - Cho lớp thảo luận và lên bảng trình bày. Chuong 3 tin 11 Hoạt động của HS Nội dung Ghi đề bài, chú ý mục 4. Một số ví dụ đích yêu cầu của bài Ví dụ 1: tập. Tìm nghiệm thực của phương trình bậc 2: ax2+bx+c=0 với a≠0. - Học sinh suy nghĩ Chương trình(sgk_trang trả lời. 41). - Trả lời: Có thể sử dụng hai lệnh rẽ nhánh dạng khuyết, cũng có thể sử dụng một lệnh dạng đủ. - Thảo luận và viết chương trình lên bảng. - Học sinh khác nhận xét, bổ sung. Ví dụ 2: Tính số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Năm nhuận có số ngày là 366, năm không nhuận có số ngày là 365. Chương 41). trình(sgk_trang - Ghi chép nội dung chương trình đúng mà giáo viên đã kết luận. - Học sinh suy nghĩ trả lời. Page 4
  • 5.
    - Nhận xét,giải thích. - Học sinh thảo luận và lên bảng làm bài. - Học sinh khác nhận xét, bổ sung. - Ghi bài. 4. Củng cố: 2’ - Cấu trúc chung của cấu trúc rẽ nhánh. - Sự thực hiện của máy khi gặp cấu trúc rẽ nhánh IF. - Sơ đồ thực hiện của cấu trúc rẽ nhánh IF. 5. Dặn dò: 1’ - Trả lời câu hỏi 1, 2, 4 sách giáo khoa, trang 50. - Viết chương trình nhập vào ba số bất kỳ và in ra màn hình giá trị lớn nhất của ba số. - Chuẩn bị bài mới: §10. Cấu trúc lặp. Tiết 12+13 Cấu trúc lặp Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán; - Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước; - Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể. 2. Kỹ năng: - Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp; - Viết đúng các lệnh lặp với số lần biết trước, lệnh lặp kiểm tra điều kiện trước; - Viết được thuật toán của một số bài toán đơn giản. II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ. 2. Học sinh: Vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc câu lệnh sẽ nhánh dạng thiếu và dạng đủ? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Chuong 3 tin 11 Page 5
  • 6.
    GV : Đưara bài toán, yêu cầu học sinh tìm cách để lập trình giải các bài toán này . 1. Khái niệm lặp HS : Đưa ra cách giải của mình, học sinh có thể - Xét 2 bài toán như sau với a > 2 là số nguyên cho đưa ra những cách giải khác nhau . trước : GV : Đưa ra cách giải cho bài toán . Giải theo các lệnh tuần tự S1:=0; If (1/a>0.0001) then S1:=S1+ 1/a; If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1); If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2); If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3); … Bài toán 1 : Tính tổng 1 1 1 1 S1= aa a2... 100 1 a Bài toán 2 : Tính Tổng 1 1 1 1 ... S2= aa a ... N 1 2 a 1 . Với điều kệin a N 00001 HS : Nhận xét với việc giải bài toán theo cách đó ? Với N = 100 thì lặp 100 lần như thế nhưng theo việc kiểm tra điều kiện thì không biết phải làm Cách giải : theo cách nào? Theo cả hai trường hợp thì đều quá Bắt đầu S được gán giá trị 1/a. dài. Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, … Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) < 0.0001, => số lần lặp chưa biết. Với bài toán 2, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước. Để học sinh hiểu được khái niệm lặp, giáo viên đưa ra một số ví dụ trong thực tế được tính toán Trong lập trình, có những thao tác phải lặp lại lặp đi lặp lại nhiều lần. VD1 : Bài toán gửi tiền vào ngân hàng. Hằng nhiều lần, khi đó ta gọi là cấu trúc lặp. tháng phải tính lãi và cộng thêm vào gốc đang gửi Lặp thường có 2 loại :  Lặp với số lần biết trước . hay nói cách khác gốc của tháng sau = gốc + lãi  Lặp với số lần không biết trước . tháng trước. NNLT nào cũng cung cấp một số câu lệnh để mô tả VD 2: Tính tổng của một đoạn số nguyên mà các cấu trúc lặp như trên. không được dùng công thức. Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong ngôn ngữ Pascal. 2. Lặp có số lần biết trước và câu lệnh for – do GV : Đưa ra ví dụ: So sánh hai thuật toán sau: Chuong 3 tin 11 Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước : Page 6
  • 7.
    Thuật toán Tong_1a B1: S:=1/a; N:=0; B2: N:=N+1; B3:Nếu N >100 thì chuyển sang bước 5; B4: S:= S + 1/(a+ N) rồi quay lại B2; B5: Đưa ra S rồi kết thúc. Thuật toán Tong_1b B1: S:=1/a; N:=101; B2: N := N -1; B3: Nếu N < 1 thì chuyển sang bước 5; B4: S:= S+ 1/(a+N) rồi quay lại B2; B5: Đưa ra S rồi kết thúc. - Lặp dạng tiến: For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; - Lặp dạng lùi For <biến đếm> := <giá trị cuối> downto <giá trị đầui> do <câu lệnh>; Trong đó:  Biến đếm thường là biến kiểu số nguyên.  Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.  Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.  Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu. GV : Gọi một số học sinh nhận xét về 2 thuật toán  Tương ứng với mỗi giá trị của biến đếm, trên về một số vấn đề : câu lệnh sau do thực hiện 1 lần  Thuật toán có lặp không?  Lặp bao nhiêu lần?  Hai thuật toán giống và khác nhau như thế Ví dụ 1 : Hai chương trình cài đặt thuật toán nào? tong_1a và tong_1b .  Cái gì thay đổi trong thuật toán này? Sau khi so sánh hai thuật toán trên, giáo viên đưa ra hai cách lặp trong ngôn ngữ Pascal, giải thích ý nghĩa của các thành phần trong câu lệnh . GV : Lấy ví dụ minh họa trong Pascal để các em thấy được sự thay đổi giá trị của biến đếm trong một chương trình thực sự của Pascal . Với 2 ví dụ này, giáo viên nên gõ sẵn chương trình và cho học sinh quan sát việc chạy chương trình, giáo viên vừa cho chạy chương trình vừa giải thích ý nghĩa các lệnh trong chương trình (chú ý nhiều đến lệnh lặp) . GV : Đưa ra thuật toán hoặc có thể yêu cầu học sinh tự xây dựng thuật toán giải bài toán 2, nếu tự xây dựng được thuật toán thì các em sẽ hiểu hơn về lặp không biết trước số lần Đưa thêm ví dụ : Nhắc lại bài toán gửi tiền vào ngân hàng: Nếu có số tiền là A, muốn gửi vào ngân hàng để được số tiền là B > A thì cần gửi trong bao lâu với lãi suất là k%. Yêu cầu học sinh đưa ra cách giải cho bài toán này . Ví dụ 2 : Tính tổng các số nguyên chia hết cho 3 hoặc 5 trong phạm vi từ M đến N (M<N). 3. Lặp với số lần chưa biết trước và câu lệnh while – do Để giải bài toán 2 ta dùng thuật toán như sau : Bước 1 : S :=1/a; N :=0; Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5 ; Bước 3: N :=N +1; Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc GV : Phân tích phương án trả lời của học sinh sau Chuong 3 tin 11 Page 7
  • 8.
    đó đưa ralời giải cho bài toán. - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn. _ Pascal sử dụng câu lệnh lặp While GV : Đưa ra cấu trúc câu lệnh While – Do Trong - Do để tổ chức lặp với số lần chưa viết như sau Pascal, giải thích ý nghĩa các thành phần. HS : Lắng nghe và ghi chép. While <Điều kiện> Do <Câu lệnh>; Trong đó - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện. Ví dụ 1 : Chương trình của bài toán 1. GV: Nên gõ sãn những ví dụ này để học sinh có thể quan sát chương trình, giáo viên chạy thử chương trình trong Pascal. Riêng với VD 2, trước khi đưa ra thuật toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã học ở lớp 10) Chạy chương trình với nhiều cặp M, N khác nhau. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Thuật toán : B1: Nếu M = N thì ƯCLN := M; Kết thúc. B2: Nếu M > N thì M := M – N rồi quay lại B1, Tốt nhất chạy từng bước, cho học sinh thấy sự thay ngược lại N := N – M rồi quay lại B1 đổi của các biến. Sau đây là chương trình tìm UCLN; IV. Củng cố:  Nhắc lại một số khái niệm mới;  Nhắc lại cấu trúc câu lệnh. V. Dặn dò:  Cho bài tập về nhà. Chuong 3 tin 11 Page 8
  • 9.
    Tiết 14 +15 Bài tập và thực hành 2 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: - Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh; - Làm quen với việc hiệu chỉnh chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK. 2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Bài toán. Bộ số Pi-ta-go. Biết rằng bộ ba số nguyên dương a, b, c được gọi là bộ số Pi-ta-go nếu tổng các bình phương của hai số bằng bình phương của số còn lại. Viết chương trình nhập từ bàn phím ba số nguyên dương a, b, c và kiểm tra xem chúng có là bộ số Pi-ta-go hay không? GV: giải thích bài toán. HS: Đưa phương án có thể xảy ra của bài toán. Kiểm tra xem có đẳng thức nào trong ba đẳng thức sau đây xảy ra hay không: 2 2 2 Những công việc cần thực hiện: a b c a) Gõ chương trình sau: 2 2 2 program Pi_ta_go; b a c uses crt; 2 2 2 c a b var a, b, c: integer; a2, b2, c2: longint; begin clrscr; HS: gõ đoạn chương trình. write(„a, b, c:‟); GV: Chú ý, trước else không có dấu chấm phẩy readln(a, b, c); (;). a2:=a; b2:=b; c2:=c; a2:=a2*a; b2:=b2*b; Chuong 3 tin 11 Page 9
  • 10.
    c2:=c2*c; if (a2 =b2 + c2) or (b2 = c2 + a2) or (c2 = a2 + b2) then writeln(„ Ba so da nhap la bo so Pi-ta-go‟) else write(„ Ba so da nhap khong la bo so Pi-tago‟); readln end. b) Lưu chương trình với tên PITAGO lên đĩa. c) Nhấn phím F7 để thực hiện từng câu lệnh chương trình, nhập các giá trị a = 3, b = 4, c = 5. d) Vào bảng chọn Debug mở cửa sổ hiệu chỉnh để HS: Thực hiện thao tác lưu chương trình. xem giá trị a2, b2, c2. e) Nhấn phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết quả a2 = 9, b2 = 16, c2 = 25. GV: Theo dõi và hướng dẫn HS thực hiện các phần của bài thực hành. GV: Hướng dẫn cụ thể ở từng máy một. f) Quan sát quá trình rẽ nhánh. g) Lặp lại các bước trên với bộ dữ liệu a = 700, b = 1000, c = 800. h) Nếu thay dãy lệnh a2:=a; b2:=b; c2:=c; a2:=a2*a; b2:=b2*b; c2:=c2*c; bằng dãy lệnh a2:=a*a; b2:=b*b; c2:=c*c; thì kết quả có gì thay đổi với bộ dữ liệu cho ở câu g? HS: Nếu thực hiện xong các yêu cầu trong bài thực hành thì có thể làm một số bài tập trong SGK (t.51). GV: Gợi ý cho HS thực hiện các bài tập này. IV. Củng cố: V. Dặn dò: Tiết 16 Kiểm tra 1 tiết Ngày soạn:...../......; Ngày giảng:..../...... Chuong 3 tin 11 Page 10
  • 11.
    I. Mục tiêu 1.Kiến thức: - Củng cố và ghi nhớ kiến thức cơ bản của chương 2 2. Kỹ năng: - Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những chương trình TP. II. Chuẩn bị của GV và HS: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Kiểm tra bằng bài viết trên lớp. GV: Phát đề cho HS, quan sát HS làm bài. Bài kiểm tra gồm 20 câu trắc nghiệm. HS: Làm bài nghiêm túc, không sử dụng tài liệu. IV. Củng cố: V. Dặn dò: Ôn tâp toàn bộ chương 2 và bài “Cấu trúc rẽ nhánh”. Giờ sau kiểm tra học kì. Tiết 18 Kiểm tra học kì I Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Chuong 3 tin 11 Page 11
  • 12.
    - Củng cốvà ghi nhớ kiến thức cơ bản của toàn bộ nội dung học kì I. 2. Kỹ năng: - Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những chương trình viết bằng ngôn ngữ lập trình Pascal. II. Chuẩn bị của GV và HS: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Kiểm tra bằng bài viết trên lớp. GV: Phát đề cho HS, quan sát HS làm bài. Bài kiểm tra gồm 30 câu trắc nghiệm. HS: Làm bài nghiêm túc, không sử dụng tài liệu. IV. Củng cố: V. Dặn dò: Chuong 3 tin 11 Page 12
  • 13.
    Tiết 19 Cấu trúclặp (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ. 2. Học sinh: Vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc của câu lệnh lặp với số lần biết trước? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung 3. Lặp với số lần chưa biết trước và câu lệnh while – do Để giải bài toán 2 ta dùng thuật toán như sau : Bước 1 : S :=1/a; N :=0; Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến GV : Đưa ra cấu trúc câu lệnh While – Do Trong bước 5 ; Pascal, giải thích ý nghĩa các thành phần. HS : Lắng nghe và ghi chép. Bước 3: N :=N +1; Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn. _ Pascal sử dụng câu lệnh lặp While - Do để tổ chức lặp với số lần chưa viết như sau While <Điều kiện> Do <Câu lệnh>; GV: Nên gõ sãn những ví dụ này để học sinh có thể quan sát chương trình, giáo viên chạy thử chương trình trong Pascal. Riêng với VD 2, trước khi đưa ra thuật toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã học ở lớp 10) Chạy chương trình với nhiều cặp M, N khác nhau. Trong đó - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện. Tốt nhất chạy từng bước, cho học sinh thấy sự thay Ví dụ 1 : Chương trình của bài toán 1. đổi của các biến. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Chuong 3 tin 11 Page 13
  • 14.
    Thuật toán : B1:Nếu M = N thì ƯCLN := M; Kết thúc. B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN; IV. Củng cố:  Nhắc lại một số khái niệm mới;  Nhắc lại cấu trúc câu lệnh. V. Dặn dò:  Cho bài tập về nhà. Chuong 3 tin 11 Page 14
  • 15.
    Tiết 20 Bài tập Ngàysoạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố thêm về cấu trúc rẽ nhánh; 2. Kỹ năng: - Luyện cấu trúc lặp, chú ý bài tìm tổng của dãy số; - Tiếp tục làm quen với các công cụ hiệu chỉnh chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc câu lệnh lặp với số lần chưa biết trước? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Hướng dẫn và giải đáp các thắc mắc của HS về một số bài tập ở nhà. GV: Yêu cầu HS chữa bài tập 4 trên bảng. HS: Lên bảng chữa bài. GV: Sửa lỗi và hoàn chỉnh bài 4. Bài 4 a) if (sqr(x)+sqr(y)<=1) then z:= sqr(x) + sqr(y) GV: Rèn luyệ, uốn nắn HS về cách viết các câu else if y>=x then z:=x + y else z:=0.5; lệnh sao cho chính xác và gọn gàng, mỗi câu lệnh b) nên viết trên một dòng để thuận tiện cho quá trình if (sqr(x-a) + sqr(y-b))<=sqr(r) then z:=abs(x) + theo dõi thực hiện từng lệnh. abs(y) else z:=x+y; HS: Rèn luyện tính cẩn thận, chu đáo khi lập trình, rèn luyện cách hiệu chỉnh chương trình khi gặp lỗi và cách kiểm thử lại chương trình thông qua một số test. Bài 5 GV: Yêu cầu cả lớp cùng giải bài tập 5.b. IV. Củng cố: V. Dặn dò: Đọc trước bài Kiểu mảng. Chuong 3 tin 11 Page 15