C PROGRAMLAMA DİZİLER (ARRAYS).

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

Dizi Kullanan Örnekler
STRİNG FONKSİYONLARI.
Göstericiler (Pointers)
String Diziler(Katarlar)
Diziler.
MATLAB’de Diziler; Vektörler ve MAtrisler
MATLAB’İN SAYI YUVARLAMA FONKSİYONLARI
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Dizi (array) değişkenleri
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
String Kütüphanesindeki Arama Fonksiyonları
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Diziler(Arrays).
7. DİZİLER Diziler birçok değişkene aynı adla ulaşmayı sağlayan bir grup veri yapısıdır. Bir dizi aynı tipte ve aynı adı paylaşan bir grup değişken demektir.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
NESNEYE YÖNELİK PROGRAMLAMA
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
Görsel C# ile Windows Programlama
Nesneye Yönelik Programlama
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
FONKSİYONLAR.
Chapter 6: Using Arrays.
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN.
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
BM-103 Programlamaya Giriş Güz 2014 (8. Sunu)
NESNEYE YÖNELİK PROGRAMLAMA
Diziler (Arrays).
JAVA’DA DİZİLER Dr.Galip AYDIN.
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bilgisayar Programlama. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada.
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
DİZİLER Arrays.
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
MATLAB’ de Programlama
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Bilgisayar Programlama Güz 2011
Algoritmalar ve Programlama I Ders 8:DİZİ (VEKTÖR) KAVRAMI
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Hashing (Çırpılama).
BİLGİSAYAR programlama II
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
PHP ve HTML İnternet Programlama - 2. Koşullu İfadeler ve Döngüler Döngü ya da çevirim diyebileceğimiz, belli şart ve koşullarda istenilen değerleri yapabilmemizi.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
BİLGİSAYAR PROGRAMLAMA DERSİ 6. DERS NOTU Konu: Matlab’ de Diziler ve Matrisler.
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
tanımları yapabilmeniz gerekmektedir .
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
İleri Algoritma Analizi
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
YAPISAL PROGRAMLAMA Hafta-7
7. DİZİLER Bir dizi, aynı tipteki elemanların yan yana sıralanışı ile elde edilen bir bilgi kümesidir. Matematikte kullanılan doğal sayılar (1,2,3,..),
NİŞANTAŞI ÜNİVERSİTESİ
Diziler(Arrays).
Sunum transkripti:

C PROGRAMLAMA DİZİLER (ARRAYS)

DİZİLER (ARRAYS) Aynı isim altında, aynı tipte birbiriyle ilişkili birden fazla veriyi tutmak için kullanılan veri yapılarıdır (Data Structure). Diziler bir kümedir, aynı türde verilere tek bir isimle erişmek için kullanılır. Bir dizinin bütün elemanları bellekte ardışık olarak saklanır. Diziler bir veya daha çok boyutlu olabilirler. Bir dizinin içindeki bir elemanı ya da konumu belirtmek için o dizinin adı ve elemanın dizi içindeki pozisyonu belirtilir.

Tek Boyutlu Diziler Tek boyutlu bir dizi tanımlaması şu şekilde gerçekleştirilir : Derleyici ilk örnekteki gibi bir komutla karşılaştığında 6 adet sayının saklanacağı bellek alanı ayırır. Dizinin adı yani ‘a’ değişkeni dizinin başlangıç adresini tutar. Dizi içerisindeki her bir elemana, dizi isminden sonra, yazılan indis değeri ile ulaşılır. İndis değerleri mutlaka tam sayı olmalıdır. C dilinde bütün dizilerin indis numarası 0’dan başlar. Dolayısı ile dizinin son indis numarası dizinin eleman sayısından bir eksiktir. Dizi Adı Dizinin elemanları İndis numaraları

Tek Boyutlu Diziler Tek boyutlu dizilere ilk değer atama; Bu dizi bildirimi hatalıdır. Çünkü 5 dizi elemanı için 6 değer ataması yapılmıştır.

Tek Boyutlu Diziler Tek boyutlu dizilerde örnek işlemler; a=5 ve b=6 ise c [a+b] += 2; işleminin sonucu c [11] = c[11] +2 ‘den 80 olur. Printf( ‘’ %d ’’, c[0] + c[1] + c[2] ); ifadesi ekrana c[0], c[1] ve c[2]’nin toplamını -39 olarak yazdırır. x= c[7] / 2; ifadesi c[6] ‘yı ikiye bölüp x değişkenine atar.

Tek Boyutlu Diziler Aşağıda verilen örnek program, 12 elemanlı integer a dizisinin içindeki değerleri toplamaktadır. Aşağıda verilen örnek program, for döngü yapısını yapısı kullanarak 10 elemana sahip bir dizinin tüm elemanlarını 0’a atamaktadır ve diziyi çizelge biçiminde yazdırmaktadır

Tek Boyutlu Diziler 40 öğrenciye kafeteryadaki yiyeceklerin kalitesine 1-10 arasında bir puan vermeleri istenmiştir. Verilen 40 puanı bir diziye yerleştirin ve verilen puanların verilme sıklığını ve ortalama puanı hesaplayınız. Programa ekleme yapınız

Tek Boyutlu Diziler Diziler her tipte veriyi tutabilirler. Karakter dizileri de diziler içerisinde tutulabilirler. Karakter dizileri kendilerine has bir çok özelliğe sahiptir. Bir karakter dizisi, bir string kullanılarak ilk değerlere atanabilir. birinci stringinin 7 karakter ile stringi sonlandıran ve null karakter adı verilen özel bir karakter içerir. Bu nedenle string1 dizisi aslında 8 karakter içermektedir. Null karakterinin, karakter sabiti olarak gösterimi ‘\0’ biçimindedir. C’de tüm stringler bu karakter ile sonlanırlar. Karakter dizilerine, atama listesindeki bağımsız karakter sabitleriyle de ilk değerler atanabilir. Az önceki bildirim aşağıdaki bildirim ile denktir.

Tek Boyutlu Diziler Aşağıda program kodu verilen örnek, bir karakter dizisine string ile ilk değer verilmesini , karakter dizisinin bir string olarak yazdırılmasını ve stringin bağımsız karakterlerine erişilmesini göstermektedir

Dizilerin Fonksiyonlara Parametre olarak Gönderilmesi Bir dizi bir fonksiyona parametre olarak gönderilmek istendiğinde, fonksiyon çağrılırken dizinin sadece adı yazılır. Fonksiyon prototipinde diziyi karşılayan tanımlamada ise köşeli parantezler kullanılır.

Dizilerin Fonksiyonlara Parametre olarak Gönderilmesi Diziler fonksiyonlara parametre olarak gönderilirken adres ile çağırma yöntemiyle gönderilirler. Bu yöntemde değerlerin kopyalandığı değişkenlerin değiştirilmesi orijinal değerleri etkiler. Bir önceki örnekte tanımladığımız a dizisinde a değişkeni dizinin bellekteki başlangıç adresini tutacaktır. İsterseniz a değişkeninin değerini (yani dizinin başlangıç adresini) aşağıdaki komutla ekrana yazdırır. Printf(“%p”,a); Fonksiyona dizi ismi ile gönderilen değer dizinin başlangıç adresidir. Fonksiyon parametresinde tanımlanan ve bu a ya karşılık gelecek olan değişkende (bir önceki örnekte b değişkeni) aynı bellek adresinden başlamış olur. Bellekte aynı adrese sahip iki farklı hücre bulunamaz. Yani a ve b dizileri bellekte üst üste saklanan aslında aynı dizilerdir. Birinde yapılan değişiklik aynı adresler doğrultusunda diğerini etkiler.

Dizilerde Sıralama Veri sıralamak en önemli bilgisayar uygulamalarından birisidir. Örneğin bir banka bütün çekleri hesap numarasına göre sıralayarak ödeme yapabilir ya da bir telefon şirketi abonelerini adı ya da soyadı bilgilerine göre sıralayabilir. Genellikle en basit algoritmalar, en zayıf olanlarıdır. Bunların özelliği kolaylıkla yazılmaları,test edilmeleri ve hatalarının kolay ayıklanmasıdır. Ancak daha karışık algoritmalara, maksimum performansı gerçekleştirmek için ihtiyaç duyulur. Farklı sıralama algoritmarı vardır; kabarcık sıralama (buble sorting), seçmeli sıralama, eklemeli sıralama, ağaç sıralaması, hızlı sıralama, kabuk sıralama vb.

Dizilerde Sıralama Seçmeli Sıralama yöntemi ile verilerin sıralanması

Dizilerde Arama Dizinin belirli bir elemanını bulma sürecine arama denir. Farklı arama algoritmaları vardır. En bilinenleri doğusal arama ve ikili arama yöntemidir. Doğrusal aramada, dizinin her elemanını arama değeriyle karşılaştırmaktadır. Dizi herhangi bir şekilde sıralanmadığından değer ilk ya da son elemanda bulunabilir. Doğrusal arama küçük ya da sıralanmamış dizilerde iyi bir şekilde çalışır. Ancak büyük diziler için doğrusal arama yetersiz kalmaktadır. Eğer dizi sıralanmışsa, daha hızlı olan ikili arama tekniği kullanılabilir. İkili arama tekniği, her karşılaştırmadan sonra sıralanmış bir dizideki elemanların yarısını elemektedir. Algoritma, dizinin ortadaki elemanını bulmakta ve bu elemanın değerini arama değeriyle karşılaştırmaktadır.

Doğrusal Arama Devamı sonraki sayfada

Doğrusal Arama Uygulamada dizi rasgele değerler ile doldurulurken aynı değerler dizinin farklı indis değerleri için atanabilmektedir. Buna göre uygulamayı; Aranan değer farklı indis değerlerinde mevcut ise bulunan tüm indis değerlerini gösterecek şekilde düzenleyin. Dizi doldurulurken dizi içerisindeki her bir değerin sadece 1 tane olacağı şekilde düzenleyin.

İkili Arama uygulamayı; Dizinin rasgele değerler ile oluşturulacağı şekilde yeniden yazınız. Dizi sonrasında sıralama algoritmalarından birisi kullanılarak sıralı duruma getirilmelidir.

Çok Boyutlu Diziler Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir. Bu diziler sayesinde değerler satır ve sütunlardan oluşan (row - column) iki boyutlu bir tablodaki veriler gibi düşünebilirler (bellekte yine ardışık olarak tutulurlar). Bu tür dizilerde her bir elemana ulaşmak için elemanın satır indisi ve sütun indisi kullanılır. C dilindeki dizilerin boyutları ikiden de fazla olabilir. Bir sınır olmamakla beraber 12 boyuta kadar destekler. Ancak iki boyutlu diziler bir çok uygulamada yeterli olur.

Çok Boyutlu Diziler Çift (iki) boyutlu dizilere ilk değer atama; Tek boyutlu dizi tanımlamaya benzer.

Çok Boyutlu Diziler Çok boyutlu dizilerin fonksiyona parametre olarak gönderilmesi; Çok boyutlu bir dizi fonksiyona gönderilecekse, tek boyutlularda olduğu gibi sadece adı yazılır. Gönderilen dizi değişkenini karşılayan prototip tanımlamada ise gönderilen dizinin boyutu kadar köşeli parantez (aç-kapa ikilisi) kullanılır. Çift boyutlu diziler tablo halinde bellekte tutulmaz, örneğin [2][3] boyutlarında bir dizinin elemanları bellekte 6 elemanlı tek boyutlu bir diziymiş gibi tutulur. Çift boyutlu dizide her bir satır tek boyutlu bir diziymiş gibi düşünülür ve bunlar uç uca eklenerek belleğe yerleştirilir. Derleyicinin bellekte bir sonraki satırın başlangıçtan kaç eleman sonra başladığını bilmesi gerekir

Çok Boyutlu Diziler Örnek;

Çok Boyutlu Diziler - Ödev 1 – Başla 2 – A ve B matrisleri için boyut giriniz (örneğin 3 x 7 biçiminde) 3 – A ve B matrislerinin değerlerini 1-10 arasında rasgele oluştur (fonksiyon ile) 4 – A ve B matrislerini yaz. (fonksiyon ile) 5 – İşlem Seçimini yap 6 – Eğer seçim 1 ise C = A + B (fonksiyon ile) 7 – Eğer seçim 2 ise C = A – B (fonksiyon ile) 8 – Eğer seçim 3 ise C = A * B (fonksiyon ile) 9 – Eğer seçim hatalı ise 4. adıma dön 10 – C Matrisini Yaz (fonksiyon ile) 11 – Son

Ödevler 1 – Uçuş Rezervasyon Yazılımı 2 – Hasta Takip Yazılımı 3 – Kitap Evi yazılımı 4 – Anket Sistemi 5 – Bankacılık Yazılımı 6 – Öğrenci İşleri Yazılımı 7 – Sınav Hazırlama Yazılımı 8 – Otel Yönetim Yazılımı 9 – Eczane Yönetim Sistemi Yazılımı 10 – Kargo Şirketi Yazılımı 11 – ÖSYM Sınav Otomasyonu