Menu
CoddyTech

Relatório de Resumo

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy. Lição 53 de 56.

Recurso final: em vez de uma categoria, execute o questionário inteiro e gere um resumo por categoria no final.

Você vai recorrer a todos os capítulos de uma só vez: desempacotamento de tuplas para a iteração, avaliação flexível do capítulo sobre strings, dicionários com subscrito padrão do capítulo sobre dicionários e iteração ordenada para obter uma saída determinística.

Crie os contadores por categoria como dois dicionários paralelos:

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

Incremente totals[cat, default: 0] += 1 para cada pergunta; incremente rights[cat, default: 0] somente quando a resposta estiver correta. No final, percorra as categorias em ordem alfabética para imprimir o relatório.

challenge icon

Desafio

Médio

Inicie seu programa com este banco de seis perguntas, o mesmo da etapa 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")
]

Leia seis respostas da entrada padrão, uma por linha, na mesma ordem do banco. Use uma avaliação flexível.

Imprima, nesta ordem:

  1. Uma linha por categoria, em ordem alfabética, no formato <category>: <right>/<total>
  2. Uma linha final: Total: <right>/<total> para a execução inteira

Para a entrada 4 / 3.14 / Paris / Atlantic / green / WATER, a saída é:

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

Experimente você mesmo

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: ler 6 respostas; corrigir com tolerância; calcular totais/acertos por categoria;
// imprimir as linhas do resumo em ordem + Total
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Playground de Swift