Menu
CoddyTech

Informe de resumen

Parte de la sección Lógica y flujo del Journey de Swift de Coddy. Lección 53 de 56.

Característica final: en lugar de una sola categoría, ejecuta todo el cuestionario y genera un resumen por categoría al final.

Recurrirás a todos los capítulos a la vez: desempaquetado de tuplas para la iteración, evaluación flexible del capítulo sobre cadenas, diccionarios con subíndice predeterminado del capítulo sobre diccionarios e iteración ordenada para obtener una salida determinista.

Construye los contadores por categoría como dos diccionarios paralelos:

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

Incrementa totals[cat, default: 0] += 1 por cada pregunta; incrementa rights[cat, default: 0] solo cuando la respuesta sea correcta. Al final, recorre las categorías en orden alfabético para imprimir el informe.

challenge icon

Desafío

Intermedio

Inicia tu programa con este banco de seis preguntas, el mismo que en el paso anterior:

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

Lee seis respuestas de stdin, una por línea, en el mismo orden que el banco. Usa una calificación flexible.

Imprime, en este orden:

  1. Una línea por categoría, ordenadas alfabéticamente, con el formato <category>: <right>/<total>
  2. Una línea final: Total: <right>/<total> para toda la ejecución

Para la entrada 4 / 3.14 / Paris / Atlantic / green / WATER, la salida es:

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

Pruébalo tú mismo

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: leer 6 respuestas; calificar con flexibilidad; calcular los totales y aciertos por categoría;
// imprimir las líneas de resumen ordenadas + Total
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Swift