Tin học 11 Python bài 9

Giải Bài Tập Tin Học 11 – Bài 9: Cấu trúc rẽ nhánh giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

Xem thêm các sách tham khảo liên quan:

  • Sách Giáo Viên Tin Học Lớp 11

1. Rẽ nhánh

Cấu trúc rẽ nhánh: Cấu trúc 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ẽ ở đọc truyện ở nhà.

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

Để 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 ;

b) Dạng đủ

      if<điều kiện> then else ;

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

Nội dung bài học Bài 9: Cấu trúc rẽ nhánh dưới đây sẽ trình bày về cấu trúc rẽ nhánh trong môt tả thuật toán của một số bài toán đơn giản; hướng dẫn các em viết câu lệnh rẽ nhánh dạng đủ, dạng thiếu thông qua một số bài toán vận dụng cụ thể;... Mời các em cùng theo dõi nội dung chi tiết của bài học.

ADSENSE

YOMEDIA

 

 

Tóm tắt lý thuyết

1.1. Rẽ nhánh

Ví dụ 1: Để giải phương trình bậc hai: ax2 +bx +c = 0 (a \(\neq\) 0 ) ta phải: Tính Delta = b*b - 4*a*c

  • Nếu Delta < 0 thì phương trình vô nghiệm.
  • Nếu Delta >= 0 thì phương trình có nghiệm.

Hoặc có thể nói: Nếu Delta < 0 thì phương trình vô nghiệm, ngược lại phương trình có nghiệm.

Ta có mệnh đề sau:

  • Nếu ... thì ...                                       (Dạng thiếu)
  • Nếu ... thì ... nếu không thì ...                (Dạng đủ)

Cấu trúc này được gọi là cấu trúc rẽ nhánh thiếu và đủ.

1.2. Câu lệnh if-then

Để 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ạng mệnh đề thiếu và đủ nói ở trên, Pascal có hai dạng câu lệnh if-then:

a. Dạng thiếu 

Cú pháp: If < Điều kiện > then < Câu lệnh >;

Trong đó:

  • Điều kiện: Là biểu thức quan hệ hoặc logic.
  • Câu lệnh: Là một câu lệnh của Pascal.

Sơ đồ:

Tin học 11 Python bài 9

Hình 1. Sơ đồ cấu trúc rẽ nhánh dạng thiếu

Ý nghĩa: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh được thực hiện, nếu điều kiện sai thì câu lệnh sẽ bị bỏ qua.

Ví dụ 2:

       if Delta < 0 then writeln('Phuong trinh vo nghiem.');

b. Dạng đủ

Cú pháp:

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 quan hệ hoặc logic.
  • Câu lệnh 1, câu lệnh 2: Là một câu lệnh của Pascal.

Sơ đồ:

Tin học 11 Python bài 9

Hình 2. Sơ đồ cấu trúc rẽ nhánh dạng đủ

Ý nghĩa: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng thì thực hiện câu lệnh 1, ngược lại thì thực hiện câu lệnh 2.

Chú ý 1: Trước từ khóa Else không có dấu chấm phẩy (;).

Ví dụ 3:

       if a mod 3 = 0 then write('a chia het cho 3')

else write('a khong chia het cho 3');

1.3. 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;

Chú ý 2: Sau END phải có dấu chấm phẩy (;)

Ví dụ 4:

 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;

1.4. Một số ví dụ

Ví dụ 5. Tìm nghiệm thực của phương trình bậc hai:

                              ax2 + bx + c = 0 , với a \(\neq\) 0.

Xây dựng ý tưởng:

  • Nhập 3 số a,b,c.
  • Tính: delta:=b*b-4*a*c.
  • Nếu delta<0 thì pt vô nghiêm, ngược lại thì phương trình có nghiệm.
  • Dùng câu lệnh if-then dạng đủ.

Xác định bài toán:

  • Input: Các hệ số a, b, c nhập từ bàn phím.
  • Output: Đưa ra màn hình các nghiệm thực hoặc thông báo "Phuong trinh vo nghiem".

program Giai_PTB2;

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.

Ví dụ 5:

Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Ví dụ, các năm 2000, 2004 là năm nhuận và có số ngày là 366, các năm 1900, 1945 không phải là năm nhuận và có số ngày là 365.

Hướng dẫn:

  • Trong biểu thức điều kiện ta sử dụng các phép toán logic như là or, and để gộp các điều kiện lại với nhau.
  • Dùng cấu trúc dạng đủ để lập trình cho bài toán trên.
  • Biểu thức điều kiện: ((N mod 400 = 0) or (N mod 4 = 0) and (N mod 100<>0))

Xác định bài toán:

  • Input: N nhập từ bàn phím.
  • Output: Đưa số ngày của năm N ra màn hình.

program Nam_nhuan;

uses crt;

var N, SN: integer;

begin

       clrscr;

       write('Nam: '); readln(N);

       if (N mod 400 = 0)or((N mod 4 = 0)and( N mod 100 <> 0))

                       then SN:= 366 else SN:= 365;

       writeln(' So ngay cua nam ', N,' la ', SN);

       readln

end. 

2. Luyện tập Bài 9 Tin học 11

Sau khi học xong Bài 9: Cấu trúc rẽ nhánh, các em cần nắm vững các nội dung trọng tâm:

  • Rẽ nhánh;
  • Câu lệnh If - then:
    • Dạng thiếu: ​If < Điều kiện > then < Câu lệnh >;
    • Dạng đủ

If < Điều kiện > then < Câu lệnh 1 >

     else < Câu lệnh 2 >;

  • Câu lệnh ghép: Có thể gộp dãy câu lệnh thành câu lệnh ghép.

2.1. Trắc nghiệm

Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 9 cực hay có đáp án và lời giải chi tiết. 

  • Câu 1:

    Để mô tả cấu trúc rẽ nhánh trong thuật toán, nhiều ngôn ngữ lập trình bậc cao dùng câu lệnh IF – THEN, sau IF là < điều kiện > . Điều kiện là