CodeBlanks Logo Icon CodeBlanks

Quiz oynatma

C# kursu · Orta seviye · Ders 44/116

Run metoduyla soruları sırayla sormayı öğrenirsin.

Quiz oynatma

Bu derste Quiz sınıfına Run metodu ekleyeceğiz. Bu metot bir string[] cevap listesi alır, her soruyu gezerek cevabı karşılaştırır ve doğru/yanlış yazdırır.

for (int i = 0; i < questions.Count; i++) döngüsü her soruyu tek tek gezer. questions[i].Text soru metnini, questions[i].Answer beklenen cevabı verir. answers[i] == questions[i].Answer karşılaştırması cevabı denetler. Doğruysa "Doğru", yanlışsa "Yanlış" yazdırır.

Dizi parametresi

Run metodu bir string[] parametresi alır; bu dizi her soru için bir cevap içerir. Çağrı: quiz.Run(new[] { "Ankara" }).

new[] { ... } ile yeni bir dizi oluşturulur. Dizi uzunluğu soru sayısına eşit olmalıdır; aksi halde answers[i] erişimi hata verebilir. Bu derste cevaplar kod içinden gönderiliyor; gerçek bir uygulamada Console.ReadLine() ile kullanıcıdan alınabilirdi.

Uygulama Quiz'i oynat

Quiz sınıfına public void Run(string[] answers) metodunu ekle. Gövdesinde bir for döngüsü ile soruları gez; her soruda questions[i].Text'i yazdır, answers[i] == questions[i].Answer ise "Doğru", değilse "Yanlış" yazdır. Main'de bir soru ekle ve quiz.Run(new[] { "Ankara" }) çağrısı yap.

Örnek çözümü göster
Quiz sınıfına `public void Run(string[] answers) { for (int i = 0; i < questions.Count; i++) { Console.WriteLine(questions[i].Text); if (answers[i] == questions[i].Answer) { Console.WriteLine("Doğru"); } else { Console.WriteLine("Yanlış"); } } }` ekle. Main içine `var quiz = new Quiz(); quiz.AddQuestion(new Question { Text = "Başkent?", Answer = "Ankara" }); quiz.Run(new[] { "Ankara" });` 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 void Run(string[] answers)
    {
        for (int i = 0; i < questions.Count; i++)
        {
            Console.WriteLine(questions[i].Text);
            if (answers[i] == questions[i].Answer)
            {
                Console.WriteLine("Doğru");
            }
            else
            {
                Console.WriteLine("Yanlış");
            }
        }
    }
}

class Program
{
    static void Main()
    {
        var quiz = new Quiz();
        quiz.AddQuestion(new Question { Text = "Başkent?", Answer = "Ankara" });
        quiz.Run(new[] { "Ankara" });
    }
}

Kendini test et

  1. Eşleştir: Run metodu parçaları

    for
    soru döngüsü
    answers[i]
    öğrenci cevabı
    questions[i]
    soru kaydı
    ==
    karşılaştırma
  2. Run metodu ne yapmalıdır?

    • Yalnızca ilk soruyu gösterir.
    • Hiçbir şey yazdırmaz.
    • Soruları karıştırır.
    • Soruları gezir, cevapları karşılaştırır ve doğru/yanlış yazdırır.
    Cevabı göster

    Soruları gezir, cevapları karşılaştırır ve doğru/yanlış yazdırır. — Doğru. Run tüm soruları gezerek cevapları karşılaştırır.

  3. Boşluğu doldur: for döngüsü

    for (____; i < questions.Count; i++)
    Cevabı göster
    for (int i = 0; i < questions.Count; i++)

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