← Quay lại mục lục

Bài 11 — Tính chỉ số BMI

Form tính BMI từ chiều cao và cân nặng, phân loại Underweight/Normal/Overweight/Obese.

Dễ #calculator #bmi #boundary-value #equivalence-partitioning

⚖️ Bài 11: Tính chỉ số BMI

Form tính chỉ số khối cơ thể (Body Mass Index) và phân loại tình trạng. Bài tập điển hình về Equivalence Partitioning + Boundary Value Analysis.

📌 Công thức

BMI = weight (kg) / height (m)²

Lưu ý: chiều cao nhập theo cm, cần convert sang m trước khi tính.

📋 Bảng đặc tả

#TênLoạiBắt buộcMô tả
1HeightNumber (cm)Yes50–300 cm, > 0
2WeightNumber (kg)Yes10–500 kg, > 0
3CalculateButtonTính BMI và hiển thị phân loại

🎯 Phân loại BMI (theo WHO)

BMI RangePhân loại
BMI < 18.5Underweight
18.5 ≤ BMI < 25Normal
25 ≤ BMI < 30Overweight
BMI ≥ 30Obese

📝 Message expected

Trường hợpMessage
Height/Weight rỗngPlease input both height and weight
Input ≤ 0Height and weight must be positive
Height ngoài 50–300Height must be between 50 and 300 cm
Weight ngoài 10–500Weight must be between 10 and 500 kg
Tính thành côngHiển thị BMI (1 chữ số thập phân) + phân loại

🎯 Yêu cầu

  1. Thiết kế test case theo:
    • Boundary Value cho cả length và phân loại BMI: 18.4 / 18.5 / 24.9 / 25 / 29.9 / 30.
    • Equivalence Partitioning: 4 nhóm phân loại.
    • Negative cases: input rỗng, 0, âm, vượt biên.
  2. Thử các edge case: BMI = 25.0, 30.0 chính xác — vào nhóm nào?
  3. Tính tay để verify công thức (VD: 170 cm, 65 kg → BMI = 65 / (1.7)² = 22.49).
⚠️ Bug được cài cắm tập trung vào: công thức tính BMI, boundary classification, validate input, format output.
🔐

Vui lòng đăng nhập để nộp bài.

Đăng nhập
🔐

Tab dành cho giảng viên

Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.