Menu
Coddy logo textTech

מעבר על שורות

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

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

בתוך main:

val rows = listOf(listOf(2, 3), emptyList(), listOf(4))
var total = 0
for (row in rows) {
    for (value in row) total += value
}
println(total)

השורה הריקה אינה תורמת דבר; שאר השורות תורמות חמש וארבע.

עבור על הרכיבים בפועל בכל שורה במקום להניח שרוחבה קבוע.

challenge icon

אתגר

בינוני

השלימו את gridTotal עם הפרמטרים grid: List<List<Int>>. סכמו כל ערך בכל שורה. מותר להשתמש בשורות ריקות וברשימה חיצונית ריקה.

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

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

נסו בעצמכם

fun gridTotal(grid: List<List<Int>>): Int {
    // כתבו כאן את הפתרון שלכם.
    return 0
}
fun main() {
    val gridCount = readln().toInt()
    val grid = mutableListOf<List<Int>>()
    for (i0 in 0 until gridCount) {
        val gridItemCount = readln().toInt()
        val gridItem = mutableListOf<Int>()
        for (i1 in 0 until gridItemCount) {
            val gridItemItem = readln().toInt()
            gridItem.add(gridItemItem)
        }
        grid.add(gridItem)
    }
    println(gridTotal(grid))
}
quiz iconבחנו את עצמכם

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

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

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