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

مراجعة - إجراءات المستطيل

جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 7 من 61.

challenge icon

التحدي

سهل

قم بإنشاء هيكل Rectangle يحتوي على حقلين: width (u32) و height (u32).

أضف كتلة تنفيذ (implementation block) لـ Rectangle تحتوي على ما يلي:

  • new — دالة مرتبطة (associated function) تأخذ width: u32 و height: u32 وتعيد Rectangle جديداً.
  • area — تأخذ &self وتعيد المساحة كـ u32.
  • scale — تأخذ &mut self و factor: u32، وتقوم بضرب كل من العرض والارتفاع في هذا العامل (factor).

ستتلقى ثلاثة مدخلات:

  • السطر الأول: العرض (u32)
  • السطر الثاني: الارتفاع (u32)
  • السطر الثالث: عامل القياس (u32)

قم بإنشاء Rectangle قابل للتعديل (mutable) باستخدام Rectangle::new بالأبعاد المقدمة. اطبع المساحة الأولية، ثم قم بتغيير مقاس المستطيل حسب العامل المعطى، واطبع المساحة الجديدة.

تنسيق المخرجات المتوقع:

{initial_area}
{scaled_area}

جرّب بنفسك

use std::io;

// TODO: قم بتعريف هيكل Rectangle هنا


// TODO: أضف كتلة التنفيذ (implementation block) لـ Rectangle مع:
// - new: دالة مرتبطة تأخذ العرض والارتفاع، وتعيد Rectangle
// - area: تابع (method) يأخذ &self، ويعيد u32
// - scale: تابع يأخذ &mut self وعاملاً (factor)، ويقوم بضرب العرض والارتفاع


fn main() {
    let mut input = String::new();
    
    // قراءة العرض
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // قراءة الارتفاع
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // قراءة عامل القياس
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: قم بإنشاء Rectangle قابل للتعديل باستخدام Rectangle::new
    
    // TODO: اطبع المساحة الأولية
    
    // TODO: قم بتغيير مقاس المستطيل حسب العامل (factor)
    
    // TODO: اطبع المساحة الجديدة
}

جميع دروس Object Oriented Programming