Tin học 10 Kết nối tri thức BÀI 19: CÂU LỆNH RẼ NHÁNH IF

1. BIỂU THỨC LÔGIC 

Hoạt động 1. Khái niệm biểu thức lôgic

Biểu thức nào sau đây có thể đưa vào vị trí <điều kiện> trong lệnh: Nếu <điều kiện> thì <lệnh> của các ngôn ngữ lập trình bậc cao?

A. m, n = 1, 2   

B. a + b > 1

C. a* b < a + b  

D. 12 + 15 > 2* 13

ĐÁP ÁN: Hiện
Đáp án B, C, D
- Trong Python, biểu thức lôgic là biểu thức chỉ nhận giá trị True (đúng) hoặc False (sai).
 - Biểu thức lôgic đơn giản nhất là các biểu thức so sánh số hoặc xâu kí tự.
 - Quan sát các lệnh sau để nhận biết kiểu dữ liệu lôgic.

* Các phép so sánh giá trị số trong Python:

* Các phép toán trên kiểu dữ liệu lôgic bao gồm phép and (và), or (hoặc) và not (phủ định). Bảng các phép toán lôgic như sau:


Ví dụ 1. Dự đoán giá trị b qua các câu lệnh sau:



Ví dụ 2. Cho các lệnh sau và dự đoán giá trị của các biến lôgic a, b, c.

* Kết luận:

Biểu thức lôgic là biểu thức chỉ nhận giá trị True hoặc False. Giá trị các biểu thức lôgic thuộc kiểu bool.

- Các phép toán trên kiểu dữ liệu lôgic là and (và), or (hoặc) và not (phủ định).

Củng cố: Mỗi biểu thức sau có giá trị True hay False?

a) 100%4==0

b)111//5 != 20 or 20%3 != 0

ĐÁP ÁN: Hiện

a) 100%4 chia lấy phần dư kết quả 0==0 =>True.

111//5 = 22 (chia lấy phần nguyên) 20%3=2=> 22!=20 (False) or 2!=0 (True) ĐÁP ÁN b) True.

2. LỆNH IF

Hoạt động 2. Cấu trúc if trong python

Cho trước số tự nhiên n (được gán hoặc nhập từ bàn phím). Đoạn chương trình như sau kiểm tra n > 0 thì thông báo "n là số lớn hơn 0".

Bài 19 tin học 10 kntt

Em có nhận xét gì về cấu trúc lệnh if? Sau <điều kiện> lệnh if có kí tự gì? Lệnh print() được viết như thế nào?

+ Sau điều kiện lệnh if có kí tự dấu hai chấm ":"

+ Lệnh print() được viết thụt vào.

Câu lệnh rẽ nhánh dạng thiếu:

Khi thực hiện lệnh, Python sẽ kiểm tra <điều kiện> nếu đúng thì thực hiện <khối lệnh>, ngược lại thì bỏ qua chuyển sang lệnh tiếp theo sau lệnh if.


Ví dụ 1:          
a=10
b=20
if a<b:
	print(a, "a nhỏ hơn",b)

Kết quả: 10 nhỏ hơn 20

Ví dụ 2:

a=15
if (a % 2==0):
	print(a,"chia het cho 2- a chan")
Kết quả: không thực hiện câu lệnh sau if

Câu lệnh rẽ nhánh dạng đủ:

Khi thực hiện lệnh, Python sẽ kiểm tra <điều kiện> nếu đúng thì thực hiện <khối lệnh 1>, ngược lại thì thực hiện <khối lệnh 2>.

Ví dụ 1. 

a=4

if (a % 2==0):

print(a," chia hết cho 2- số chẵn")

else:

    print(a," không chia hết cho 2 – so lẻ")

Kết quả: 4  chia het cho 2 – số chẵn
Ví dụ 2. Nếu a,b là hai số đã được tạo thì lệnh sau sẽ in ra giá trị tuyệt đối của hiệu hai số.
                                                           

Đoạn chương trình sau thực hiện công việc gì?

ĐÁP ÁN: Hiện

Chương trình yêu cầu nhập số một số nguyên dương và đưa vào biến k. Nếu k nhỏ hơn hoặc bằng 0 thì sẽ thông báo "Bạn nhập sai rồi!".

THỰC HÀNH

Các bài tập liên quan đến kiểu dữ liệu bool và lệnh if.

Nhiệm vụ 1. Viết chương trình nhập số tự nhiên n từ bàn phím. Sau đó thông báo số em đã nhập là số chẵn hay số lẻ phụ thuộc vào n là chẵn hay lẻ.
Hướng dẫn. Để kiểm tra một số tự nhiên n là chẵn hay lẻ, ta dùng phép toán lấy số dư n%2. Nếu số dư bằng 0 thì n là số chẵn, ngược lại n là số lẻ. Chương trình có thể như sau:

Nhiệm vụ 2. Viết chương trình nhập vào 3 số a, b, c bất kì. Kiểm tra xem nó có thể là độ dài 3 cạnh của một tam giác hay không, nếu không thì in ra màn hình ‘Không phải là 3 cạnh của một tam giác’ . Ngược lại, thì in ra màn hình chu vi và diện tích của tam giác đó.

Gợi ý:

Đầu tiên nhập ba cạnh của tam giác: a,b,c

Điều kiện để tồn tại một tam giác là tổng hai cạnh phải lớn hơn cạnh thứ 3: a+b>c và a+c>b và b+c>a.

Chu vi bằng tổng 3 cạnh cộng lại: a+b+c

Nửa chu vi p: (a+b+c)/2

Công thức Heron tính diện tích tam giác: với p là nửa chu vi tam giác.


Cách 1. Sử dụng thư viện import sqrt (căn bậc 2)

ĐÁP ÁN: Hiện
from math import sqrt
print("Nhập a, b, c khác 0: ")
a=int(input("nhập cạnh a="))
b=int(input("nhập cạnh b="))
c=int(input("nhập cạnh c="))
if (a + b> c) and (b +c > a) and (c + a > b):
    print(a,b,c,"là 3 cạnh của một tam giác")
    p=(a+b+c)/2
    s=sqrt(p*(p-a)*(p-b)*(p-c))
    print("Chu vi tam giác là: ",2*p)
    print("Diện tích tam giác là: ",s)
else:
    print(a,b,c,"không là 3 cạnh của một tam giác") 
input('Nhấn Enter để thoát!')

Cách 1. Sử dụng thư viện import math

ĐÁP ÁN: Hiện
import math
print("Nhập a, b, c khác 0: ")
a=int(input("nhập cạnh a="))
b=int(input("nhập cạnh b="))
c=int(input("nhập cạnh c="))
if (a + b> c) and (b +c > a) and (c + a > b):
    print(a,b,c,"là 3 cạnh của một tam giác")
    cv=a+b+c
    p=cv/2
    s=math.sqrt(p*(p-a)*(p-b)*(p-c))
    print("Chu vi tam giác là: ",cv)
    print("Diện tích tam giác là: ",s)
else:
    print(a,b,c,"không là 3 cạnh của một tam giác") 
input('Nhấn Enter để thoát!')

Nhiệm vụ 3.
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. 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.


ĐÁP ÁN: Hiện
n = int(input("Nhập năm: "))
if (n % 400 == 0) or ((n % 4 == 0) and (n%100 != 0)):
	print("Số ngày của năm", n, " là 366") 
else:
	print("Số ngày của năm ", n, "là 365")

Nhiệm vụ 4. 

(1) Viết chương trình kiểm tra số nguyên a (a≠0) có chia hết cho 3 hay không.

(2) Viết chương trình kiểm tra số nguyên b (b≠0) là số nguyên âm  hay số nguyên dương.

(3) Viết chương trình tìm số lớn nhất (max) trong 2 số a và b (có thể).


ĐÁP ÁN: Hiện
(1) Viết câu lệnh kiểm tra số nguyên a (a≠0) có chia hết cho 3 hay không.
a=int(input("Nhập số nguyên a: "))
if (a % 3) == 0: 
	print ( a,"chia hết cho 3")
else :
	print (a,"khong chia hết cho 3")
(2) Viết câu lệnh kiểm tra số nguyên b (b≠0) là số nguyên âm  hay số nguyên dương.
b=int(input("Nhập số nguyên b: "))
if b > 0: 
    print (b,"là số nguyên dương")
else: 
    print (b,"là số nguyên âm")
(3) Viết câu lệnh tìm số lớn nhất (max) trong 2 số a và b (có thể a=b).
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
if a>b: 
    print (a,">",b)
elif a<b: 
    print (a,"<",b)
else:
    print (a,"=",b)

Nhiệm vụ 4.Giả sử giá điện sinh hoạt trong khu vực gia đình em ở được tính luỹ kế theo từng tháng như sau (giá tính theo từng kWh điện tiêu thụ).
 - Với mức điện tiêu thụ từ 0 đến 50 kWh, giá thành mỗi kWh là 1,578 nghìn đồng.
 - Với mức từ 51 đến 100, giá thành mỗi kWh là 1,734 nghìn đồng.
 - Từ mức 101 trở lên, giá thành mỗi kWh là 2,014 nghìn đồng.
 Viết chương trình nhập số điện tiêu thụ trong tháng của gia đình em và tính số tiền điện phải trả.
Hướng dẫn. Gọi k là số kWh điện tiêu thụ của gia đình em. Khi đó theo cách tính lũy kế trên chúng ta cần tính dựa trên các điều kiện sau:
 - Nếu k ≤ 50 thì số tiền cần trả là k x 1,678 nghìn đồng.
 - Nếu 50 < k ≤100 thì số tiền cần trả là 50 × 1,678 + (k - 50) × 1,734 nghìn đồng.
 - Nếu 100 < k thì số tiền cần trả là 50 × 1678 + 50 × 1,734 + ( k - 100) × 2,014 nghìn đồng.
 Chúng ta sử dụng lệnh round (t) để làm tròn số thực t.
Chương trình có thể như sau:

LUYỆN TẬP

1. Viết biểu thức lôgic ứng với mỗi câu sau:

a) Số x nằm trong khoảng (0; 10).

b) Số y nằm ngoài đoạn [1; 2]

c) Số z nằm trong đoạn [0; 1] hoặc [5; 10].

ĐÁP ÁN: Hiện

Biểu thức lôgic là biểu thức chỉ nhận giá trị True hoặc False. Giá trị các biểu thức lôgic thuộc kiểu bool

Lời giải chi tiết:

a) x > 0 and x < 10

b) y < 1 or y > 2

c) (z >=0 and z <= 1) or (z >=5 and z <= 10)

2. Tìm một vài giá trị m, n thỏa mãn các biểu thức sau:

a) 100%m == 0 and n%5 != 0

b) m%100 == 0 and m%400 != 0

c) n%3 == 0 or (n%3 != 0 and n%4 ==0)


ĐÁP ÁN: Hiện

a) 100 chia cho m dư 0 và n chia cho 5 dư khác 0: m = 2, 4, 5, 10...; n = 6; 7; 8; 9; 11; 12...

b) m chia cho 100 dư 0 và m chia cho 400 dư khác 0: m = 500; 600; 700; 1000;...

c) n chia cho 3 dư 0 hoặc (n chia cho 3 dư khác 0 và n chia 4 dư 0): n = 6; 8; 9; 12;...

VẬN DỤNG· 

1. Năm n là năm nhuận nếu giá trị n thỏa mãn điều kiện: n chia kết cho 400 hoặc n chia hết cho 4 đồng thời không chia hết cho 100. Viết chương trình nhập số năm n và cho biết năm n có phải là năm nhuận không.

ĐÁP ÁN: Hiện
n = int(input( "Nhập năm: "))
if n%400 == 0 or (n%4 == 0 and n%100 != 0):
    print ("Năm", n, "là năm nhuận")
else:
    print("Năm", n, "không phải là năm nhuận")
2. Giá bán cam tại siêu thị tính như sau: nếu khối lượng cam mua dưới 5kg thì giá bán là 12 000 đồng/kg, nếu khối lượng mua lớn hơn hoặc bằng 5kg thì giá bán là 10 000 đồng/kg. Viết chương trình nhập số lượng mua (tính theo kg) sau đó tính số tiền phải trả.
ĐÁP ÁN: Hiện
n=int(input("Nhập số lượng mua"))
if(t<5):
    t=n*12000
if(n>=5):
    t=n*10000
print("Số tiền phải trả là: ",t, " đồng")
3. STEM: Nhập điểm thi lý thuyết và thực hành nghề phổ thông Tin học rồi thông báo điểm lý thuyết và điểm thực hành thí sinh vừa nhập. Sau đó, tính điểm trung bình điểm thi nghề Tin học. Biết lý thuyết hệ số 1, thực hành hệ số 3 rồi xếp loại nghề theo tiêu chí sau: 
- Thí sinh đạt điểm trung bình hai bài thi từ 5,0 trở lên, không có bài thi điểm dưới 3,0 thì được công nhận kết quả và xếp loại theo tiêu chuẩn sau đây: 
- Loại Giỏi: điểm trung bình hai bài thi đạt từ 9,0 đến 10;
 - Loại Khá: điểm trung bình hai bài thi đạt từ 7,0 đến dưới 9,0; điểm bài lý thuyết từ 5,0 trở lên; 
- Loại Trung bình: các trường hợp được công nhận kết quả NPT còn lại.
ĐÁP ÁN: Hiện
#Bước 1. Nhập dữ liệu
LT=float(input("Nhập điểm thi lý thuyết: "))
TH=float(input("Nhập điểm thi thực hành: "))
print("Điểm lý thuyết bạn vừa nhập là: ",LT)
print("Điểm Thực hành bạn vừa nhập là: ",TH)
#Bước 2. Xử lí
DTB=(LT+TH*3)/4
#Bước 3. Xuất kết quả
print("Trung bình điểm nghề: ",round(DTB,1))
if DTB<5 or LT<3 or TH<3:
    print("Chia buồn rớt rồi, cố gắng lần sau!")
elif DTB>=9:
    print("Xếp loại: Giỏi")
elif DTB>=7 and DTB<9 and LT>=5:
    print("Xếp loại: Khá")
else:
    print("Xếp loại: TB")
CÙNG CHUYÊN MỤC:

Chủ đề 1: Máy tính và xã hội tri thức
Lý thuyết: Bài 1-Thông tin và dữ liệu
Lý thuyết: Bài 2-Vai trò của thiết bị thông minh và tin học đối với xã hội
Chủ đề 2: Mạng máy tính và Internet
Lý thuyết: Bài 8-Mạng máy tính trong cuộc sống hiện đại
Lý thuyết: Bài 9-An toàn trên không gian mạng
Chủ đề 3: Đạo đức, pháp luật và văn hóa trong môi trường số
Lý thuyết: Bài 11-Ứng dụng trên môi trường số. Nghĩa vụ tôn trọng bản quyền
Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính
Lý thuyết: Bài 16-Ngôn ngữ lập trình bậc cao và Python
Lý thuyết: Bài 17-Biến và lệnh gán
Lý thuyết: Bài 18-Các lệnh vào ra đơn giản
Lý thuyết: Bài 19-Câu lệnh điều kiện if
Lý thuyết: Bài 20-Câu lệnh lặp for
Lý thuyết: Bài 21-Câu lệnh lặp while
Lý thuyết: Bài 22-Kiểu dữ liệu danh sách
Lý thuyết: Bài 23-Một số lệnh làm việc với dữ liệu danh sách
Lý thuyết: Bài 24-Xâu kí tự
Lý thuyết: Bài 25-Một số lệnh làm việc với xâu kí tự
Lý thuyết: Bài 26-Hàm trong Python
Lý thuyết: Bài 27-Tham số của hàm
Lý thuyết: Bài 28-Phạm vi của biến
Lý thuyết: Bài 29-Nhận biết lỗi chương trình
Lý thuyết: Bài 30-Kiểm thử và gỡ lỗi chương trình
Lý thuyết: Bài 31-Thực hành viết chương trình đơn giản
Lý thuyết: Bài 32-Ôn tập lập trình Python
Chủ đề 6: Hướng nghiệp với Tin học
Lý thuyết: Bài 33-Nghề thiết kế đồ hoạ máy tính
Lý thuyết: Bài 34-Nghề phát triển phần mềm

Next Post Previous Post
No Comment
Add Comment
comment url