مراجعة - إجراءات المستطيل
جزء من قسم البرمجة كائنية التوجه في رحلة Rust على Coddy. الدرس 7 من 61.
التحدي
سهلأنشئ بنية Rectangle بحقلين: width (u32) وheight (u32).
أضف block implementation لـ Rectangle يتضمن ما يلي:
new: دالة associated تأخذwidth: u32وheight: u32وتُرجعRectangleجديدًاarea: تأخذ&selfوتُرجع المساحة بصيغةu32scale: تأخذ&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: اطبع المساحة الجديدة
}جميع دروس البرمجة كائنية التوجه
1الأساليب والسلوك
مقدمة في كتل التنفيذمعامل Selfالأساليب القابلة للتعديلالدوال المرتبطةكتل تنفيذ متعددةتسلسل الأساليبمراجعة - إجراءات المستطيل4مشروع: حيوان أليف افتراضي
تعريف الحيوان الأليفإطعام الحيوان الأليف2التغليف والوحدات البرمجية
أساسيات الوحدات البرمجيةالكلمة المفتاحية Publicالحقول الخاصةدوال Gettersدوال Settersمراجعة - الخزانة الآمنة5الأنواع العامة (Generics)
الـ Structs العامةالـ Methods العامةأنواع عامة متعددةالـ Functions العامةمراجعة - Coordinate Point3التعدادات المتقدمة (Advanced Enums)
التعدادات مع البياناتالأساليب (Methods) في التعداداتمطابقة حالات البياناتمراجعة التعداد Optionملخص - التعداد Shape6تعريف الـ Traits
ما هي الـ Trait؟تنفيذ الـ Traitsالتنفيذات الافتراضيةتجاوز التنفيذات الافتراضيةالـ Traits مع المعاملاتملخص - مشغل الوسائطتدرّب بنفسك: مترجم Rust عبر الإنترنت