Menu
Coddy logo textTech

דוח סיכום

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Swift של Coddy. שיעור 53 מתוך 56.

התכונה האחרונה: במקום קטגוריה אחת, הריצו את כל הבוחן והפיקו בסוף סיכום לכל קטגוריה.

תסתמך על כל הפרקים בבת אחת: פירוק של tuple לצורך האיטרציה, ניקוד מקל מפרק המחרוזות, מילונים עם גישה לאיבר לפי מפתח כברירת מחדל מפרק המילונים, ואיטרציה ממוינת לקבלת פלט דטרמיניסטי.

בנה מונים לכל קטגוריה כשתי מילונים מקבילים:

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

הגדילו את totals[cat, default: 0] += 1 עבור כל שאלה; הגדילו את rights[cat, default: 0] רק עבור תשובה נכונה. בסוף, עברו על הקטגוריות לפי סדר אלפביתי כדי להדפיס את הדוח.

challenge icon

אתגר

בינוני

אותו מאגר של שש שאלות מהשיעור הקודם. קראו שש תשובות מ־stdin, אחת בכל שורה, באותו סדר שבו הן מופיעות במאגר. השתמשו בבדיקה מקלה.

הדפיסו, לפי הסדר הזה:

  1. שורה אחת לכל קטגוריה, ממוינת בסדר אלפביתי, בפורמט <category>: <right>/<total>
  2. שורה אחרונה אחת: Total: <right>/<total> עבור כל הריצה

עבור הקלט 4 / 3.14 / Paris / Atlantic / green / WATER, הפלט הוא:

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

נסו בעצמכם

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: לקרוא 6 תשובות; לבדוק בגמישות; לחשב סך שאלות ותשובות נכונות לכל קטגוריה;
// להדפיס שורות סיכום ממוינות + Total
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: Swift אונליין