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

مراجعة - متتبع نقاط بسيط

جزء من قسم المنطق وتدفّق التنفيذ في رحلة Rust على Coddy. الدرس 14 من 66.

challenge icon

التحدي

سهل

ستتلقى مُدخلين: أولًا قائمة مفصولة بفواصل من درجات الاختبار، وثانيًا درجة لإضافتها. أنشئ متجهًا من الدرجات الأولية، وأضف الدرجة الجديدة، واحسب متوسط جميع الدرجات، واطبع النتائج.

المتطلبات:

  • اقرأ المُدخل الأول الذي يحتوي على درجات مفصولة بفواصل (مثل: 85,92,78)
  • قسّم السلسلة النصية باستخدام الفواصل وأزل المسافات الزائدة من كل رمز على حدة قبل تحويله إلى عدد صحيح (مثلًا، استخدم .trim() على كل عنصر بعد التقسيم)
  • أنشئ متجهًا قابلًا للتغيير من هذه الدرجات
  • اقرأ المُدخل الثاني وحوّله إلى عدد صحيح (أزل المسافات الزائدة منه أولًا)
  • استخدم .push() لإضافة الدرجة الجديدة إلى المتجه
  • احسب متوسط جميع الدرجات في المتجه
  • اطبع العدد الإجمالي للدرجات
  • اطبع متوسط الدرجات (كعدد صحيح)

المُدخل:

  • السطر الأول: أعداد صحيحة مفصولة بفواصل تمثل الدرجات الأولية (مثل: 85,92,78)
  • السطر الثاني: عدد صحيح يمثل الدرجة الجديدة المراد إضافتها

المخرجات:

  • السطر الأول: العدد الإجمالي للدرجات
  • السطر الثاني: متوسط الدرجات (كعدد صحيح، بعد اقتطاع الجزء العشري)

ملاحظة: استدعِ دائمًا .trim() على سطر الإدخال بالكامل وعلى كل رمز من رموز الدرجات على حدة بعد التقسيم باستخدام الفاصلة. قد تحتوي سلاسل الإدخال على مسافات بيضاء غير مرئية أو أحرف سطر جديد ستتسبب في حدوث panic عند التحليل إذا لم تتم إزالتها.

جرّب بنفسك

use std::io;

fn main() {
    // اقرأ الدرجات المفصولة بفواصل
    let mut scores_input = String::new();
    io::stdin().read_line(&mut scores_input).expect("Failed to read line");
    
    // اقرأ الدرجة الجديدة لإضافتها
    let mut new_score_input = String::new();
    io::stdin().read_line(&mut new_score_input).expect("Failed to read line");
    
    // TODO: اكتب الكود الخاص بك أدناه
    // 1. قسّم scores_input بواسطة الفواصل وحوّلها إلى أعداد صحيحة
    // 2. أنشئ متجهًا قابلاً للتغيير من هذه الدرجات
    // 3. حوّل new_score_input إلى عدد صحيح
    // 4. ادفع الدرجة الجديدة إلى المتجه
    // 5. احسب متوسط جميع الدرجات
    
    // اطبع العدد الإجمالي للدرجات
    // println!("{}", total_scores);
    
    // اطبع متوسط الدرجة
    // println!("{}", average);
}

جميع دروس المنطق وتدفّق التنفيذ

تدرّب بنفسك: مترجم Rust عبر الإنترنت