Menu
Coddy logo textTech

מפות מקוננות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 9 מתוך 63.

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

בתוך main:

val school = mapOf("Ada" to mapOf("math" to 9))
println(school["Ada"]?.get("art") ?: -1)

Ada קיימת, אבל המפתח הפנימי art לא קיים, ולכן נעשה שימוש בערך החלופי.

השתמשו בגישה בטוחה בכל רמה במפה שעשויה להיעדר.

challenge icon

אתגר

בינוני

השלם את nestedScore עם הפרמטרים name: String, subject: String. השתמש ברשומות הקבועות Ada: math 9, art 7; Bo: math 6. החזר את הציון המבוקש או ‎-1 אם השם או המקצוע אינם קיימים.

אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכי מספרים שלמים באוספים נמצאים בין ‎-1000 ל-1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.

החזר ערך מסוג Int. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את ערך ההחזרה ואחריו תו שורה חדשה אחד. רשימות משתמשות בתבנית הסוגריים המרובעים הסטנדרטית של Kotlin; אל תדפיס תוויות נוספות.

נסו בעצמכם

fun nestedScore(name: String, subject: String): Int {
    // כתבו כאן את הפתרון שלכם.
    return 0
}
fun main() {
    val name = readLine().orEmpty()
    val subject = readLine().orEmpty()
    println(nestedScore(name, subject))
}
quiz iconבחנו את עצמכם

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

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

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