Ôn tập: bộ phân loại điểm
Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 42 trên 56.
Kết hợp case nhiều giá trị, toán tử ba ngôi và các bổ từ nội tuyến để phân loại điểm thi trong một đoạn script ngắn.
Thử thách
Trung bìnhĐọc một danh sách số nguyên điểm được phân tách bằng dấu phẩy từ đầu vào. Với mỗi điểm, in ra một dòng:
<score>: <letter> (<status>)Trong đó, letter được xác định bằng case dựa trên điểm:
90..100→A80..89→B70..79→C60..69→D- các trường hợp khác →
F
Và status dùng toán tử ba ngôi: passing khi điểm từ 60 trở lên, nếu không thì là failing.
Sau vòng lặp, in ra Top scorer: <score>: nhưng chỉ khi điểm cao nhất là 90 trở lên (dùng if nội dòng).
Với đầu vào 95,72,55,88, đầu ra là:
95: A (passing)
72: C (passing)
55: F (failing)
88: B (passing)
Top scorer: 95Tự làm thử
scores = gets.chomp.split(",").map(&:to_i)
# TODO: in "<n>: <letter> (<status>)" cho mỗi điểm số
# TODO: chỉ in "Top scorer: <max>" nếu max >= 90
Tất cả bài học trong Logic và luồng xử lý
1Tìm hiểu sâu về chuỗi
Tổng quan về phương thức chuỗiNội suy chuỗiDuyệt qua chuỗiTách và nối chuỗiÔn tập: Đan chuỗi4Khối lệnh, Proc và lambda
Khối lệnh là gì?do..end và dấu ngoặc nhọnTừ khóa yieldTham số của khối lệnhProc và lambdaÔn tập: bộ lặp tùy chỉnh7Hash, phần 2
Hash.new với giá trị mặc địnhLặp qua HashHash lồng nhauGộp và chuyển đổiÔn tập: Bộ đếm tần suất10Dự án: Hồ sơ học sinh
Tổng quan dự ánThêm học sinh2Phạm vi
Phạm vi là gì?Các phương thức của phạm viPhạm vi trong case / whenÔn tập: luyện tập với phạm vi5Sức mạnh của Enumerable
select và rejectNối chuỗi mapreduce / injectcount, all?, any?, none?group_by và partitionsort_by, min_by, max_byÔn tập: quy trình dữ liệu8Ra quyết định nâng cao
Trường hợp với lớp và Regexwhen với nhiều giá trịToán tử ba ngôiif / unless nội tuyếnÔn tập: bộ phân loại điểmTự luyện tập: Trình biên dịch Ruby online