Trường Đại học Điện lực Tập đoàn Điện lực Việt Nam


Câu lệnh ghép (khối lệnh)



tải về 1.67 Mb.
trang28/48
Chuyển đổi dữ liệu18.07.2016
Kích1.67 Mb.
#1821
1   ...   24   25   26   27   28   29   30   31   ...   48

6.1. Câu lệnh ghép (khối lệnh)


Khối lệnh là một nhóm các lệnh bắt đầu bởi từ khóa BEGIN và kết thúc bởi từ khóa END; nhằm thực hiện một công việc chung nào đó.

Cú pháp: BEGIN

Câu lệnh 1;

Câu lệnh 2;

... ...


Câu lệnh n;

END;


Thực hiện: Các câu lệnh bên trong vẫn thực hiện tuần tự như thông thường. Tuy nhiên câu lệnh ghép có tác dụng nhóm nhiều lệnh lại thành một khối lệnh (được coi như một câu lệnh duy nhất) để phù hợp với các cú pháp của các cấu trúc điều khiển sau này.

6.2. Các câu lệnh rẽ nhánh và lựa chọn

6.2.1. Lệnh rẽ nhánh IF


6.2.1.1 Ý nghĩa

Lệnh rẽ nhánh IF được dùng để giải quyết tình huống các công việc có được thực hiện hay không là tuỳ thuộc vào kết quả của biểu thức logic (biểu thức điều kiện).



6.1.1.2 Cú pháp

Turbo Pascal cung cấp 2 mẫu câu lệnh rẽ nhánh sau:




Dạng khuyết




Dạng đủ

If <điều kiện> then

;




If <điềukiện> then

Else


;

Trong đó:

- <Điều kiện> là biểu thức logic

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


6.2.1.3 Sự hoạt động

Dạng khuyết




Dạng đủ

Nếu <Điều kiện> có giá trị TRUE thì thực hiện ;

Nếu <Điều kiện> có giá trị FALSE thì ra khỏi lệnh IF mà không làm gì.






Nếu <Điều kiện> có giá trị TRUE thì thực hiện ;

Nếu <Điều kiện> có giá trị FALSE thì thực hiện ;



6.2.1.4 Lưu đồ minh họa câu lệnh

Dạng khuyết

Dạng đủ



6.2.1.5 Ví dụ:

Ví dụ 6.1: Viết chương trình giải phương trình bậc nhất ax+b=0 với các hệ số a, b nhập từ bàn phím.

Program giai_phuong_trinh_bac_nhat;

Uses Crt;

Var a, b, x: Real;

BEGIN

ClrScr;


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

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

If a<>0 then

Begin


x:=-b/a;

WriteLn('Phuong trinh co nghiem x= ',x:8:3);

End

Else {a = 0}



If b=0 then

WriteLn('Phuong trinh co vo so nghiem')

Else {a = 0, b <> 0}

WriteLn('Phuong trinh vo nghiem ');

ReadLn;

END.


6.2.1.6 Chú ý

- Câu lệnh ngay trước từ khoá ELSE của lệnh IF không có dấu ;

- Trong trường hợp dùng các lệnh IF lồng nhau, nên viết IF ... THEN ... ELSE thành khối để tiện kiểm tra khi có lỗi logic.

Chẳng hạn ta có thể viết một lệnh IF lồng nhau theo cấu trúc sau:

IF <Điều kiện 1> THEN

ELSE


IF <Điều kiện 2> THEN

ELSE ;


- Cần nắm được qui ước sau đây để hiểu ELSE đi với IF nào “ELSE gắn với IF gần nhất với nó ngoài cặp BEGIN .. END sát nó.

- Nên trình bày chương trình khoa học, các lệnh tương ứng ngang hàng nhau, lệnh nào nằm trong điều kiện thì nên lui vào một chút so với câu điều kiện của nó, bạn sẽ dễ đọc chương trình và chỉnh sửa lỗi.


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.

Каталог: images
images -> Hướng dẫn sử dụng Dropbox Để sử dụng được Dropbox
images -> BÀi thuyết trình cách xáC ĐỊnh và chế ĐỘ pháp lý CỦa các vùng biển theo công ưỚc của liên hiệp quốc về luật biển năM 19821
images -> Céng hßa x· héi chñ nghÜa viÖt nam Độc lập tự do hạnh phúc
images -> Lúa gạo Việt Nam Giới thiệu
images -> Trung Tâm kt tc-đl-cl
images -> Số: 105/2008/QĐ-ttg CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
images -> ChuyêN ĐỀ ĐẠi số TỔ HỢP, XÁc suất kiến thức cơ bản Đại số tổ hợp
images -> BỘ giáo dục và ĐÀo tạo trưỜng đẠi học luật tp. HỒ chí minh dưƠng kim thế nguyên thủ TỤc phá SẢn các tổ chức tín dụng theo pháp luật việt nam
images -> Review of Condor, Sun Grid Engine and pbs

tải về 1.67 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   24   25   26   27   28   29   30   31   ...   48




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

    Quê hương