Menu
Coddy logo textTech

Lambda עם פרמטרים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 43 מתוך 56.

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

כדי להוסיף פרמטרים ל-lambda, מקמו אותם בתוך הסוגריים אחרי סעיף הלכידה:

auto addNumbers = [](int a, int b) {
    std::cout << "Sum: " << (a + b) << std::endl;
};

addNumbers(5, 3);  // מדפיס: Sum: 8

אפשר גם לקרוא למבדה עם פרמטרים מיד, בלי לשמור אותה:

[](int x, int y) {
    std::cout << "Product: " << (x * y) << std::endl;
}(4, 7);  // מדפיס: Product: 28

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

challenge icon

אתגר

קל

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

הקלטים הבאים יסופקו:

  • שני מספרים שלמים num1 ו-num2 שמייצגים את המספרים לחישובים
  • תו operation שמייצג את הפעולה המתמטית לביצוע

על התוכנית שלכם:

  1. ליצור ביטוי למבדה בשם add שמקבל שני פרמטרים של מספרים שלמים ומדפיס את סכומם בפורמט Sum: [result]
  2. ליצור ביטוי למבדה בשם subtract שמקבל שני פרמטרים של מספרים שלמים ומדפיס את ההפרש ביניהם בפורמט Difference: [result]
  3. ליצור ביטוי למבדה בשם multiply שמקבל שני פרמטרים של מספרים שלמים ומדפיס את מכפלתם בפורמט Product: [result]
  4. לקרוא את שני המספרים ואת תו הפעולה מהקלט
  5. בהתאם לתו הפעולה, לקרוא למבדה המתאימה עם שני המספרים

תו הפעולה יהיה אחד מאלה:

  • + לחיבור (לקרוא למבדה add)
  • - לחיסור (לקרוא למבדה subtract)
  • * לכפל (לקרוא למבדה multiply)

השתמשו בפורמט הפלט המדויק הבא בהתאם לפעולה:

לחיבור:

Sum: [result]

לחיסור:

Difference: [result]

לכפל:

Product: [result]

זכרו שפרמטרים של למבדה מוגדרים בתוך הסוגריים שאחרי סעיף הלכידה, באותו תחביר כמו פרמטרים של פונקציה רגילה. אחסנו כל למבדה במשתנה באמצעות מילת המפתח auto, ואז קראו למבדה המתאימה בהתאם לתו הפעולה שבקלט באמצעות משפט if-else או משפט switch.

נסו בעצמכם

#include <iostream>
using namespace std;

int main() {
    // קראו את הקלט
    int num1, num2;
    char operation;
    cin >> num1 >> num2 >> operation;
    
    // TODO: צרו ביטויי למבדה לפעולות חיבור, חיסור וכפל
    // TODO: השתמשו במשפט if-else או switch כדי לקרוא ללמבדה המתאימה לפי הפעולה
    
    return 0;
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

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