البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -1- المصفوفات Arrays :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -1- المصفوفات Arrays :
البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -1- المصفوفات Arrays :
فى البرمجة بلغة السى ، أحد المشاكل التى تنشأ فى كثير من الأحيان هى التعامل مع البيانات التى تنتمى إلى نفس النوع . على سبيل المثال : إذا أراد المستخدم تخزين درجات 100 طالب . يمكن القيام بذلك عن طريق إنشاء 100 متغير بشكل فردى لكن هذه العملية شاقة نوعا ما وغير عملية . هذا النوع من المشاكل يمكن التعامل معه عند البرمجة بلغة السى باستخدام المصفوفات .
المصفوفات هى سلسة من عناصر بيانات لقيم متجانسة (نفس النوع) . تصنف المصفوغات إلى نوعين :
1- مصفوفات البعد الواحد .
2- مصفوفات متعددة الأبعاد ( سوف يتم تناولها لاحقا) .
إعلان مصفوفة البعد الواحد :
- الكود:
data_type array_name[array_size];
على سبيل المثال :
- الكود:
int age[5];
هنا : اسم الدالة هو "age" . وحجم المصفوفة "5" أى يوجد خمس عناصر فى المصفوفة age . جميع عناصر المصفوفة من نفس النوع ، وهو فى هذه الحالة نوع العدد الصحيح int .
عناصر المصفوفة :
حجم المصفوفة يعرف عدد العناصر فى المصفوفة . كل عنصر بالمصفوفة يمكن الوصول إليه واستخدامه بمعرفة المستخدم وفقا لحاجة البرنامج .
على سبيل المثال :
- الكود:
int age[5];
لاحظ : العنصر الأول يرقم بصفر وهكذا .
هنا : حجم المصفوفة age هو 5 عناصر من نوع int لأن هناك 5 عناصر .
افترض ، عنوان البداية للعنصر age[0[ هو 2120d وأن حجم النوع int هو 4 بايت ، عندئذ يكون العنوان التالى (عنوان العنصر age[1] ) سوف يكون 2124d ، وعنوان العنصر age[2] سوف يكون 2128d وهكذا .
تهيئة مصفوفات البعد الواحد :
يمكن تهيئة المصفوفات عند وقت إعلانها بالصيغة التالية :
- الكود:
int age[5]={2,4,34,3,4};
ليس من الضرورى تعريف حجم المصفوفات أثناء التهيئة كما يلى :
- الكود:
int age[]={2,4,34,3,4};
فى هذه الحالة ، يحدد المترجم حجم المصفوفة بواسطة حساب عدد عناصر المصفوفة .
الوصول لعناصر المصفوفة :
فى البرمجة بلغة السى ، يمكن الوصول للمصفوفة ومعالجتها مثل المتغير فى لغة السى .
على سبيل المثال :
- الكود:
scanf("%d",&age[2]);
/* statement to insert value in the third element of array age[]. */
scanf("%d",&age[i]);
/* Statement to insert value in (i+1)th element of array age[]. */
/* Because, the first element of array is age[0], second is age[1], ith is age[i-1] and (i+1)th is age[i]. */
printf("%d",age[0]);
/* statement to print first element of an array. */
printf("%d",age[i]);
/* statement to print (i+1)th element of an array. */
مثال على المصفوفة :
- الكود:
/* C program to find the sum marks of n students using arrays */
#include <stdio.h>
int main(){
int marks[10],i,n,sum=0;
printf("Enter number of students: ");
scanf("%d",&n);
for(i=0;i<n;++i){
printf("Enter marks of student%d: ",i+1);
scanf("%d",&marks[i]);
sum+=marks[i];
}
printf("Sum= %d",sum);
return 0;
}
الخرج :
- الكود:
Enter number of students: 3
Enter marks of student1: 12
Enter marks of student2: 31
Enter marks of student3: 2
sum=45
تحذير :
افترض ، أنك أعلنت مصفوفة لعشر طلبة ، على سبيل المثال : arr[10] . يمكنك عناصر المصفوفة من arr[0] إلى arr[9] . ولكن ، ماذا لو أردت استخدام العنصر [10] أو العنصر [13] . قد لا يبدى المترجم خطأ استخدام هذه العناصر ولكن قد يتسبب فى خطأ قاتل أثناء تنفيذ البرنامج .
مواضيع مماثلة
» البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -3- المصفوفات والدوال :
» البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -2- المصفوفات متعددة الأبعاد :
» البرمجة بلغة السى – الجزء الثانى -6- عبارة goto :
» البرمجة بلغة السى - أمثلة الجزء الأول – البرنامج الرابع : ضرب عددين حقيقيين (بعلامة عشرية )
» البرمجة بلغة السى – الجزء الثانى -2- حلقة for
» البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -2- المصفوفات متعددة الأبعاد :
» البرمجة بلغة السى – الجزء الثانى -6- عبارة goto :
» البرمجة بلغة السى - أمثلة الجزء الأول – البرنامج الرابع : ضرب عددين حقيقيين (بعلامة عشرية )
» البرمجة بلغة السى – الجزء الثانى -2- حلقة for
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى