Merhabalar;
D dilini Ali Hocamın D programlama dili adlı çalışmasından öğreniyorum. 19 numaralı konu başlında anlatılanlara göre şöyle bir program tasarladım:
import std.stdio;
void main()
{
writeln(": DILIMLER: ");
writeln();
writeln("Var olan bir dizinin belirli bir bolumune erisim saglayacak olan yapiya dilim denir.");
writeln("Dilim sayesinde var olan baska bir dizinin, elemanlarinin bir bolumunu,");
writeln("sanki daha kucuk ayri bir diziymis gibi kullanabiliriz. ");
writeln("Ornek olarak ayGunleri dizisini dorde dilimleyerek birbiriden ayri dort ");
writeln("ceyrek diziymis gibi soyle kullanabiliriz. ");
writeln();
int ayGunleri[12] = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
int ilkCeyrek[] = ayGunleri[0..3];
int ikinciCeyrek[] = ayGunleri[3..6];
int ucuncuCeyrek[] = ayGunleri[6..9];
int dorduncuCeyrek[] = ayGunleri[9..12];
writeln("ilk ceyrek dilimimiz: ", ilkCeyrek);
writeln("Dilimler ayri birer dizi degildirler. Bunlar asil dizinin elemanlarina erisim ");
writeln("saglarlar.Dilimlerin elemanlarina yapilan her mudahale diziye de yansir.");
writeln("ilkCeyrek dilimine bir eleman ekleyelim ");
writeln();
ilkCeyrek ~= 40;
writeln("ilkCeyrek dizimizin hali: ", ilkCeyrek);
writeln("ayGunleri dizimiz ise: ", ayGunleri);
writeln("Himm. dilimlere deger ekledik ama bu eklememiz ana diziye yansimadi -");
writeln("cunku ana dizimiz sabit uzunluklu- ancak bakalim degisiklik yapilabiliyor mu? ");
writeln();
ilkCeyrek[] = 1;
ikinciCeyrek[]=2;
ucuncuCeyrek[]=3;
dorduncuCeyrek[]=4;
writeln("ilkCeyrek dizimiz : ", ilkCeyrek);
writeln("ana dizimiz ayGunleri ", ayGunleri);
}
çıktı: ilkCeyrek dizimiz : [1, 1, 1, 1]
ana dizimiz ayGunleri [31, 28, 31, 2, 2, 2, 3, 3, 3, 4, 4, 4]
Açıklamam:
"ayGunleri dizisi sabit uzunluklu bir dizi. Onu dilimledigimizde ise dilimlerimiz dinamik dizi haline geliyor. Biz biliyoruz ki dinamik dizi halindeki diziler eleman alabilirler. Oysa kitapta dizi dilimlerine erisilip onlarda degisiklik yapildiginda dizinin kendisi de bundan etkileniyor diye belirtilmişti. O halde ilkCeyrek dizisine ekledigimiz 40 degerindeki bir eleman dizi yapısını degistirecek mi diye bakmak istedim. Degistirmedi. Dizi sabit uzunluklu oldugundan oyle olması bana mantıksız gelmedi. Ancak hem ilkCeyrek dilimi hem de diger ceyreklerin degerlerini kitaptaki örnege gore degistirdigimde icerigine 40 degerli eleman ekledigim ilkCeyrek dilimi haric diger dilimlerde degisiklikler olurken ve bu ana dizimize yansirken ilk Ceyregin temsil ettigi dilim ana dizimizdeki eski halini korudu. "
Sorum: Peki ilkCeyrek diliminin veya ana dizimiz olan ayGunleri dizimizin bu davranisi normal midir_?
Teşekkürlerimle
Mert.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply