Laporan Ringkasan
Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 53 dari 56.
Fitur terakhir: alih-alih menjalankan satu kategori, jalankan seluruh kuis dan tampilkan ringkasan per kategori di akhir.
Kamu akan mengandalkan semua bab sekaligus: unpacking tuple untuk perulangan, penilaian longgar dari bab string, dictionary dengan subskrip default dari bab dictionary, serta iterasi terurut untuk output deterministik.
Buat penghitung untuk setiap kategori sebagai dua dictionary paralel:
var totals: [String: Int] = [:]
var rights: [String: Int] = [:]Tambahkan totals[cat, default: 0] += 1 untuk setiap pertanyaan; tambahkan rights[cat, default: 0] hanya jika jawabannya benar. Pada akhirnya, telusuri kategori sesuai urutan alfabet untuk mencetak laporan.
Tantangan
SedangBank enam pertanyaan yang sama dari pelajaran sebelumnya. Baca six jawaban dari stdin, satu per baris, dengan urutan yang sama seperti di bank. Gunakan penilaian yang longgar.
Cetak dengan urutan berikut:
- Satu baris untuk setiap kategori, diurutkan secara alfabetis, dengan format
<category>: <right>/<total> - Satu baris terakhir:
Total: <right>/<total>untuk seluruh proses
Untuk input 4 / 3.14 / Paris / Atlantic / green / WATER, outputnya adalah:
geo: 1/2
math: 2/2
science: 2/2
Total: 5/6Coba sendiri
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: baca 6 jawaban; nilai dengan toleran; hitung total dan jawaban benar per kategori;
// cetak baris ringkasan yang diurutkan + Total
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Jumlah dan indeksHuruf besar, huruf kecil, dan hapus spasiMencari dalam stringMemisahkan dan menggabungkanMengganti substringUlasan: Memeriksa nama pengguna4set
Membuat setGabungan dan IrisanSelisih dan Selisih SimetrisHimpunan Bagian dan Himpunan SupersetRingkasan: Filter Tag7Proyek: Pelacak Kebiasaan
Gambaran Umum ProyekTandai Selesai10Proyek: Mesin Kuis
Ikhtisar ProyekAjukan Pertanyaan2Rentang dan Langkah
Rentang Tertutup vs Setengah TerbukaLangkahMetode RentangRentang dalam SwitchRangkuman: Kisi KalenderLatihan sendiri: Playground Swift