Luyện tập rẽ nhánh

Buổi 4

Các bài toán kinh điển trong đề thi

Buổi 4 – Luyện tập rẽ nhánh1 / 17

Hôm nay em sẽ học

  1. Bài toán năm nhuận
  2. Ba cạnh có tạo thành tam giác không?
  3. Kỹ năng quan trọng nhất của thí sinh: tự tạo test
  4. Giải phương trình, sắp xếp ba số, tìm ngày mai
Buổi 4 – Luyện tập rẽ nhánh2 / 17

Trò chơi: Bẫy test

Chương trình sau kiểm tra số dương. Hãy tìm một số làm nó in sai!

n = int(input())
if n >= 0:
    print("DUONG")
else:
    print("AM")
Ai tìm ra trước sẽ thắng!
Buổi 4 – Luyện tập rẽ nhánh3 / 17

Phần 1: Năm nhuận

Tháng 2 có 29 ngày
Buổi 4 – Luyện tập rẽ nhánh4 / 17

Khi nào là 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ăm2024190020002026
Em đoán????
Buổi 4 – Luyện tập rẽ nhánh5 / 17

Phần 2: Tam giác

Ba que tính có ghép được tam giác?
Buổi 4 – Luyện tập rẽ nhánh6 / 17

Điều kiện 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 = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
    print("YES")
else:
    print("NO")
Ba cạnhKết quả
3 4 5YES
1 2 3NO (1 + 2 không lớn hơn 3)
Buổi 4 – Luyện tập rẽ nhánh7 / 17

Phần 3: Tự tạo test

Kỹ năng của nhà vô địch
Buổi 4 – Luyện tập rẽ nhánh8 / 17

4 câu hỏi trước khi nộp bài

  1. Số nhỏ nhất có thể thì sao? (0, 1, số âm)
  2. Số lớn nhất có thể thì sao?
  3. Các số bằng nhau thì sao?
  4. Đúng bằng ngưỡng thì sao? (ví dụ điểm đúng bằng 8.0)
Máy chấm có rất nhiều test. Chương trình phải đúng với mọi trường hợp, không chỉ ví dụ trong đề.
Buổi 4 – Luyện tập rẽ nhánh9 / 17

Luyện tập

Bài ★ cả lớp · Bài ★★★ thử thách
Buổi 4 – Luyện tập rẽ nhánh10 / 17

Bài 1 ★ và Bài 2 ★

NAMNHUAN

Gõ lại chương trình năm nhuận không nhìn slide.

TAMGIAC

Gõ lại chương trình tam giác không nhìn slide. Tự tìm 4 test để thử.

Gõ lại không nhìn là cách nhớ nhanh nhất!
Buổi 4 – Luyện tập rẽ nhánh11 / 17

Bài 3 ★★ – LOAITG

Input: ba số nguyên dương a, b, c (≤ 10⁶).

Output: KHONG (không là tam giác), DEU, CAN, VUONG hoặc THUONG.

InputOutput
3 4 5VUONG
5 5 8CAN
2 2 2DEU
1 2 3KHONG
Gợi ý: sắp xếp để c là cạnh lớn nhất, rồi mới kiểm tra a² + b² = c².
Buổi 4 – Luyện tập rẽ nhánh12 / 17

Bài 4 ★★ – PTB1

Giải phương trình ax + b = 0.

Input: hai số nguyên a, b.

Output: VO SO NGHIEM, VO NGHIEM, hoặc nghiệm x làm tròn 2 chữ số.

InputOutput
2 -31.50
0 0VO SO NGHIEM
0 5VO NGHIEM
-5 00.00
Test cuối là một cái bẫy. Hãy chạy thử và xem chương trình của em in ra gì!
Buổi 4 – Luyện tập rẽ nhánh13 / 17

Bài 5 ★★ – SAPXEP3

Input: ba số nguyên trên một dòng.

Output: ba số đó theo thứ tự tăng dần.

InputOutput
5 1 31 3 5
2 2 11 2 2
Không dùng lệnh sort. Gợi ý: đổi chỗ a, b = b, a khi cần.
Buổi 4 – Luyện tập rẽ nhánh14 / 17

Bài 6 ★★★ – NGAYMAI

Input: ngày d, tháng m, năm y (một ngày hợp lệ).

Output: ngày hôm sau.

InputOutput
28 2 202429 2 2024
28 2 20261 3 2026
30 4 20271 5 2027
31 12 20261 1 2027
Gợi ý: tính số ngày của tháng m trước (nhớ năm nhuận!).
Buổi 4 – Luyện tập rẽ nhánh15 / 17

Tóm tắt buổi 4

  • Năm nhuận: (y % 4 == 0 and y % 100 != 0) or y % 400 == 0
  • Tam giác: tổng hai cạnh bất kỳ lớn hơn cạnh thứ ba
  • Trước khi nộp: tự hỏi 4 câu hỏi tạo test
  • Sắp xếp 3 số: đổi chỗ từng cặp
Buổi 4 – Luyện tập rẽ nhánh16 / 17

Bài về nhà

  1. Nhập tháng m và năm y, in số ngày của tháng đó.
  2. Giải phương trình bậc hai ax² + bx + c = 0 (a ≠ 0): in VO NGHIEM, hoặc 1 nghiệm, hoặc 2 nghiệm tăng dần (làm tròn 2 chữ số).
Lấy căn bậc hai: d ** 0.5
Buổi 4 – Luyện tập rẽ nhánh17 / 17
← → chuyển slide · F toàn màn hình