Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ملخص - منظم القوائم

جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 9 من 65.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يدير خط معالجة بيانات من خلال إجراء عمليات متعددة على قائمة من الأرقام بالتسلسل. يجب على برنامجك القيام بما يلي:

  1. قراءة مدخل نصي (string) يمثل اسم مجموعة البيانات (dataset name)
  2. قراءة مدخلات صحيحة (integer) متعددة تمثل قيم البيانات الأصلية (سينتهي الإدخال عندما تتلقى -999)
  3. إدراج القيمة 100 في بداية القائمة (الموقع 0)
  4. إزالة جميع الأرقام السالبة من القائمة باستخدام removeWhere()
  5. فرز الأرقام المتبقية بترتيب تصاعدي باستخدام sort()
  6. التحقق مما إذا كانت القائمة النهائية فارغة باستخدام isEmpty
  7. طباعة نتائج معالجة البيانات بالتنسيق الدقيق الموضح أدناه

على سبيل المثال، إذا كان اسم مجموعة البيانات هو "Sales Data" والقيم هي 45، -12، 78، -5، 23، يجب أن يخرج برنامجك ما يلي:

Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remaining

إذا كان اسم مجموعة البيانات هو "Temperature Readings" والقيم هي -10، -5، -20، يجب أن يخرج برنامجك ما يلي:

Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining

إذا كان اسم مجموعة البيانات هو "Error Values" والقيمة الوحيدة هي -50، يجب أن يخرج برنامجك ما يلي:

Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining

يجب أن يقوم برنامجك بجميع العمليات بالتسلسل الدقيق المحدد: أولاً insert() للقيمة 100 في الموقع 0، ثم استخدام removeWhere() لإزالة الأرقام السالبة، ثم sort() للقائمة، وأخيراً التحقق مما إذا كانت القائمة isEmpty. اعرض "List is empty" إذا كانت القائمة النهائية لا تحتوي على عناصر، أو "List is not empty" إذا كانت تحتوي على عناصر.

جرّب بنفسك

import 'dart:io';

void main() {
  // قراءة اسم مجموعة البيانات
  String? datasetName = stdin.readLineSync();
  
  // قراءة الأرقام حتى يتم مواجهة -999
  List<int> originalData = [];
  while (true) {
    int? number = int.parse(stdin.readLineSync()!);
    if (number == -999) {
      break;
    }
    originalData.add(number);
  }
  
  // طباعة المعلومات الأولية
  print('Dataset: $datasetName');
  print('Original data: $originalData');
  
  // TODO: اكتب الكود الخاص بك أدناه
  // 1. إدراج 100 في البداية (الموقع 0)
  // 2. إزالة جميع الأرقام السالبة باستخدام removeWhere()
  // 3. فرز القائمة بترتيب تصاعدي باستخدام sort()
  // 4. التحقق مما إذا كانت القائمة فارغة باستخدام isEmpty
  // 5. طباعة النتائج بالتنسيق المطلوب
  
}

جميع دروس Logic & Flow