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.
Défi
MoyenCommence 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 :
- Une ligne par catégorie, triées par ordre alphabétique, au format
<category>: <right>/<total> - 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/6Essayez 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
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
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de motsEntraînez-vous par vous-même : Playground Swift