Giáo trình Nhập môn Tin học LỜi nóI ĐẦU



tải về 4.67 Mb.
trang48/63
Chuyển đổi dữ liệu20.05.2018
Kích4.67 Mb.
1   ...   44   45   46   47   48   49   50   51   ...   63

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


6.2.2.1 Ý nghĩa

Câu lệnh IF chỉ thực hiện rẽ 2 nhánh tương ứng với giá trị của biểu thức <Điều kiện>. Khi cần lựa chọn để thực hiện một trong nhiều khả năng khác nhau ta phải dùng rất nhiều lệnh IF. Câu lệnh CASE sẽ giới thiệu sau đây là lệnh rẽ nhánh theo giá trị cho phép lựa chọn để thực hiện 1 trong nhiều công việc.



6.2.2.2 Cú pháp

Dạng khuyết

Dạng đủ

Case of

Tập hằng 1: ;

Tập hằng 2: ;

....


Tập hằng i: ;

....


Tập hằng n: ;

End;



Case of

Tập hằng 1: ;

Tập hằng 2: ;

....


Tập hằng i: ;

....


Tập hằng n: ;

Else ;

End;


Trong đó:

- <Điều kiện> là biểu thức số học, cho kết quả là một kiểu vô hướng đếm được (nguyên, ký tự, logic, liệt kê).



  • (i=1,..,n) có thể là các hằng và các đoạn hằng, ví dụ:

3: ;

5, 10..15: ;

2, 4, 6: ;

<5 : ;

’a’..’z’: ;



  • có thể là lệnh đơn giản hoặc khối lệnh. Nếu 1 khối lệnh phải được đặt trong Begin..End;

Giá trị của phải cùng kiểu với kiểu của và cũng phải là kiểu vô hướng liệt kê.

6.2.2.3 Sự hoạt động

Sự thực hiện của lệnh CASE ..OF phụ thuộc vào giá trị của




Dạng khuyết




Dạng đủ

Nếu giá trị của thuộc thì được thực hiện và ra khỏi lệnh CASE; Nếu giá trị của không thuộc tập hằng nào thì thoát ra khỏi lệnh CASE mà không làm gì.




Nếu giá trị của thuộc thì được thực hiện và ra khỏi lệnh CASE; Nếu giá trị của không thuộc tập hằng nào thì thực hiện rồi thoát ra khỏi lệnh CASE .


Có thể biểu diễn câu lệnh theo sơ đồ hoạt động sau:

...... ......



Hình 6.2a: Sơ đồ hoạt động của câu lệnh CASE dạng đủ.

...... ......



Hình 6.2b: Sơ đồ hoạt động của câu lệnh CASE dạng khuyết.

6.2.2.4 Lệnh IF .. THEN .. ELSE có thể chuyển thành CASE .. OF như sau

IF <Điều kiện> THEN

ELSE


;

Case <Điều kiện> of

TRUE : ;

FALSE: ;

End;



Ví dụ 6.2: Viết chương trình nhập vào tháng (và năm nếu cần), máy sẽ đưa ra số ngày của tháng đó.

Program VIDU_6_2;

Uses Crt;

Var songay, thang: Byte;

nam: Integer;

BEGIN


ClrScr;

Write('Cho biet thang (dang so): '); ReadLn(thang);

Write('Cho biet nam '); ReadLn(nam);

Case thang of

4,6,9,11: songay:=30;

2:If nam mod 4 = 0 then

if (nam mod 100 = 0)and(nam mod 400 <> 0)then

songay:=28

else songay:=29;

Else songay:=28;

Else { else cua CASE}

songay:=31;

End; {của Case}

{In ket qua }

WriteLn('Thang ', thang, '/',nam,' co: ',songay,' ngay')

ReadLn;


END.

V
Nếu x>y

Nếu x<=y
í dụ 6.3:
Nhập vào hai số x, y. Tính giá trị biểu thức sau: F=

Với bài này ta có thể giải bằng cách sử dụng câu lệnh IF hoặc CASE



Cách 1: sử dụng câu lệnh IF

Program vidu_6_3_IF;

Var x,y,F:real;

Begin


Write(‘ Nhap x = ’);readln(x);

Write(‘ Nhap y = ‘);readln(y);

If x>y then

F:= x+y


Else {nguoc lai cua x>y tuc la x<=y}

F:=abs(x+y);

Writeln(‘ Gia tri cua bieu thuc F = ‘,F:8:2);

Readln;


End.
Cách 2: sử dụng câu lệnh CASE

Program vidu_6_3_CASE;

Var x,y,F:real;

Begin


Write(‘ Nhap x = ’);readln(x);

Write(‘ Nhap y = ‘);readln(y);

Case x>y of

True: F:= x+y;

False: F:=abs(x+y);

End;


Writeln(‘ Gia tri cua bieu thuc F = ‘,F:8:2);

Readln;


End.
Ví dụ 6.4: Lập chương trình tính chiều dài đoạn thẳng AB khi đã biết toạ độ hai đầu mút (Xa, Ya) và (Xb, Yb).

Program VIDU_6_4;

Uses Crt;

Var Xa, Ya, Xb, Yb, d: Real;

BEGIN

ClrScr;


Write('Nhap toa do x cua diem A Xa= '); ReadLn(Xa);

Write('Nhap toa do y cua diem A Ya= '); ReadLn(Ya);

Write('Nhap toa do x cua diem B Xb= '); ReadLn(Xb);

Write('Nhap toa do y cua diem B Yb= '); ReadLn(Yb);

{ Tinh do dai doan thang AB }

d := SQRT(SQR(Xa-Xb)+SQR(Ya-Yb));

{ In ket qua }

WriteLn('Do dai doan thang AB = ', d:10:4);

ReadLn;

END.
Ví dụ 6.5: Lập chương trình biện luận nghiệm của phương trình bậc hai ax2+bx+c=0 với các hệ số a, b nhập vào từ bàn phím.



Program VIDU_6_5;

Uses Crt;

Var a, b, c, x1, x2, delta: Real;

BEGIN


ClrScr;

Write('Nhap he so thu nhat a= '); ReadLn(a);

Write('Nhap he so thu hai b= '); ReadLn(b);

Write('Nhap he so thu ba c= '); ReadLn(c);

If a=0 then

WriteLn('Phuong trinh bac hai suy bien, khong xet!')

Else

Begin


delta := SQR(b)-4*a*c; { Tinh delta }

{ Xet delta }

If delta < 0 then WriteLn('Phuong trinh vo nghiem')

Else


If Delta = 0 then

Begin


WriteLn('Phuong trinh co nghiem kep');

x1:=-b/(2*a);

WriteLn('PT co nghiem kep x1=x2= ',x1:8:3);

end


Else

Begin


WriteLn('PT co hai nghiem rieng biet');

x1:=(-b+SQRT(Delta))/(2*a);

x2:=(-b-SQRT(Delta))/(2*a);

WriteLn('Nghiem thu nhat cua PT la x1= ',x1:8:3);

WriteLn('Nghiem thu hai cua PT la x2= ',x2:8:3);

End;


End;

ReadLn;


END.

: file -> downloadfile9
file -> CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
file -> TIÊu chuẩn quốc gia tcvn 7790-5 : 2008 iso 2859-5 : 2005
file -> Qcvn 81: 2014/bgtvt
file -> UỶ ban nhân dân cộng hòa xã HỘi chủ nghĩa việt nam
file -> VIỆn chăn nuôi trịnh hồng sơn khả NĂng sản xuất và giá trị giống của dòng lợN ĐỰc vcn03 luậN Án tiến sĩ NÔng nghiệp hà NỘI 2014
downloadfile9 -> Môn: Sinh học lớp 11 Câu 1
downloadfile9 -> Đề cương ôn thi Olympic 30/4 môn Sinh Biên soạn: Nguyễn Hoàng Thiên Tân
downloadfile9 -> Họ và tên: Lớp: ĐỀ thi số 5 MÔN: dinh dưỠng học ngàNH: bqcbns
downloadfile9 -> Đề tài Tìm hiểu về lợi ích của alexa
downloadfile9 -> Em xin chân thành cảm ơn! Hải Dương, ngày 31tháng 5 năm 2012 Sinh viên Vũ Tiến Duy MỤc lụC


1   ...   44   45   46   47   48   49   50   51   ...   63


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2019
được sử dụng cho việc quản lý

    Quê hương