Tam Sürümünü Görmek İçin : Arama yapan program!
Arkadaşlar şöyle bir sorum olacak;
önce bir dosyaya isim doğumgünü ve beş tane o ismin ilgi alanını giriyoruz, buraya kadar her şey tamam.
Sonra başka bir şıkta bir tane ilgi alanı yazıyoruz (mesela sinema) ve o ilgi alanıyla ilgilenen isimleri dosyadan okuyoruz (Sinema ile ilgilenenler x,y ve z'dir gibi): Ama işte bu arama olayını nasıl yapıyoruz?
Ayrıca tarih yazıp o tarihte doğanların isimlerinin de çıkması gereken bir program da var ama o üsttekinin aynı mantıkta bana nasıl yapabileceğmi anlatabilir misiniz?
teşekkürler
sekizbit
06/06/2007, 18:47
kullanman gerek dil nedir ? ve bu aldığın verileri dosyaya mı kaydediyorsun ?
C dilinde yapılacak program...
Evet dosyaya kaydedilmesi gerekiliyor dosyadan okunarak yapılacak işlemler..
sekizbit
06/06/2007, 23:50
Şöyle bi yöntem önerebilirim. özel bir karakter belirlersin, hatta karakter seti. mesela, #
atıyorum 4 tane özellik tutman gerekiyor
isim, yaş,telefon,ilgi alani.
bunu dosyaya kaydederken, her alanın arasına # koyarsın. ve her satırada 1 kişi yazabilirsin mesela.
ahmet#25#2122545#sinema
mehmet#32#2356578#tiyatro
gibi kaydersin dosyaya. sonra 2 boyutlu bi dizi yaparsın. bu dizinin her satırının sütunlarında o insana ait farkli özellikleri tutturursun. dosyadan okuturken de bu belirlediğin özel karakteri gördüğünde başka bir özelliğe geçmen gerektiğini, new line karakterini gördüğünde başka bir insana geçmen gerektiğini anlarsın.
bütün insanları dizilere aldıktan sonra zaten 1 küçük döngü ve if sınaması ile aradığın şeyleri rahatça bulurusn.
acehreli
07/06/2007, 00:56
sekizbit, bence okuma islemi sirasinda her satiri dogrudan bir Insan nesnesine dOnUsturmek daha kullanisli olur. Cunku o zaman programin elinde uzerinde calisabilecegi bir Insan toplulugu olur.
En kolayi, onlari dinamik bir Insan dizisine eklemek olur. Dizi doldukca realloc ile daha buyuk bir yer ayrilir ve devam edilir. (std::vector'un yaptigi gibi.)
Ali
sekizbit
07/06/2007, 22:47
C dilinde nesne olduğunu bilmiyordum :)
acehreli
07/06/2007, 23:01
Cok kisa yazdigin icin tam ne demek istedigini anlayamiyorum. :(
Eger C++'tan aliskanlikla yanlislikla yazdigimi dusunuyorsan; oyle degil. Bilerek yazdim. Ben "nesne"yi Ingilizce bilgisayar dunyasindaki "object"in karsiligi olarak kullaniyorum.
Ali
Ben "nesne"yi Ingilizce bilgisayar dunyasindaki "object"in karsiligi olarak kullaniyorum.
Ali
bu object terimini c için biraz açarmısınız, c de nesne kavramının neye denk düşdüğünü düşündüğünüzü anlamadım, struct tarzı yapılar için mi kullandınız?
acehreli
08/06/2007, 01:26
Nesneyi herhangi bir turun herhangi bir seyi icin... eee.. seyi icin... eee... nesnesi icin kullaniyorum. :D
Saka bir yana, hayir, yalnizca yapilar icin kullanmiyorum. int tUrUnun bir kullanimi bile bir nesne. "Degisken" diyemiyorum, cunku sabit nesneler de var. ("Sabit degisken" kulaga hos gelmiyor. ;) )
Bu konuda daha onceki tartismalari da hatirliyorum. Hatta galiba Cdili'nde ve galiba Necati Ergin'in de katildigi bir konudaydi. Yanilmiyorsam onun da bu kullanimi benimsedigini hatirliyorum.
Ali
özel bi karakter fln kullanmayada gerek yokki , dosyayı açıp döngü içinde eof 'a kadar dosya içindeki stringleri strcmp(numara,numaraAra); gibi karşılaştır, bulduğu zaman fscanf den buldugu kısmı dosyadan oku ekrana yazdır yada dosyaya kaydet..
sekizbit
08/06/2007, 03:13
Sayın acehreli, evet C++ tan alışkanlık olarak öyle yazdığınızı düşünmüştüm.
aslına bakarsanız eğer yanlış anlamadıysam benim söylediğim şeyle sizin söylediğiniz şey aynı gibi duruyor. sizin insan nesnesinden kastınız bir insana ait özelliklerin bi arada bulunduğu bir yapı sanırım. bende zaten 2 boyutlu bir dizinden bahsetmiştim, bu diziyi bir tablo olarak düşünürsek tablonun her satırında bir insan, ve bu satırın her kolonunda bu insana ait özellikler barınacak. bi alt satırda yeni bir insan.. burda pointer larla biraz haşır neşir olunup dizi bittiğinde de güzelce memory allocate işlemleri yapılabilir bence :)
ama şimdi bakınca struct kullanmanın daha mantıklı olacağini düşünüyorum :)
benim özel karakter önermekteki düşüncem ise şuydu. epeydir C ile dosya işleme yapmıyorum ama yanlış hatırkamıyosam, dosyadan bir string okutmak istediğinizde başladığınız yerden ilk gördüğü boşluk karakterine kadar olan kısmı alır. bu dosyada her insan ait farklı farklı şeyler barınacağına göre, bu alanları birbirinden bişeyle ayırmamız gerekir. mesela birinin ilgi alanlarında 1 kelime yazarken, bir başka insanın 2 kelime yazıyorsa ve siz bunları ayırmadısyanız sorun yaşarsınız.
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.