Buổi 4: Luyện tập rẽ nhánh
Hôm nay em sẽ học
- Bài toán năm nhuận
- Ba cạnh có tạo thành tam giác không?
- Kỹ năng quan trọng nhất của thí sinh: tự tạo test
- Giải phương trình, sắp xếp ba số, tìm ngày mai
Bấm vào slide rồi dùng phím ← → để chuyển, phím F để xem toàn màn hình.
Mở toàn màn hình1. Kiến thức chính
Năm nhuận
Năm nhuận khi: (chia hết cho 4 và không chia hết cho 100) hoặc chia hết cho 400.
y = int(input()) if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0: print("YES") else: print("NO")
| Năm | 2024 | 1900 | 2000 | 2026 |
|---|---|---|---|---|
| Nhuận? | có | không | có | không |
Ba cạnh tạo thành tam giác
Tổng hai cạnh bất kỳ phải lớn hơn cạnh còn lại: a + b > c and a + c > b and b + c > a.
Muốn phân loại tam giác, nên sắp xếp để c là cạnh lớn nhất, rồi:
- vuông khi
a * a + b * b == c * c - đều khi
a == b == c; cân khi có hai cạnh bằng nhau
Sắp xếp ba số bằng cách đổi chỗ
a, b, c = map(int, input().split()) if a > b: a, b = b, a # đưa số nhỏ hơn lên trước if b > c: b, c = c, b # số lớn nhất về cuối if a > b: a, b = b, a # sửa lại hai số đầu print(a, b, c)
Kỹ năng tự tạo test – 4 câu hỏi trước khi nộp bài
- Số nhỏ nhất có thể thì sao? (0, 1, số âm)
- Số lớn nhất có thể thì sao?
- Các số bằng nhau thì sao?
- Đúng bằng ngưỡng thì sao? (ví dụ điểm đúng bằng 8.0)
2. Ghi nhớ và lỗi thường gặp
0 / -5 cho kết quả -0.0, in ra -0.00 và bị chấm sai. Cách chữa: cộng thêm 0.0 trước khi in (x = x + 0.0) hoặc kiểm tra if x == 0: x = 0.0.| Lỗi | Ví dụ |
|---|---|
Quên ngoặc khi trộn and, or | điều kiện năm nhuận phải có ngoặc như trên |
| Quên trường hợp đặc biệt | phương trình ax + b = 0 với a = 0 |
| Chỉ thử ví dụ trong đề | máy chấm có rất nhiều test khác! |
3. Câu hỏi tự kiểm tra
- Năm 2100 có phải năm nhuận không? Vì sao?
- Ba số 2, 3, 6 có tạo thành ba cạnh tam giác không?
- Phương trình 0x + 5 = 0 có bao nhiêu nghiệm?
4. Bài tập về nhà
Bài 1 ★★ – SONGAY
Input: tháng m và năm y trên một dòng (1 ≤ m ≤ 12, 1 ≤ y ≤ 9999).
Output: số ngày của tháng đó.
| Input | Output |
|---|---|
2 2024 | 29 |
2 1900 | 28 |
4 2026 | 30 |
Bài 2 ★★★ – PTB2
Giải phương trình bậc hai ax² + bx + c = 0 (a ≠ 0).
Input: ba số nguyên a, b, c trên một dòng (|a|, |b|, |c| ≤ 1000, a ≠ 0).
Output: VO NGHIEM; hoặc nghiệm kép; hoặc hai nghiệm theo thứ tự tăng dần trên một dòng. Các nghiệm làm tròn 2 chữ số thập phân.
| Input | Output |
|---|---|
1 -3 2 | 1.00 2.00 |
1 2 1 | -1.00 |
1 0 1 | VO NGHIEM |
Bài 3 ★★★ (thử thách) – GOCKIM
Đồng hồ chỉ h giờ m phút. Tính góc nhỏ hơn tạo bởi kim giờ và kim phút.
Input: h và m trên một dòng (0 ≤ h ≤ 23, 0 ≤ m ≤ 59).
Output: số đo góc (độ), làm tròn 1 chữ số thập phân.
| Input | Output |
|---|---|
3 0 | 90.0 |
9 45 | 22.5 |
12 30 | 165.0 |
.py đặt tên theo tên bài. Tự tạo thêm ít nhất 2 test cho mỗi bài!Chưa mở đáp án
Đáp án sẽ được mở sau khi các em nộp bài tập về nhà.
Chưa mở đáp án
Đáp án sẽ được mở sau khi các em nộp bài tập về nhà.