Câu lệnh Case of.

Một phần của tài liệu Giao An TH_9 (Trang 33 - 38)

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 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)

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.

BÀI CÂU LỆNH LẶP CÂU LỆNH LẶP

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 lặp, cách dùng câu lệnh lặp nào cho phù hợp.  Biết cách thoát khỏi các vòng lặp khi cần, biết tránh làm vòng lặp vô tận.

KIẾN THỨC ĐẠT ĐƯỢC

 Biết và nắm vững các câu lệnh lặp trong Pascal, cách dùng câu lệnh cho phù hợp, khi nào nên dùng câu lệnh FOR, WHILE và REPEAT.

 Biết số lần lặp của từng câu lệnh.

 Biết tránh những trường hợp sẽ làm cho vòng lặp vô tận.  Biết dùng các câu lệnh để thoát khỏi vòng lặp khi cần thiết.

Một phần của tài liệu Giao An TH_9 (Trang 33 - 38)

Tải bản đầy đủ (DOC)

(69 trang)
w