Cấu trúc điều khiển

Một phần của tài liệu Tập bài giảng tin học đại cương 2 pdf (Trang 92 - 96)

CHƯƠNG 3 NGÔN NGỮ LẬP TRÌNH PASCAL

3.3. Cấu trúc điều khiển

Câu lệnh ghép là nhóm các câu lệnh được đặt giữa hai từ khóa Begin và End. Lệnh ghép được thực hiện bằng cách thực hiện tuần tự các câu lệnh nằm giữa Begin và End.

Cú pháp:

Begin

<Câu lệnh 1>;

<Câu lệnh 2>;

...

<Câu lệnh n>;

End;

Sau <câu lệnh n> có thể có dấu chấm phảy hoặc không cần có vẫn được chương trình hiểu. Câu lệnh ghép cũng là một dạng câu lệnh trong Pascal.

Ví dụ: Để hoán giá trị giữa hai biến bất kỳ, chúng ta sử dụng câu lệnh ghép như sau:

Begin

tam:=a;

a:=b;

Tin học đại cương 2 - Nguyễn Đạt Tiến

93

b:=tam;

End;

Chú ý: Nếu sau từ khóa End mà tiếp theo là lệnh kết thúc chương trình End.

Thì không cần có dấu chấm phảy. Nếu sau từ khóa End có các lệnh khác thì cần phải có dấu chấm phảy.

Câu lệnh ghép thường được sử dụng trong các cấu trúc điều khiển như If, Case, cấu trúc lặp như For nếu trong đó muốn sử dụng nhiều hơn một lệnh.

3.3.2. Câu lệnh điều kiện IF…THEN…ELSE

Câu lệnh điều kiện If...then...else (gọi tắt là câu lệnh If) trong Pascal có 2 cách để sử dụng

Cách 1: Sử dụng cú pháp If...then (gọi là câu lệnh If khuyết thiếu) Cú pháp:

If <biểu thức logic> then

<lệnh 1>;

Giải thích: Khi gặp lệnh này, máy sẽ kiểm tra <biểu thức logic>, nếu biểu thức này có giá trị True (tức là đúng như điều kiện đặt ra) thì máy thực hiện <Lệnh 1>. Nếu <biểu thức logic> có giá trị False thì máy không thực hiện lệnh gì mà thoát khỏi câu lệnh if.

Cách 2: Sử dụng cú pháp đầy đủ If...then...else Cú pháp:

If <biểu thức logic> then

<lệnh 1>

Else

<lệnh 2>;

Giải thích: Khi gặp lệnh này, máy sẽ kiểm tra <biểu thức logic>, nếu biểu thức này có giá trị True (tức là đúng như điều kiện đặt ra) thì máy thực hiện <lệnh 1>. Ngược lại, nếu <biểu thức logic> có giá trị False thì máy thực hiện <lệnh 2>.

Tin học đại cương 2 - Nguyễn Đạt Tiến

94

Chú ý, câu lệnh trước khi có từ khóa Else không được có dấu chấm phảy(;).

Trường hợp có câu lệnh ghép được đặt kế trước Else thì từ khóa End trước Else không được đặt dấu chấm phảy.

Ví dụ 1: Chương trình nhập từ bàn phím 2 số nguyên x, y. Kiểm tra và cho biết số nào lớn hơn.

Program kiem_tra_so_lon_hon;

Var x,y: integer;

Begin

Write(‘Nhap vao so x: ‘);

Readln(x);

Write(‘Nhap vao so y: ‘);

Readln(y) If x>y then

Write(‘So lon hon la ’,x) Else

Write(‘So lon hon la ’,y) Readln;

End.

Ví dụ 2: Viết chương trình kiểm tra số n được nhập từ bàn phím là số lẻ hay số chẵn.

Program kiem_tra_so_chan_le;

Var n: integer;

Begin

Write(‘Nhap vao so n: ‘);

Readln(n);

If (n mod 2) = 0 then

Write(‘So ’,n, ‘la so chan’) Else

Write(‘So ’,n, ‘la so le’) Readln;

End.

Tin học đại cương 2 - Nguyễn Đạt Tiến

95

3.3.3. Câu lệnh lựa chọn CASE..OF

Ở phần trên, chúng ta đã nghiên cứu và làm 2 ví dụ về câu lệnh If để thực hiện chỉ rẽ vào một trong hai nhánh tương ứng với giá trị của biểu thức logic.

Trong phần này, chúng ta nghiên cứu câu lệnh lựa chọn Case (rẽ nhánh theo giá trị) cho phép lựa chọn để thực hiện một trong nhiều công việc tùy theo giá trị của biểu thức.

Cú pháp:

Case <biểu thức> of

Tập_hằng 1: <Lệnh 1>;

Tập_hằng 2: <Lệnh 2>;

Tập_hằng 3: <Lệnh 3>;

....

Tập_hằng n: <Lệnh n>;

Tập_hằng 1: <Lệnh 1>

Else

<Tập lệnh n+1>

End;

Lệnh Case có thể không có phần Else <lệnh n+1>

Giải thích:

- Tập_hằng_i (i=1,2, ...,n) có thể bao gồm các hằng và các đoạn con;

- Giá trị của <Biểu thức> và giá trị trong các Tập_hằng_i phải có cùng kiểu dữ liệu và phải là kiểu vô hướng đếm được (Ví dụ: kiểu số nguyên, logic, ký tự, liệt kê)

- Tập hằng nào có chứa giá trị tương đương với giá trị của <biểu thức> thì lệnh sau dấu hai chấm (:) của tập hằng đó được thực hiện, sau đó máy thoát khỏi lệnh Case.

- Trong trường hợp tất cả các tập hằng không chứa giá trị tương ứng với giá trị của <biểu thức> thì lệnh sau từ khóa Else được thực hiện. Trường hợp này, nếu

Tin học đại cương 2 - Nguyễn Đạt Tiến

96

không có cả phần Else <lệnh n+1>; thì lệnh Case này thoát và không có lệnh nào sau dấu hai chấm được thực hiện.

Ví dụ: Viết chương trình cho nhập vào một số nguyên trong khoảng từ 1 ..12. Cho biết tháng đó có bao nhiêu ngày.

Program Kiem_tra_ngay_trong_thang;

Uses crt;

Var thang: byte;

Begin

Clrscr;

Write(‘Nhap vao so (tu 1..12): ’);

Readln(thang);

Case Thang of

4, 6, 9, 11: Writeln(‘Thang nay co 30 ngay’);

2: Writeln(‘Thang nay co 28 hoac 29 ngay’) Else

Writeln(‘Thang nay co 31 ngay’);

End;

Readln End.

Một phần của tài liệu Tập bài giảng tin học đại cương 2 pdf (Trang 92 - 96)

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

(122 trang)