Dizilere Sayı Yayma

Inciperisi
17-11-2010, 02:25   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

Öncelikle merhaba.
Diyelim ki elimizde iki sayı var biri 54 olsun diğeri 12.
Bunların çarpımlarından elde edilen sayıyı bir diziye atmak istiyoruz. Yani 648 i x[3] dizisine nasıl dağıttırabiliriz.
 
Acil cevap lütfen =)
 
 

muh34
17-11-2010, 12:43   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Eğer bahsettiginiz durum sayının basamaklarını bir diziye atamaksa,elde edilen sayıyı basamaklarına ayırarak sırasıyla dizinin(array) kutularına atayabiliriz.Ornegin sayımız 648 ise,bu sayının 100'e bolumu,sayının yuzler basamagını verecektir.O halde,
dizi[0]=sayi/100; seklindeki bir ifade(statement) yazılabilir.
Sayının onlar basamagını elde etmek icin,once sayının yuzler basamagı atılarak,akabinde sayının 10'a bolumunden onlar basamagı elde edilir.O halde,
dizi[1]=(sayi/100)%10; yazılabilir.
Son olarak bir sayının birler basamagını elde etmek demek,ilgili sayının 10'a bolumunden kalanı bulmak demektir.
dizi[2]=sayi%10;
Dolayısıyla bu sekilde bir iterasyon ile sayı ayrılarak dizinin bolmelerine atanmış olacaktır.Ancak istediginiz durum,elde edilen sayının kendisini diziye atmak ise, yukarıdaki atamalardaki aynı mantık uyarınca bu işlem gercekleşir.Tek fark sayının parcaları degil,kendisini atamaktır.Ornegin,
dizi[0]=648 | dizi[1]=648 | dizi[2]=648 gibi dizinin herhangi bir indeksine deger ataması yapılabilir.
Başarılar

Inciperisi
17-11-2010, 14:13   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

Çok teşekkür ederim. Projeyi yapayım kendim inşallah, daha sonra burada konusunu yayınlasam bana profesyonel olarak yazar mısınız ?

muh34
17-11-2010, 14:29   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Projenizin cesitli bolumlerinde yardımcı olmaya calısırım,ancak projenizi kendi basınıza yapmanız sizin gelişiminiz acısından onemli olacaktır.
Başarılar

censez41
17-11-2010, 14:31   |  #5  
censez41 avatarı
Yıllanmış Üye
Teşekkür Sayısı: 3
1,705 mesaj
Kayıt Tarihi:Kayıt: Nis 2009
Alıntı: muh34  
Projenizin cesitli bolumlerinde yardımcı olmaya calısırım,ancak projenizi kendi basınıza yapmanız sizin gelişiminiz acısından onemli olacaktır.
Başarı
muh34 sorduğum sorular sana ulaşmıyormu hiç cevap vermiyorsun çok ayıp ediyorsun.

muh34
17-11-2010, 14:44   |  #6  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Sevgili censez41,gondermiş oldugunuz soruyu size mesaj olarak yanıtlamış bulunmaktayım,ancak sistemde bir sorun olduysa cevabı burada da aynen yayınlıyorum.
Yapay zeka,en basit tabirle,kendiliginden olmayan,programlanmıs bilişim sisteminden dogarak makineleri 'zekileştirmeye' yarayan bilgisayar bilim dallarından biridir.Ornegin bilgisayarlarımızda bulunan satranc oyununu dusununuz.Bu oyun oylesine bir kombinasyon sonucunda tasarlanmıştır ki,bilgisayar oynadıgı her hamlede en iyi sonucu verir.Bu durum yapay zeka mitolojisi icerisinde acıklanabilir.Bu durumu yaratan bilgisayarın zeki oldugu degil,aslında cok hızlı işlem yapabilme ozelligini 'zekileştirmek' mantıgı ile butunlestirmektir.
Sizin bahsettiginiz oyununuz yapay zeka formatı mantıklı.Oncelikle,bilgisayar her zar sonrasında tavla pullarını iteratif olarak mı hesaplıyor ? yoksa bir recursive yapı icerisinde mi yonetiyor ? benim tavsiyem,bir oyun agacı tasarlayarak(orn:binary tree-ikili agaç),bilgisayarın yapması gereken hamleleri,tasarlanan bu agac uzerinden yonetmesi olabilir.Ayrıca tasarlanan recursive bir yapı ile de sistem daha hızlı işleyecektir.
Başarılar

censez41
17-11-2010, 15:09   |  #7  
censez41 avatarı
Yıllanmış Üye
Teşekkür Sayısı: 3
1,705 mesaj
Kayıt Tarihi:Kayıt: Nis 2009
Alıntı: muh34  
Sevgili censez41,gondermiş oldugunuz soruyu size mesaj olarak yanıtlamış bulunmaktayım,ancak sistemde bir sorun olduysa cevabı burada da aynen yayınlıyorum.
Yapay zeka,en basit tabirle,kendiliginden olmayan,programlanmıs bilişim sisteminden dogarak makineleri 'zekileştirmeye' yarayan bilgisayar bilim dallarından biridir.Ornegin bilgisayarlarımızda bulunan satranc oyununu dusununuz.Bu oyun oylesine bir kombinasyon sonucunda tasarlanmıştır ki,bilgisayar oynadıgı her hamlede en iyi sonucu verir.Bu durum yapay zeka mitolojisi icerisinde acıklanabilir.Bu durumu yaratan bilgisayarın zeki oldugu degil,aslında cok hızlı işlem yapabilme ozelligini 'zekileştirmek' mantıgı ile butunlestirmektir.
Sizin bahsettiginiz oyununuz yapay zeka formatı mantıklı.Oncelikle,bilgisayar her zar sonrasında tavla pullarını iteratif olarak mı hesaplıyor ? yoksa bir recursive yapı icerisinde mi yonetiyor ? benim tavsiyem,bir oyun agacı tasarlayarak(orn:binary tree-ikili agaç),bilgisayarın yapması gereken hamleleri,tasarlanan bu agac uzerinden yonetmesi olabilir.Ayrıca tasarlanan recursive bir yapı ile de sistem daha hızlı işleyecektir.
Başarılar


cevabın geldi ama ben bir soru daha sormuş bulundum ve cevabı hala gelmedi   :)))

panda34
17-11-2010, 23:01   |  #8  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,344 mesaj
Kayıt Tarihi:Kayıt: Ara 2007
Alıntı: censez41  
cevabın geldi ama ben bir soru daha sormuş bulundum ve cevabı hala gelmedi   :)))
Adam google mi ya bekle biraz :D

muh34
18-11-2010, 05:04   |  #9  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Sorunuzu başkalarınında yararlanabilecegini dusundugumden ayrı bir konu baslıgında acıkladım.Umarım size bir fikir vermiştir.
Başarılar

Inciperisi
21-11-2010, 19:03   |  #10  
OP Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Kas 2010
Alıntı: muh34  
Projenizin cesitli bolumlerinde yardımcı olmaya calısırım,ancak projenizi kendi basınıza yapmanız sizin gelişiminiz acısından onemli olacaktır.
Başarı
 
Beni yanlış anladınız. Zaten projeyi başkasına yazdırma çabasında değilim çünkü gerçekten öğrenmek istiyorum. Demek istediğim projemi kendim yazıp TESLİM ETTİKTEN SONRA size konusunu versem siz profesyonel yazıp bana atabilir misinizdi ?

muh34
21-11-2010, 20:00   |  #11  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Proje konusu derken,proje rapor taslagının hazırlamasını mı kastediyorsunuz ?

Inciperisi
21-11-2010, 20:21   |  #12  
OP Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

=) Hayır. Şimdi bizim programlama dersinden ödevimiz var. Ben daha yeni yeni c öğreniyorum. Bu nedenle profesyonel yazımları inceliyorum. Benim yazacağım kod profesyonel yazım olmayacağı için, ben ödevimi teslim ettikten sonra size ödev konusunu yollasam bana profesyonel bir kod yazabilir misiniz demek istedim. Yalnızca incelemek için. =)
Sizden ödevimi yapmanızı istemiyorum bundan zaten bende hoşlanmam =) O yüzden ödevimi teslim ettikten sonra bana profesyonel kod yazıp yollayabilir misiniz dedim.
Umarım anlatabilmişimdir. =)

muh34
21-11-2010, 20:32   |  #13  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Anladım.Siz konuyu yolladıgınız zaman,musait bir zamanda yazmaya calısır burada yayınlarım incelersiniz.
Başarılar

Kapalı Hesap (153535)
02-10-2011, 16:18   |  #14  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009
Alıntı: muh34  
Eğer bahsettiginiz durum sayının basamaklarını bir diziye atamaksa,elde edilen sayıyı basamaklarına ayırarak sırasıyla dizinin(array) kutularına atayabiliriz.Ornegin sayımız 648 ise,bu sayının 100'e bolumu,sayının yuzler basamagını verecektir.O halde,
dizi[0]=sayi/100; seklindeki bir ifade(statement) yazılabilir.
Sayının onlar basamagını elde etmek icin,once sayının yuzler basamagı atılarak,akabinde sayının 10'a bolumunden onlar basamagı elde edilir.O halde,
dizi[1]=(sayi/100)%10; yazılabilir.
Son olarak bir sayının birler basamagını elde etmek demek,ilgili sayının 10'a bolumunden kalanı bulmak demektir.
dizi[2]=sayi%10;
Dolayısıyla bu sekilde bir iterasyon ile sayı ayrılarak dizinin bolmelerine atanmış olacaktır.Ancak istediginiz durum,elde edilen sayının kendisini diziye atmak ise, yukarıdaki atamalardaki aynı mantık uyarınca bu işlem gercekleşir.Tek fark sayının parcaları degil,kendisini atamaktır.Ornegin,
dizi[0]=648 | dizi[1]=648 | dizi[2]=648 gibi dizinin herhangi bir indeksine deger ataması yapılabilir.
Başarı
Hocam sanırım onlar basamağını bulmak için dizi[1]=(sayi%10)%10 şeklinde yazmak gerekiyor.Diğer türlü yanlış hesaplıyor.