CodeBlanks Logo Icon CodeBlanks

Skor hesaplama

Skor hesaplama fonksiyonuyla doğru sayısını öğrenirsin.

Skor hesaplama

Dördüncü derste score fonksiyonunu ekleriz. Bu fonksiyon bir cevap listesi alır, her sorunun doğru cevabıyla karşılaştırır ve doğru sayısını döndürür.

Örnek: fun score(answers: List<String>): Int { var correct = 0; for (i in questions.indices) { if (questions[i].answer == answers[i]) correct++ }; return correct }. questions.indices listedeki indekslerin aralığını verir. questions[i].answer ile i. sorunun cevabına erişilir. answers[i] ile kullanıcının i. cevabı karşılaştırılır. Doğru eşleşmeler correct değişkeninde sayılır.

Skor hesaplama örneği

score fonksiyonu bir List<String> alır. Her soru için kullanıcının cevabını doğru cevapla karşılaştırır.

Örnek: iki soru ekliysek ve score(listOf("Türkiye", "5")) çağrısı yaparsak, birinci doğru ikinci yanlış olduğundan sonuç 1 olur. var correct = 0 ile sayaç başlatılır. Döngü içinde her doğru eşleşmede correct++ ile bir artırılır. Son olarak return correct ile değer döndürülür. Bu fonksiyon quiz sonunda puan göstermek için kullanılır.

Uygulama score fonksiyonunu ekle

Önceki derslerin çözümünü temel al: data class Question(val text: String, val answer: String), val questions: MutableList<Question> = mutableListOf(), fun addQuestion(text: String, answer: String) ve fun runQuiz() tanımlı olsun. fun score(answers: List<String>): Int fonksiyonu ekle; gövdesi var correct = 0 ile başlasın, for (i in questions.indices) ile her soruyu gezsin, if (questions[i].answer == answers[i]) correct++ yapsın ve return correct döndürsün. main içinde iki soru ekle ve println(score(listOf("Türkiye", "5"))) ile sonucu yazdır.

Başlangıç kodu

Main.kt
data class Question(val text: String, val answer: String)

val questions: MutableList<Question> = mutableListOf()

fun addQuestion(text: String, answer: String) {
    questions.add(Question(text, answer))
}

fun runQuiz() {
    for (q in questions) {
        println(q.text)
        println("Cevap: ${q.answer}")
    }
}

// score fonksiyonunu ekle: answers al, doğru sayısını döndür

fun main() {
    // İki soru ekle ve score sonucunu yazdır
}

Örnek çözüm

Main.kt
data class Question(val text: String, val answer: String)

val questions: MutableList<Question> = mutableListOf()

fun addQuestion(text: String, answer: String) {
    questions.add(Question(text, answer))
}

fun runQuiz() {
    for (q in questions) {
        println(q.text)
        println("Cevap: ${q.answer}")
    }
}

fun score(answers: List<String>): Int {
    var correct = 0
    for (i in questions.indices) {
        if (questions[i].answer == answers[i]) correct++
    }
    return correct
}

fun main() {
    addQuestion("Başkent hangi ülke?", "Türkiye")
    addQuestion("2+2 kaç?", "4")
    println(score(listOf("Türkiye", "5")))
}

Beklenen çıktı

1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 score parçalarını eşle

Kavram Anlamı
fun score(answers) Fonksiyon imzası
questions.indices İndeks aralığı
var correct = 0 Sayaç
correct++ Artırma

2 <code>questions.indices</code> ne döndürür?

  • İndeks aralığı (0..size-1) Doğru cevap
  • Yeni bir liste
  • Boolean sonuç
  • Listedeki öğeleri

Açıklama: questions.indices 0'dan size-1'e kadar indeks aralığıdır.

3 score karşılaştırmasını tamamla

Soru
if (questions[i].answer == ____) correct++
Cevap
if (questions[i].answer == answers[i]) correct++

Açıklama: answers[i] kullanıcının i. cevabıdır.

Orta seviye bölümündeki tüm dersler