A. Lý thuyết • Nội dung chính - Cấu trúc rẽ nhánh và hai dạng cấu trúc rẽ nhánh. - Câu lệnh điều kiện thể hiện cấu trúc rẽ nhánh. 1. Hoạt động phụ thuộc vào điều kiện - Là việc điều chỉnh hành động tùy theo hoàn cảnh cụ thể. - Ví dụ: - Khi kết quả là đúng, ta nói điều kiện được thỏa mãn - Khi kết quả là sai, ta nói điều kiện không thỏa mãn. 2. Điều kiện và phép so sánh - Điều kiện được biểu diễn bằng phép so sánh, phép so sánh cho kết quả đúng có nghĩa điều kiện được thỏa mãn; ngược lại, điều kiện không được thỏa mãn. - Để so sánh 2 giá trị số hoặc 2 biểu thức, sử dụng các kí hiệu toán học. các phép so sánh sẽ cho kết quả là đúng hoặc sai. 3. Cấu trúc rẽ nhánh - Là cấu trúc khi một điều kiện cụ thể nào đó được thỏa mãn thì chương trình sẽ thực hiện 1 lệnh; ngược lại, nếu điều kiện không thỏa mãn thì câu lệnh bị bỏ qua. - Cấu trúc rẽ nhánh cho phép thay đổi thứ tự thực hiện tuần tự các bước của thuật toán. - Gồm 2 loại: + Cấu trúc rẽ nhánh dạng thiếu + Cấu trúc rẽ nhánh dạng đủ. - Xét 2 ví dụ: Ví dụ 1: Một hiệu sách thực hiện đợt khuyến mãi lớn với nội dung sau: Nếu mua sách với tổng số tiền ít nhất là 100 nghìn đồng, khách hàng sẽ được giảm 30% tổng số tiền phải thanh toán. Mô tả hoạt động tính tiền cho khách: - B1: Tính tổng số tiền T khách hàng đã mua sách - B2: Nếu T ≥ 100000, số tiền phải thanh toán là \(70\% \times T\) - B3: In hoá đơn Ví dụ 2: Trong ví dụ 2, chúng ta biết rằng nếu tổng số tiền không nhỏ hơn 100 nghìn đồng, khách hàng sẽ được giảm 30% tổng số tiền phải thanh toán. Giả sử thêm vào đó, cửa hàng giảm 10% cho những khách chỉ mua với tổng số tiền không đến 100 nghìn đồng. Mô tả hoạt động tính tiền cho khách: - B1: Tính tổng số tiền T khách hàng đã mua sách. - B2: Nếu T ≥ 100000, số tiền phải thanh toán là \(70\% \times T\); ngược lại, số tiền phải thanh toán là \(90\% \times T\) - B3: In hoá đơn - Sự khác nhau giữa 2 dạng này đó là ở dạng đầy đủ, khi điều kiện đầu không thỏa mãn nó sẽ bỏ qua các câu lệnh 1 và thực hiện luôn câu lệnh 2 mà không cần xét điều kiện nữa. 4. Câu lệnh điều kiện - Các cấu trúc rẽ nhánh được thể hiện bằng câu lệnh điều kiện. - Cú pháp dạng thiếu: if < điều kiện > then < câu lệnh>; Nếu điều kiện thoản mãn, chương trình sẽ thực hiện các câu lệnh sau từ khóa then. - Cú pháp dạng đủ: if < điều kiện> then <câu lệnh 1> else < câu lệnh 2>; Nếu điều kiện thoản mãn, chương trình sẽ thực hiện các câu lệnh 1 sau từ khóa then. Nếu không, chương trình sẽ thực hiện câu lện 2. - Ví dụ 1: viết chương trình yêu cầu người dùng nhập 1 số từ bàn phím, nếu số này là số chẵn thì in ra thông báo, ngược lại in ra thông báo là số lẻ. + B1: nhập số a; + B2: nếu a mod 2 = 0 thì thông báo là số chẵn + B3: nếu không thì thông báo a là số lẻ B. Bài tập trắc nghiệm Câu 1:Phát biểu nào sau đây có thể lấy làm biểu thức điều kiện trong cấu trúc rẽ nhánh ? A. A:= B B. A > B C. N mod 100 D. “A nho hon B”
các phép toán điều kiện như >, <, >=, <=, <>. Vậy A>B là biểu thức điêu kiện ( chứa phép toán điều kiện). Đáp án: B Câu 2:Câu lệnh điều kiện dạng đầy đủ là: A. If < Điều kiện> then < Câu lệnh 1 >; Else < Câu lệnh 2 >; B. If < Điều kiện> then < Câu lệnh >; C. If < Điều kiện> then < Câu lệnh 1 >, < Câu lệnh 2 >; D. If < Điều kiện > then < Câu lệnh 1 > Else < Câu lệnh 2 >;
cấu trúc rẽ nhánh dạng đủ là: IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>; Trong đó: Câu lệnh 1 được thực hiện khi điều kiện là đúng, câu lệnh 2 được thực hiện khi biểu thức điều kiện sai. Đáp án: D Câu 3:Hãy cho biết giá trị của biến X bằng bao nhiêu sau khi thực hiện câu lệnh: if (45 mod 3 ) = 0 then X :=X+2; ( Biết rằng trước đó giá trị của biến X = 5) A. 5 B. 9 C. 7 D. 11
ta có 45 mod 3 =0 ( phép lấy dư)→ đúng nên thực hiện câu lệnh sau then→ x= x + 2 = 5 +2 =7 Đáp án: C Câu 4:Ta có 2 lệnh sau: x:= 8; If x>5 then x := x +1; Giá trị của x là bao nhiêu? A. 5 B. 9 C. 8 D. 6
Ta có 8 > 5 nên ta thực hiện câu lệnh sau Then là x= x+1 = 8 +1 =9 ; Đáp án: B Câu 5:Các câu lệnh Pascal nào sau đây được viết đúng: A. If x:= 5 then a = b; B. If x > 4; then a:= b; C. If x > 4 then a:=b else m:=n; D. If x > 4 then a:=b; else m:=n;
Cấu trúc rẽ nhánh dạng thiếu là: IF <điều kiện> THEN <câu lệnh >; Cấu trúc rẽ nhánh dạng đủ là: IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>; Trong đó điều kiện là các phép toán điều kiện. Các phép toán điều kiện như >, <, >=, <=, <>. Đáp án: C Câu 6:Để tìm giá trị lớn nhất của 2 số a, b thì ta viết: A. Max:=a; If b>Max then Max:=b; B. If a>b then Max:=a else Max:=b; C. Max:=b; If a>Max then Max:=a; D. Cả 3 câu đều đúng.
Trong câu A, C sử dụng lệnh gán và cấu trúc rẽ nhánh dạng thiếu Câu B dử dụng cấu trúc dạng đủ. Đáp án: D Câu 7:Hãy chọn cách dùng sai . Muốn dùng biến X lưu giá trị nhỏ nhất trong các giá trị của hai biến A, B có thể dùng cấu trúc rẽ nhánh như sau : A. if A <= B then X := A else X := B; B. if A < B then X := A; C. X := B; if A < B then X := A; D. if A < B then X := A else X := B;
Câu lệnh if A < B then X := A; → chỉ đưa ra được trường hợp A B thì không đưa ra được giá trị nhỏ nhất trong hai biến. Đáp án: B Câu 8: IF a>8 THEN b:=3 ELSE b:=5; Khi a nhận giá trị là 0 thì b nhận giá trị nào? A. 0 B. 5 C. 8 D. 3
ta có 0 < 8 nên điều kiện a>8 là sai vậy sẽ thực hiện câu lệnh sau Else → b=5; Đáp án: B Câu 9:Chọn câu lệnh Pascal hợp lệ trong các câu sau: A. If x : = a + b then x : = x + 1; B. If a > b then max = a; C. If a > b then max : = a else max : = b; D. If 5 := 6 then x : = 100;
Theo sau If là các phép toán điều kiện. Các phép toán điều kiện như >, <, >=, <=, <> → loại A, D Phép gán phải là dấu := → loại B Vậy câu lệnh If a > b then max : = a else max : = b; là đúng Đáp án: C Câu 10:Hãy cho biết giá trị của biến X bằng bao nhiêu sau khi thực hiện câu lệnh: X:= 10; IF (91 mod 3 ) = 0 then X :=X+20; A. 10 B. 30 C. 2 D. 1
Ta có 91: 3 dư 1 nên không thực hiện câu lệnh sau then. Vậy X vẫn nhận giá trị ban đầu là 10. Đáp án: A |