البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -2- المصفوفات متعددة الأبعاد :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -2- المصفوفات متعددة الأبعاد :

مُساهمة من طرف Admin في السبت فبراير 01, 2014 6:19 pm

البرمجة بلغة السى – الجزء الرابع – المصفوفات والسلاسل النصية -2- المصفوفات متعددة الأبعاد :

البرمجة بلغة السى تسمح بإنشاء "مصفوفات المصفوفات" والتى تعرف بالمصفوفات متعددة الأبعاد . على سبيل المثال :

الكود:


float a[2][6];

هنا : (a) هى مصفوفة ثنائية الأبعاد ، باعتبارها مثال لمصفوفة متعددة الأبعاد . هذه المصفوفة تمتلك (2) صف و (6) عامود .

تهيئة المصفوفات متعددة الأبعاد :

فى لغة السى يمكن تهيئة المصفوفات متعددة الأبعاد بعدد من الطرق كما يلى :

الكود:


int c[2][3]={{1,3,0}, {-1,5,9}};
                OR
int c[][3]={{1,3,0}, {-1,5,9}};
                OR
int c[2][3]={1,3,0,-1,5,9};



تهيئة مصفوفة ثلاثية الأبعاد :

الكود:


double cprogram[3][2][4]={
{{-0.1, 0.22, 0.3, 4.3}, {2.3, 4.7, -0.9, 2}},
 {{0.9, 3.6, 4.5, 4}, {1.2, 2.4, 0.22, -1}},
 {{8.2, 3.12, 34.2, 0.1}, {2.1, 3.2, 4.3, -2.0}}
};



افترض أن هناك المصفوفة متعددة الأبعاد arr[i][j][k][m] ، هذه المصفوفة يمكن أن تخزن عدد من البيانات قدرة (i*j*k) .
بنفس الطريقة يمكن تهيئة مصفوفة بأى بعد .

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

كتابة برنامج لإيجاد مجموع 2 ماتريكس من الرتبة (2*2) باستخدام المصفوفات متعددة الأبعاد ، حيث يتم إدخال عناصر الماتريكس بواسطة المستخدم .


الكود:


#include <stdio.h>
int main(){
  float a[2][2], b[2][2], c[2][2];
  int i,j;
  printf("Enter the elements of 1st matrix\n");
/* Reading two dimensional Array with the help of two for loop. If there was an array of 'n' dimension, 'n' numbers of loops are needed for inserting data to array.*/ 
  for(i=0;i<2;++i)     
      for(j=0;j<2;++j){
      printf("Enter a%d%d: ",i+1,j+1);
      scanf("%f",&a[i][j]);
      }
  printf("Enter the elements of 2nd matrix\n");
  for(i=0;i<2;++i)
      for(j=0;j<2;++j){
      printf("Enter b%d%d: ",i+1,j+1);
      scanf("%f",&b[i][j]);
      }
  for(i=0;i<2;++i)
      for(j=0;j<2;++j){
/* Writing the elements of multidimensional array using loop. */
      c[i][j]=a[i][j]+b[i][j];  /* Sum of corresponding elements of two arrays. */
      }
  printf("\nSum Of Matrix:");
  for(i=0;i<2;++i)
      for(j=0;j<2;++j){
      printf("%.1f\t",c[i][j]); 
          if(j==1)            /* To display matrix sum in order. */
              printf("\n");
      }
return 0;
}


الخرج :


الكود:


Enter the elements of 1st matrix
Enter a11: 2;
Enter a12: 0.5;
Enter a21: -1.1;
Enter a22: 2;
Enter the elements of 2nd matrix
Enter b11: 0.2;
Enter b12: 0;
Enter b21: 0.23;
Enter b22: 23;

Sum Of Matrix:
2.2    0.5
-0.9    25.0



Admin
Admin

عدد المساهمات : 935
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى