Thế nào là cấu trúc rẽ nhánh

Chào bạn Tin học lớp 6 trang 86 sách Cánh diều

Giải bài tập Tin học 6 bài 3: Cấu trúc rẽ nhánh trong thuật toán sách Cánh diều giúp các em học sinh lớp 6 có thêm nhiều tư liệu tham khảo, đối chiếu lời giải hay, chính xác để biết cách trả lời các câu hỏi trang 86→88.

Tin học 6 bài 3 thuộc chủ đề F: Giải quyết vấn đề với sự trợ giúp của máy tính giúp các bạn học sinh nắm vững kiến thức về cấu trúc rẽ nhánh trong thuật toán là gì và khi nào trong thuật toán có cấu trúc rẽ nhánh. Vậy sau đây là nội dung chi tiết bài soạn Tin 6 bài 3 Cấu trúc rẽ nhánh trong thuật toán, mời các bạn cùng theo dõi.

Cấu trúc rẽ nhánh trong thuật toán

- Khi phải dựa trên điều kiện cụ thể nào đó để xác định bước thực hiện tiếp theo trong quá trình thực hiện thuật toán thì cần cấu trúc rẽ nhánh.

- Ví dụ: trong tiết học thể dục tuần sau GV yêu cầu HS:

+ Nếu trời mưa thì học trong lớp.

+ Nếu trời khô ráo thì học ngoài trời.

2. Thể hiện cấu trúc rẽ nhánh

Có thể dùng sơ đồ ở Hình 2 để mô tả cấu trúc rẽ nhánh ở Hình 1b. Nếu dùng sơ đồ mô tả cấu trúc rẽ nhánh khuyết ở Hình 3b, em sẽ vẽ sơ đồ đó như thế nào?

Luyện tập

Bài 1: Quy trình tính số tiền được giảm từ cho khách hàng mua sách truyện thiếu niên ở hiệu sách Người máy

1. Tính Tổng số tiền sách khi chưa tính giảm giá) , gọi số đó là Tổng số tiền sách2. Nếu Tổng số tiền sách >= 500.000 đồng; số tiền được giảm là 10% của Tổng số tiền sách 3. Nếu Tổng số tiền sách < 500.000 đồng; số tiền được giảm là 5% của Tổng số tiền sách

Bài 2: Trong các phát biểu sau về biểu thức điều kiện ở cấu trúc rẽ nhánh, phát biểu nào đúng, phát biểu nào sai ? Vì sao?

1. Phải là một biểu thức so sánh giá trị bằng

2. Phải là một biểu thức so sánh giá trị lớn hơn, nhỏ hơn

3. Khi kiểm tra phải cho kết quả là "đúng" hoặc "sai"

Trả lời:

Bài 1:

Bài 2:

1. Phải là một biểu thức so sánh giá trị bằng

=> Sai, phải là biểu thức so sánh

2. Phải là một biểu thức so sánh giá trị lớn hơn, nhỏ hơn

=> Đúng

3. Khi kiểm tra phải cho kết quả là "đúng" hoặc "sai"

=> Đúng

Vận dụng

Em hãy sử dụng mẫu thể hiện cấu trúc rẽ nhánh để mô tả thuật toán giải bài toán: Cho ba đồng xu trong đó có một đồng xu giả nhẹ hơn. Dùng cân thăng bằng để tìm đồng xu giả

Trả lời:

Mẫu thể hiện cấu trúc rẽ nhánh là:

Cân thăng bằng có hai bên, gọi lần lượt là bên A và bên B, ta cho mỗi lần hai đồng xu lên hai bên cân A và B, ta có

+ Nếu Bên A = B =>Hai đồng xu đều là thật

+ Trái lại: Bên Một trong hai bên nhẹ hơn bên còn lại =>Bên nhẹ hơn chứa đồng xu giả

+ Hết nhánh

Câu hỏi tự kiểm tra

Trong các phát biểu sau về thuật toán, phát biểu nào đúng?

1. Dùng cấu trúc rẽ nhánh nếu có quá nhiều việc cần làm

2. Dùng cấu trúc rẽ nhánh khi có các trường hợp khác nhau cần xem xét, trường hợp khác nhau thì thực hiện việc khác nhau

3. Để thể hiện cấu trúc rẽ nhánh cần dùng mẫu "Nếu.... Trái lại..."

4. Cấu trúc rẽ nhánh luôn kết thúc với dấu hiệu "Hết nhánh".

Trả lời:

Phát biểu đúng là:

3. Để thể hiện cấu trúc rẽ nhánh cần dùng mẫu "Nếu.... Trái lại..."

4. Cấu trúc rẽ nhánh luôn kết thúc với dấu hiệu "Hết nhánh".

Cập nhật: 23/03/2022

Trang này hướng dẫn các em cách thực hiện từng nhiệm vụ học tập đã nêu. Để việc học tập đạt hiệu quả, thực hiện được các nhiệm vụ, các em có thể thành lập các nhóm để cùng bàn luận. Bên cạnh đó, các em có thể trao đổi, bình luận về bài học tại đây thông qua chức năng gửi comment (bình luận). Dưới đây là hướng dẫn cách thực hiện từng nhiệm vụ.

1. Nhiệm vụ 1: Quan sát hoạt động của một số phần mềm, hệ thống trong thực tế có sử dụng cấu trúc rẽ nhánh. Từ đó rút ra vai trò và ý nghĩa của cấu trúc rẽ nhánh

a) Đăng nhập vào trang mạng xã hội Facebook tại địa chỉ: http://www.facebook.com

  • Tại ô "Email hoặc điện thoại" nhập một địa chỉ email hoặc số điện thoại bất kỳ.

  • Tại ô "Mật khẩu" nhập một mật khẩu bất kỳ, sau đó ấn nút "đăng nhập" và quan sát kết quả.

Facebook sẽ chuyển đến địa chỉ hoặc thông điệp gì? Theo em, nguyên nhân nhận được thông điệp là gì? Thông điệp em nhận được có tương tự video dưới đây không?


  • Khi đăng nhập vào Facebook, hệ thống của Facebook sẽ kiểm tra xem tài khoản và mật khẩu có đúng không. Nếu nhập tài khoản và mật khẩu đúng, em sẽ được chuyển vào trang chủ có địa chỉ tường nhà và nhiều liên kết khác. Nếu tài khoản hoặc mật khẩu không hợp lệ, Facebook sẽ gửi thông báo "tài khoản hoặc mật khẩu không chính xác", và yêu cầu nhập lại.

  • Thao tác kiểm tra tài khoản và mật khẩu khi đăng nhập và quyết định tác vụ tiếp theo của Facebook được gọi là rẽ nhánh hoạt động của phần mềm máy tính.

b) Đăng nhập vào windows (nếu em sử dụng máy vi tính), nhập mã PIN để mở khóa điện thoại (nếu em sử dụng điện thoại) trong theo các trường hợp: mật khẩu / mã PIN đúng hoặc sai. Ghi lại kết quả đăng nhập dưới dạng câu điều kiện: NẾU ...... THÌ

Qua việc quan sát 2 ví dụ thực tế về sự hoạt động của phần mềm và hệ thống có sử dụng cấu trúc rẽ nhánh, em hãy trả lời câu hỏi sau:

  1. Bản chất của rẽ nhánh hoạt động của phần mềm máy tính là gì? Khi nào chúng ta sử dụng rẽ nhánh?

  2. Khi thực hiện rẽ nhánh hoạt động của phần mềm, nhân tố nào chi phối kết quả thực hiện tác vụ tiếp theo?

  3. Cấu trúc rẽ nhánh tương đương với dạng diễn đạt của loại câu nào trong ngữ văn?

2. Nhiệm vụ 2: Tìm hiểu sơ đồ thuật toán câu lệnh điều kiện. Vẽ sơ đồ thuật toán chương trình giải phương trình bậc 2

  • Tham khảo lại bài 4, sách Tin học 10 để xem lại kiến thức về thuật toán và vẽ sơ đồ khối (sơ đồ thuật toán)

  • Tham khảo hình 4, trang 39, bài 9, sách Tin học 11 để xem sơ đồ thuật toán chương trình giải phương trình bậc 2.

  • Chỉ ra các tình huống liên quan đến rẽ nhánh của chương trình giải phương trình bậc 2.

Trong sơ đồ khối, người ta sử dụng 4 ký hiệu chính để diễn tả thuật toán của chương trình:

  • Hình elip: thể hiện thao tác nhập, xuất dữ liệu

  • Hình chữ nhật: thể hiện thao tác tính toán

  • Hình mũi tên: thể hiện bước thực hiện tiếp theo

  • Hình ô-van: thể hiện điều kiện thực hiện lệnh tiếp theo (rẽ nhánh)

Các tình huống liên quan đến rẽ nhánh của chương trình giải phương trình bậc 2 căn cứ theo giá trị của biệt số delta.


3. Nhiệm vụ 3: Tìm hiểu về cấu trúc lệnh rẽ nhánh trong ngôn ngữ Pascal

Tham khảo cấu trúc lệnh rẽ nhánh dạng thiếu và đủ của ngôn ngữ Pascal trong bài 9, sách Tin học 11 (trang 39 và 40). Dưới đây là thông tin trợ giúp các em tìm hiểu bài học.

a) Cấu trúc rẽ nhánh dạng thiếu:

If <điều kiện> Then

        <câu lệnh;>

Ý nghĩa của cấu trúc lệnh: nếu biểu thức điều kiện giưa IF và THEN có giá trị TRUE thì câu lệnh sau THEN sẽ được thực hiện. Sơ đồ thuật toán:

Thế nào là cấu trúc rẽ nhánh


Em hãy chạy chương trình ví dụ để thử cấu trúc lệnh:

Program vidu1;

Var

    a : integer;

Begin

    write('Nhập a:'); readln(a);

    if (a mod 2) = 0 then

        writeln('a là số chẵn');

    readln

End.

  • Hãy nhập với a = 10; sau đó với a = 5 và nhận xét kết quả trên màn hình?

  • Hãy chỉ ra câu lệnh rẽ nhánh trong chương trình, chỉ ra biểu thức điều kiện, và câu lệnh được thực hiện

  • Lệnh rẽ nhánh trong chương trình có chức năng gì?

b) Cấu trúc rẽ nhánh dạng đủ

If <điều kiện> Then

    <Câu lệnh 1>

Else

    <Câu lệnh 2>;


Chú ý: sau câu lệnh 1 không có dấu chấm phảy (;). Dấu chấm phảy sau câu lệnh 2.

Ý nghĩa của cấu trúc lệnh: Nếu điều kiện đúng (TRUE) thì chạy câu lệnh sau THEN (câu lệnh 1), ngược lại (điều kiện sai - FALSE) thì chạy câu lệnh 2. Sơ đồ thuật toán:

Thế nào là cấu trúc rẽ nhánh


Em hãy chạy chương trình ví dụ để thử cấu trúc lệnh:

Program vidu2;

Var

    a : integer;

Begin

    write('Nhập a:'); readln(a);

    if (a mod 2) = 0 then

        write('a là số chẵn')

    else

        write('a là số lẻ');

end.


  • Hãy nhập với a = 10; sau đó với a = 5 và nhận xét kết quả trên màn hình?

  • Hãy chỉ ra câu lệnh rẽ nhánh trong chương trình, chỉ ra biểu thức điều kiện, và câu lệnh được thực hiện

  • Lệnh rẽ nhánh trong chương trình có chức năng gì?

Em hãy tự rút ra kết luận cho riêng mình về ý nghĩa và lấy các ví dụ về lệnh rẽ nhánh. Viết lệnh để xử lý lỗi của đoạn tính nghiệm x1, x2 của phương trình bậc 2 khi delta nhỏ hơn 0;

4. Nhiệm vụ 4: Tìm hiểu về câu lệnh ghép trong Pascal

a) Chạy thử chương trình giải phương trình bậc 2 với bộ dữ liệu: a = 1, b = 3, c = 1

(em có thể chạy chương trình trên máy tính của mình bằng FreePascal hoặc chạy trực tuyến từ trang http://ideone.com)

Program giaiptbac2;

Var

    x1, x2 : real;

    delta : real;

    a, b, c : real;

Begin

    write('Nhập a, b, c: '); readln(a, b, c);

    delta := b*b - 4*a*c; { tính delta }

    if (delta >= 0) then x1 := (-b + sqrt(delta)) / (2*a);

    if (delta >= 0) then x2 := (-b - sqrt(delta)) / (2*a);

    writeln('Nghiệm x1 = ', x1);

    writeln('Nghiệm x2 = ', x2);

    readln;

End.

b) Nhận xét về biểu thức điều kiện của câu lệnh tính giá trị nghiệm x1 và x2?

c) Chạy thử chương trình sửa đổi sau với bộ dữ liệu: a = 2, b = 1, c = 5

Program giaiptbac2;

Var

    x1, x2 : real;

    delta : real;

    a, b, c : real;

Begin

    write('Nhập a, b, c: '); readln(a, b, c);

    delta := b*b - 4*a*c; { tính delta }

    if (delta >= 0) then

        x1 := (-b + sqrt(delta)) / (2*a);

        x2 := (-b - sqrt(delta)) / (2*a); { lệnh này có phải lệnh rẽ nhánh? }

    writeln('Nghiệm x1 = ', x1); { hiển thị nghiệm x1 }

    writeln('Nghiệm x2 = ', x2);

    readln; { dừng màn hình để xem kết quả }

End.

Mở phụ lục cuối SGK để tra cứu mã lỗi #207 khi chạy chương trình.

d) Thêm "begin" sau "then" và "end;" sau lệnh tính nghiệm x2 và chạy lại chương trình.

Program giaiptbac2;

Var

    x1, x2 : real; { biến lưu nghiệm phương trình }

    delta : real; { biệt số delta }

    a, b, c : real; { các hệ số a, b, c }

Begin

    write('Nhập a, b, c: '); readln(a, b, c); { nhập các hệ số a, b, c }

    delta := b*b - 4*a*c; { tính delta }

    if (delta >= 0) then

    begin

        x1 := (-b + sqrt(delta)) / (2*a);

        x2 := (-b - sqrt(delta)) / (2*a);

               writeln('Nghiệm x1 = ', x1:6:2);

        writeln('Nghiệm x2 = ', x2:6:2);

    end

    else writeln('PHUONG TRINH VO NGHIEM');

    readln; { dừng màn hình để xem kết quả }

End.

Chương trình còn báo lỗi #207 không? Kết quả chạy chương trình của em có tương tự như video dưới đây không?


e) Tham khảo SGK, mục "câu lệnh ghép" của bài học để biết cách xây dựng câu lệnh ghép và ý nghĩa của câu lệnh ghép.

  • Câu lệnh ghép được xây dựng từ các câu lệnh bằng cách đặt giữa 2 từ khóa: "Begin" và "End;"

  • Câu lệnh ghép được xem như 1 câu lệnh, do đó có thể dùng sau "Then" hoặc "Else"

f) Hãy giải thích ý nghĩa của câu lệnh ghép đối với chương trình trong bước (d) của nhiệm vụ 4.

Nhiệm vụ 5: Hoàn thiện webquest của bài học.

  • Học sinh làm việc theo nhóm, mỗi nhóm có tối đa 6 thành viên.

  • Quay video màn hình, gửi ảnh quá trình em thực hiện nhiệm vụ của bài học (các nhiệm vụ 1, 2, 3, 4)
  • Thời gian hoàn thành nhiệm vụ và báo cáo kết quả: 15/11/2015