Tải bản đầy đủ (.pdf) (27 trang)

Giáo án tin học 9 - Câu lệnh lựa chọn docx

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 (198.54 KB, 27 trang )

Giáo án tin học 9
BÀI

Câu lệnh lựa chọn

KIẾN THỨC YÊU CẦU:
 Biết xác định vấn đề nào có sử dụng đến câu lệnh
chọn lựa, cách dùng câu lệnh chọn lựa nào cho phù
hợp.
 Biết khi nào phải dùng câu lệnh ghép.

KIẾN THỨC ĐẠT ĐƯỢC
 Biết và nắm vững các câu lệnh chọn lựa trong
Pascal, cách dùng câu lệnh cho phù hợp, khi nào sẽ
dùng câu lệnh If không có Else, khi nào có dùng Else,
câu lệnh If lồng nhau, câu lệnh Case.
 Biết thực hiện câu lệnh ghép chính xác.

I/ Câu lệnh if … then … else … ;
1. Câu lệnh if … then …;
iF <Điều kiện> THEN
Câu lệnh;
Ý nghĩa: Sẽ xét điều kiện theo sau iF. Nếu đúng
thì thực hiện các lệnh theo sau THEN, nếu sai thì coi
như lệnh này đã thực hiện xong. Điều kiện đơn giản
là biểu thị trong các quan hệ =, <>, >, <, >=, <=. Điều
kiện phức hợp có sử dụng các phép toán Logic như
NOT, AND, OR trên những điều kiện đơn giản.
Ví dụ:
Program iF_THEN;
Var


x : integer;
y : integer;
Ketqua : Longint;
Begin
Write(‘Ban nhap vao gia tri cua x = ‘);
Readln(x);
Write(‘Ban nhap vao gia tri cua y = ‘);
Readln(y);
Write(‘Ban doan x + y = ‘);
Readln(Ketqua);
if (Ketqua=x+y) Then
Writeln(‘Hoan ho ban da doan dung’);
if (Ketqua<>x+y) Then
Writeln(‘Rat tiec ban da doan sai’);
Readln;
End.
 Chương trình này sẽ cho người sử dụng nhập vào
hai số x và y, sau đó sẽ nhập kết quả x+y. Nếu nhập
đúng kết quả, chương trình sẽ báo ‘Hoan ho ban da
lam dung’, nếu nhập kết quả sai, chương trình sẽ báo
‘Rat tiec ban da lam sai’.
 Ở những chỗ mà Pascal chỉ cho phép viết một
lệnh mà ta lại cần viết nhiều hơn một lệnh thành
phần thì các thành phần đó phải để trong cặp từ khoá
begin và end (đừng nhầm với Begin … End trong
toàn bộ chương trình), và chúng ta được câu lệnh
ghép:
BEGiN
……….
……….

END;
Ví dụ:
Program iF_THEN; {Co dùng lệnh ghép}
Var
x : integer;
y : integer;
Ketqua : Longint;
Begin
Write(‘Ban nhap vao gia tri cua x = ‘);
Readln(x);
Write(‘Ban nhap vao gia tri cua y = ‘);
Readln(y);
Write(‘Ban doan x + y = ‘);
Readln(Ketqua);
if (Ketqua=x+y) Then
Begin
Writeln(‘Hoan ho ban da doan
dung’);
Writeln(‘Ban hoc toan rat tot’);
End;
if (Ketqua<>x+y) Then
Begin
Writeln(‘Rat tiec ban da doan
sai’);
Writeln(‘Ban can co gang hoc tot
hon’);
End;
Readln;
End.


2. Câu lệnh if … then … else …;
iF <Điều kiện> THEN
Câu lệnh mot
ELSE
Câu lệnh hai;
Ghi chú: Câu lệnh trước ELSE sẽ không có dấu chấm
phẩy ‘;’.

Ý nghĩa: Xét điều kiện theo sau iF, nếu đúng sẽ
thực hiện câu lệnh một, nếu sai sẽ thực hiện câu lệnh
hai.
Ví dụ:
Program iF_THEN_ELSE;
Var
x : integer;
y : integer;
Ketqua : Longint;
Begin
Write(‘Ban nhap vao gia tri cua x = ‘);
Readln(x);
Write(‘Ban nhap vao gia tri cua y = ‘);
Readln(y);
Write(‘Ban doan x + y = ‘);
Readln(Ketqua);
if (Ketqua=x+y) Then
Writeln(‘Hoan ho ban da doan dung’)
Else
Writeln(‘Rat tiec ban da doan sai’);
Readln;
End.


3. Câu lệnh if … then … else …; (lồng nhau).
Các bạn có thể xem phát biểu if … then … else
lồng nhau như ở ví dụ sau:
Ví dụ:
Program iF_THEN_ELSE_Longnhau;
Var
Toan : integer;
Ly : integer;
Hoa : integer;
Ketqua : integer;
Begin
Write(‘Ban nhap diem Toan (toi da la 10)
: ‘);
Readln(Toan);
Write(‘Ban nhap diem Ly (toi da la 10) :
‘);
Readln(Ly);
Write(‘Ban nhap diem Hoa (toi da la 10) :
‘);
Readln(Hoa);
Ketqua := Toan + Ly + Hoa;
if (Ketqua >= 25) Then
Writeln(‘Dau vao dai hoc, khong can
xet diem khong che’)
Else
Begin
if ((ketqua>=21) And (Toan>=7)
And (Ly>=7) And (Hoa>=7) Then
Writeln(‘Hoc sinh nay dau, vi

cac mon deu tu 7 tro len’)
Else
Writeln(‘Khong du tieu chuan
vao dai hoc’);
End;
Readln;
End.
II/ Câu lệnh Case … of.
1. Câu lệnh Case … of … end;
CASE <Biểu thức chọn> OF
Chon 1 : Lệnh 1;
Chon 2 : Lệnh 2;
………………….
…………………
Chon N : Lệnh n;
END;
 Đầu tiên biểu thức chọn được tính trị, nếu trị đó
nằm trong chọn nào, thì câu lệnh sau chọn đó sẽ thực
hiện, nó sẽ kiểm tra từ trên xuống, nếu không có chon
nào thoả, kết thúc không làm gì cả.
Nhận xét: Phát biểu CASE là một dạng làm gọn của
phát biểu iF. Bạn nên dùng CASE khi lựa chọn nhiều
trường hợp.
Ví dụ:
Program CASE_KhongcoELSE;
Var
x : integer;
Begin
Write(‘Ban nhap con so cua thang ‘);
Readln(x);

Case (x) of
1: Writeln(‘Day la thang gieng’);
2: Writeln(‘Day la thang Hai’);
3: Writeln(‘Day la thang Ba’);
4: Writeln(‘Day la thang Tu’);
5: Writeln(‘Day la thang Nam’);
6: Writeln(‘Day la thang Sau’);
7: Writeln(‘Day la thang Bay’);
8: Writeln(‘Day la thang Tam’);
9: Writeln(‘Day la thang Chin’);
10: Writeln(‘Day la thang Muoi’);
11: Writeln(‘Day la thang Muoi mot’);
12: Writeln(‘Day la thang Muoi hai’);
End;
Readln;
End.
 Trong phát biểu Case này, nếu bạn nhập một số
không phải từ 1 đến 12, chương trình sẽ không thông
báo gì cả, phát biểu Case xem như chấm dứt.
 Để khi nhập vào một số không thuộc từ 1 đến 12,
chương trình phải báo ra một câu nào đó, chúng ta
phải dùng lệnh Case … of … else … end như sau:
2. Câu lệnh Case … of … else … end;
CASE <Biểu thức chọn> OF
Chon 1 : Lệnh 1;
Chon 2 : Lệnh 2;
………………….
…………………
Chon N : Lệnh n;
Else Câu lệnh;

END;
 Đầu tiên biểu thức chọn được tính trị, nếu trị đó
nằm trong chọn nào, thì câu lệnh sau chọn đó sẽ thực
hiện, nó sẽ kiểm tra từ trên xuống, nếu không có chon
nào thoả, thì thực hiện lệnh sau ELSE.
Nhận xét: Phát biểu CASE là một dạng làm gọn của
phát biểu iF. Mọi phát biểu Case đều có thể viết lại
với các phát biểu iF. Bạn nên dùng CASE khi lựa
chọn nhiều trường hợp.
Ví dụ:
Program CASE_KhongcoELSE;
Var
x : integer;
Begin
Write(‘Ban nhap con so cua thang ‘);
Readln(x);
Case (x) of
1: Writeln(‘Day la thang gieng’);
2: Writeln(‘Day la thang Hai’);
3: Writeln(‘Day la thang Ba’);
4: Writeln(‘Day la thang Tu’);
5: Writeln(‘Day la thang Nam’);
6: Writeln(‘Day la thang Sau’);
7: Writeln(‘Day la thang Bay’);
8: Writeln(‘Day la thang Tam’);
9: Writeln(‘Day la thang Chin’);
10: Writeln(‘Day la thang Muoi’);
11: Writeln(‘Day la thang Muoi mot’);
12: Writeln(‘Day la thang Muoi hai’);
Else

Begin
Writeln(‘Khong co thang nay’);
Writeln(‘Ban khong biet cac
thang trong nam’);
End;
End;
Readln;
End.
 Trong câu lệnh Case … of của Pascal, nếu có
nhiều chọn có cùng một giá trị, chúng ta có thể gộp
lại. Bạn xem ví dụ sau:
Program CASE_goplai;
Var
x : integer;
Begin
Write(‘Ban nhap con so cua thang ‘);
Readln(x);
Case (x) of
1,3,5,7,8,10,12: Writeln(‘Thang: ’,x, ‘ co
31 ngay’);
4,6,9,11: Writeln(‘Thang: ‘,x, ‘ co 30
ngay’);
2: Writeln(‘Thang: ‘, x, ‘ co 28 ngay’);

Else
Begin
Writeln(‘Khong co thang nay’);
Writeln(‘Ban khong biet cac thang
trong nam’);
End;

End;
Readln;
End.


TÓM LƯỢC

 Khi xét điều kiện đúng thì thực hiện một điều gì
đó, không thì thôi, chúng ta dùng câu lệnh if …
then điều cần thực hiện.
 Khi điều kiện đúng sẽ thực hiện điều này, nếu
không đúng thì thực hiện điều kia. Ta thực hiện câu
lệnh if … then … else.
 Nếu có nhiều câu lệnh, chúng ta dùng phát biểu
ghép Begin … end.
 Sử dụng phát biểu Case … of khi lựa chọn nhiều
trường hợp. Lưu ý có thể gộp các lựa chọn có cùng
giá trị.
 Khi không cần thể hiện điều gì nếu không có chọn
nào thoả, chúng ta dùng câu lệnh Case of không
có Else. Nếu cần thể hiện, ta dùng Case … of có
Else.


PHẦN THỰC HÀNH:

1. Cho chương trình sau:
Program Doan;
Uses Crt;
Var

a, b, So : integer;
Begin
Clrscr;
Write(‘Nhap vao 2 so a va b : ‘);
Readln(a,b);
So := a;
if So < b then So := b;
Writeln (x);
Readln;
End.
a. Hãy giải thích từng lệnh và cho biết chương
trình trên làm việc gì?
b. Hãy bổ sung những thông báo cần thiết vào
chương trình trên để làm dễ dàng cho người sử dụng.
2. Viết chương trình nhập vào chiều dài và chiều rộng
của hình chữ nhật. Nếu kết quả bằng chiều dài nhân
với chiều rộng, thông báo đúng và cho kết quả, ngược
lại báo sai cho người sử dụng biết.
3. Viết chương trình nhập 3 số a, b, c bất kỳ, Hãy
kiểm tra xem ba số đó có thể là độ dài của các cạnh
trong một tam giác hay không, thông báo thoả hay
không thoả trong từng trường hợp tương ứng.
4. Có người viết chương trình tìm số lớn nhất trong 3
số như sau:
Program Max_3so;
Var
a, b, c : Real;
Begin
Write(‘Nhap vao 3 so ‘);
Readln(a,b,c);

if a < b then a:=b
Else
if a < c then a:=c;
Write(‘So lon nhat la : ‘,a);
Readln;
End.
Chương trình trên cho đáp số có lúc đúng, có lúc
sai, tuỳ thuộc vào a, b, c. Bạn giải thích tại sao như
vậy? Hãy sửa lại cho đúng. Bạn có thể viết như ở bài
1.
5. Bạn nhìn chương trình sau:
Program Tinhtoan;
Var
Toantu : Char;
Ketqua : Real;
x, y : integer;
Lamduoc : Boolean;
Begin
Write(‘Nhap vao hai so x va y : ‘);
Readln(x,y);
Write(‘Nhap vao phep toan can thuc hien:
‘);
Readln(Toantu);
Lamduoc := true;
Case Toantu of
‘+’ : Ketqua := x + y;
‘-‘ : Ketqua := x – y;
‘*’ : Ketqua := x * y;
‘/’ : if (y=0) then Lamduoc := False
Else Ketqua := x/y;

Else Lamduoc := False;
End;
if Lamduoc then Writeln(‘Ket qua se la :
‘, Ketqua)
Else Writeln(‘Khong lam duoc’);
End.
Giải thích từng câu lệnh trong chương trình, cho
biết chương trình trên thực hiện điều gì. Bạn thấy
chương trình trên đúng hay sai, có hay không?
6. Viết chương trình nhập vào một mùa Xuân, Hạ,
Thu, Đông (mùa Xuân, nhập X, mùa Hạ, nhập H,
mùa Thu nhập T và mùa Đông nhập D), dùng phát
biểu Case … of có Else.
Nếu nhập X sẽ báo câu ‘Mua Xuan rat dep, toi
rat thich’
Nếu nhập H sẽ báo câu ‘Mua Ha rat nong va
buon, vi xa Thay va ban be’
Nếu nhập T sẽ báo câu ‘Mua Thu la vang rat
dep, canh troi tho mong’
Nếu nhập D sẽ báo câu ‘Mua dong lanh leo,
nhung rat thich’
Nếu khác 4 ký tự trên sẽ báo câu ‘Khong co
mua nay, ban nhap lai’.
7. Viết chương trình nhập vào 3 số a, b, c. Máy sẽ hỏi
để người sử dụng nhập vào kết quả:
a. Đố bé a+b+c bằng bao nhiêu ? (nhập vào)
b. Đố bé a+b-c bằng bao nhiêu ? (nhập vào)
c. Đố bé a-b+c bằng bao nhiêu ? (nhập vào)
Sau khi nhập xong 3 câu hỏi trên, nếu nhập kết quả
đúng hoặc sai tuỳ từng trường hợp, chương trình sẽ

báo ra như sau: Trường hợp a, nếu đúng sẽ báo câu
“Hoan hô bé rất giỏi, vì a+b+c=”, ngược lại sẽ báo
“Bé làm sai rồi”. Trường hợp b, nếu đúng sẽ báo câu
“Hoan hô bé rất giỏi, vì a+b-c=”, ngược lại sẽ báo
“Bé làm sai rồi”. Trường hợp c, nếu đúng sẽ báo câu
“Hoan hô bé rất giỏi, vì a-b+c=”, ngược lại sẽ báo
“Bé làm sai rồi”
8. Viết chương trình nhập vào một số là năm, xác
định có phải là năm nhuận không? Biết năm nhuận là
năm chia hết cho 400 hoặc chia hết cho 4 nhưng
không phải là năm đầu của thế kỷ (không chia hết
cho 100)
9. Viết chương trình nhập vào 1 năm, kiểm tra xem
số của năm này có tổ chức Muldial hay không? Biết
cúp bóng đá thế giới được tổ chức đầu tiên vào năm
1930, cứ 4 năm thì sẽ tổ chức một lần.
10. Viết chương trình nhập vào một số chỉ tháng (1
đến 12), sẽ báo ra tháng này có bao nhiêu ngày. Biết
tháng 2 có 28 ngày, các tháng 4,6,9,11 có 30 ngày,
các tháng còn lại có 31 ngày.

×