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

Bài giảng lập trình căn bản chương 3 ths nguyễn cao trí

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 (13.89 MB, 13 trang )

Dành cho sinh viên chính quy
chuyên ngành Công Nghệ Thông Tin

ThS. Nguyễn Cao Trí

www.dit.hcmut.edu.vn/~caotri


Các phát biểu điều khiển
Phát biểu điều khiển và flowchart
So sánh và đánh giá


Tổng quan


Phát biểu điều khiển: là những dòng lệnh dùng để điều khiển hoạt động
của chương trình.



Các phát biểu điều khiển cơ bản
1.
2.

Phát biểu gán (assignment statement)
Các phát biểu điều khiển (control statements)
Phát biểu ghép BEGIN END;
2.
Phát biểu điều kiện IF
3.


Phát biểu điều kiện CASE
4.
Phát biểu lặp WHILE
5.
Phát biểu lặp REPEAT
6.
Phát biểu lặp FOR
7.
Phát biểu GOTO
8.
Phát biểu gọi thủ tục (procedure call): gọi các chương trình con loại
procedure
Phát biểu WITH : dùng với kiểu dữ liệu record.
1.

3.


Phát biểu ghép BEGIN END;
 Dùng để ghép nhiều phát biểu thành một phát biểu.
 Cú pháp : BEGIN các phát biểu; END;

Ví dụ

S1;
S2;
…..
Sn;
N phát biểu


S1
S2

Sn

BEGIN
END;

Begi
n
S1;
S2;
…..
Sn;
1End;
phát biểu

Begin
t:=x;
x:=y;
y:=t;
writeln(‘đã đổi
xong’);
End;


PhátDùng
biểu
IF
để thực hiện hay không một



phát biểu theo một điều kiện.
 Cú pháp
if <condition> then statement;

Condition
No

Yes

Statements



Chỉ có 1
phát biểu
trong thân
của IF

Ví dụ

If Delta > 0 then
begin
X1:= (-b + sqrt(Delta))/2/a
X2:= (-b - sqrt(Delta))/2/a
end;


Phát biểu IF Then Else

Dùng để chọn lựa phát biểu nào sẽ được thực hiện
giữa 2 phát biểu.
 Cú pháp


if <condition> then statement1 else statement2 ;

Condition
No
Yes

Statement1

Statement2

Ví dụ

If Delta > 0 then
begin
X1:= (-b + sqrt(Delta))/2/a
X2:= (-b - sqrt(Delta))/2/a
end
else Writeln(‘Còn xét tiếp’);


Trường hợp đặc biệt
 Xét phát biểu sau:
 If ĐK1 then if ĐK2 then S1 else S2;

else


? else

 ELSE sẽ thuộc về IF nào gần 1 chưa có ELSE
Yes

ĐK2

ĐK2
No
No

Yes

S1

S2


Phát biểu CASE
 Dùng để chọn một trong

số những phat1 biểu để
thực hiện tùy theo giá trị
của biểu thức chọn.
 Các nhãn case: chỉ ra
các trường hợp phân
nhánh.
 Các nhãn case là một
hay nhiều giá trị rời rạc

theo sau là dấu : và một
phát biểu tương ứng.

Case BiểuThứcChọn of
nhãn1: S1;
nhãn2: S2;

nhãnN: Sn;
else S0;
End;
Nhãn1

S1

BiểuThứcChọn

Nhãn2

S2

NhãnN

SN

Else

S0


Phát biểu While

 Dùng để lặp đi lặp lại nhiều lần






một công việc nào đó.
Cú pháp
While <ĐK> Do statement;
While kiểm tra điều kiện trước rồi
mới thực hiện phát biểu.
Số lầp lặp là không biết trước.
Số lần lặp tối thiểu là 0 và tối đa là
không xác định.
Chú ý: Trong thân của while phải
có ít nhất một phát biểu có khả
năng thay đổi giá trị của điều kiện.
Nếu không sẽ lặp vô tận (infinite
loop)

 Ví dụ:

gt:=1; i:=1
While ibegin
i:=i+1;
gt:=gt*I;
end;


Yes

ĐK

S1
No


Phát biểu Repeat
 Dùng để lặp đi lặp lại nhiều lần






một công việc nào đó.
Cú pháp
Repeat statements until <ĐK>;
Repeat thực hiện xong các phát
biểu rồi mới kiểm tra điều kiện.
Số lầp lặp là không biết trước.
Số lần lặp tối thiểu là 1 và tối đa là
không xác định.
Chú ý: Trong thân của repeat phải
có ít nhất một phát biểu có khả
năng thay đổi giá trị của điều kiện.
Nếu không sẽ lặp vô tận (infinite
loop)


 Ví dụ:

gt:=1; i:=1
repeat
i:=i+1;
gt:=gt*I;
until i>n;
S1

No

ĐK
Yes


While vs. Repeat
 While và Repeat là hai phát biểu có thể chuyển đổi cho nhau.
 White <ĐK> do statement;

=> If <ĐK> then repeat statement until NOT(<ĐK>);
 Repeat statements until <ĐK>;
=> Begin
Một phát biểu
statements;
while NOT(<ĐK>) do begin
statements;
end;
End;
 Chú ý khả năng bị lặp vô tận.



Phát biểu FOR
 Dùng để lặp lại một công việc nào đó với số lần lặp là xác
định được.
 Sử dụng biến đếm và biểu thức cận để xác định số lần lặp
lại.
 For biendem:=BT1 to BT2 do statement;
 Số lần lặp là BT2-BT1+1;
 Sau mỗi lần lặp biendem tăng đến giá trị kế tiếp;
 For biendem:=BT1 downto BT2 do statement;
 Số lần lặp là BT1-BT2+1;
 Sau mỗi lần lặp biendem giảm đến giá trị kế tiếp;


Một số chú ý với phát biểu FOR
 Biến đếm và các biểu thức cận phải thuộc cùng một kiểu rời

rạc.
 Trong thân của FOR, dù cho các thành phần của biểu thức cận
thay đổi vẫn không ảnh hưởng đến số lần lặp. Ví dụ đoạn code
sau:
a:=5;
For i:=1 to a do a:=a+1;
vẫn chỉ lặp đúng 5 lần dù a bị thay đổi.
 Giá trị của biến đếm sau vòng lặp FOR là KHÔNG XÁC
ĐỊNH. Phụ thuộc vào từng compiler. Do đó không được sử
dụng tiếp giá trị này cho các tính toàn tiếp theo mà phải gán lại
giá trị cụ thể mới.
 Không được thay đổi giá trị biến đếm trong thân vòng lặp
FOR.




×