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


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
16.12.2007-17:47 #32938
Hocam o satır atlatan karakteri ( ascti kodu 10muş) tanıtmada zorluk çekiyorum. kendi fonksyonlarımı yazmaya çalışıyorum ve o karaktere gelince saçmalamaya başlıyo.

o karakteri

int i=10,j=0;
char satiratlat;
satiratlat = char(i);
if (*(words() + j) == satiratlat)
j++

gibi yazıyorum çalışmıyo. nasıl yazmalıyım???





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





Yazar
cengineer


avatar

Kayıt: 27.10.2006
16.12.2007-18:51 #32942
read_word_list_to_memory(); yazdığım zaman resimdeki hatayı veriyor neden olduğunu açıklayabilirseniz sevinirim çıldırmadan öncesilly








" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni




Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
16.12.2007-19:02 #32943
cengineer yazdi
 
read_word_list_to_memory(); yazdığım zaman resimdeki hatayı veriyor neden olduğunu açıklayabilirseniz sevinirim çıldırmadan öncesilly

dictionary.txt dosyasını debug klasörüne kopyaladın mı ? ..






Yazar
cengineer


avatar

Kayıt: 27.10.2006
16.12.2007-19:19 #32944
cantur yazdi
 
dictionary.txt dosyasını debug klasörüne kopyaladın mı ? ..


teşekkürler hocam bu yazılım işi ne stresli bişeymişd oh





" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni




Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
16.12.2007-20:07 #32947
extreme yazdi
 
Hocam o satır atlatan karakteri ( ascti kodu 10muş) tanıtmada zorluk çekiyorum. kendi fonksyonlarımı yazmaya çalışıyorum ve o karaktere gelince saçmalamaya başlıyo.

o karakteri

int i=10,j=0;
char satiratlat;
satiratlat = char(i);
if (*(words() + j) == satiratlat)
j++

gibi yazıyorum çalışmıyo. nasıl yazmalıyım???


kelimeyi okumak için neden bu kadar kastığını anlamadım. Bu kısım zaten hazır olarak var. Daha çok algoritma kurmaya odaklanın. Soruna gelince.

char kelime[20]
fscanf(di,"%s",kelime);

di : dosya pointere . yukarıdaki kod sana dosyadan bir satır okur ve bir alt satıra gecer. Satır sonlandırıcı ile ilgilenmene gerek kalmaz.





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
16.12.2007-20:24 #32948
Hocam o fonksyonlarla istediğim algoritmayı kuramıyorum. Benim o karakteri denetlemem lazım. Bunun yolu yokmu.confused





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





Yazar
sinan61


avatar
TRABZON
Kayıt: 05.12.2006
16.12.2007-23:28 #32949
Hocam read me dosyasında arkadaşınız her iki yönde (yatay dikey) kelime seçebilir yazıyo! bu ifade kullanıcının arzu ettiği bir ya da daha çok kelimeyi uygun koşulda puzzll a yerleştrmemz mi gerekyo tabi arzu ederse etmezse kafana göre takıl gibi bişey mi...açıklarsanız??






Nobody live like me!!!




Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
16.12.2007-23:55 #32950
sinan61 yazdi
 
Hocam read me dosyasında arkadaşınız her iki yönde (yatay dikey) kelime seçebilir yazıyo! bu ifade kullanıcının arzu ettiği bir ya da daha çok kelimeyi uygun koşulda puzzll a yerleştrmemz mi gerekyo tabi arzu ederse etmezse kafana göre takıl gibi bişey mi...açıklarsanız??


Her iki yöndeki minimum ve maksimum kelime sayısını seçebilir diyor. Kaç kelime olacağı konusunda bir sınırlama yok minimum ve maksimum değerleri var. Bu aralıktaki kelime miktarları kabul edilecek yani. Bu sınırlara çok fazla kafanızı takmayın bunlar oldukça büyük aralıklar olacak bulmacanın boyutuna göre.





Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
16.12.2007-23:57 #32951
extreme yazdi
 
Hocam o fonksyonlarla istediğim algoritmayı kuramıyorum. Benim o karakteri denetlemem lazım. Bunun yolu yokmu.confused


google : c file read functions

http://www.mrx.net/c/readfunctions.html


Bu linki bir incele istersen





Yazar
ramcho


avatar
denizli
Kayıt: 02.10.2006
17.12.2007-16:59 #32958
hocam.. siz secilen sıradaki bi kelimeyi matrise yerleştirrme kodunu yazmışınız ama..ben ordaki locx ve locy yi anlayamadım??önce locx ve locy diye değişken mi atayacaz??değişken atadım ama olmadı..locx ve locy kullanmadan onların yerine sayı verdim yine olmadı.. ordaki words içinse sadece başta char *words(); yazmamız yeterli sanırım...d ohd oh.................yardım ederseniz sevinirim...










Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
17.12.2007-17:56 #32960
ramcho yazdi
 
hocam.. siz secilen sıradaki bi kelimeyi matrise yerleştirrme kodunu yazmışınız ama..ben ordaki locx ve locy yi anlayamadım??önce locx ve locy diye değişken mi atayacaz??değişken atadım ama olmadı..locx ve locy kullanmadan onların yerine sayı verdim yine olmadı.. ordaki words içinse sadece başta char *words(); yazmamız yeterli sanırım...d ohd oh.................yardım ederseniz sevinirim...

// index : seçilen kelimenin listedeki sırası.
// locx : int pointer . Puzzleda kelimeyi yerleştireceğimiz sütun başlangıç numarası.
// locy : int pointer . Puzzleda kelimeyi yerleştireceğimiz. satır numarası 0 tabanlı.
// aşağıdaki kod yatayda bir kelimenin harflerini puzzle matrisine yerleştirir.
// eğer kelime uzunluğu matrisin sınırına dayanmıyor ise kelimenin sonuna sonlandırıcı bir kutu koyar.


int word_length = get_word_size_at(index);
int i;
//5. İnsert word into the puzzle.
for (i= 0; i< word_length; i++)
{
add_to_puzzle(*locx +i , *locy , *(words()+ index * WORD_LENGTH + i));
}
if(*locx + word_length < PUZZLE_COLUMNS)
add_to_puzzle(*locx + word_length , *locy , char(PUZZLE_FULL_SQUARE)); 


bu örnekteki locx ve locy değişkenleri int poiinter tipinde idi. Yani int *locx , *locy; şeklinde tanımlanmış durumdalar. Böyle yapmamın nedeni fonksiyonların içinde de değerini değiştirebilme imkanına sahip olmaktı. Neyse sorununa gelince; eğer locx ve locy yi normal tanımlarsan (pointer olmayan şekilde int locx,locy; gibi ) yukarıdaki kodda locx ve locy değişkenleri önündeki yıldız işaretlerini kaldıman gerekir. Çünkü pointer olmadıklarından kendileri direk veriyi temsil edeceklerdir. Bu düzenlemeden sonra kodu çalıştırabilirsin sanıyorum.





Yazar
ramcho


avatar
denizli
Kayıt: 02.10.2006
17.12.2007-19:56 #32961
int *locx,*locy;
int index=2;
int word_length = get_word_size_at(index);
int i;
char *puzzle();
char *words();
FILE *a;
if((a=fopen("dictionary.txt","r"))==NULL)
printf("dosya açılamadı
");
else {
read_word_list_to_memory();
for (i= 0; i< word_length; i++){

add_to_puzzle(*locx+i ,*locy, *(words()+ index * WORD_LENGTH + i));

}
if(*locx + word_length < PUZZLE_COLUMNS)
add_to_puzzle(*locx + word_length , *locy , char(PUZZLE_FULL_SQUARE));
}

hocam sadece bunlar yazılı program hata vermiyo ama exe yi çalıştırdığımda visualstudio2005 çalışmayı durdurdu diye uyarı gelip kapanıo..dediğiniz gibi pointer olmadan tanımlıyorum yine hata vermiyo ama yine çalışmıyo bi şeyi yanlış mı yazıyorum acaba????prayingpraying










Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
19.12.2007-17:35 #33030
ramcho yazdi
 
int *locx,*locy;


Uzun zamandır intenete giremedim sorunun hala devam ediyor ise sorunun oluştuğu kod satırını ve hata mesajını bildirirsen sorunu çözmeye çalışırız.





Yazar
ramcho


avatar
denizli
Kayıt: 02.10.2006
19.12.2007-23:12 #33037
 

(inş img yi doğru eklemişimdirstraight face)

hala bi şey yapamadım hocam hata vermiyo normalde ama exede ççalışmıyo..resimdeki windows hatasını veriyor ..teşekkürler










Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
19.12.2007-23:21 #33039
ramcho yazdi
 
FILE *a;
if((a=fopen("dictionary.txt","r"))==NULL)
printf("dosya açılamadı
");
else {


Kodundan bu kısımı çıkarman gerekiyor.

read_word_list_to_memory fonksiyonunun yapısına bakarsan bu fonksiyon içerisinde zaten dosyayı okumak için açma işlemini içeriyor. Sen yukarıdaki kod parçasını ekleyerek aynı dosyanın kapatılmadan iki defa açılmasına neden oluyorsun. Açtığın bir dosyayı fclose() ile kapamadan ikinci defa açamazsın sanırım problemin bu. Çalışmaya devam ..





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