Menu
Coddy logo textTech

Pobłażliwe ocenianie

Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 51 z 56.

Ścisła równość jest bezwzględna. Prawdziwe quizy akceptują paris, Paris i PARIS jako tę samą odpowiedź.

Przepis z rozdziału 1: usuń białe znaki, zamień obie strony na małe litery, porównaj:

func grade(_ given: String, _ answer: String) -> Bool {
    let g = given.trimmingCharacters(in: .whitespaces).lowercased()
    let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
    return g == a
}

To taki pomocnik, którego warto wydzielić do osobnej funkcji. Pętla quizu jest czytelniejsza, gdy każde pytanie zajmuje jeden wiersz, a jutrzejsza poprawka błędu będzie wymagała zmian tylko w jednym miejscu.

challenge icon

Wyzwanie

Łatwy

Zdefiniuj funkcję grade(_ given: String, _ answer: String) -> Bool, która zwraca true, gdy oba ciągi znaków są zgodne po usunięciu białych znaków i zamianie liter na małe po obu stronach.

Baza questions jest podana. Odczytaj trzy wiersze ze standardowego wejścia. Dla każdego pytania wypisz:

  1. Treść pytania
  2. correct lub wrong, w zależności od wyniku łagodnego porównania

Po zakończeniu wypisz Score: <n>/3.

Dla wejścia 4 / PARIS / Green wynikiem jest:

2 + 2?
correct
Capital of France?
correct
Color of grass?
correct
Score: 3/3

Spróbuj swoich sił

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("geo", "Capital of France?", "Paris"),
    ("science", "Color of grass?", "green")
]

// TODO: func grade(_:_:)->Bool z usuwaniem białych znaków na końcach i porównywaniem po zamianie na małe litery
// następnie w pętli wyświetl pytanie, odczytaj odpowiedź i wyświetl informację, czy jest poprawna;
// zakończ, wyświetlając 'Score: <n>/3'
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Edytor online Swift