Skor hesaplama
- Dart kursu
- Orta seviye
- Ders 39/116
- 6 dk
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
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
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?
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ışı
void grade(List<String> answers) {
score = 0;
for (var i = 0; i < questions.length; i++) {
if (answers[i] == questions[i].answer) {
____;
}
}
print('Skor: $score');
}
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.