Tải bản đầy đủ (.docx) (14 trang)

Chuyên đề :Câu lệnh if – then môn tin học 11

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (215.76 KB, 14 trang )

MỤC LỤC
Nội dung

Trang

Mục lục

1

Giới thiệu

2

Phần 1: Đặt vấn đề.

3

Phần 2: Nội dung.

4

1.

Rẽ nhánh

4

2.

Câu lệnh if - then


5

3.

Câu lệnh ghép

6

4.

Bài tập

7

5.

Bài tập tự làm ở nhà

12

Phần 3: Kết luận và kiến nghị

Page 1

13


GIỚI THIỆU

Tác giả chuyên đề

Chức vụ
Đơn vị công tác
Cấu trúc rẽ nhánh
Tên chuyên đề


Sử dụng câu lệnh if – then để lập trình giải bài toán

Đối tượng học sinh bồi dưỡng

Lớp 11

Số tiết dự kiến bồi dưỡng

03 tiết

Page 2


Phần 1: ĐẶT VẤN ĐỀ
Trong lập trình Pascal, phần kiến thức về Cấu trúc rẽ nhánh là phần kiến thức chương trình đơn
giản bắt đầu chuyển sang các chương trình có cấu trúc phức tạp.
Để chuẩn bị cho tư duy lập trình của các em bắt nhịp được tốt hơn khi chuyển sang phần kiến
thức về Cấu trúc rẽ nhánh nên tôi viết chuyên đề này để giúp các em luyện tập và sử dụng Câu
lệnh if – then một cách thành thạo và hiệu quả khi lập trình giải bài toán.
Do sự hạn chế về thời gian và kiến thức nên chuyên đề này không tránh khỏi thiếu sót, mong quí
thầy cô và các em học sinh có ý kiến đóng góp về số điện thoại 0367 127 411. Xin trân trọng cảm
ơn!

Page 3



Phần 2: NỘI DUNG
Chuyên đề:
Cấu trúc rẽ nhánh

Sử dụng câu lệnh if – then để lập trình giải bài toán
1. Rẽ nhánh
- Trong thực tế, có rất nhiều việc chỉ được thực hiện khi một điều kiện cụ thể nào đó được thỏa
mãn.
- Ví dụ cho hai lời thoại ở hai thời điểm khác nhau của hai bạn Châu và Ngọc thường cùng nhau
chuẩn bị các bài thực hành môn Tin học như sau:
“Chiều mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc”

“Chiều mai nếu trời không mưa thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi điện cho
Châu để trao đổi”
- Lời thoại thứ nhất thuộc dạng thiếu:
Nếu…thì…
- Lời thoại thứ hai thuộc dạng đủ:
Nếu…thì…, nếu không thì…
- Trong nhiều thuật toán, các thao tác tiếp theo sẽ phụ thuộc vào kết quả nhận được từ các bước
trước đó. Tương tự ta có cấu trúc rẽ nhánh thiếu và đủ.
- ví dụ, để giải phương trình bậc hai:
ax2 + bx + c = 0, (a≠0)

o Trước tiên, ta tính biệt số Delta D = b2 – 4ac.
o Kiểm tra, Nếu D < 0 thì đưa ra thông báo phương trình vô nghiệm rồi kết thúc
Ngược lại thì tính và đưa ra nghiệm thực rồi kết thúc
- Sơ đồ thuật toán:
Nhập a, b, c


D

b2 – 4ac
Đúng

Sai
Tính và đưa ra nghiệm thực rồi kết thúc

Page 4

D < 0?

Thông báo phương trình vô nghiệm rồi kết thúc


2. Câu lệnh if - then
Sai

 Dạng thiếu.

Đúng

- Cú pháp:
if <điều kiện> then <câu lệnh>;
- Sơ đồ thuật toán:

điều kiện

câu lệnh


 Dạng đủ.
- Cú pháp:
if <điều kiện> then <câu lệnh 1>
else <câu lệnh 2>;
- Sơ đồ thuật toán:
Đúng

Sai
câu lệnh 2

điều kiện

câu lệnh 1

- Trong đó:
+ Điều kiện là biểu thức logic.
+ Câu lệnh; câu lệnh 1; câu lệnh 2 là một câu lệnh của Pascal.
- Ví dụ 1:
if N > 0 then write(N, ' la so duong');
- Ví dụ 2:
if N mod 2 = 0 then write(N, ' la so chan')
else write(N, ' la so le');

Page 5


3. Câu lệnh ghép
- Trong trường hợp sau then hoặc sau else có nhiều thao tác cần dùng tới nhiều câu lệnh để mô tả
khi đó ta cần ghép dãy câu lệnh đó thành câu lệnh ghép.

- Cú pháp:
begin
<các câu lệnh>;
end;
- Ví dụ: Kiểm tra giá trị Delta trong giải phương trình bậc hai như sau:
if D < 0 then write('Phuong trinh vo nghiem')
else
begin
x1:= (-b-sqrt(D)/(2*a);
x2:= (-b+sqrt(D)/(2*a);
writeln('x1 = ', x1:4:2);
writeln('x2 = ', x2:4:2);
end;

Page 6


4. Bài tập
ØBài tập 1: Nhập vào từ bàn phím hai số nguyên a, b. Đưa ra màn hình giá trị lớn nhất trong hai
số nguyên đó.
- Ví dụ:
Dữ liệu nhập vào từ bàn phím Dữ liệu in ra màn hình
62
6
- Xác định bài toán:

• Input: Hai số nguyên a, b.
• Output: Giá trị lớn nhất của hai số
- Ý tưởng:
Cách 1: Sử dụng thêm biến Max

Kiểm tra nếu a > b thì Max  a
Ngược lại thì Max  b;
Sơ đồ thuật toán:

Sử dụng câu lệnh if – then dạng đủ:

nhập a, b

đúng

sai
Maxb

a>b?

Maxa

if a > b then Max: = a
else Max:= b;

Thông báo giá trị Max rồi kết thúc

Cách 2: Sử dụng thêm biến Max
Max  a;
Kiểm tra nếu b > a thì Max  b;
Sơ đồ thuật toán:

Sử dụng câu lệnh if – then dạng thiếu:

Max: = a;

if b > a then Max:= b;

Page 7


nhập a, b

Maxa
đúng
b>a?

Maxb

sai
Thông báo giá trị Max rồi kết thúc

Cách 3: Không sử dụng thêm biến thứ ba (Max).
Kiểm tra nếu a > b thì thông báo giá trị a rồi kết thúc
Ngược lại thì thông báo giá trị b rồi kết thúc;
Sơ đồ thuật toán:

Sử dụng câu lệnh if – then dạng đủ:

if a > b then Write(a)
else Write(b);
nhập a, b

đúng

sai

a>b?

Thông báo giá trị b rồi kết thúc

- Chương trình mẫu:

Page 8

Thông báo giá trị a rồi kết thúc


Program TimMax;
var a, b: integer;
begin
write('Nhap a, b: '); readln(a, b);
if a>b then write(a)
else write(b);
readln;
end.

Page 9


ØBài tập 2: Nhập vào từ bàn phím hai số nguyên a, b. Đưa ra màn hình theo yêu sau:
- Dòng thứ nhất in ra giá trị lớn nhất của hai số.
- Dòng thứ hai in ra hai giá trị cách nhau bởi một ký tự trống theo thứ tự số nhỏ trước, số lớn sau.
- Ví dụ:
Dữ liệu nhập vào từ bàn phím Dữ liệu in ra màn hình
62
6

26
- Xác định bài toán:

• Input: Hai số nguyên a, b.
• Output: In ra hai dòng
o Dòng thứ nhất: Giá trị lớn nhất của hai số.
o Dòng thứ hai: Hai giá trị theo thứ tự số nhỏ trước, số lớn sau.
- Ý tưởng: Dựa trên ý tưởng cách 3 của bài tập 1, sử dụng câu lệnh if-then chứa câu lệnh ghép.
Kiểm tra nếu a > b thì
- Dòng thứ nhất in ra giá trị a.
- Dòng thứ hai in ra hai giá trị lần lượt là b a
Ngược lại thì
- Dòng thứ nhất in ra giá trị b.
- Dòng thứ hai in ra hai giá trị lần lượt là a b
Sơ đồ thuật toán:

- Thông báo giá trị b.
- Thông báo hai giá trị a b.
nhập a, b
- Rồi kết thúc

đúng

sai
a>b?

- Thông báo giá trị b.
- Thông báo hai giá trị a b.
- Rồi kết thúc


Sử dụng câu lệnh if – then dạng đủ chứa câu lệnh ghép:
if a > b then
Page 10


begin
writeln(a);
writeln(b, ' ' ,a);
end
else
begin
writeln(b);
writeln(a, ' ' , b);
end;
- Chương trình mẫu:
Program TimMax2;
var a, b: integer;
begin
write('Nhap a, b: '); readln(a, b);
if a>b then
begin
writeln(a);
writeln(b, ' ' ,a);
end
else
begin
writeln(b);
writeln(a, ' ' , b);
end;
readln;

end.

ØBài tập 3: Nhập vào từ bàn phím một điểm số là số nguyên dương N (0 ≤ N ≤ 10). Đưa ra màn
hình:
- Hoặc thông báo: N là điểm chưa đạt - nếu giá trị N .
- Hoặc thông báo: N là điểm đạt - nếu giá trị N .
- Hoặc thông báo: N là điểm xuất sắc - nếu giá trị N .
- Ví dụ:
Dữ liệu nhập vào từ bàn phím
4
6
10
- Xác định bài toán:

• Input: Số nguyên dương N.
• Output: Đưa ra thông báo.
Page 11

Dữ liệu in ra màn hình
4 la diem chua dat
6 la diem dat
10 la diem xuat sac


o Hoặc N là điểm chưa đạt
o Hoặc N là điểm đạt
o Hoặc N là điểm xuất sắc
- Ý tưởng: Sử dụng cấu trúc rẽ nhánh lồng nhau.
Kiểm tra nếu N > 8 thì
thông báo N là điểm xuất sắc rồi kết thúc

Ngược lại
Nếu N > 4 thì thông báo N là điểm đạt rồi kết thúc
Ngược lại thì thông báo N là điểm chưa đạt rồi kết thúc.
Sơ đồ thuật toán:
nhập N

đúng
N>8?

Thông báo N là điểm xuất sắ

sai
đúng
N>4?

Thông báo N là điểm đạt r

sai

Thông báo N là điểm chưa đạt rồi kết thúc

Sử dụng câu lệnh if – then lồng nhau:
if N > 8 then Write(N, ' la diem xuat sac')
else
if N > 4 then Write(N, ' la diem dat');
else write(N, ' la diem chua dat');
- Chương trình mẫu:
Program Danhgia;
var N: byte;
begin

write('Nhap diem thi: '); readln(N);
if N > 8 then write(N, ' la diem xuat sac')
else
if N > 4 then write(N, ' la diem dat')
else write(N, ' la diem chua dat');
readln;
Page 12


end.
5. Bài tập tự làm ở nhà.
ØBài tập 4: Nhập vào từ bàn phím Số nguyên dương N. Đưa ra màn hình số nguyên dương K
nhỏ nhất mà K ≥ N và K chia hết cho 10.
- Ví dụ:
Dữ liệu nhập vào từ bàn phím
53
60

Dữ liệu in ra màn hình
60
60

- Xác định bài toán:

• Input: Số nguyên dương N.
• Output: Số nguyên dương K nhỏ nhất mà K ≥ N và K chia hết cho 10.
- Hướng dẫn : Sử dụng phép chia div – chia lấy nguyên hoặc phép chia mod – chia lấy dư để tính
giá trị K.
ØBài tập 5: Viết chương trình giải và biện luận phương trình bậc nhất ax + b = 0.
Với a, b là hai số nguyên nhập vào từ bàn phím.

(* Lưu ý: biện luận cả trường hợp với a = 0.)
- Ví dụ:
Dữ liệu nhập vào từ bàn phím
-2 4
03
00

Dữ liệu in ra màn hình
Nghiem x = 2
Phuong trinh vo nghiem
Phuong trinh co vo so nghiem

- Xác định bài toán:

• Input: Hai số nguyên a, b.
• Output:
o Hoặc đưa ra nghiệm phương trình
o Hoặc thông báo phương trình có vô số nghiệm
o Hoặc thông báo phương trình vô nghiệm
- Hướng dẫn: Sử dụng cấu trúc rẽ nhánh lồng nhau.
Xét điều kiện nếu a ≠ 0 thì
- Tính nghiệm x 
- Đưa ra giá trị nghiệm x;
Ngược lại thì
Nếu b = 0 thì thông báo phương trình có vô số nghiệm
Ngược lại thì thông báo phương trình vô nghiệm.
Phần 3: KẾT LUẬN VÀ KIẾN NGHỊ

Page 13



Qua chuyên đề này tôi đã giúp các em học sinh được tìm hiểu sâu hơn, chi tiết hơn về cách
thức sử dụng câu lệnh if – then dạng đủ; câu lệnh if – then dạng thiếu; câu lệnh if – then lồng
nhau vào lập trình giải một số bài toán.
Kết luận:
 Học sinh biết cách mô tả thuật toán.
 Học sinh có kỹ năng viết chương trình đơn giản.
 Học sinh nắm được cú pháp về:

 Câu lệnh if – then dạng đủ;
 Câu lệnh if – then dạng thiếu;
 Câu lệnh ghép.
Từ đó đưa ra hướng lập trình tối ưu cho bài toán.

Page 14



×