Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Definisikan 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:

  1. Teks pertanyaan
  2. correct atau wrong berdasarkan 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/3

Coba 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'
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift