Menu
Coddy logo textTech

היפוך רשימה

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 3 מתוך 65.

לפעמים צריך להציג את איברי הרשימה בסדר הפוך. Dart מספקת את המאפיין .reversed, שיוצר תצוגה הפוכה של הרשימה בלי לשנות את הרשימה המקורית.

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

List<int> numbers = [1, 2, 3, 4, 5];

var reversedNumbers = numbers.reversed;
print(reversedNumbers);  // (5, 4, 3, 2, 1)

// הרשימה המקורית נותרת ללא שינוי
print(numbers);  // [1, 2, 3, 4, 5]

פרט חשוב הוא ש-.reversed מחזיר אובייקט שניתן לעבור עליו באיטרציה, ולא רשימה. אם צריך לעבוד איתו כרשימה, אפשר להמיר אותו באמצעות .toList(). התכונה הזו שימושית במיוחד כשצריך לעבד נתונים בסדר הפוך, תוך שמירה על הרשימה המקורית ללא שינוי.

challenge icon

אתגר

קל

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

  1. לקרוא קלט מסוג מחרוזת שמייצג את כותרת רשימת הקריאה
  2. לקרוא כמה קלטים מסוג מחרוזת שמייצגים כותרות של ספרים (הקלט יסתיים כשתתקבל מחרוזת ריקה)
  3. להשתמש במאפיין .reversed כדי ליצור תצוגה הפוכה של רשימת הספרים
  4. להדפיס את ניתוח רשימת הקריאה בדיוק בפורמט שמוצג למטה

לדוגמה, אם כותרת רשימת הקריאה היא "Summer Reading" והספרים הם "1984", "To Kill a Mockingbird", "The Great Gatsby", התוכנית שלכם צריכה להציג:

Reading List: Summer Reading
Books in original order: (1984, To Kill a Mockingbird, The Great Gatsby)
Books in reversed order: (To Kill a Mockingbird, The Great Gatsby, 1984)
Total books: 3

אם כותרת רשימת הקריאה היא "Quick Reads" ומסופק רק ספר אחד, "Animal Farm", התוכנית שלכם צריכה להציג:

Reading List: Quick Reads
Books in original order: (Animal Farm)
Books in reversed order: (Animal Farm)
Total books: 1

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

נסו בעצמכם

import 'dart:io';

void main() {
  // קראו את הכותרת של רשימת הקריאה
  String? title = stdin.readLineSync();
  
  // קראו כותרות של ספרים עד למחרוזת ריקה
  List<String> books = [];
  String? book;
  while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
    books.add(book);
  }
  
  // TODO: כתבו את הקוד שלכם כאן
  // השתמשו במאפיין .reversed כדי ליצור תצוגה בסדר הפוך של רשימת books
  // הדפיסו את הפלט בפורמט הנדרש
  
}
quiz iconבחנו את עצמכם

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

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

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