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

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

جزء من قسم البرمجة كائنية التوجه في رحلة Rust على Coddy. الدرس 7 من 61.

challenge icon

التحدي

سهل

أنشئ بنية Rectangle بحقلين: width ‏(u32) وheight ‏(u32).

أضف block ‏implementation لـ Rectangle يتضمن ما يلي:

  • new: دالة associated تأخذ width: u32 وheight: u32 وتُرجع Rectangle جديدًا
  • area: تأخذ &self وتُرجع المساحة بصيغة u32
  • scale: تأخذ &mut self وfactor: u32، وتضرب كلًا من العرض والارتفاع في العامل

ستتلقى ثلاث قيم إدخال:

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

أنشئ Rectangle قابلًا للتغيير باستخدام Rectangle::new مع الأبعاد المقدمة. اطبع المساحة initial، ثم قم بتحجيم المستطيل باستخدام العامل المُعطى، واطبع المساحة الجديدة.

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

{initial_area}
{scaled_area}

جرّب بنفسك

use std::io;

// TODO: عرّف هيكل Rectangle هنا


// TODO: أضف كتلة التنفيذ لـ Rectangle مع:
// - new: دالة مرتبطة تأخذ width و height، وتُرجع Rectangle
// - area: method تأخذ &self، وتُرجع u32
// - scale: method تأخذ &mut self و factor، وتضرب width و height


fn main() {
    let mut input = String::new();
    
    // اقرأ width
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // اقرأ height
    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: قم بتحجيم المستطيل بالعامل
    
    // TODO: اطبع المساحة الجديدة
}

جميع دروس البرمجة كائنية التوجه

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