Bài tập turbo pascal


CHƯƠNG II CÂU LỆNH CÓ CẤU TRÚC RẼ NHÁNH



tải về 0.6 Mb.
trang3/42
Chuyển đổi dữ liệu27.02.2022
Kích0.6 Mb.
#51050
1   2   3   4   5   6   7   8   9   ...   42
100 bài tập pascal
13234

CHƯƠNG II

CÂU LỆNH CÓ CẤU TRÚC RẼ NHÁNH



A. LÝ THUYẾT

I. CÂU LỆNH RẼ NHÁNH

1.1. Lệnh IF

Cú pháp:


(1) IF B THEN S;

(2) IF B THEN S1 ELSE S2;

Sơ đồ thực hiện:



C
hú ý
: Khi sử dụng câu lệnh IF thì đứng trước từ khoá ELSE không được có dấu chấm phẩy (;).

1.2. Lệnh CASE

Cú pháp:

Dạng 1

Dạng 2

CASE B OF

Const 1: S1;

Const 2: S2;

...

Const n: Sn;

END;

CASE B OF

Const 1: S1;

Const 2: S2;

...

Const n: Sn;

ELSE Sn+1;

END;

Trong đó:

  • B: Biểu thức kiểu vô hướng đếm được như kiểu nguyên, kiểu logic, kiểu ký tự, kiểu liệt kê.

  • Const i: Hằng thứ i, có thể là một giá trị hằng, các giá trị hằng (phân cách nhau bởi dấu phẩy) hoặc các đoạn hằng (dùng hai dấu chấm để phân cách giữa giá trị đầu và giá trị cuối).

  • Giá trị của biểu thức và giá trị của tập hằng i (i=1¸n) phải có cùng kiểu.

Khi gặp lệnh CASE, chương trình sẽ kiểm tra:

- Nếu giá trị của biểu thức B nằm trong tập hằng const i thì máy sẽ thực hiện lệnh Si tương ứng.

- Ngược lại:

+ Đối với dạng 1: Không làm gì cả.

+ Đối với dạng 2: thực hiện lệnh Sn+1.

B. BÀI TẬP:

Bài tập 2.1:

Viết chương trình in ra số lớn hơn trong hai số (được nhập từ bàn phím).



a. Hướng dẫn:

  • Nhập hai số vào hai biến a, b.

  • Nếu a > b thì in a. Nếu a <= b thì in b.

- Hoặc: Nếu a > b thì in a. Ngược lại thì in b.

b. Mã chương trình:


var f,g: text;

a,b: real;

begin

Assign(f,’bai2_1.inp’); reset(f);



Assign(g,’bai2_1.out’); rewrite(g);

readln(f,a);

readln(f,b);

if a> b then writeln(g,'So lon la:',a);

if a<= b then writeln(g,'So lon la:',b:10:2);

close(f); close(g);

end.


Hoặc:

var f,g: text;

a,b: real;

begin

Assign(f,’bai2_1c2.inp’); reset(f);



Assign(g,’bai2_1c2.out’); rewrite(g);

readln(f,a);

readln(f,b);

if a> b then writeln(g,'So lon la:',a:10:2)

else writeln(g,'So lon la:',b:10:2);

close(f); close(g);

end.


c. Nhận xét: Khi hai số bằng nhau thì mỗi số được xem là số lớn. Hãy sửa chương trình để khắc phục yếu điểm này.

Nói chung nên sử dụng lệnh if … then … else vì chương trình sáng sủa, dễ hiểu hơn. Tuy nhiên trong vài trường hợp sử dụng các lệnh if … then rời lại dễ diễn đạt hơn. Hãy xem ví dụ sau:


Bài tập 2.2:

Viết chương trình in ra số lớn nhất trong bốn số nhập từ bàn phím.



a. Hướng dẫn:

Nếu a b và a c và a d thì a là số lớn nhất.

Tương tự như thế xét các trường hợp còn lại để tìm số lớn nhất.

b. Mã chương trình:


Var f,g: text;

a,b,c,d: real;

Begin

Assign(f,’bai2_2.inp’); reset(f);



Assign(g,’bai2_2.out’); rewrite(g);

readln(f,a);

readln(f,b);

readln(f,c);

readln(f,d);

if (a>=b) and (a>=c) and (a>= d) then

writeln(g,'So lon nhat la:',a:10:2);

if (b>=a) and (b>=c) and (b>= d) then

writeln(g,'So lon nhat la:',b:10:2);

if (c>=a) and (c>=b) and (c>= d) then

writeln(g,'So lon nhat la:',c:10:2);

if (d>=a) and (d>=b) and (d>= c) then

writeln(g,'So lon nhat la:',d:10:2);

close(f); close(g);

end.


c. Nhận xét: Hãy sử dụng cấu trúc if … then … else để giải bài tập trên.

Độ khó của bài toán sẽ tăng lên nhiều nếu thêm yêu cầu có thông báo khi hai số, ba số, bốn số bằng nhau.


Bài tập 2.3:

Viết chương trình in ra số lớn nhất trong bốn số nhập từ file với điều kiện chỉ được dùng hai biến.



a. Hướng dẫn:

Sử dụng một biến max và một biến a để chứa số vừa nhập. Cho max bằng số đầu tiên. Sau khi nhập một số thực hiện so sánh nếu số vừa nhập lớn hơn max thì lưu số vừa nhập vào max. Sau khi nhập xong ta có max là số lớn nhất

(Giải thuật này gọi là kỹ thuật lính canh cần hiểu rõ để sử dụng sau này).

b. Mã chương trình:



Var f,g: text;

a,b,c,max: real;

Begin

Assign(f,’bai2_3.inp’); reset(f);



Assign(g,’bai2_3.out’); rewrite(g);

readln(f,a);

readln(f,b);

readln(f,c);

Max:=a;

if a>=Max then Max:=a;

if b>=Max then Max:=b;

if a>=Max then Max:=c;

Write(g,'So lon nhat la:',Max:10:2);

Close(f); close(g);

end.



Bài tập 2. 4

Viết chương trình xét xem một tam giác có là tam giác đều hay không khi biết ba cạnh của tam giác.



a. Hướng dẫn:

  • Nhập ba cạnh của tam giác vào ba biến a,b,c.

  • Nếu a = b và b = c thì tam giác là tam giác đều và ngược lại tam giác không là tam giác đều.

b. Mã chương trình:

var f,g: text;

a,b,c: real;

begin

Assign(f,’bai2_4.inp’); reset(f);



Assign(g,’bai2_4.out’); rewrite(g);

readln(f,a);

readln(f,b);

readln(f,c);

if (a = b) and (b = c) then writeln(g,'La tam giac deu')

else


writeln(g,'Khong phai la tam giac deu');

close(f); close(g);

end.



Bài tập 2. 5

Viết chương trình xét xem một tam giác có là tam giác cân hay không khi biết ba cạnh của tam giác.



a.Hướng dẫn:

  • Nhập ba cạnh của tam giác vào ba biến a,b,c.

  • Nếu a = b hoặc b = c hoặc a = c thì tam giác là tam giác cân và ngược lại tam giác không là tam giác cân.


tải về 0.6 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   42




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