عمليات المصفوفات الشائعة
جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 68 من 75.
إليك بعض عمليات المصفوفات الشائعة:
- أوجد مجموع كافة العناصر في مصفوفة:
let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
sum += number;
}
println!("Sum: {}", sum);- أوجد متوسط العناصر في مصفوفة:
let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
sum += number;
}
let average = sum as f64 / numbers.len() as f64;
println!("Average: {}", average);- ابحث عن العنصر الأكبر في مصفوفة:
let numbers = [1, 5, 2, 9, 3];
let mut max = numbers[0];
for &number in &numbers[1..] {
if number > max {
max = number;
}
}
println!("Max: {}", max);- ابحث عن أصغر عنصر في مصفوفة:
let numbers = [1, 5, 2, 9, 3];
let mut min = numbers[0];
for &number in &numbers[1..] {
if number < min {
min = number;
}
}
println!("Min: {}", min);التحدي
سهلأنشئ دالة باسم calculate_stats تأخذ مصفوفة من الأعداد الصحيحة بطول 8 كمدخل وتنفذ العمليات التالية:
- تحسب مجموع كل العناصر في المصفوفة.
- تحسب متوسط العناصر في المصفوفة.
- تجد العنصر الأكبر في المصفوفة.
- تجد العنصر الأصغر في المصفوفة.
يجب أن تعيد الدالة مصفوفة من الأعداد العشرية (doubles) تحتوي على المجموع، والمتوسط، والحد الأقصى، والحد الأدنى، بهذا الترتيب.
جرّب بنفسك
use std::io;
use std::convert::TryInto;
fn calculate_stats(arr: [i32; 8]) -> [f64; 4] {
// اكتب كودك هنا
}
fn main() {
let mut input_str_arr = String::new();
io::stdin().read_line(&mut input_str_arr).unwrap();
let numbers: [i32; 8] = input_str_arr.split(',').map(|s| s.parse::<i32>().unwrap()).collect::<Vec<i32>>().try_into().unwrap();
let stats = calculate_stats(numbers);
println!("Sum: {}", stats[0]);
println!("Average: {}", stats[1]);
println!("Maximum: {}", stats[2]);
println!("Minimum: {}", stats[3]);
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
الطباعة على الكونسولقراءة مدخلات المستخدممراجعة - حتى 120مراجعة - True أو False2المتغيرات - الجزء الأول
الأرقامالمحارف (Char)النصوص (String)القيم المنطقية (Boolean)المتغيرات القابلة للتغيير5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11الدوال
تعريف الدوالالمعاملات والوسائطقيم الإرجاعقيم إرجاع متعددةمراجعة - دالة Sigmaمراجعة - دالة التحقق14التكرار عبر المصفوفات
دليل النطاق (Range)حلقة For المحسنةالاستعارة في الحلقةعمليات المصفوفات الشائعة3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةاستنتاج النوعمراجعة - تهيئة المتغيراتتحويل الأنواع9الحلقات التكرارية
For عبر السلاسلحلقة Whileجملة Breakجملة Continueالحلقات المتداخلةتسميات الحلقاتالحلقة اللانهائيةمراجعة - الإدخال الديناميكي