تخطَّ إلى المحتوى

الهياكل

الهياكل تسمح لك بتجميع البيانات ذات الصلة معاً في نوع واحد.

هيكل نقطة {
س: صحيح,
ص: صحيح
}
دع ن1 = نقطة {
س: 10,
ص: 20
};
اطبع_صحيح(ن1.س); // 10
اطبع_صحيح(ن1.ص); // 20
هيكل شخص {
الاسم: نص,
العمر: صحيح
}
دع موظف = شخص {
الاسم: "خالد",
العمر: 35
};
اطبع(موظف.الاسم);
اطبع_صحيح(موظف.العمر);
هيكل مستطيل {
العرض: عشري,
الارتفاع: عشري
}
دع مست = مستطيل {
العرض: 10.5,
الارتفاع: 5.0
};
دالة احسب_المساحة(م: &مستطيل) -> عشري {
أرجع م.العرض * م.الارتفاع;
}
دالة احسب_المحيط(م: &مستطيل) -> عشري {
أرجع 2.0 * (م.العرض + م.الارتفاع);
}
// الاستخدام
دع مست = مستطيل { العرض: 10.0, الارتفاع: 5.0 };
دع المساحة = احسب_المساحة(&مست);
دع المحيط = احسب_المحيط(&مست);

دالة لعرض بيانات الهيكل

Section titled “دالة لعرض بيانات الهيكل”
دالة اعرض_نقطة(ن: &نقطة) {
اطبع("س: ");
اطبع_صحيح(ن.س);
اطبع("ص: ");
اطبع_صحيح(ن.ص);
}

استخدم متغير لإنشاء هيكل قابل للتعديل:

دع متغير ن2 = نقطة { س: 0, ص: 0 };
// قبل التعديل
اطبع_صحيح(ن2.س); // 0
// تعديل الحقول
ن2.س = 100;
ن2.ص = 200;
// بعد التعديل
اطبع_صحيح(ن2.س); // 100

مثال عملي لاستخدام الهياكل:

// هيكل الدائرة
هيكل شكل_دائرة {
نصف_قطر: عشري
}
دالة مساحة_دائرة(د: &شكل_دائرة) -> عشري {
أرجع 3.14159 * د.نصف_قطر * د.نصف_قطر;
}
دالة محيط_دائرة(د: &شكل_دائرة) -> عشري {
أرجع 2.0 * 3.14159 * د.نصف_قطر;
}
// هيكل المثلث
هيكل شكل_مثلث {
قاعدة: عشري,
ارتفاع: عشري
}
دالة مساحة_مثلث(ث: &شكل_مثلث) -> عشري {
أرجع 0.5 * ث.قاعدة * ث.ارتفاع;
}
// تعريف الهياكل
هيكل نقطة {
س: صحيح,
ص: صحيح
}
هيكل شخص {
الاسم: نص,
العمر: صحيح
}
هيكل مستطيل {
العرض: عشري,
الارتفاع: عشري
}
// الدوال
دالة احسب_المساحة(م: &مستطيل) -> عشري {
أرجع م.العرض * م.الارتفاع;
}
دالة اعرض_نقطة(ن: &نقطة) {
اطبع("نقطة (");
اطبع_صحيح(ن.س);
اطبع(", ");
اطبع_صحيح(ن.ص);
اطبع(")");
}
دالة رئيسية() {
اطبع("=== الهياكل ===");
// إنشاء نقطة
دع ن1 = نقطة { س: 10, ص: 20 };
اعرض_نقطة(&ن1);
// إنشاء شخص
دع موظف = شخص {
الاسم: "خالد",
العمر: 35
};
اطبع("الاسم: ");
اطبع(موظف.الاسم);
اطبع("العمر: ");
اطبع_صحيح(موظف.العمر);
// إنشاء مستطيل
دع مست = مستطيل {
العرض: 10.5,
الارتفاع: 5.0
};
اطبع("المساحة: ");
اطبع_عشري(احسب_المساحة(&مست));
// هيكل متغير
دع متغير ن2 = نقطة { س: 0, ص: 0 };
ن2.س = 100;
ن2.ص = 200;
اعرض_نقطة(&ن2);
}