Anasayfa C Dili Diziler

C Dili Diziler

Okan

Diziler, aynı tipteki verilere tek bir isimle erişmek için kullandığımız bir kümedir. Bu küme kavramı matematikteki küme kavramından biraz farklıdır. Dizinin bütün elemanları bellekte art arda saklanır.

Şuana kadar oluşturduğumuz değişkenlerin içinde sadece tek bir değer atadık. ( int a=3) gibi.

Eğer bir değişkende birden fazla değer saklamak istersek dizileri kullanabileceğiz.

Bu dersimizde Tek boyutlu dizileri inceleyeceğiz. Çok Boyutlu Diziler için sayfamızı ziyaret edebilirsiniz.

Tek Boyutlu Diziler

C programlama dilinde tek boyutlu diziler 2 farklı şekilde tanımlanabilir.

veri_tipi, dizi_adi [boyut]; 

Burada değişkenin boyutu belirledikten sonra atamasını daha sonra yapabiliriz.

veri_tipi, dizi_adi [] = {deger1,deger2....}

Burada da dizinin boyutu belirtilmemiş,atanan elemanların sayısı dizinin boyutunu belirler.

Şimdi basit bir dizi oluşturup elemanlarını ekrana yazdıralım.

#include <stdio.h>

main()
{
    int dizi [5] = {12,34,56,35,67};
    printf("%d\n",dizi[0]);
    printf("%d\n",dizi[3]);

}

Kodun ekran çıktısı aşağıdaki şekildedir:

diziler-1

Dizi üzerindeki verilere indeks değeri üzerinden erişim sağlamaktayız.

Dizilerin indeksleri 0 dan başlar. Yani dizinin ilk elemanına ulaşmak için “dizi_adi[0]” yapısını kullanmamız gerekir.

dizi_adi[0] ---------> dizinin 1.elemanı
dizi_adi[1] ---------> dizinin 2.elemanı
dizi_adi[2] ---------> dizinin 3.elemanı

Dizileri Ekrana Yazdırma

Şimdide oluşturduğumuz dizinin tüm elemanlarını ekrana yazdıralım. Dizilerin elemanlarını ekrana yazdırırken çoğunlukla For Döngüleri kullanılır.

#include <stdio.h>

main()
{
	int dizi [5] = {14,7,89,55,98};
	
	for(int i = 0; i < 5; i++)
	{
		printf("Dizi [%d] = %d\n",i,dizi[i]);
	}
}

Yukarıdaki örnekte For döngüsü yardımıyla ekrana yazdırdık. 0 dan başlayarak dizinin boyutu kadar döngüyü kullanarak dizinin tüm elemanlarını yazdırdık.

Kodun ekran çıktısı aşağıdaki şekildedir:

diziler-2

Dizi Elemanlarını Kullanıcıdan Alma

Bu örneğimizde de biz dizinin boyutunu belirttikten sonra kullanıcıdan dizinin boyutu kadar sayı alacağız. Daha sonra bu sayıları toplayacağız.

#include <stdio.h>

main()
{
	int dizi[5];
	int toplam = 0;
	
	for(int i = 0; i < 5; i++)
	{
		printf("%d. sayiyi giriniz:",i+1);
		scanf("%d",&dizi[i]);
		toplam += dizi[i];
	}
	printf("Dizi elemanlarinin toplami = %d",toplam);
}

Dizinin elemanlarını da kullanıcıdan alırken for döngüsünü kullandık. Aldığımız her bir değeri sırasıyla dizinin elemanlarına aktardık.

Kodun çıktısıda aşağıdaki gibidir:

diziler kod-3

Karakter Dizileri

C dilinde karakter dizileri sık sık kullanılır. C programlama dilinde tek bir karakteri saklamak için char veri tipi kullanılır.

char harf = 'a';
char degisken = 'x';

C programlama dilinde metinler ise çift tırnak (“…”) içine yazılır ve bu verilere string denir.

C dilinde bu metinleri saklamak için tek boyutlu char dizileri kullanırız.

Örneğin;

char isim[] ="okan";

Şimdi programımızın üzerinde basit bir örnek yapalım..

#include <stdio.h>

main()
{
	char isim [] = "KOD BLOKLARI";
	printf("%s",isim);

	printf("\n\n");
	
	printf("%c",isim[0]);
	printf("%c",isim[2]);
}

Burada aslında sayfanın en başında belirttiğim dizi tanımlama çeşitlerinden 2.sini kullandık. Yani değişkeni tanımladık ve içerisine değer yazdık. Dizinin boyutu da bizim yazdığımız ifadenin boyutu kadar oldu.

Burada aynı int tipinde diziler gibi ,tek tek dizinin indekslerini girip o string ifadenin karakterlerine ulaşabiliriz.

Yada ifadesinin tamamını %s format tanımlayıcısını kullanarak yazdırabiliriz.

Format tanımlayıcılarının hepsini görmek için C Dili Veri Tipleri ve Değişkenleri sayfasını ziyaret edebilirsiniz.

Kodun ekran çıktısı şu şekildedir:

tek boyutlu kod-4

Karakter Dizisini Kullanıcıdan Alma

Karakter dizilerini kullanıcıdan almak için scanf() ve gets() fonksiyonlarını kullanıyoruz.

scanf() fonksiyonu, girilen verilerde boşluk (” “) karakterini görünceye kadar veri almaya devam eder.

Yani kısacası scanf() fonksiyonu ile bir kelime okuyabiliyoruz.

#include <stdio.h>

main()
{
	char isim[50];
	
	printf("Adinizi giriniz: ");
	scanf("%s",&isim);
	
	printf("\n Isminiz = %s ", isim);
}

Burada scanf() fonksiyonunu kullandık, eğer kullanıcı cümle girdiği zaman ne olacağını beraber inceleyelim…

tek-boyutlu-dizi -1

Yukarıda da bahsettiğim gibi scanf() fonksiyonu girilen ifade de boşluk görünceye kadar değer okumaya devam eder.

Eğer kullanıcıdan birden fazla kelime veya cümle girmesini istiyorsak, bu cümle veya kelimeleri okumak için gets() fonksiyonunu kullanırız.

#include <stdio.h>

main()
{
	char isim[50];
	
	printf("Adinizi giriniz: ");
	gets(isim);
	
	printf("\n Isminiz = %s ", isim);
}

Yukarıdaki örnekte kullanıcıdan değer almak için gets() fonksiyonunu kullandık.

Kodun ekran çıktısı şu şekildedir:

tek-boyutlu-dizi-2

Dizileri kullanarak çok fazla örnek yapabiliriz. Konuyu örnekler yaparak daha iyi kavramak için C Programlama Dili Örnekleri sayfasında 39‘ dan 45. soruya kadar olan örnekleri çözebilirsiniz

Yorum Yap

Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Kabul Et Tamamını Oku

Gizlilik Politikası