Skor hesaplama
ScoreCalculator ile doğru sayısını ve yüzdesini öğrenirsin.
Skor hesaplama
Bu derste Run metodunu güncelleyerek skor takibi ekleyeceğiz. Metot void yerine int döndürecek; her doğru cevapta sayacı bir artıracak.
Gövdede önce int score = 0; tanımlanır. Doğru cevap dalında score++ ile artırılır. Metot sonunda return score; ile sonuç döndürülür. Main'de int score = quiz.Run(answers); ile sonuç alınıp Console.WriteLine(score); ile yazdırılır.
Dönüş türü ve return
Bir metodun dönüş türü, ürettiği değerin türüdür. void dönüş yok demektir; int ise bir tamsayı döndürür. return score; ifadesi metodu bitirir ve değeri çağırana verir.
Run metodunu public int Run(string[] answers) biçimine getirince gövdede mutlaka bir return olmalıdır; aksi halde derleme hatası alınır. Main'de dönen değeri bir değişkene atayıp kullanabilirsin: int score = quiz.Run(answers);.
Uygulama Skoru hesapla ve yazdır
Run metodunun dönüş türünü void yerine int yap. Gövdede int score = 0; tanımla, doğru cevap dalında score++ yap ve metot sonunda return score; ekle. Main'de int score = quiz.Run(new[] { "Ankara" }); ile sonucu al ve Console.WriteLine(score); ile yazdır.
Örnek çözümü göster
Run metodunu `public int Run(string[] answers) { int score = 0; for (int i = 0; i < questions.Count; i++) { Console.WriteLine(questions[i].Text); if (answers[i] == questions[i].Answer) { Console.WriteLine("Doğru"); score++; } else { Console.WriteLine("Yanlış"); } } return score; }` şeklinde güncelle. Main içine `var quiz = new Quiz(); quiz.AddQuestion(new Question { Text = "Başkent?", Answer = "Ankara" }); int score = quiz.Run(new[] { "Ankara" }); Console.WriteLine(score);` yaz.
Örnek çözüm:
using System;
using System.Collections.Generic;
class Question
{
public string Text;
public string Answer;
}
class Quiz
{
private List<Question> questions = new List<Question>();
public void AddQuestion(Question q)
{
questions.Add(q);
}
public int Count()
{
return questions.Count;
}
public int Run(string[] answers)
{
int score = 0;
for (int i = 0; i < questions.Count; i++)
{
Console.WriteLine(questions[i].Text);
if (answers[i] == questions[i].Answer)
{
Console.WriteLine("Doğru");
score++;
}
else
{
Console.WriteLine("Yanlış");
}
}
return score;
}
}
class Program
{
static void Main()
{
var quiz = new Quiz();
quiz.AddQuestion(new Question { Text = "Başkent?", Answer = "Ankara" });
int score = quiz.Run(new[] { "Ankara" });
Console.WriteLine(score);
}
}
Kendini test et
-
Skoru hesaplamanın doğru yolu nedir?
- Run metodu void kalsın, Main'de say.
- Run metodu int döndürsün, her doğru cevapta bir artırsın.
- Ayrı bir CalculateScore metodu ekle.
- Skoru global değişkende tut.
Cevabı göster
Run metodu int döndürsün, her doğru cevapta bir artırsın. — Doğru. Run int döndürürse skor Main'de kolayca alınır.
-
Boşluğu doldur: skor artırımı
if (answers[i] == questions[i].Answer) { Console.WriteLine("Doğru"); ____; }Cevabı göster
if (answers[i] == questions[i].Answer) { Console.WriteLine("Doğru"); score++; } -
Eşleştir: skor parçaları
- int score
- skor sayacı
- score++
- doğru cevap artırımı
- return score
- sonucu döndürür
- WriteLine(score)
- skoru yazdırır