Report riepilogativo
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 53 di 56.
Funzionalità finale: invece di una sola categoria, esegui l'intero quiz e crea un riepilogo per categoria alla fine.
Ti affiderai a tutti i capitoli contemporaneamente: destrutturazione delle tuple per l’iterazione, valutazione permissiva dal capitolo sulle stringhe, dizionari con indice predefinito dal capitolo sui dizionari, iterazione ordinata per un output deterministico.
Crea i contatori per categoria come due dizionari paralleli:
var totals: [String: Int] = [:]
var rights: [String: Int] = [:]Incrementa totals[cat, default: 0] += 1 per ogni domanda; incrementa rights[cat, default: 0] solo in caso di risposta corretta. Alla fine, percorri le categorie in ordine alfabetico per stampare il rapporto.
Sfida
MedioLa stessa banca di sei domande della lezione precedente. Leggi sei risposte da stdin, una per riga, nello stesso ordine della banca. Usa una valutazione permissiva.
Stampa, in quest’ordine:
- Una riga per categoria, in ordine alfabetico, nel formato
<category>: <right>/<total> - Una riga finale:
Total: <right>/<total>per l’intera esecuzione
Per l’input 4 / 3.14 / Paris / Atlantic / green / WATER, l’output è:
geo: 1/2
math: 2/2
science: 2/2
Total: 5/6Provalo tu
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: leggi 6 risposte; valuta con tolleranza; calcola i totali e le risposte corrette per categoria;
// stampa le righe di riepilogo ordinate + Total
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle paroleEsercitati da solo: Playground Swift