Tin học 8 chủ đề 6: cấu trúc rẽ nhánh phần trải nghiệm

Giải bài 8: Cấu trúc rẽ nhánh - Sách VNEN tin học lớp 8 trang 133. Phần dưới sẽ hướng dẫn trả lời và giải đáp các câu hỏi trong bài học. Cách làm chi tiết, dễ hiểu, Hi vọng các em học sinh nắm tốt kiến thức bài học.

Xét bài toán dưới đây và trả lời các câu hỏi:

Bài toán: Bạn Anh Quân muốn viết một chương trình để máy tính làm trọng tài cho một trò chơi. Người chơi thứ nhất sẽ nhập vào máy tính một số nguyên dương nào đó. Người chơi thứ hai phải nhập vào máy một ước số của số đó. Nếu người thứ hai nhập số đúng [là ước số mà người thứ nhất chọn] thì máy tính phải in ra màn hình dòng chữ "HOAN HO BAN", trường hợp ngược lại [số của người thứ hai không là ước của số do người thứ nhất đã chọn] thì máy tính in ra màn hình dòng chữ "SAI ROI".

Câu hỏi:

a, Để giải quyết bài toán trên, em có đồng ý với thuật toán của bạn Thùy Anh ở hình bên không?

b, Em có thể hiện được thuật toán này trong môi trường Scratch không?

c, Dòng chữ "HOAN HO BAN" sẽ được hiển thị trong điều kiện nào?

=> Xem hướng dẫn giải

B. Hoạt động hình thành kiến thức

1. Cấu trúc rẽ nhánh

a, Xét bài toán dưới đây. Thuật toán của mỗi bài đều được mô tả theo hai cách. Em hãy tìm ghép đúng hai cách mô tả thuật toán với bài toán tương ứng bằng cách đánh dấu vào bảng bên dưới.

b, Trong mô tả của hai thuật toán trên, có một thuật toán chỉ thể hiện "cấu trúc tuần tự", còn thuật toán kia thể hiện "cấu trúc rẽ nhánh". Theo em thuật toán nào có thể hiện cấu trúc rẽ nhánh?

=> Xem hướng dẫn giải

d, Dưới đây là hai mô tả thuật toán trong môi trường Scratch, em hãy cho biết thuật toán nào có cấu trúc rẽ nhánh dạng đủ và thuật toán nào có cấu trúc rẽ nhánh dạng thiếu:

=> Xem hướng dẫn giải

2. Biểu diễn điều kiện

Em hãy viết các biểu thức điều kiện tương ứng với các phát biểu điều kiện đã cho

Phát biểu điều kiệnBiểu thức điều kiện trong Pascal
a không nhỏ hơn b
k lớn hơn hay bằng m và q nhỏ hơn n
biến OK [thuộc kiểu boolean] có giá trị đúng

=> Xem hướng dẫn giải

3. Câu lệnh điều kiện trong Pascal

Bài toán 1: Hãy chuyển mô tả thuật toán sau thành một đoạn chương trình Pascal

Bước 1: Nhập 2 số thực a, b

Bước 2: Nếu a = b thì thông báo "Cần nhập hai số khác nhau"

=> Xem hướng dẫn giải

Bài toán 2: Hãy điền vào chỗ trống sao cho kết quả nhận được là đoạn chương trình Pascal thể hiện thuật toán trong mô tả A [hoặc mô tả D] ở mục B.1 trên đây:

Readln [a]; Readln [b];

If .............. then writeln [b] ............ writeln [a];

write ['Goodbye'];

=> Xem hướng dẫn giải

C. Hoạt động luyện tập

Bài tập 1: Hãy cho biết trong các câu lệnh Pascal sau đây, câu nào không hợp lệ và giải thích lý do.

a, if x := a then x := x + 1;

b, if x = a then x := x + 1;

c, if a > b then max := a; else max := b;

d, if a > b then max := a else max := b;

=> Xem hướng dẫn giải

Bài tập 2: Với mỗi câu lệnh sau đây giá trị của biến x sẽ là bao nhiêu, nếu trước đó giá trị của x bằng 5?

a, if [45 mod 3] = 0 then x := x + 1;

b, if x > 10 then x := x + 1 else x := x - 1;

=> Xem hướng dẫn giải

Bài tập 3: Hãy viết chương trình nhập chiều cao của hai bạn Anh Quân và Thùy Anh, in ra màn hình kết quả so sánh chiều cao của hai bạn, chẳng hạn "Bạn Anh Quân cao hơn" hay "Bạn Thùy Anh cao hơn".

=> Xem hướng dẫn giải

D. Hoạt động vận dụng

Một hiệu sách thực hiện đợt khuyến mãi lớn với chính sách khuyến mãi như sau: Khách hàng nào mua sách với tổng số tiền từ 100 nghìn đồng trở lên sẽ được giảm 30%. Trường hợp ngược lại, những khách hàng mua với tổng số tiền nhỏ hơn 100 nghìn đồng chỉ được giảm 10%. Giả sử các bạn trong nhóm em chọn mua sách khách nhau những mỗi người đều mua 5 quyển. Em có thể viết một chương trình Pascal để tính số tiền phải trả cho hiệu sách của mỗi bạn không?

=> Xem hướng dẫn giải

E. Hoạt động tìm tòi mở rộng

Bạn Thùy Anh mô tả một thuật toán bằng sơ đồ dưới đây. Trong sơ đồ, ta thấy cấu trúc rẽ nhánh với điều kiện "a=b" có câu lệnh 2 lại là một cấu trúc rẽ nhánh nữa. Trường hợp như vậy được gọi là cấu trúc rẽ nhánh lồng nhau, tức là câu lệnh trong một nhánh rẽ của thuật toán lại là một câu lệnh điều khiển khác nữa. Với câu lệnh IF-THEN ở Pascal em vẫn có thể biểu diễn được cấu trúc rẽ nhánh lồng nhau như vậy. Nếu em viết được đoạn chương trình Pascal để diễn đạt thuật toán mô tả bằng sơ đồ đã cho trên đây, Hãy chia sẻ với bạn và báo cáo với thầy cô thành công của em

=> Xem hướng dẫn giải

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 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ư >, =, 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  THEN  ELSE ;

   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  THEN ;

   Cấu trúc rẽ nhánh dạng đủ là: IF  THEN  ELSE ;

   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ư >, =, 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 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ư >, =, 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

Video liên quan

Chủ Đề