Soruları Sorma
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 50 / 56.
İlk özellik: her soruyu sırayla sorun ve her cevabın doğru olup olmadığını yazdırın.
Soru bankası bu ders için kodun içine sabitlenmiştir (hardcoded), oyuncunun cevapları stdin'den gelir (her satıra bir tane, sırayla).
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
for (_, text, answer) in questions {
print(text)
let given = readLine()!
print(given == answer ? "correct" : "wrong")
}Yukarıdan aşağıya okuyun: soruyu yazdırın, bir satır okuyun, karşılaştırın. Bir sonraki ders, büyük/küçük harf kullanımı veya fazladan boşluklar nedeniyle hata vermemesi için bu katı karşılaştırmayı yumuşatır.
Görev
Kolayquestions bankası verilmiştir. Standart girdiden (stdin) üç satır okuyun (oyuncunun sırasıyla cevapları). Her soru için şunları yazdırın:
- Kendi satırında sorunun metni
- Verilen cevap, saklanan cevaba tam olarak eşit olduğunda
correct, aksi takdirdewrong
Üç sorunun tamamından sonra, doğru cevapların sayısıyla birlikte Score: <n>/3 yazdırın.
4 / Paris / red girdisi için çıktı şöyledir:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Kopya kağıdı
Bir demet (tuple) soru dizisi üzerinde gezinin, stdin'den cevapları okuyun ve karşılaştırın:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
var score = 0
for (_, text, answer) in questions {
print(text)
let given = readLine()!
if given == answer {
print("correct")
score += 1
} else {
print("wrong")
}
}
print("Score: \(score)/\(questions.count)")Kendin dene
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// YAPILACAK: her soru için metni yazdır, cevabı oku, doğru/yanlış yazdır;
// sonra 'Skor: <n>/3' yazdır
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
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleri