Diziler - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Diziler

Description:

Slide 1 ... Diziler – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0
Slides: 30
Provided by: Ng85
Category:
Tags: diziler | satir

less

Transcript and Presenter's Notes

Title: Diziler


1
Diziler
2
Diziler
Dizi Tanimi Dizi Elemanlarina Deger Atama Diziler
ve Göstergeler 2-Boyutlu Diziler
3
Dizi Tanimi
Degiskenler ayni anda tek bir deger tutabilen
temel degiskenler ve birden fazla deger
saklayabilen bilesik degiskenler olmak üzere
ikiye ayrilir. Temel degiskenler bellekte tek
bir hücreyi tanimlayip, içlerinde tek bir degeri
tutabilirler. Diziler ise ardarda siralanmis
bellek hücreleridirler. Diziler bu baglamda
bilesik degiskenlerdir ve bellekte ayni anda
birden fazla degerin saklamasini mümkün kilarlar.

4
Dizi Tanimi
veri_tipi dizi_ismi eleman_sayisi
Bellek Görüntüsü
5
Dizi Tanimi
Örnek int not4 int i
not020
20
not2 not010
20
30
i0 noti90 noti70
90
30
70
6
Dizi Elemanlarina Deger Atama
int a3,b scanf(d, b) a2b
veya
int a3 scanf(d, a2)
7
  • Dizinin elemanlarina deger verilmesi tanimlama
    aninda yapilabilir.
  • int a5 25, 18 20 0,29
  • Dizilerin bellekte saklanma biçimi Erisimin
    kolay olmasi için dizinin tüm elemanlari pespese
    saklanir.

8
Dizi Elemanlarina Deger Atama
ÖrnekKullanicidan alinan 5 tamsayi degerini bir
dizide saklayan ve bu degerlerin ortalamasini
bulan bir program yazalim
include ltstdio.hgt int main(void) int
a5 int i,toplam double orta /Kullanici
degerlerinin dizide saklanmasi/ printf(Bes
tamsayi giriniz) for(i0ilt5i)
scanf(d,ai) /Toplam ve ortalamanin
bulunmasi/ toplam0 for(i0ilt5i)
toplamtoplamai orta toplam/5.0
printf(Ortalama5.2f,orta) return
(0)
9
2-Boyutlu Diziler
Her elemani bir boyutlu dizi olan yapilara ise
çok boyutlu diziler denir. Bu bölümde matris veya
tablo olarak da bilinen 2-boyutlu dizilere
deginecegiz.
veri_tipi dizi_ismisatir_büyüklügüsütun_
büyüklügü
int not330
10
2-Boyutlu Diziler
2-Boyutlu Dizilere Deger Atama
scanf(d, not290)
not1190
Tanimlama Sirasinda Deger Atama
satir yönünde atama
11
2-Boyutlu Diziler
Tanimlama Sirasinda Deger Atama
12
2-Boyutlu Diziler
Tanimlama Sonrasinda Satir Yönünde Deger Atama
int a303 for(satir0 satirlt30 satir)
for (sutun0sutunlt3 sutun) asatirsutun0

13
2-Boyutlu Diziler
Tanimlama Sonrasinda Sütun Yönünde Deger Atama
int a303 for(sutun0 sutun lt3 sutun)
for (satir0satirlt30satir) asatirsutun0

...
...
14
Örnek 10 elemanli iki dizinin toplamini üçüncü
bir diziye yazan program.
15
Örnek 10 elemanli iki dizinin toplamini üçüncü
bir diziye yazan program.
  • / Iki dizinin elemanlarinin toplanmasi/
  • for(i0ilt5i)
  • CiAiBi
  • / C dizisinin yazdirilmasi /
  • printf("C dizisi\n")
  • for(i0ilt5i)
  • printf("d\t",Ci)
  • include ltstdio.hgt
  • main()
  • int A5, B5,C5
  • int i
  • printf("A dizinin elemanlarini giriniz")
  • for(i0ilt5i)
  • printf("Ad", i)
  • scanf ("d",Ai)
  • printf("B dizinin elemanlarini giriniz")
  • for(i0ilt5i)
  • printf("Bd", i)
  • scanf ("d",Bi)

16
Örnek 10 elemanli A dizisinin en küçük elemani
bulup yazan program .
17
Örnek 10 elemanli A dizisinin en küçük elemani
bulup yazan program .
  • include ltstdio.hgt
  • main()
  • int A10
  • int i,enk
  • for (i0ilt10i)
  • printf("Ad", i)
  • scanf("d",Ai)
  • enkA0
  • for(i0ilt10i)
  • if (enkgtAi) enkAi
  • printf("Dizinin en küçük elemani d dir", enk)

18
Örnek 10 elemanli A dizisinin tek elemanlarindan
B dizisini olusturan program
19
Örnek 10 elemanli A dizisinin tek elemanlarindan
B dizisini olusturan program
  • include ltstdio.hgt
  • main()
  • int A10,B10
  • int i,j
  • // A dizisinin elemanlarinin okunmasi
  • for(i0ilt10i)
  • printf("Ad",i)
  • scanf("d",Ai)
  • j0
  • for(i0ilt10i)
  • if (Ai21)
  • BjAi
  • j
  • // B dizisinin yazdirilmasi
  • for(i0iltji)

20
Örnek 25 kisilik bir sinifin sinav sonuçlarini
okuyup ortalamasini bulan program
  • include ltstdio.hgt
  • main()
  • int ogr25
  • int i, toplam
  • float ortalama
  • /Ogrenci notlarinin okunmasi/
  • for(i0ilt25i)
  • printf("d\inci ögrencinin sinav notunu
    giriniz", i)
  • scanf ("d",ogri)
  • toplam0
  • for(i0ilt25i)
  • toplamtoplamogri
  • ortalamatoplam/25
  • printf("sinif ortalamasi f dir",ortalama)

21
2-Boyutlu Diziler
ÖrnekKullanicinin, 30 kisilik bir siniftaki her
ögrenci için 3er sinav notu girecegi ve her
sinav için sinif ortalamasinin ekranda
gösterilecegi bir program yaziniz. include
ltstdio.hgt int main(void) int not303
int i,j,toplam double orta /
Kullanicidan notlarin alinmasi/
for(i0ilt30i) printf(d. ogrenci
notlari,i1) for(j0jlt3j)
scanf(d, notij) /Her
sinavin ortalamasinin bulunmasi/
for(j0jlt3j) toplam0
for(i0ilt30i) toplamnotij
ortatoplam/30.0
printf(d. sinav ortalamasi 5.2f\n,j1,orta)
return (0)
22
  • // dizilerVeDonguler.c
  • include ltstdio.hgt
  • int main()
  • int i0
  • int dizi10
  • // diziyi doldur
  • for(i0ilt10i)
  • dizii i i
  • // diziyi yazdir
  • i0
  • while(ilt10)
  • printf("dizid d\n",i,dizii)
  • i

23
  • // ikiBoyutluDiziOkuYaz
  • include ltstdio.hgt
  • int main()
  • int i0,j0
  • int matris34
  • // diziye yaz
  • for(i0ilt3i) // satirlar icin
  • for(j0jlt4j) // kolonlar icin
  • matrisij i j
  • // diziden oku
  • for(i0ilt3i) // satirlar icin
  • for(j0jlt4j) // kolonlar icin
  • printf("d\t",matrisij)

24
  • // dogrusalSiralama.c
  • include ltstdio.hgt
  • void sirala()
  • void diziyiYazdir()
  • int sayilar15 102,97,34,65,324,21,546,2321,5,
    123,122121,7,13,675,0
  • void sirala()
  • int i0, j0, yedek0
  • for (i0ilt15i)
  • for (ji1jlt15j)
  • if (sayilarjltsayilari) // yer
    degistir
  • yedeksayilari
  • sayilarisayilarj
  • sayilarjyedek
  • // if sonu
  • // for j sonu
  • // for i sonu
  • void diziyiYazdir()
  • int i0

25
Siralama
  • Dizi elemanlarinin küçükten büyüge ve büyükten
    küçüge dogru dizilmesi islemidir.
  • Farkli performansa sahip bir çok yöntem vardir.
  • Buble sort Bu yöntemde ardisil iki yöntem
    karsilastirilir. Eger önceki eleman sonrakinden
    büyük ise elemanlar yer degistirilir. Bu sekilde
    dizi taranir. Eger herhangi bir degisiklik
    yapilmis ise islem tekrar edilir.

26
Buble sort
  • Baslangiç 1. Adim 2.Adim 3.Adim
  • 34 21 18 18
  • 21 18 21 21
  • 18 25 25 25
  • 25 34 34 34

27
Örnek 10 elemanli dizinin elemanlarini siralayan
program
  • include ltstdio.hgt
  • main()
  • int a10
  • int i,j,temp
  • /dizi elemanlarinin okunmasi/
  • for(i0ilt10i)
  • printf("dizinin d\inci elemanini
    giriniz",i)
  • scanf ("d",ai)
  • for(i0ilt10i)
  • for (ji1jlt10j)
  • if(ai gtaj)
  • tempai
  • aiaj
  • ajtemp
  • for(i0ilt10i)
  • printf("d, ",ai)

28
Örnek A ve B matrislerini toplayan program.
  • include ltstdio.hgt
  • main()
  • int A33 1,2,3,4, 5, 6, 7, 8, 9
  • int B33 2, 4, 8,3,6,9,4,16,64
  • int C3 3
  • int i, j
  • for (i0ilt3i)
  • for(j0jlt3 j)
  • CijAijBij
  • // C matrisinin yazdirilmasi
  • for (i0ilt3i)
  • for(j0jlt3 j)
  • printf("d ", Cij)
  • printf("\n")

29
Örnek A matrisinin içindeki en büyük ve en küçük
sayiyi bulan program
  • include ltstdio.hgt
  • main()
  • int A33
  • int enb
  • int enk
  • int i, j
  • // A matrisinin elemanlarinin okunmasi
  • for (i0ilt3i)
  • for(j0jlt3j)
  • printf("Add",i,j)
  • scanf("d",Aij)
  • enbA00
  • enkA00
  • //A matrisinin enk ve enk elemanlarinin
    bulunmasi
  • for (i0ilt3i)
  • for(j0jlt3 j)
  • if (enbltAij) enbAij
Write a Comment
User Comments (0)
About PowerShow.com