Menu
CoddyTech

Özet Rapor

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 53 / 56.

Son özellik: tek bir kategori yerine sınavın tamamını çalıştır ve sonunda kategori başına bir özet oluştur.

İterasyon için demetlerin parçalarına ayırılmasından, dizgiler bölümündeki esnek değerlendirmeden, sözlükler bölümündeki varsayılan alt indisli sözlüklerden ve belirleyici çıktı için sıralı iterasyondan yararlanacaksın.

Kategori başına sayaçları, paralel iki sözlük olarak oluştur:

var totals: [String: Int] = [:]
var rights: [String: Int] = [:]

Her soru için totals[cat, default: 0] += 1 değerini artır; yalnızca doğru yanıt verildiğinde rights[cat, default: 0] değerini artır. Sonunda, raporu yazdırmak için kategorileri alfabetik sırayla dolaş.

challenge icon

Görev

Orta

Programını, önceki adımdakiyle aynı olan bu altı soruluk listeyle başlat:

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("math", "Value of pi to 2 decimals?", "3.14"),
    ("geo", "Capital of France?", "Paris"),
    ("geo", "Largest ocean?", "Pacific"),
    ("science", "Color of grass?", "green"),
    ("science", "H2O is?", "water")
]

Standart girdiden, her satıra bir tane gelecek şekilde ve listedeki sırayla altı yanıt oku. Esnek bir değerlendirme yöntemi kullan.

Şu sırayla yazdır:

  1. Her kategori için alfabetik sırayla, <category>: <right>/<total> biçiminde bir satır
  2. Tüm çalıştırmanın toplamını gösteren son bir satır: Total: <right>/<total>

4 / 3.14 / Paris / Atlantic / green / WATER girdisi için çıktı şöyledir:

geo: 1/2
math: 2/2
science: 2/2
Total: 5/6

Kendin dene

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("math", "Value of pi to 2 decimals?", "3.14"),
    ("geo", "Capital of France?", "Paris"),
    ("geo", "Largest ocean?", "Pacific"),
    ("science", "Color of grass?", "green"),
    ("science", "H2O is?", "water")
]

// TODO: 6 cevap oku; esnek değerlendir; kategori başına toplamları/doğru sayılarını hesapla;
// sıralanmış özet satırlarını + Total satırını yazdır
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Swift playground