Esnek Puanlama
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 51 / 56.
Sıkı eşitlik katıdır. Gerçek testler paris, Paris ve PARIS ifadelerini aynı cevap olarak kabul eder.
Bölüm 1'deki tarif: boşlukları temizle, her iki tarafı da küçük harfe çevir, karşılaştır:
func grade(_ given: String, _ answer: String) -> Bool {
let g = given.trimmingCharacters(in: .whitespaces).lowercased()
let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
return g == a
}Bu, kendi fonksiyonuna ayırmaya değer türden bir yardımcıdır. Quiz döngüsü, her soru için tek bir satırla daha temiz okunur ve yarınki hata düzeltmesi tek bir yerde yapılır.
Görev
KolayHer iki tarafın boşluklarını kırptıktan ve küçük harfe çevirdikten sonra iki dize eşleştiğinde true döndüren bir grade(_ given: String, _ answer: String) -> Bool fonksiyonu tanımlayın.
questions bankası verilmiştir. stdin üzerinden üç satır okuyun. Her soru için şunları yazdırın:
- Soru metni
- Esnek karşılaştırmaya dayalı olarak
correctveyawrong
Çalıştırma bittikten sonra, Score: <n>/3 yazdırın.
4 / PARIS / Green girdisi için çıktı şöyledir:
2 + 2?
correct
Capital of France?
correct
Color of grass?
correct
Score: 3/3Kopya kağıdı
Esnek dize karşılaştırması: karşılaştırmadan önce her iki tarafın boşluklarını temizleyin ve küçük harfe çevirin.
func grade(_ given: String, _ answer: String) -> Bool {
let g = given.trimmingCharacters(in: .whitespaces).lowercased()
let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
return g == a
}Kendin dene
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// YAPILACAK: trim + küçük harf karşılaştırması ile func grade(_:_:)->Bool
// sonra döngü kur, soruyu yazdır, cevabı oku, doğru/yanlış yazdır;
// 'Puan: <n>/3' ile bitir
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