لغة السي الدرس الرابع

2019-03-21 12:12:27

 لغة السي الدرس الرابع

في الدرس الثالث من سلسلة تعلم لغة C، تحدثنا عن العمليات الحسابية في اللغة C وكيفية استخدام المشغلات الحسابية للعمل على المتغيرات، وفي هذا الدرس، سنتحدث عن المصفوفات في لغة البرمجة C.
 
المحتوى:
 
 

► تعريف المصفوفات:

المصفوفات هي مجموعات من المتغيرات التي يتم تخزينها بشكل متتالي في الذاكرة، وكل عنصر في المصفوفة له عنوان فريد في الذاكرة.
 

يمكن تعريف المصفوفات باستخدام الأمر التالي:
<نوع العنصر> <اسم المصفوفة>[<حجم المصفوفة>];

على سبيل المثال، إذا كنت تريد تخزين مجموعة من الأعداد الصحيحة في مصفوفة، يمكنك استخدام الأمر التالي:
int numbers[5];
هذا سيقوم بتعريف مصفوفة تسمى "numbers" تحتوي على 5 عناصراف صحيحة.
 
 

► الوصول إلى عناصر المصفوفة:


يمكن الوصول إلى عناصر المصفوفة باستخدام عنوان العنصر في المصفوفة. على سبيل المثال، إذا كنت تريد الوصول إلى العنصر الثالث في المصفوفة "numbers" الذي يحتوي على الأرقام الصحيحة، يمكنك استخدام الأمر التالي:
numbers[2] = 7;
في هذا المثال، يتم تعيين القيمة 7 إلى العنصر الثالث في المصفوفة "numbers".
 

► مصفوفات متعددة الأبعاد:


يمكن تعريف مصفوفات متعددة الأبعاد في لغة C. على سبيل المثال، يمكن تعريف مصفوفة ثنائية الأبعاد لتخزين بيانات الطلاب في الفصل الدراسي الحالي، باستخدام الأمر التالي:
<نوع العنصر> <اسم المصفوفة>[<حجم الصفوف>][<حجم الأعمدة>];
على سبيل المثال، يمكن تعريف مصفوفة ثنائية الأبعاد "students" تحتوي على 3 صفوف و 4 أعمدة لتخزين بيانات الطلاب كما يلي:
int students[3][4];
 
يمكن الوصول إلى العناصر في المصفوفة الثنائية الأبعاد باستخدام مؤشرين، أحدهما للصفوف والآخر للأعمدة. على سبيل المثال، إذا كنت تريد تعيين العلامة الكاملة للطالب الأول في الصف الأول في المصفوفة "students"،يمكن استخدام الأمر التالي:
students[0][2] = 90;
في هذا المثال، يتم تعيين القيمة 90 إلى العنصر الموجود في الصف الأول والعمود الثالث من المصفوفة "students".
 

► مثال عملي:


لنفترض أن لدينا برنامجاً يحتوي على قائمة بأسماء الطلاب وعلاماتهم في 3 مواد مختلفة، ونريد حساب المتوسط الحسابي لكل طالب. يمكن استخدام مصفوفة ثنائية الأبعاد لتخزين بيانات الطلاب كما يلي:
#include
int main() {
   int i, j, num_students = 3, num_subjects = 3;
   float grades[num_students][num_subjects], average[num_students];
   char names[num_students][20];
   // get student names and grades for each subject
   for(i = 0; i       printf("Enter name of student %d: ", i+1);
      scanf("%s", names[i]);
      for(j = 0; j < num_subjects; j++) {
         printf("Enter grade for subject %d for student %d: ", j+1, i+1);
         scanf("%f", &grades[i][j]);
      }
   }
   // calculate average for each student
   for(i = 0; i < num_students; i++) {
      float sum = 0;
      for(j = 0; j < num_subjects; j++) {
         sum += grades[i][j];
      }
      average[i] = sum / num_subjects;
   }
   // print student names and their averages
   printf("\nStudent Grades:\n");
   for(i = 0; i < num_students; i++) {
      printf("%s: %.2f\n", names[i], average[i]);
   }
   return 0;
}
 
في هذا البرنامج، يتم استخدام مصفوفة ثنائية الأبعاد "grades" لتخزين علامات الطلاب، ومصفوفة أحادية الأبعاد "average" لتخزين المتوسطات الحسابية لكل طالب. يتم أيضًا استخدام مصفوفة ثنائية الأبعاد "names" لتخزين أسماء الطلاب. يتم استخدام حلقتين متداخلتين للحصول على بيانات الطلاب وحساب المتوسطات الحسابية، ثم يتم طباعة أسماء الطلاب ومتوسطاتهم باستخدام حلقة for.
 
نأمل أن يكون هذا الدرس مفيدًا لك في فهم المصفوفات في لغة البرمجة C.
70

تهتم الأكاديمية الدولية لتطوير الذات بتقديم التدريب والاستشارات النفسية والأسرية عبر الإنترنت، وتتميز بمنهج علمي متكامل في مجالات الصحة النفسية والإرشاد الأسري، وعلاج سلوكي للإدمان، والتنمية البشرية، وتطوير الذات واللايف كوتشينج. كما توفر الأكاديمية دبلومات متخصصة في إعداد المدربين المحترفين TOT وتحليل الشخصية ولغة الجسد وأنماط الشخصية وعلم قراءة الوجوه والفراسة. وتقدم الأكاديمية خدمات مجانية لجميع الفئات والأعمار في الوطن العربي. يمكن لدينا مزيد من المعلومات عن خدماتنا وبرامجنا، يمكنك الاطلاع على المزيد من المعلومات على صفحات مقالاتنا. اقرأ المزيد.