בדיקת כללי האוסף
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 33 מתוך 63.
any בודקת אם לפחות איבר אחד תואם, all בודקת אם כל האיברים תואמים, ו־none בודקת אם אף איבר לא תואם. עבור קלט ריק, any היא false, ואילו all ו־none הן true. הפעולות האלה מחזירות ערך Boolean אחד, ולא אוסף מסונן.
בתוך main:
val values = emptyList<Int>()
println(values.all { it > 0 })אין אף איבר שמפר את הכלל, לכן הפעולה מחזירה true עבור הרשימה הריקה.
באוסף ריק, הערך של any הוא false, ואילו הערכים של all ושל none הם true.
אתגר
בינוניהשלם את hasNegative עם הפרמטרים values: List<Int>. החזר אם לפחות ערך אחד שלילי. השתמש ב-any.
אלא אם צוין לעיל טווח מחמיר יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים שלמים וערכים שלמים באוספים הם בין -1000 ל-1000. טקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כפי שתואר.
החזר ערך מסוג Boolean. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על הפורמט של מספר האיברים והאיברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיס תוויות נוספות.
נסו בעצמכם
fun hasNegative(values: List<Int>): Boolean {
// כתבו כאן את הפתרון שלכם.
return false
}
fun main() {
val valuesCount = readln().toInt()
val values = mutableListOf<Int>()
for (i0 in 0 until valuesCount) {
val valuesItem = readln().toInt()
values.add(valuesItem)
}
println(hasNegative(values))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין