C_C_ogreniyorum-9
C_C_ogreniyorum-9

[TR] C/C++ Öğreniyorum (#9)

[TR] C/C++ Öğreniyorum (#8)

Giriş

Merhaba, ben Süleyman Kaya. Bilgisayar bilimleri araştırmacısıyım. Bilgisayar bilimleri için C/C++ öğrenirken edindiğim bilgileri paylaşmak üzere bu yayın serisini sizlerle paylaşıyorum. Kaynak olarak Fahrettin Erdinç’in “Mühendislik Öğrencileri İçin Temel Klavuz: C++/C” kitabını kullanacağım. Bu yazımda C dilinde dizilerden bahsedeceğim.

Dizi Nedir?

Bellekte art arda yer alan, aynı veri tipindinden değerler kümesine dizi denir.

Dizi Tanımlama

C dilinde dizi değişkenler aşağıda görüldüğü gibi iki farklı şekilde tanımlanabilir:

Birinci Yöntem

  • Bu yöntemde veri tipi ile beraber dizinin eleman sayısı da belirtiliyor.

İkinci Yöntem

  • Bu yöntemde ise önce dizi değişkeni oluşturuluyor ve daha sonra dizi değişkenine elemanlar ekleniyor; C dili eklenen elemanların sayısını bizim için otomatik olarak hesaplıyor ve dolduruyor.

Dizi Elemanını Değişkene Atama

Eğer dizinin bir elemanını bir değişkene atayacaksanız aşağıdaki yapıyı kullanmalıyız:

Dizi Değişkeni Oluşturulurken Dikkat Edilmesi Gereken Konular

  • Dizi değişken adı normal değişken adları kurallarıyla aynıdır.
  • Dizide aynı türde veriler olmalıdır; Örneğin bir diziyi int tipinde tanımladıysak o dizinin tüm elemanları int tipinde olmak zorundadır.
  • Dizi elemanları sıfırdan başlar. Dizi elemanlarının numarasına “indis” denir. Örneğin x[2] ifadesi dizideki 2 numaralı indise sahip olan elemanı belirtir.
  • Veri tipini ve değişkeni belirttikten hemen sonra köşeli parantez ([]) koyulmalıdır. Eğer iki boyutlu dizi tanımlanacaksa iki köşeli parantez yapılmalıdır.
  • Eğer değerler atanacaksa ={d1, d2, d3} şeklinde atanmalıdır.

Dizinin Eleman Sayısı

Tek Boyutlu Dizi Uygulamaları

Dizi Elemanlarının Konsola Yazılması

Bu örneğimizde iki dizi tanımlayacağız ve dizinin elemanlarını konsola alt alta yazdıracağız.

Dizi Elemanlarının Konsoldan Okunması

Bu örneğimizde 4 elemanlı int tipinde sayi isimli bir dizi oluşturup dizi elemanlarını konsoldan okuyacağız. Daha sonra da dizi elemanlarının toplamını bulup konsola yazdıracağız.

N Elemanlı Dizi Oluşturulması ve Eleman Atanması

Dizi Elemanlarının Tersten Sıralanması

Karakter Dizileri

  • Önce biraz hatırlatma yapmakta fayda var. C dilinde tek bir karakteri saklamak için char veri tipi kullanılır.
  • Aslında string veriler char veri tipi ile tanımlanan dizilerde saklanır. Örneğin “süleyman” metnini saklamak için aşağıdaki dizi kullanılabilir:
  • Derleyici karakter dizilerinin en sonuna dizinin bittiğini söyleyen, sonlandırıcı adı verilen bir karakter koyar.
  • Bu karakterin ASCII kodu 0 oldupu için ‘\0’ olarak gösterilir. Ayrıca NULL Sabiti olarak da bilinir.

Karakter Dizilerinde Veri Girişi

Karakter izilerine konsoldan veri okuyup atama yapmak için scanf() ve gets() fonksiyonları kullanılır.

  • Bu durumda scanf() komutu ile en fazla bir kelime okuyabilirsiniz çünkü boşluk bırakıp ikinci kelimeye geçtiğinizde asıl veri okuma sonlanacaktır. Bu fonksiyonun yapısı şu şekildedir:

Karakter Dizilerde Veri Çıkışı

Karakter dizilerini konsola yazdırmak için printf() veya puts() fonksiyonları kullanılabilir.

İki Boyutlu Diziler

Tek boyutlu diziler belirli isimde listeler oluşturup bu listelerle ilgili işlem yapmak için kullanılırken iki boyutlu diziler daha çok satır ve sütundalardan oluşan yapılar oluşturmak için kullanılır.

İki Boyutlu Dizi tanımlama

İki Boyutlu Dizinin Elemanlarını Ekrana Yazdırma

Bu örneğimizde 3 satır 2 sütundan oluşan iki boyutlu bir dizi tanımlayıp değerlerini atayacağız. Daha sonra da dizi elemanlarını konsola yazdıracağız.

İki Boyutlu Dizinin Elemanlarını Okuma

Önceki örneğimizde kullandığımız dizin elemanlarını bu örneğimizde konsoldan okuyacağız. Dizi elemanlarını konsoldan okumak için iç içe iki for döngüsü kullanacağız. Bu for döngüleriyle dizi indislerini kontrol edeceğiz. Sonuçta dizi elemanlarını satır ve sütun indislerine göre okuyacağız.

[M][N] elamnlı Dizi Oluşturma Ve Eleman Okuma/Yazma

Matris İşlemleri

Bu örneğimizde iki farklı diziyi toplayacağız.

Kapanış