Menu
CoddyTech

Rapport de synthèse

Fait partie de la section Logique et flux du Journey Swift de Coddy. Leçon 53 sur 56.

Fonctionnalité finale : au lieu d’une seule catégorie, exécute l’ensemble du quiz et produis un récapitulatif par catégorie à la fin.

Tu mobiliseras plusieurs chapitres à la fois : le déballage de tuples pour l’itération, l’évaluation souple du chapitre sur les chaînes de caractères, les dictionnaires à indice par défaut du chapitre sur les dictionnaires, et l’itération triée pour obtenir un résultat déterministe.

Crée les compteurs par catégorie sous forme de deux dictionnaires parallèles :

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

Incrémente totals[cat, default: 0] += 1 pour chaque question ; incrémente rights[cat, default: 0] uniquement en cas de bonne réponse. À la fin, parcours les catégories par ordre alphabétique pour afficher le rapport.

challenge icon

Défi

Moyen

Commence ton programme avec cette banque de six questions, la même que celle de l’étape précédente :

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")
]

Lis six réponses depuis stdin, une par ligne, dans le même ordre que la banque. Utilise une notation souple.

Affiche, dans cet ordre :

  1. Une ligne par catégorie, triées par ordre alphabétique, au format <category>: <right>/<total>
  2. Une dernière ligne : Total: <right>/<total> pour l’ensemble de l’exécution

Pour l’entrée 4 / 3.14 / Paris / Atlantic / green / WATER, la sortie est :

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

Essayez vous-même

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: lire 6 réponses ; corriger avec indulgence ; calculer les totaux et les bonnes réponses par catégorie ;
// afficher les lignes récapitulatives triées + Total
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux

Entraînez-vous par vous-même : Playground Swift