الدرس التاسع: الهياكل في لغة C (Structures)
مرحبًا بك في الدرس التاسع من سلسلة تعلم لغة C. بعد أن تعلمنا السلاسل النصية والمصفوفات، الآن سنغوص في مفهوم الهياكل (Structures)، وهي أداة قوية لتنظيم البيانات المختلفة تحت اسم واحد.
ما هي الهياكل (Structures)؟
الهياكل هي طريقة لتجميع عدة أنواع بيانات تحت اسم واحد، بحيث يمكن التعامل معها كوحدة واحدة. تُستخدم الهياكل لتنظيم البيانات المعقدة مثل بيانات الطلاب، الموظفين، المنتجات، أو أي كائنات تحتوي على خصائص متعددة.
أهمية الهياكل
- تنظيم البيانات المختلفة في وحدة واحدة.
- تسهيل إدارة البيانات المعقدة في البرامج الكبيرة.
- تمكين التفاعل بين أنواع مختلفة من البيانات ضمن كائن واحد.
- تستخدم كأساس لفهم البرمجة الموجهة للكائنات (OOP) لاحقًا.
إعلان الهياكل
يمكن إعلان هيكل باستخدام الكلمة المفتاحية struct:
#include <stdio.h>
struct Student {
char name[50];
int age;
float grade;
};
في المثال أعلاه، أنشأنا هيكلًا باسم Student يحتوي على:
- سلسلة نصية للاسم.
- عدد صحيح للعمر.
- عدد عشري للدرجة.
إنشاء متغير من الهيكل
struct Student student1;
تعيين القيم للهيكل
يمكنك تعيين القيم لكل عضو في الهيكل:
#include <stdio.h>
#include <string.h>
struct Student {
char name[50];
int age;
float grade;
};
int main() {
struct Student student1;
strcpy(student1.name, "Ahmad");
student1.age = 20;
student1.grade = 95.5;
printf("الاسم: %s\\n", student1.name);
printf("العمر: %d\\n", student1.age);
printf("الدرجة: %.2f\\n", student1.grade);
return 0;
}
الوصول إلى أعضاء الهيكل
- يمكنك استخدام النقطة (.) للوصول إلى أي عضو في الهيكل.
- مثال:
student1.ageللوصول إلى عمر الطالب.
الهياكل والمصفوفات
يمكن أيضًا إنشاء مصفوفة من الهياكل لتخزين بيانات عدة كائنات:
struct Student students[3]; strcpy(students[0].name, "Ali"); students[0].age = 21; students[0].grade = 88.5; strcpy(students[1].name, "Sara"); students[1].age = 19; students[1].grade = 92.0;
تمرير الهياكل إلى الدوال
يمكن تمرير الهيكل كوسيط للدوال:
#include <stdio.h>
#include <string.h>
struct Student {
char name[50];
int age;
float grade;
};
void printStudent(struct Student s) {
printf("الاسم: %s\\n", s.name);
printf("العمر: %d\\n", s.age);
printf("الدرجة: %.2f\\n", s.grade);
}
int main() {
struct Student student1;
strcpy(student1.name, "Ahmad");
student1.age = 20;
student1.grade = 95.5;
printStudent(student1);
return 0;
}
نصائح للمبتدئين
- ابدأ بإنشاء هياكل بسيطة تحتوي على عدد قليل من الأعضاء.
- جرب استخدام الهياكل مع المصفوفات لتخزين بيانات عدة كائنات.
- تأكد من استخدام دوال النسخ المناسبة مثل
strcpyعند التعامل مع النصوص داخل الهياكل. - يمكنك استخدام الهياكل كأساس لتعلم البرمجة الموجهة للكائنات لاحقًا.
تمارين عملية للمبتدئين
- إنشاء هيكل باسم
Employeeيحتوي على اسم، رقم الموظف، وراتب. - إنشاء 3 متغيرات من الهيكل وتعيين القيم لكل منها.
- كتابة دالة تقوم بطباعة بيانات أي موظف.
- إنشاء مصفوفة من الهيكل لتخزين بيانات 5 موظفين وطباعتها جميعًا.
- تجربة تحديث بيانات عضو محدد في أحد الهياكل وطباعة النتيجة.
مشاريع صغيرة مقترحة
- برنامج لإدارة بيانات الطلاب مع الهياكل.
- برنامج لحفظ بيانات المنتجات في متجر صغير.
- برنامج لتسجيل بيانات العملاء وعرض ملخص لها.