CodeBlanks Logo Icon CodeBlanks

Skor hesaplama

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

Skor takibi

Quiz'i değerlendirmek için grade metodunu yazacağız. Bu metot, verilen cevap listesini soruların cevaplarıyla karşılaştırır ve doğru sayısını score alanına yazar. Sonra skoru ekrana yazdırır.

Quiz sınıfına int score = 0; özelliği eklenir. grade(List<String> answers) metodu her cevabı questions[i].answer ile kıyaslar; eşitse score++ ile artırır.

Bu yapı, cevapları otomatik değerlendirmenin temelidir. Gerçek uygulamalarda kullanıcıdan cevap alınır; burada sabit bir listeyle simüle ediyoruz.

Sonuç gösterme

grade metodu döngüden sonra print('Skor: $score') ile sonuçu yazdırır. İki sorudan biri doğruysa çıktı Skor: 1 olur.

$score string interpolation'dur; score değişkeninin değerini metne gömer. Dart'ta $değişken yazımı değişken değerini verir.

Bu metot çağrıldığında quiz değerlendirilmiş olur. Bir sonraki derste tüm parçaları birleştirip çalışan bir uygulama elde edeceğiz.

Uygulama grade metodunu ve score alanını ekle

Quiz sınıfına int score = 0 özelliği ekle. Sonra void grade(List<String> answers) metodunu yaz: score = 0 ile başlat, for döngüsü ile her cevabı questions[i].answer ile karşılaştır, eşitse score++. Döngüden sonra print('Skor: $score') yaz. main zaten quiz.grade(['Ankara', 'Yanlış']) çağırıyor.

Başlangıç kodu

main.dart
class Question {
  String text;
  String answer;
  Question(this.text, this.answer);
}

class Quiz {
  List<Question> questions = [];
  // score alanını ekle
  void addQuestion(Question q) {
    questions.add(q);
  }
  void play() {
    for (var i = 0; i < questions.length; i++) {
      print('${i + 1}. ${questions[i].text}');
    }
  }
  // grade metodunu ekle
}

void main() {
  var quiz = Quiz();
  quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
  quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
  quiz.grade(['Ankara', 'Yanlış']);
}

Örnek çözüm

main.dart
class Question {
  String text;
  String answer;
  Question(this.text, this.answer);
}

class Quiz {
  List<Question> questions = [];
  int score = 0;
  void addQuestion(Question q) {
    questions.add(q);
  }
  void play() {
    for (var i = 0; i < questions.length; i++) {
      print('${i + 1}. ${questions[i].text}');
    }
  }
  void grade(List<String> answers) {
    score = 0;
    for (var i = 0; i < questions.length; i++) {
      if (answers[i] == questions[i].answer) {
        score++;
      }
    }
    print('Skor: $score');
  }
}

void main() {
  var quiz = Quiz();
  quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
  quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
  quiz.grade(['Ankara', 'Yanlış']);
}

Beklenen çıktı

Skor: 1

Soru ve cevaplar

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

1 Skor parçalarını eşleştir

Kavram Anlamı
int score = 0 Skor alanı
grade(List<String> answers) Değerlendirme metodu
answers[i] == questions[i].answer Karşılaştırma
score++ Doğru sayısı artış

2 answers[i] == questions[i].answer ne zaman doğrudur?

main.dart
if (answers[i] == questions[i].answer) {
  score++;
}
  • Cevap boşsa
  • Cevap yanlışsa
  • Verilen cevap doğru cevapla eşleşirse Doğru cevap
  • Soru sayısı kadar

Açıklama: verilen cevap doğru cevapla aynıysa koşul sağlanır.

3 Skor artışı

Soru
void grade(List<String> answers) {
  score = 0;
  for (var i = 0; i < questions.length; i++) {
    if (answers[i] == questions[i].answer) {
      ____;
    }
  }
  print('Skor: $score');
}
Cevap
void grade(List<String> answers) {
  score = 0;
  for (var i = 0; i < questions.length; i++) {
    if (answers[i] == questions[i].answer) {
      score++;
    }
  }
  print('Skor: $score');
}

Açıklama: score++ ile doğru sayısı bir artar.

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