Diziler.

Slides:



Advertisements
Benzer bir sunumlar
DİZİLER – I. Kısım YRD.DOÇ.DR. CİHAD DEMİRLİ
Advertisements

Dizi Kullanan Örnekler
STRİNG FONKSİYONLARI.
Soru1: 1’den 4’e kadar olan tamsayıları ekrana tek satırda görülecek şekilde yazdıran bir programı aşağıdaki metotları kullanarak yazınız. Bir printf ifadesi.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Nöbetçi Kontrollü Döngü
Göstericiler (Pointers)
void medyan(int cevap[]) { int j; siralama(cevap);
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
String Diziler(Katarlar)
Tanım Birbirleriyle ilişkili ve bitişik iki ya da daha fazla bellek hücresinden oluşan yapı Örnek dizi tanımı: int tamsayiDizi[10]; tamsayiDizi[0] /*ilk.
Değişken Bildirimleri
Diziler.
Atama ve Girdi/Çıktı Komutları
VERİ TİPLERİ VE DEĞİŞKENLER
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
String Kütüphanesindeki Arama Fonksiyonları
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Diziler(Arrays).
Bölüm 10 Yapılar ve Birleşimler
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Soru1: Dışardan "%s" format belirteci kullanılarak girilecek 20 elemanlı bir dizinin elemanlarının kaç tanesinin rakam, kaç tanesinin harf ve kaç tanesinin.
DİZİLER.
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
Fonksiyonlar.
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
C ile Programlamaya Giriş
Chapter 6: Using Arrays.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
DÖNGÜLER.
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Dizi Elemanlarının Sıralanması
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
Algoritma & Programlama
Diziler (Arrays).
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
VERİ TİPLERİ VE DEĞİŞKENLER
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.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Bil 102 Bölüm 6 Diziler.
DİZİLER Arrays.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
C Programlamada, benzer tipte tanımlaman değişkenleri kontrol etmede bize en çok yardım eden dostlarımız dizilerdir. Örneğin: 100 Öğrencinin bilgilerini.
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
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ı.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
tanımları yapabilmeniz gerekmektedir .
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Diziler(Arrays).
Sunum transkripti:

Diziler

Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Dizi Tanımı Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen bileşik değişkenler olmak üzere ikiye ayrılır. Temel değişkenler bellekte tek bir hücreyi tanımlayıp, içlerinde tek bir değeri tutabilirler. Diziler ise ardarda sıralanmış bellek hücreleridirler. Diziler bu bağlamda bileşik değişkenlerdir ve bellekte aynı anda birden fazla değerin saklamasını mümkün kılarlar.

Dizi Tanımı veri_tipi dizi_ismi [eleman_sayısı]; Bellek Görüntüsü:

Dizi Tanımı Örnek: int not[4]; int i; not[0]=20; not[2]= not[0]+10; 30 i=0; not[i]=90; not[++i]=70; 90 70 30

Dizi Elemanlarına Değer Atama int a[3],b; scanf(“%d”, &b); a[2]=b; veya int a[3]; scanf(“%d”, &a[2]);

Dizinin elemanlarına değer verilmesi tanımlama anında yapılabilir. int a[5]= {25, 18; 20; 0,29} Dizilerin bellekte saklanma biçimi: Erişimin kolay olması için dizinin tüm elemanları peşpeşe saklanır.

Dizi Elemanlarına Değer Atama Örnek:Kullanıcıdan alınan 5 tamsayı değerini bir dizide saklayan ve bu değerlerin ortalamasını bulan bir program yazalım #include <stdio.h> int main(void) { int a[5]; int i,toplam; double orta; /*Kullanici degerlerinin dizide saklanmasi*/ printf(“Bes tamsayi giriniz:”); for(i=0;i<5;++i) scanf(“%d”,&a[i]); /*Toplam ve ortalamanin bulunmasi*/ toplam=0; toplam=toplam+a[i]; orta= toplam/5.0; printf(“Ortalama=%5.2f”,orta); return (0); }

2-Boyutlu Diziler int not[3][30]; Her elemanı bir boyutlu dizi olan yapılara ise çok boyutlu diziler denir. Bu bölümde matris veya tablo olarak da bilinen 2-boyutlu dizilere değineceğiz. veri_tipi dizi_ismi[satır_büyüklüğü][sütun_ büyüklüğü]; int not[3][30];

2-Boyutlu Diziler satır yönünde atama 2-Boyutlu Dizilere Değer Atama scanf(“%d”, &not[29][0]); not[1][1]=90; Tanımlama Sırasında Değer Atama satır yönünde atama

2-Boyutlu Diziler Tanımlama Sırasında Değer Atama

2-Boyutlu Diziler Tanımlama Sonrasında Satır Yönünde Değer Atama int a[30][3]; for(satir=0; satir<30; ++satir) { for (sutun=0;sutun<3; ++sutun) a[satir][sutun]=0; }

2-Boyutlu Diziler Tanımlama Sonrasında Sütun Yönünde Değer Atama int a[30][3]; for(sutun=0; sutun <3; ++sutun) for (satir=0;satir<30;++satir) a[satir][sutun]=0; ... ...

/* Iki dizinin elemanlarinin toplanmasi*/ for(i=0;i<5;i++) Örnek: 10 elemanlı iki dizinin toplamını üçüncü bir diziye yazan program. /* Iki dizinin elemanlarinin toplanmasi*/ for(i=0;i<5;i++) C[i]=A[i]+B[i]; /* C dizisinin yazdırılması */ printf("C dizisi:\n"); printf("%d\t",C[i]); } #include <stdio.h> main() { int A[5], B[5],C[5]; int i; printf("A dizinin elemanlarini giriniz"); for(i=0;i<5;i++) { printf("A[%d]=", i); scanf ("%d",&A[i]); } printf("B dizinin elemanlarini giriniz"); { printf("B[%d]=", i); scanf ("%d",&B[i]); }

Örnek: 10 elemanlı A dizisinin en küçük elemanı bulup yazan program . #include <stdio.h> main() { int A[10]; int i,enk; for (i=0;i<10;i++) { printf("A[%d]=", i); scanf("%d",&A[i]); } enk=A[0]; for(i=0;i<10;i++) if (enk>A[i]) enk=A[i]; printf("Dizinin en küçük elemani %d dir", enk);

Örnek: 10 elemanlı A dizisinin tek elemanlarından B dizisini oluşturan program #include <stdio.h> main() { int A[10],B[10]; int i,j; // A dizisinin elemanlarinin okunmasi for(i=0;i<10;i++) { printf("A[%d]=",i); scanf("%d",&A[i]); } j=0; { if (A[i]%2==1) { B[j]=A[i]; j++; // B dizisinin yazdirilmasi for(i=0;i<j;i++) printf("%d,", B[i]);

Örnek: 25 kişilik bir sınıfın sınav sonuçlarını okuyup ortalamasını bulan program #include <stdio.h> main() { int ogr[25]; int i, toplam; float ortalama; /*Ogrenci notlarinin okunmasi*/ for(i=0;i<25;i++) { printf("%d\’inci ögrencinin sinav notunu giriniz", i); scanf ("%d",&ogr[i]); } toplam=0; toplam=toplam+ogr[i]; ortalama=toplam/25; printf("sinif ortalamasi %f dir",ortalama);

2-Boyutlu Diziler Örnek:Kullanıcının, 30 kişilik bir sınıftaki her öğrenci için 3’er sınav notu gireceği ve her sınav için sınıf ortalamasının ekranda gösterileceği bir program yazınız. #include <stdio.h> int main(void) { int not[30][3]; int i,j,toplam; double orta; /* Kullanicidan notlarin alinmasi*/ for(i=0;i<30;++i) { printf(“%d. ogrenci notlari:”,i+1); for(j=0;j<3;++j) scanf(“%d”, &not[i][j]); } /*Her sinavin ortalamasinin bulunmasi*/ { toplam=0; toplam+=not[i][j]; orta=toplam/30.0; printf(“%d. sinav ortalamasi: %5.2f\n”,j+1,orta); return (0);

Sıralama Dizi elemanlarının küçükten büyüğe ve büyükten küçüğe doğru dizilmesi işlemidir. Farklı performansa sahip bir çok yöntem vardır. Buble sort: Bu yöntemde ardışıl iki yöntem karşılaştırılır. Eğer önceki eleman sonrakinden büyük ise elemanlar yer değiştirilir. Bu şekilde dizi taranır. Eğer herhangi bir değişiklik yapılmış ise işlem tekrar edilir.

Buble sort Başlangıç 1. Adım 2.Adım 3.Adım 34 21 18 18 21 18 21 21 34 21 18 18 21 18 21 21 18 25 25 25 25 34 34 34

Örnek: 10 elemanlı dizinin elemanlarını sıralayan program #include <stdio.h> main() { int a[10]; int i,j,temp; /*dizi elemanlarinin okunmasi*/ for(i=0;i<10;i++) { printf("dizinin %d\’inci elemanini giriniz",i); scanf ("%d",&a[i]); } for (j=i+1;j<10;j++) if(a[i] >a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; printf("%d, ",a[i]);

Örnek: A ve B matrislerini toplayan program. #include <stdio.h> main() { int A[3][3]={ 1,2,3,4, 5, 6, 7, 8, 9}; int B[3][3]= {{2, 4, 8},{3,6,9},{4,16,64}}; int C[3] [3]; int i, j; for (i=0;i<3;i++) for(j=0;j<3; j++) C[i][j]=A[i][j]+B[i][j]; // C matrisinin yazdirilmasi { for(j=0;j<3; j++) printf("%d ", C[i][j]); printf("\n"); }

Örnek: A matrisinin içindeki en büyük ve en küçük sayıyı bulan program #include <stdio.h> main() { int A[3][3]; int enb; int enk; int i, j; // A matrisinin elemanlarinin okunmasi for (i=0;i<3;i++) for(j=0;j<3;j++) { printf("A[%d][%d]=",i,j); scanf("%d",&A[i][j]); } enb=A[0][0]; enk=A[0][0]; //A matrisinin enk ve enk elemanlarinin bulunmasi for(j=0;j<3; j++) {if (enb<A[i][j]) enb=A[i][j]; if (enk>A[i][j]) enk=A[i][j]; printf("Dizinin en kucuk elemani %d en buyuk elemani %d dir",enk, enb) ;