CodeBlanks Logo Icon CodeBlanks

Skor hesaplama

C# kursu · Orta seviye · Ders 45/116

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

  1. 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.

  2. 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++;
    }
  3. 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

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