C dili

C dili Diziler 2

Dizilerde döngülerin ve if deyiminin kullanımı için güzel bir örnek olan aşağıdaki fonksiyona bakacak olursak ;

Harf notlarına önce sıfır değeri atamışız ve ardından ogr diye öğrencilerin notlarını bellekte tutan bir dizi tanımlamışız.ardından başlattığımız for döngüsü ile dizinin bir ile 15 arsında belleğe alıp daha sonra girilen notları if deyimini kullanarak harf notu sayısını belirlemiş bulunmaktayız.

#include
#include
int main()
{
int aa=0;
int bb=0;
int cc=0;
int dd=0;
int ff=0;
int ogr[15];
int i;
for(i=0;i<15;i++){
printf(“%d. ogrencinin notunu giriniz:”,i+1);
scanf(“%d”,&ogr[i]);
}
for(i=0;i<15;i++) { if(ogr[i]>90&&ogr[i]<100){
aa+=1;
}else if(ogr[i]<=90&&ogr[i]>80)
bb++;
else if(ogr[i]<=80&&ogr[i]>70)
cc++;
else if(ogr[i]<=70&&ogr[i]>45)
dd++;
else
ff++;
printf(“%d AA\n %d BB\n %d CC\n %d DD\n %d FF”,aa,bb,cc,dd,ff);

Şimdi göstereceğimiz fonksiyonda ise sıklıkla karşımıza çıkabilecek olan girilen dizi elemanları arasında en büyük olanı bulma fonksiyonunu gösterelim;bu fonksiyonun  esas özelliği

for(i=0;i<6;i++) { if(sira[i]>buyuk)

sira[i]=buyuk;

}

satır kodlarıdır.

şimdi bir örnekle pekiştirecek olursak;

#include
#include
int main()
{

int buyuk;
int i;
int sira[6];
for(i=0;i<6;++i)
{
printf(“%d. değeri giriniz.”,i+1);
scanf(“%d”,&sira[i]);
}
for(i=0;i<6;i++){ if(sira[i]>buyuk)
buyuk=sira[i];
}
printf(“%d”,buyuk);

}
}

ÇOK BOYUTLU DİZİLER

İki Boyutlu Diziler

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

int sira[6];

bizler daha önce dizilerin elemanlarını isimlendirirken sıra indisini kullanıyorduk.Oysa dizilerin elemanları kendi içlerinde de guruplandırılabilir.Bu guruplama işlemi özellik sayısına göre arttırılabilir.Ama en çok kullanımda karşımıza çıkacak olan iki boyutlu dizilerdir,şunu asla unutmamak gerekir tek boyutlu diziler çok boyutlu dizilerin özel durumlarıdır.İki boyutlu dizilerin yapılışından sonra diğer çok boyutlularıda yine aynı mantıkla yapabiliceğiz.İki boyutlu diziler özel olarak matris diye adlandırılırlar.

örnek verecek olursak;

int matris[satir sayisi][sutun sayisi];
int matris[2][3];
matris[0][0]=1;
maris[0][1]=2;
matris[0][2]=3;
matris[1][0]=4;
matris[1][1]=5;
matris[1][2]=6;

Burada tıpkı iki boyutlularda olduğu gibi dizi elemanlarının değerinde atama yaptıktan sonra o dizi elemanına hiç dokunmadan dizi elemanını herhangibi bir alt satırda da tanımlayarak değerini değiştirebiliriz.Tek boyutluda olduğu gibi çok boyutlularda birden çok dizi elemanı tanımlama şekli bulunmaktadır.

int matris[2][3]={1,2,3,4,5,6};//okunurluğu düşüktür.Soldan başlayarak sutun sayısı kadar eleman içeren satır sayısı kadar guruplanır.
printf(“%d”,matris[1][2]); Ekrana 6 yazılır.

int matris[2][3]={{1,2,3},{4,5,6}};//okunurluğu yüksektir.
printf(“%d”,matris[1][2]);//Ekrana 6 yazar

Tek boyutlularda bir dizi elmanını tanımlamayıp,o değeri ekrana yazdığımızda 0  bir değer atanırken çok boyutlularda sıfır değeri atanmaktadır. dizinin elemanı olmayan bir elemanını isterkende ortaya çıkar yanı yukarıda printf  fonksiyonunda printf(“%d”,matris[1][3]); isteseydik,rastgele bir değer verirdi.

Şimdi artık döngüler yardımıyla tek boyutta olduğu gibi çok boyutluları nasıl kullancağımızı gösterelim;

burda önemli olan nokta satır değişkeninin olduğu döngünün içinde bir başka döngü başlatarak her satır değerini diğer bütün sutun değerleri ile eşelnmesidir.

int i,j;
int matris[2][3]={{1,2,3},{4,5,6}};

for(i=0;i<2;i++)
{
for(j=0;j<3;j++){
printf(“%d “,matris[i][j]);
}
printf(“\n”);
}

örneğinde matris görünümünde  bütün elemanlar sıralanır.

Sıradaki örneğimiz ise kullanıcıdan eleman değeri alıp bunları matris görünümünde kullanıcıya döndüren bir programdır.

int i,j;
int matris[4][4];
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf(“matris[%d][%d] nin degerini giriniz:”,i,j);
scanf(“%d”,&matris[i][j]);

}
}

Aşağıdaki örneğimizde ise matriste çarpma işlemi gösterilmiştir.
int i,j,p;
int matris1[2][2]={1,2,3,4};
int matris2[2][2]={5,6,7,8};
int matris3[2][2];

for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf(“%d “,matris[i][j]);
}
puts(“”);
}

şağıdaki örneğimizde ise matrislerde toplama işlemi gösterilmiştir.

int i,j;
int matris1[2][2]={1,2,3,4};
int matris2[2][2]={5,6,7,8};
int matris3[2][2];

for(i=0;i<2;i++){
for(j=0;j<2;j++){
matris3[i][j]=matris1[i][j]+matris2[i][j];

}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf(“%d\t\a”,matris3[i][j]);
}puts(“”);
}

for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(p=0;p<1;p++){
matris3[i][j]=matris1[i][p]*matris2[p][j];
}
}

}

for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf(“%d\t\a”,matris3[i][j]);
}puts(“”);
}

gelecek yazımızda görüşmek üzere…..

7/05/2015

FATİH ALPARSLAN

TRABZON

C dili Diziler 2&rdquo için 1 yorum

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: