Menu
Coddy logo textTech

סיכום – פעולות מלבן

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 7 מתוך 61.

challenge icon

אתגר

קל

צרו struct בשם Rectangle עם שני שדות: width (u32) ו-height (u32).

הוסיפו בלוק מימוש עבור Rectangle עם הפריטים הבאים:

  • new: פונקציה משויכת שמקבלת width: u32 ו-height: u32 ומחזירה Rectangle חדש
  • area: מקבלת &self ומחזירה את השטח כ-u32
  • scale: מקבלת &mut self ו-factor: u32, ומכפילה את הרוחב ואת הגובה בגורם

תקבלו שלוש קלטים:

  • השורה הראשונה: הרוחב (u32)
  • השורה השנייה: הגובה (u32)
  • השורה השלישית: גורם ההגדלה (u32)

צרו Rectangle שניתן לשינוי באמצעות Rectangle::new עם הממדים שסופקו. הדפיסו את השטח ההתחלתי, לאחר מכן הגדילו את המלבן בגורם הנתון, והדפיסו את השטח החדש.

פורמט הפלט הצפוי:

{initial_area}
{scaled_area}

נסו בעצמכם

use std::io;

// TODO: הגדירו כאן את המבנה Rectangle


// TODO: הוסיפו בלוק מימוש עבור Rectangle הכולל:
// - new: פונקציה משויכת שמקבלת width ו-height ומחזירה Rectangle
// - area: מתודה שמקבלת &self ומחזירה u32
// - scale: מתודה שמקבלת &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();
    
    // קראו את factor של שינוי הגודל
    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: הדפיסו את השטח החדש
}

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Rust אונליין