Bài 9: Cấu trúc rẽ nhánh - Giải BT Tin học 11
1. Rẽ nhánh
Cấu trúc rẽ nhánh: Cấu trúc này dùng để diễn đạt một việc sẽ được thực hiện khi một điều kiện cụ thể được thỏa mãn.
Rẽ nhánh bao gồm 2 loại:
+ Dạng thiếu: Nếu … thì
Ví dụ: Nếu trời nắng thì chúng ta sẽ đi chơi.
Vậy nếu trời không nắng thì chúng ta làm gì còn chưa biết.
+ Dạng đủ: Nếu … thì …, nếu không thì.
Ví dụ: Nếu trời nắng thì chúng ta sẽ đi chơi, nếu không thì chúng ta sẽ ở nhà đọc truyện.
Vậy nếu trời không nắng chúng ta sẽ ở nhà đọc truyện.
2. Câu lệnh if-then
Dùng để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh if-then. Tương ứng với hai dạnh thiếu và đủ nói ở trên, Pascal có hai câu lệnh if-then.
a) Dạng thiếu
if< điều kiện> then < câu lệnh> ;
b) Dạng đủ
if< điều kiện> then < câu lệnh 1> else < câu lệnh 2> ;
Trong đó:
+ Điều kiện là biểu thức logic.
+ Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal.
Ở dạng thiếu: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng (có giá trị true) thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ bị bỏ qua.
Ở dạng đủ: Điều kiện cũng được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện.
Ví dụ:
If d< =0 writeln (‘day la so duong’); If a mod 3=0 then writeln (‘a chia het cho 3’) Else writeln (‘a khong chia het cho 3’);
3. Câu lệnh ghép
Trong nhiều trường hợp, sau một số từ khóa (như then hoặc else) phải là một lệnh đơn. Nhưng trong nhiều trường hợp các thao tác sau những tên dành riêng đòi hỏi không chỉ một mà là nhiều câu lệnh để mô tả. Trong trường hợp như vậy, ngôn ngữ lập trình cho phép gộp một dãy các câu lệnh thành một câu lệnh ghép.
Trong Pascal câu lệnh ghép có dạng:
Begin < các câu lệnh> ; End;
Thuật ngữ câu lệnh, câu lệnh 1, câu lệnh 2 trong các câu lệnh if-then ở mục trên có thể là câu lệnh ghép.
Ví dụ:
If D< 0 then writeln (‘Phuong trinh vo nghiem ’) Else Begin X1: = (-b-sqrt (b*b-4*a*c))/ (2*a); X2: =-b/a-x1; End;
Ví dụ 2:
Viết chương trình tìm nghiệm thực của phương trình bậc hai:
ax2+bx+c = 0 với a ≠ 0.
Program gptb2; Uses crt; Var a, b, c: real; D, X1, X2: real; Begin Clrscr; Write (‘a, b, c: ’); Readln (a, b, c); D: =b*b-4*a*c; If D< 0 then writeln (‘Phuong trinh vo nghiem ’) Else Begin X1: = (-b-sqrt (D))/ (2*a); X2: =-b/a-X1; Writeln (‘X1=’, X1: 8: 3, ’ X2=’, X2: 8: 3); End; Readln; End. Bài trước: Giải bài tập Tin học 11 trang 35, 36 - Giải BT Tin học 11 Bài tiếp: Bài 10: Cấu trúc lặp - Giải BT Tin học 11