[Tin học 11] Cấu trúc rẽ nhánh và ví dụ, bài tập vận dụng

Posted by

Cấu trúc rẽ nhánh là một cấu trúc hết sức cơ bản và thường xuyên được sử dụng trong lập trình. Hình dung một cách đơn giản, “rẽ nhánh” là khi chúng ta đứng giữa ít nhất 2 lựa chọn – 2 ngã rẽ và tùy thuộc vào hoàn cảnh, điều kiện mà chỉ một lựa chọn được thực hiện. Thực tế cuộc sống rất dễ dàng thấy cấu trúc rẽ nhánh. Ví dụ như liên quan đến “phốt” gần đây giữa 2 cái tên đình đám trên MXH ta có cấu trúc rẽ nhánh vui vui như sau

Nếu được trả lại 30 tỷ thì Khoa Pug sẽ hết giận Johny Đặng, nếu không thì sẽ tiếp tục “bóc phốt”

Vậy mô tả cấu trúc rẽ nhánh trong lập trình Pascal lớp 11 sẽ được mô tả như thế nào? Sau đây là cú pháp sử dụng câu lệnh rẽ nhánh trong Pascal: chỉ thực hiện 1 trong nhiều lựa chọn câu lệnh tùy thuộc vào biểu thức điều kiện: If <biểu thức điều kiện> then <câu lệnh 1> Else <câu lệnh 2>; trong đó có một số lưu ý:

  • Biểu thức điều kiện chỉ có 2 giá trị đúng hoặc sai. Vd: If a = b, if delta>0 …
  • Trong quá trình chạy, chương trình chỉ thực hiện câu lệnh 1 hoặc câu lệnh 2 tùy thuộc giá trị biểu thức trả về đúng hoặc sai
  • Phần Else có thể không có. Trước else không được có dấu “;”

Bài tập 1: Lập trình nhập vào một số nguyên. Kiểm tra số đó là số chẵn hay lẻ.

Ý tưởng: a là số chẵn –> a chia hết cho 2 –> a chia 2 dư 0 –> a mod 2 = 0

Ghi chú về phép chia trong pascal cần phân biệt: /, div, mod. Ví dụ: 5 : 2 = 2 dư 1 ta có các kết quả sau:

Div là phép chia lấy phần nguyên nên 5 div 2 = 2 phân biệt với Mod là phép chia lấy số dư 5 mod 2 = 1 và phân biệt phép chia 5/2 = 2.5 ra kết quả chi tiết.

Dựa vào ý tưởng trên ta có chương trình gợi ý như sau:

Bài tập 2: Lập trình nhập vào 3 số nguyên a, b, c. Tìm và in ra số lớn nhất

Thuật toán:

Bước 1: Nhập a, b, c.

Bước 3: Nếu a <b thì Max:=b ngược lại Max:=a

Bước 4: Nếu Max <c thì Max:=c

Bước 5: In ra giá trị Max

Chương trình:

Var a,b,c, max: integer;

BEGIN

write (‘moi nhap 3 so nguyen: ‘);

readln(a,b,c);

If a<b then max:=b else max:=a;

If max<c then max:=c;

writeln(‘so lon nhat la: ‘,max:4);

readln;

END.

Bài tập 3: Lập trình giải phương trình bậc nhất: ax + b = 0 (với a, b nhập từ bàn phím)

Ý tưởng các trường hợp xảy ra:

Câu lệnh rẽ nhánh đề xuất:  If a=0 then if b=0 then writeln(‘PT vo so nghiem’) else writeln(‘PT vo nghiem’)

Else writeln(‘phuong trinh co 1 nghiem x= ‘,-b/a:6:2);

Bài tập 4: Lập trình giải phương trình bậc hai: ax2 + bx + c = 0 (với a, b, c nhập từ bàn phím)

Bài tập 5: Lập trình nhập vào số năm, in ra số ngày tương ứng của năm đó.

2020 có 366 ngày (năm nhuận)

2021 có 365 ngày

1900 có 365 ngày

2000 có 366 ngày (năm nhuận)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *