Penilaian Toleran
Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 51 dari 56.
Kesetaraan ketat itu terlalu kaku. Kuis sungguhan menerima paris, Paris, dan PARIS sebagai jawaban yang sama.
Resep dari bab 1: hapus spasi kosong, ubah kedua sisi menjadi huruf kecil, lalu bandingkan:
func grade(_ given: String, _ answer: String) -> Bool {
let g = given.trimmingCharacters(in: .whitespaces).lowercased()
let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
return g == a
}Helper seperti ini layak dipisahkan menjadi fungsi tersendiri. Perulangan kuis lebih mudah dibaca dengan satu baris untuk setiap pertanyaan, dan perbaikan bug besok bisa dilakukan di satu tempat.
Tantangan
MudahDefinisikan fungsi grade(_ given: String, _ answer: String) -> Bool yang mengembalikan true saat kedua string cocok setelah memangkas spasi dan mengubah keduanya menjadi huruf kecil.
Bank questions sudah diberikan. Baca tiga baris dari stdin. Cetak, untuk setiap pertanyaan:
- Teks pertanyaan
correctatauwrongberdasarkan perbandingan yang toleran
Setelah menjalankan program, cetak Score: <n>/3.
Untuk input 4 / PARIS / Green, output-nya adalah:
2 + 2?
correct
Capital of France?
correct
Color of grass?
correct
Score: 3/3Coba sendiri
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: buat fungsi grade(_:_:)->Bool yang membandingkan setelah trim + lowercase
// lalu lakukan perulangan, tampilkan pertanyaan, baca jawaban, tampilkan benar/salah;
// akhiri dengan 'Score: <n>/3'
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