Üye Girişi Yapınız     


    E-Posta
    

    Şifreniz
    



Şifremi Unuttum


Ana Sayfa Site Hakkında İletişim Ziyaretçi Defteri Döküman İndir Makale Ekle Haber Ekle

     Çok Boyutlu Diziler
     admin     15.03.2012     16:50:55

Bir dizi aşağıdaki gibi bildirildiğinde bir boyutlu (tek indisli) dizi olarak adlandırılır. Bu tip dizilere vektör denir. float a[9]; Bir dizi birden çok boyuta sahip olabilir. Örneğin iki boyutlu b dizisi şöyle tanımlanabilir: float b[9][4]; İki boyutlu diziler matris olarak adlandırılır. ilk boyuta satır, ikinci boyuta sütün denir. Yukarıda b matrisinin eleman sayısı 9x4=36 dır. Bu durumda, genel olarak bir dizi şöyle gösterilir:

Bir dizi aşağıdaki gibi bildirildiğinde bir boyutlu (tek indisli) dizi olarak adlandırılır. Bu tip dizilere vektör denir.

    float a[9]; Bir dizi birden çok boyuta sahip olabilir. Örneğin iki boyutlu b dizisi şöyle tanımlanabilir: float b[9][4];

İki boyutlu diziler matris olarak adlandırılır. ilk boyuta satır, ikinci boyuta sütün denir. Yukarıda b matrisinin eleman sayısı 9x4=36 dır. Bu durumda, genel olarak bir dizi şöyle gösterilir:

Tablo 10.1: Dizlerin Bildirimi

Dizi Çeşiti

Genel Bildirimi

Örnek

Tek boyutlu diziler (Vektörler)

tip dizi_adı[eleman_sayısı]

int veri[10];

İki boyutlu diziler (Matrisler)

tip dizi_adı[satır_sayısı][sutun_sayısı]

float mat[5][4];

Çok boyutlu diziler

tip dizi_adı[boyut_1][boyut_2]...[boyut_n];

double x[2][4][2];

Çok boyutlu diziler tek boyuta indir generek bellekte tutulurlar. Tek indisli dizilerde olduğu gibi, çok indisli dizilere de başlangıç değeri vermek mümkün. Örneğin 3 satır ve 4 sütünlu (3x4=12 elemanlı) bir x matrisinin elemanları şöyle tanımlanabilir:

    int x[3][4] = {11,34,42,60, 72,99,10,50,  80,66,21,38}; ya da

    int x[3][4] = {11,34,42,60,  /* 1. satır elemanları */

                   72,99,10,50,  /* 2. satır elemanları */

                   80,66,21,38}; /* 3. satır elemanları */

 Bu matris ekrana matris formunda yazılmak istendiğinde:

     for(i=0; i<3; i++)

     {

       for(j=0; j<4; j++)

          printf("%4d",x[i][j]);

       printf("\n");

     }

çıktısı:

  11  34  42  60

  72  99  10  50

  80  66  21  38

şeklinde olacaktır.


Aşağıdaki program, iki matrisin toplamını başka bir matrise aktarır. İnceleyiniz.

İki matrisin toplamı

#include <stdio.h>
#define SAT 2
#define SUT 3
 
int main()
{
    int a[SAT][SUT] = {5, 3, 7,  0, 1, 2};
 
    int b[SAT][SUT] = {1, 2, 3,  4, 5, 6};
    int c[SAT][SUT];
    int i, j;
 
    puts("A Matrisi:");
    for(i=0; i<SAT; i++){
      for(j=0; j<SUT; j++)
         printf("%4d",a[i][j]);
      printf("\n");
    }
 
    puts("B Matrisi:");
    for(i=0; i<SAT; i++){
      for(j=0; j<SUT; j++)
         printf("%4d",b[i][j]);
      printf("\n");
    }
 
    puts("\nC Matrisi:");
    for(i=0; i<SAT; i++){
       for(j=0; j<SUT; j++){
         c[i][j] = a[i][j] + b[i][j];
         printf("%4d",c[i][j]);
       }
       printf("\n");
    }
 
  return 0;
}
ÇIKTI

 

A Matrisi:

   5   3   7

   0   1   2

B Matrisi:

   1   2   3

   4   5   6

 

C Matrisi:

   6   5  10

   4   6   8

Aşağıdaki program, iki kare matrisin çarpımını başka bir matrise aktarır. İnceleyiniz…

İki matrisin çarpımı

#include <stdio.h>
#define SAT 2
#define SUT 3
int main()
{
    int a[SAT][SUT] = {5, 3, 7,  0, 1, 2};
    int b[SAT][SUT] = {1, 2, 3,  4, 5, 6};
    int c[SAT][SUT];
    int i, j;
    puts("A Matrisi:");
    for(i=0; i<SAT; i++){
      for(j=0; j<SUT; j++)
         printf("%4d",a[i][j]);
      printf("\n");
    }
    puts("B Matrisi:");
    for(i=0; i<SAT; i++){
      for(j=0; j<SUT; j++)
         printf("%4d",b[i][j]);
      printf("\n");
    }
    puts("\nC Matrisi:");
    for(i=0; i<SAT; i++){
       for(j=0; j<SUT; j++){
         c[i][j] = a[i][j] + b[i][j];
         printf("%4d",c[i][j]);
       }
       printf("\n");
    }
 
  return 0;
}

ÇIKTI

 

A Matrisini girin:

5   3   7

0   1   2

9   0   4

 

B Matrisini girin:

1   2   3

4   5   6

7   8   9

 

C Matrisi:  //Çarpım sonucu oluşan matris.

  66  81  96

  18  21  24

  37  50  63

 

Facebook'ta Paylaş    
Diğer C / C İçerikleri       Tüm Yazılar        Ana Sayfa


  =>Soru Sorun veya Yorum Yazın...

İsim Giriniz :
  

  =>Yapılan Yorumlar...