Professional Documents
Culture Documents
İki̇ Botutlu Di̇zi̇
İki̇ Botutlu Di̇zi̇
=
A J @ K
1 2 - H
B J @ >
= tamsay > 9 H%1 9 1 =
,ekil.2.J 2=! isimli dizinin tanm "e "eri atanm +ali.
= dizisinde =7>%H; n bellekteki yerinin bulunmas9
=7>%H; demek 9 =rarnan eleman dizinin >.satr% ile H.stununun kesim
noktasndaki elemandr.
Bir baka deyile > nc satrdaki Hnc elemandr. *nki ?(> y(H dr.
Bu noktada yaplmas gerekenler 9
1. 0nce aranan elemann bulundu$u satrdan nce ka tane satr oldu$u
+esaplanr. Bunun iin aranan elemann bulundu$u satrda 1 karlr. 5ani
D)E1F #orml kullanlr.
A =
,ekil.2.1K 2=! simli Dizinin /atr 0ncelikli .larak Belle$e 5erleimi
=dresndis/atrDe$eri1%11.satr>i411%2@i421%>Ji4>1%HBi4H2%12.satrHi4-2%2-i4@2%>2i4A2%H1i4B>%1>.satrKi4J>%2@i41K>%>Ji411>%HA
Cerilen rnekte )(> dr. Ce aranan de$er >E1(2 dir. 5ani 2 adet satr "ar.
2. 1er satrda ka eleman oldu$u bulunur. Bu de$er dizi tanmndaki ilk
boyuttan alnr bu rnekte H dr.
>. 1nci "e 2nci admlardaki bulunan de$erler arplarak bir de$er elde
edilir. Bu de$er aranan satra kadarki satrlarda ka eleman oldu$unu
gsterir bu rnekte bu de$er B dir.
H. /on olarak =7>%H; deki 2nci rakam olan H de$eri >nc admda bulunan
de$ere eklenir. Ce aranan elemann bellekte balang elemanna gre
kanc eleman oldu$u bulunur. Bu rnekte >nc satrdaki Hnc eleman
aranmaktadr. /onu olarak =7>%H; eleman bellekte D)E1FLn4y (D>E1FLH4H(12
bulunur. Bunun anlam aranan eleman dizinin ilk elemanndan itibaren
bellekteki 12nci eleman dr. lk eleman i gibi bir adreste oldu$undan 12nci
elemanda i411 adresinde bulunur.
Gormlde "erilen "e bir satrdaki eleman saysn "eren 2n! de$eri dizinin
satrnn boyutlar cinsindende yazabiliriz.
:
1
E8
1
41 9 =lt "e st snrlar "erilmi iki boyutlu bir dizinin satr
ncelikli belle$e yerlemesine gore +er+angi bir elemannn bellek adresini
"eren #orml.
2.1.> ki Boyutlu Dizi ile ilgili ilemler.
Ceri yaps olarak tanmlanan dizilerle ok eitli ilemler yaplabilir.
Bunlar diziye "eri okuma% dizide bulunan "erilerin de$erlendirilmesi%
dizideki "erilerin gncelletirilmesi "e dizideki "erilerin silinmesi
ilemleri olarak saylabilir. Bu ilemlerin nasl yapld$ aa$da tek tek
ele alnmakta "e bir rnek zerinde aklanmaktadr.
2.1.>.1 ki Boyutlu Diziye "eri .kuma.
,ekil 2.J de tanm yaplan "e de$er atanan 2=! isimli dizinin
algoritmasn yazalm "e bu ilemlerin nasl yapld$n aklayalm.
=lgoritmann aklamas 9
=dm.1 9 Bu admda algoritmada kullanlacak olan 2=! isimli iki boyutlu
dizi tanmlanmakta "e sat indis de$ikenine ilk de$er atanmaktadr.
=dm.2 9 Bu admda algoritmann satr indisi kontrol edilmekte e$er satr
de$eri > den bykse ilem ak adm.- e ynlendirilmektedir. Bu admda
di$er indis de$ikeni olan sutun de$ikeninede ilk de$er atamas yaplr.
=dm.> 9 Bu admda sutun de$eri kontrol edilmekte. 6$er bir satr bitmi
ise bir sonraki satrn elemanlarnn alnmas iin ilem ak adm 2 ye
ynlendirilir.
D?
1
E1FD:
1
E8
1
41F45
koordinati "erilen satrdaki kolonde$eri
Bir satrdaki eleman says
koordinat "erilen satrdan 1 eksik satr miktarn "erir
=dm.H 9 Bu admda diziye de$er okunmakta "e yeni sutun de$eri iin ilem
ak adm.> e ynlendirilmektedir.
=dm.- 9 Bu adm algoritmann son adm olup bu admn ilenmesi ile
algoritma sonlandrlr.
ki boyutlu dizide +er+angi bir dizi eleman gsterilmek istenirse iki tane
indis de$eri kullanlr. Bunlar sras ile dizinin elemann belirten satr
"e stun de$erleridir. 0rnek Dizi
1
7-%>;% Dizi
1
72%H; gibi.
=lgoritma kiBoyutluDiziyeCeri.ku
MMBu algoritma H?> boyutunda iki boyutlu tamsay tipinde 2=! isimli
diziyi tanmlayarak dizinin eleman de$erlerini "eri ortamndan okur.
=lgoritmada kullanalan 2sat! "e !sut! de$ikenleri% tamsayi
de$ikenler olup dizinin satir% sutun de$erlerini tutmak iin
kullanlan indis de$ikenlerdir. 2sayi! de$ikeni tamsayi tipinde
de$iken olup "eri ortamndan de$er okumakta kullanlr.MM
1. 7lk lemler;
=719H%19>;&amsayN
satOK
2. 7Dizinin /atr Boyutunu Pontrol 6t;
satOsat41N
sutOKN
i# satQ> t+en adm - e gitN
>. 7Dizinin /utun Boyutunu Pontrol 6t;
sutOsut41N
i# sutQH t+en adm 2!ye gitN
H. 7Dizi!ye De$er .ku;
okuDsayFN
=7sut%sat;OsayN
=dm >!e git
-. 7lem Bitir;
Dur.
=lgoritma.2.2
2.1.>.2 ki Boyutlu Dizinin 'nlenmsi.
=lgoritma.2.2 ile ,ekil.2.J daki iki boyutlu dizi tanmland "e diziye
de$er okuma ilemi gerekletirildi. ,imdide dizide "eri gnleme ileminin
nasl yapld$n =lgoritma.2.> ile aklamaya alalm.
=lgoritma.2.>% 2=! isimli dizinin elemanlarn tek tek ziyaret etmekte "e
bu esnada sutunRde$eriIsatrRde$eri olan dizi elemanlarn s#r
yapmaktadr. =lgoritmann =klamas "e kendisi aa$dadr.
=lgoritmann =klamas 9
=dm.1 9 Bu admda H?> buytundaki iki boyutlu dizi tanmlanarak indis
de$ikenlerinden birisi olan sat de$ikenine ilk de$er atanr.
=dm.2 9 Bu admda algoritmann sat indis de$ikeni kontrol edilir. /at
de$eri > den bykse ilem tamamlanmtr. =lgoritmann ilem ak adm.-
e ynlendirilir "e algoritma sonlandrlr.
=dm.> 9Bu admda algoritmanan ikinci indis de$ikeni olan sut de$ikeni
kontrol edilir. /ut de$eri H den bykse bir satrdaki elemanlardan istenen
art sa$layanlar gnlenmitir. Bir sonraki satrdaki elemanlarn
gnlenebilmesi iin algoritmann ilem ak adm.2 ye ynlendirilir.
=dm.H 9 Bu admda algoritmada istenen ilem yaplr. 5ani sutun de$eri
satrdan kkse dizinin o eleman s#r yaplr. lem ak adm.> e
ynlendirilir.
=lgoritma kiBoyutluDizi'nle
MMBu algoritma H?> boyutunda iki boyutlu tamsay tipinde 2=! isimli
diziyi dolar. Bu esnada sutun indisi satr indisinden kk "eya
satr indisine eit olan dizi elemanlarnn de$erini s#r yapar. MM
1. 7lk lemler;
=719H%19>;&amsayN
satOK
2. 7Dizinin /atr Boyutunu Pontrol 6t;
satOsat41N
sutOKN
i# satQ> t+en adm - e gitN
>. 7Dizinin /utun Boyutunu Pontrol 6t;
sutOsut41N
i# sutQH t+en adm 2!ye gitN
H. 7Ceri 'nle;
S# sutIsat t+en =7sut%sat;OKN
=dm >!e git
-. 7lem Bitir;
Dur.
=lgoritma.2.>
Bu algoritma ile iki boyutlu bir dizinin elemanlarnn gnlenmesi yapld.
2.1.>.> ki Boyutlu Dizi 6lemanlarnn De$erlendirilmesi.
ki boyutlu dizi elemanlarnn de$erlendirilmesinin nasl yapld$n bir
rnek zerinde yazaca$mz 2 algoritma ile gsterelim. Da+a nce istanbulun
bir gn boyunca +er saat ba llen scaklk de$erini tutan rne$i >K
gnlk sre iin yapacak olan algoritmay "e gnlk scsklk ortalamas ile
aylk scaklk ortalamasn bulan 2 ayr algoritma ile gsterelim. lk
olarak >K gn boyunca +er gn 2H adet scaklk de$erini okuyup iki boyutlu
dizide saklayan algoritmay "e aklamasn yazalm.
=lgoritma /caklk.ku/akla
=
A J @ K
1 2 - H
B J @ >
=
Dizinin ilk 1ali
=
A K K K
1 2 K K
B J @ K
=
=lgoritma uygulandktan sonra gnlenmi dizi
MMBu algoritma 2H?>K boyutunda iki boyutlu tamsay tipinde 2Ss!
isimli diziyi tanmlayarak istanbulun >K gn boyunca +er gn +er
saat ba llen scaklk de$erini "eri ortamndan okuyup saklayan
bir algoritmadr. =lgoritmada kullanalan 2saat! "e 2'n!
de$ikenleri% tamsayi de$ikenler olup dizinin indis
de$ikenleridir. 2derece! de$ikeni tamsayi tipinde de$iken olup
"eri ortamndan scaklk de$erini kumak iin kullanlr.MM
1. 7lk lemler;
=7192H%19>K;&amsayN
'nOK
2. 7Dizinin 'n Boyutunu Pontrol 6t;
'nO'n41N
saatOKN
i# gnQ>K t+en adm - e gitN
>. 7Dizinin /aat Boyutunu Pontrol 6t;
/aatOsaat41N
i# saatQ2H t+en adm 2!ye gitN
H. 7Dizi!ye De$er .ku;
okuDdereceFN
Ss7gn%saat;OdereceN
=dm >!e git
-. 7lem Bitir;
Dur.
=lgoritma.2.2
,imdi 'nlk "e aylk scaklk ortalamasn bulacak olan algoritmay
yazalm "e ilem admlarnn aklamasn yapalm. =d geen algoritmann
aklamas "e algoritmann kendisi aa$dadr.
=dm.1 9 Bu admda ilk ilemler olarak Dizi tanmlanr "e de$ikenlere ilk
de$erler "erilir.
=dm.2 9 Bu admda dizinin gn boyutu kontrol edilir. 6$er >K gn dolmu
ise aylk ortalama +esaplanarak yazdrlr "e ilemin tamamlanmas iin
ilem ak algoritmann son komutuna ynlendirilri.
=dm.> 9Bu admda dizinin saat boyutu kontrol edilir. 6$er saat 2H den
bykse gnlk scaklk ortalamas +esaplanr "e yazdrlr. 'nlk
scaklk ortalamas sonra kullanlmak zere aylk scaklk ortalamasn
bulunmas iin ona eklenir. 'nlk scaklk ortalamas yazdrlarak ilem
ak adm.2 ye ynlendirilir.
=dm. H9 Bu admda 'nlk ortalamann +esaplanmas iin gnlk scaklk
de$erleri toplanr.
=dm.- 9 Bu adm algoritmann son adm olup bu admda ilem sonlandrlr.
=lgoritma kiBoyutluDiziDe$erlendir.
MMBu algoritma 2H?>K boyutunda iki boyutlu tamsay tipinde 2Ss!
isimli dizide bulunan istanbulun +ergn 2H saat boyunca saat banda
llm olan bir ayl scaklk de$erlerini kullanarak istanbulun
gnlk "e aylk scaklk ortalamasn +esaplar. =lgoritmada
kullanalan 2saat! "e 2'n! de$ikenleri% tamsayi de$ikenler olup
dizinin indis de$ikenleridir. 2'ort! de$ikeni gnlk scaklk
ortalamasn% 2=ort! de$ikeni ise aylk scaklk ortalamasn tutan
de$ikendir.MM
1. 7lk lemler;
=7192H%19>K;&amsayN
'nOK
'ortOK
=ortOK
2. 7Dizinin 'n Boyutunu Pontrol 6t;
'nO'n41N
saatOKN
i# gnQ>K t+en adm begin
=ortO=ortM>K
5azD=ortFN
=dm - e gitN
6ndN
>. 7Dizinin /aat Boyutunu Pontrol 6t;
/aatOsaat41N
i# saatQ2H t+en begin
'ortO'ortM2HN
5azD'ortFN
=ortO=ort4'ortN
'ortOKN
adm 2!ye gitN
durN
H. 7'nlk s topla;
'ortO 'ort47gn%saat;N
=dm >!e git
-. 7lem Bitir;
Dur.
=lgoritma.2.2
1eriki algoritmann yaptklarn yapan pascal program aa$dadr.
Trogram sN
Car
D71..>K%1..2H; o# integerN
Trocedure salN
Begin
Gor gun9(1 to >K do
Gor saat9(1 to 2H do readDdDsaat%gunFFN
6ndN
Trocedure sde$erlendirN
Begin
.rta9(KN
Gor gun9(1 to >K do Begin
.rtg9(KN
Gor saat9(1 to 2H do
ortg9(ortg4d7saat%gun;N
UriteD2'nlk .rtalama s (!%ortgM2HFN
.rta9(orta4ortgN
6ndN
UriteD2=ylk .rtalama (!%ortaM>KFN
6ndN
Begin
SsalN
Ssde$erlendirN
6nd.
V include Wiostream.+Q
"oid salDFX
int degerN
#or D
int i(1NiW>KNi44FX
#or Dint Y(1%YW2HNi44FX
cinQQdegerN
D7i;7Y;99degerN
Z
Z
"oid sdegerlendirDFX
int ortaDKFN
#or Dint gun(1NgunW>KNgun44FX
int ortgDKFN
#or Dint saat(1NsaatW2H%saat44FX
ortg(ortg4d7saat%gun;N
coutWW['nlk .rtalama s([WWortgM2HN
orta(orta4ortgN
coutWW[=ylk .rtalama s([WWortaM>KN
Z
Z
int mainDFX
salDFN
sdegerlendirDFN
return KN
Z