Báo cáo tổng kết
Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 53 trên 56.
Tính năng cuối cùng: thay vì chỉ chạy một danh mục, hãy chạy toàn bộ bài trắc nghiệm và tạo bản tóm tắt theo từng danh mục ở cuối.
Bạn sẽ vận dụng mọi chương cùng lúc: giải nén tuple cho lần lặp (iteration), cách chấm điểm linh hoạt từ chương về chuỗi (string), từ điển (dictionary) có chỉ mục mặc định từ chương về từ điển, và lần lặp đã sắp xếp để tạo đầu ra nhất quán.
Tạo các bộ đếm theo từng danh mục bằng hai từ điển song song:
var totals: [String: Int] = [:]
var rights: [String: Int] = [:]Tăng totals[cat, default: 0] += 1 cho mỗi câu hỏi; chỉ tăng rights[cat, default: 0] khi trả lời đúng. Cuối cùng, duyệt qua các danh mục theo thứ tự bảng chữ cái để in báo cáo.
Thử thách
Trung bìnhNgân hàng gồm sáu câu hỏi giống như trong bài học trước. Đọc sáu câu trả lời từ stdin, mỗi dòng một câu, theo đúng thứ tự trong ngân hàng. Chấm điểm linh hoạt.
In ra theo thứ tự sau:
- Mỗi danh mục một dòng, sắp xếp theo thứ tự bảng chữ cái, theo định dạng
<category>: <right>/<total> - Một dòng cuối cùng:
Total: <right>/<total>cho toàn bộ lượt chạy
Với đầu vào 4 / 3.14 / Paris / Atlantic / green / WATER, đầu ra là:
geo: 1/2
math: 2/2
science: 2/2
Total: 5/6Tự làm thử
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("math", "Value of pi to 2 decimals?", "3.14"),
("geo", "Capital of France?", "Paris"),
("geo", "Largest ocean?", "Pacific"),
("science", "Color of grass?", "green"),
("science", "H2O is?", "water")
]
// TODO: đọc 6 câu trả lời; chấm điểm linh hoạt; tính tổng số câu hỏi và số câu đúng theo từng danh mục;
// in ra các dòng tổng kết đã sắp xếp + Total
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng thực thi
1Chuỗi chuyên sâu
Đếm và chỉ sốChữ hoa, chữ thường và xóa khoảng trắngTìm kiếm trong chuỗiTách và nối chuỗiThay thế chuỗi conÔn tập: Kiểm tra tên người dùng4Tập hợp
Tạo tập hợpPhép hợp và phép giaoPhép trừ và hiệu đối xứngTập con và tập hợp conÔn tập: Bộ lọc thẻ7Dự án: Theo dõi thói quen
Tổng quan dự ánĐánh dấu hoàn thành10Dự án: bộ máy trắc nghiệm
Tổng quan dự ánĐặt câu hỏiTự luyện tập: Playground Swift