Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > Programming Languages Proje
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
26.12.2007-00:25 #33201
burakkanmaz yazdi
 

*(words() + index * 20 + i) şeklinde i ye bağlı harfleri okuyabilirsin ki. Şekil ile göstermek gerekirse zaten bilgileri şöle depolanıor,

[a][h][m][e][t][][][][][][][][][]

yani sen [] (null) karakterini görene kadar oku, görünce durdur okumayı. Satırla uğraşmana gerek kalmaz o zaman.


ben bunu bilmiyordum peki kelimenin kaç harfli olduğunu nasıl tanımlayabilirim.






The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
reader


avatar

Kayıt: 24.12.2007
26.12.2007-00:26 #33202
ya arkadaslar dictionary.txt dosyasını debug klasorune kopyalamama ragmen bu hatayı verıyod ohdüzeltebilen varmı???neyapmam lazımconfused
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!

Program: ...ctReleaseV1_1ProjeVisualStudio6_0Debugvs6_buildPuzzle.exe
File: fseek.c
Line: 146

Expression: str != NULL

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)






Yazar
burakkanmaz


avatar
Gaziantep
Kayıt: 02.10.2006
26.12.2007-00:29 #33203
extreme yazdi
 
ben bunu bilmiyordum peki kelimenin kaç harfli olduğunu nasıl tanımlayabilirim.


*(words() + index * 20 + i);

ile diyelim 5.kelime olan "ahmet" i ele alalım.
index = 5 için
*(words() + 100 + i);
olur ve i = 0 için bize "a" nın pointer i döner, i = 1 için "h" nin pointer i döner. böle devam edip gider.

kaç harfli olduğuna gelince;
bellekte harf gelmeyen tüm adreslerde \0 (null) vardır. Sen kelimenin uzunluğunu bulmak istiyorsan kasmana gerek yok öncelikle, çünkü get_word_size_at(i); fonksyionu var. i=5 için bize "ahmet" kelimesinin uzunluğu olan 5 değerini int türünde dönderecektir bu fonksyion.

Hocanın yazdığı fonksiyonlar bir çok işi yapıyor zaten. Dosyadan okuma, uzunluk bulma vs. gibi işler için kasmaya gerek yok. Hepsi hazır. peace

reader yazdi
 
ya arkadaslar dictionary.txt dosyasını debug klasorune kopyalamama ragmen bu hatayı verıyod ohdüzeltebilen varmı???neyapmam lazımconfused

Debug dan bir önceki klasore de kopyala. Yani ..Proje\VisualStudio2005\ içine veya ..Proje\VisualStudio6\ Bu sorunun çözümü önceki sayfalarda var ama çok uzadığı için konu :) bulunamıyor.





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
26.12.2007-12:53 #33220


Hocam bu programdan kaç alırımbiggrin. Sürekli aynı sonucu veriyor kaç puan kırarsınız.

yatay sıraladım dikey kendiliğinden oldutongue. 20 tane kare var tam sınırdalaughing





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
26.12.2007-13:27 #33221
laughing Alacağın puan diğer arkadaşların başarısına bağlı.





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
26.12.2007-14:34 #33222
hocam bu rand() fonsyonunda 148784 elde etmek için rand() + rand() + rand() + rand gibi yazmayı düşünüyorum. bunların hepsi aynı değeri üretirmi. Farklı değerler üretmek için ne yapabilirim.???





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
26.12.2007-14:52 #33223
Farklı değerler üretiyormuş.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
fonemi


avatar

Kayıt: 09.01.2007
26.12.2007-16:26 #33227
Hocam sizin yazdığınız generate random fonksiyonuyla alakalı benim de bir sorum var. Sonuç değişkenine ((float)rand()/(float)RAND_MAX) * 20000 sayısını hem ekleyip hem çıkarmışsınız. Bunun amacı ne acaba ? Bir şekilde virgülden sonraki kısmı mı yok ediyorsunuz ? Evetse nasıl ?





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
26.12.2007-16:36 #33230
Hocam

double rasgele(){

double index;
index = (rand() %17775) + rand() + rand() + rand() + rand();

return index;
}

böyle bir fonsyon kullanıp programda

double ran;
ran = rasgele();
*(puzzle + 20*ran + i)

gibi yazdığımda pointer aritmetiğinde int kullan gibi bir hata verior. Ne yapmalıyım. her döngüde random için 5 değişken mi ayırmalıyım.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
26.12.2007-17:06 #33234
fonemi yazdi
 
Hocam sizin yazdığınız generate random fonksiyonuyla alakalı benim de bir sorum var. Sonuç değişkenine ((float)rand()/(float)RAND_MAX) * 20000 sayısını hem ekleyip hem çıkarmışsınız. Bunun amacı ne acaba ? Bir şekilde virgülden sonraki kısmı mı yok ediyorsunuz ? Evetse nasıl ?


Rand() + Rand() gibi bir yaklaşım size tam bir rasgelelik sunmaz. Küçük sayıların oluşma olasılığını yok ettiğiniz gibi çoğu değer orta kısımdaki sayılardan türer
ör: 5 + 5 : 10 , 10 + 0 : 10 ; Görüleceği gibi bu yaklaşımla 20 veya 0 getirmek 10 getirmekten zor hatta oldukça düşük ihtimal. Benim yazdığımdaki ekleme çıkarma bu rasgelelik mitarını arttırmak için.

Misal sizde : her basamağı ayrı bir rand() la hesaplayıp bunları bileştirerek yazabilirsiniz. Örnekteki fonksiyon çok güzel bir yaklaşım değil ama idare eder.





Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
26.12.2007-17:10 #33235
extreme yazdi
 
Hocam

double rasgele(){

double index;
index = (rand() %17775) + rand() + rand() + rand() + rand();

return index;
}

böyle bir fonsyon kullanıp programda

double ran;
ran = rasgele();
*(puzzle + 20*ran + i)

gibi yazdığımda pointer aritmetiğinde int kullan gibi bir hata verior. Ne yapmalıyım. her döngüde random için 5 değişken mi ayırmalıyım.


Yani hatanı zate yazmışın buraya ran değişkenini double tanımlamışsın ve son satırdaki pointer işleminde cast yapmadan kullanıyorsun. Hata bu. Dikkat bizim kelime dizisi int sınırını aştığı için long kullanmaya özen gösterin.
Problemini son satırı şu şekilde düzenleyerek giderebilirsin sanırım.
*(puzzle + 20*((long)ran) + i )

Ayrıca bu rand() yapın güzel değil eski postları incele istersen.






Yazar
kartane


avatar
istanbul
Kayıt: 22.02.2007
27.12.2007-00:52 #33264
Hocam,kötüyüm kötüyüm demekte haklıymışsınız.:):)Şu saat oldu halaaaaa projeyi idrak etmeye çalışıyorumconfusedd ohd ohworriedworriedconfusedd oh





Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
27.12.2007-13:08 #33269
Aslında geleceğe yönelik sizin iyliğiniz için algoritma ağırlıklı bir ödev verdik ama programlama dersine de ders geçme kaygısı ile yaklaşıyor olmanızdan dolayı kötü görünüyoruz sanırım.

Projeye başlayamamış arkadaşlar bu aşamayı başarmışlardan yardım isteyin. Proje bu kapsamda sosyal bir amaç da güdüyor.laughing. Ben kopya ödev vermeyin dedim. Sanırım bu ortak çalışmayın gibi bir mana ile anlaşılmış. Başarı için birlikte çalışmak önemli. Bilgisini sizle paylaşmak istemeyene zaten diyeceğimiz bir şeyimiz yok.sad







Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
27.12.2007-13:20 #33270


Hocam bu yatay oluyor ama dikey olmuyobeat upsillyshocksillydroolingd oh.

Kitlenip kalıyo program.skull





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
27.12.2007-13:25 #33271
extreme yazdi
 

Zaten olay yatayla dikeyi aynı anda gerçekleştirebilmek.
Adım adım bulacaksın çözümü hadi bakalım biraz gaz. Hem daha yazdığın kod 2sn nin altında çalışıyor.





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb