Menu
Coddy logo textTech

אתחול struct

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

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

תחביר האתחול של struct הוא:

struct StructureName variableName = {value1, value2, ...};

בעזרת הדוגמה שלנו למבנה Point, אפשר להצהיר עליו ולאתחל אותו בשורה נקייה אחת:

struct Point p1 = {10, 20};

פעולה זו יוצרת משתנה Point בשם p1, כאשר x מוגדר ל־10 ו־y מוגדר ל־20. הערכים ברשימת האתחול מוקצים לחברי המבנה לפי סדר ההכרזה שלהם בהגדרת המבנה.

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

challenge icon

אתגר

קל

צרו תוכנית C שמדגימה אתחול של struct באמצעות רשימות אתחול. התוכנית שלכם צריכה:

  1. להגדיר struct בשם Employee עם החברים הבאים:
    • מספר שלם id לאחסון מזהה העובד
    • מערך תווים department בגודל 15 לאחסון שם המחלקה
    • מספר שלם yearsOfService לאחסון שנות הוותק
    • מספר ממשי מסוג float בשם salary לאחסון שכר העובד
  2. ליצור שלושה משתני Employee באמצעות רשימות אתחול עם הנתונים הבאים:
    • emp1: מזהה 101, מחלקה "Engineering", 5 שנות ותק, שכר 75000.50
    • emp2: מזהה 102, מחלקה "Marketing", 3 שנות ותק, שכר 65000.25
    • emp3: מזהה 103, מחלקה "Sales", 8 שנות ותק, שכר 80000.75
  3. להדפיס את המידע על כל עובד בפורמט המדויק הזה:
    • Employee 1:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 2:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 3:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
  4. לחשב ולהדפיס את השכר הכולל של שלושת העובדים בפורמט: Total Salary: [total]
  5. לחשב ולהדפיס את ממוצע שנות הוותק בפורמט: Average Years of Service: [average]

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

הפלט הצפוי שלכם צריך להיות:

Employee 1:
ID: 101
Department: Engineering
Years of Service: 5
Salary: 75000.50
Employee 2:
ID: 102
Department: Marketing
Years of Service: 3
Salary: 65000.25
Employee 3:
ID: 103
Department: Sales
Years of Service: 8
Salary: 80000.75
Total Salary: 220001.50
Average Years of Service: 5.33

נסו בעצמכם

#include <stdio.h>

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

int main() {
    // TODO: צרו שלושה משתנים מסוג Employee באמצעות רשימות אתחול
    
    // TODO: הדפיסו מידע על כל עובד
    
    // TODO: חשבו והדפיסו את סך המשכורות ואת ממוצע שנות הוותק
    
    return 0;
}
quiz iconבחנו את עצמכם

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

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

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