Menu
Coddy logo textTech

מיון רשימה

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

כשצריך לסדר את הרכיבים ברשימה, Dart מספקת את המתודה sort(), שמסדרת את הרכיבים בסדר עולה. המתודה הזאת שימושית במיוחד לסידור שמות בסדר אלפביתי או מספרים מהקטן לגדול.

המתודה sort() משנה את הרשימה המקורית ישירות במקום ליצור רשימה ממוינת חדשה. כשקוראים ל־sort() על רשימה, היא מסדרת מחדש את האיברים הקיימים במקומם.

List<String> names = ['Charlie', 'Alice', 'Bob'];
names.sort();
print(names);  // ['Alice', 'Bob', 'Charlie']

List<int> scores = [85, 92, 78, 96];
scores.sort();
print(scores);  // [78, 85, 92, 96]

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

challenge icon

אתגר

קל

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

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

לדוגמה, אם שם המסעדה הוא "Bella Vista" והמנות הן "Pasta Carbonara", "Caesar Salad", "Grilled Salmon", "Apple Pie", התוכנית שלכם צריכה להפיק:

Restaurant: Bella Vista
Original menu: [Pasta Carbonara, Caesar Salad, Grilled Salmon, Apple Pie]
Sorted menu: [Apple Pie, Caesar Salad, Grilled Salmon, Pasta Carbonara]
Total dishes: 4
Status: Menu organized alphabetically

אם שם המסעדה הוא "Quick Bites" והמנות הן "Burger", "Pizza", "Sandwich", התוכנית שלכם צריכה להפיק:

Restaurant: Quick Bites
Original menu: [Burger, Pizza, Sandwich]
Sorted menu: [Burger, Pizza, Sandwich]
Total dishes: 3
Status: Menu organized alphabetically

אם שם המסעדה הוא "Cafe Corner" וסופקה רק מנה אחת, "Coffee", התוכנית שלכם צריכה להפיק:

Restaurant: Cafe Corner
Original menu: [Coffee]
Sorted menu: [Coffee]
Total dishes: 1
Status: Menu organized alphabetically

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

נסו בעצמכם

import 'dart:io';

void main() {
  // קראו את שם המסעדה
  String? restaurantName = stdin.readLineSync();
  
  // קראו את שמות המנות עד למחרוזת ריקה
  List<String> dishes = [];
  String? dish;
  while ((dish = stdin.readLineSync()) != null && dish!.isNotEmpty) {
    dishes.add(dish);
  }
  
  // TODO: כתבו את הקוד שלכם למטה
  // צרו עותק של הרשימה המקורית ומיינו אותו
  // חשבו את מספר המנות הכולל
  // הדפיסו בפורמט הפלט הנדרש
  
  // הציגו את התוצאות
  // print("Restaurant: $restaurantName");
  // print("Original menu: $dishes");
  // print("Sorted menu: $sortedDishes");
  // print("Total dishes: $totalDishes");
  // print("Status: Menu organized alphabetically");
}
quiz iconבחנו את עצמכם

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

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

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