C Kelime Okuma Ödevi
-
istanbul üniversitesi bilgisayar mühendisliğinde verilen ödevi paylaşmak istedim.
ödevin orjinal hali linktedir.daha önce böyle bir şey yazmıs olan var mı?
https://hotfile.com/dl/155976744/a3b59b5/Odev_0_PL_HW2_20120505_545.pdf.html
Kelime Bulucu
Bu ödevde hazırlayacağınız program konsoldan çağrılırken n adet dosya ismini alabilecek şekilde
tasarlanacaktır. (program en az bir en fazla 20 dosya ile çalışabilecek şekilde tasarlanmalıdır.)
Dosya isimleri konsoldan (int argc , char * argv[]) kalıbı kullanılarak alınacaktır.
Tüm dosyalar metin formatında olacaktır. Kelime ayracı olarak “boşluk” “satır sonu” “nokta” “virgül”
ve “:” karakterleri kullanılabilir. Program bu karakterlere göre dosyadan okuduğu metni kelimelere
bölecektir.
Program dosyalardaki kelimeleri okuyarak birbirinden ayıracak, Dosyalarda geçen kelimelerin en fazla
geçtiği dosyadaki değeri ve tüm dosyalardaki değerini hesaplayacaktır.
Kelimeler sonrasında alfabetik olarak küçükten büyüğe sıralı şekilde, her satırında:
Kelime , dosyalardaki toplam sayısı , en fazla bulunduğu dosyadaki sayısı formatında çıkış dosyasına
“output.txt” yazılacaktır. Çıkış dosyasının sıralı olması zorunludur.Örnek senaryo:
Yazdığınız program : mycode.exe
Okunacak dosyalar : dosya1.txt , dosya2.txt dosya3.txt
Dosya içerikleri:
Dosya1.txt
Ahmet Ahmet Ali Ali.Ali.Ali
Dosya2.txt
Ali,Ali:Ali Ali
Ah met veli
Dosya3.txt
Murat demet
Uygulama Çağrısı : mycode.exe dosya1.txt dosya2.txt dosya3.txt
output.txt içeriği:
Ah,1,1
Ahmet,2,2
Ali,8,4
demet,1,1
met,1,1
veli,1,1 -
Takıldığın birşeymi var?
-
ödevi yaptırmak mı istiyorsun yoksa takıldığın bir yer mi var hocam?
-
kimseye oturup birebir kodunu yazmakla uğraşsın demiyorum tabi ama yapmış olduğu benzer projesi olan varsa paylaşması güzel olur fikir vermesi için.
-
efendimiz bunu yazdı:
-----------------------------kimseye oturup birebir kodunu yazmakla uğraşsın demiyorum tabi ama yapmış olduğu benzer projesi olan varsa paylaşması güzel olur fikir vermesi için.
-----------------------------yok hocam ondan sormadım parayla filan yaptıracaksan @wasd makul fiyata ödev yapıyor bir çok müride de bu konuda yardım etti. istersen bir pm at.
-
SARI bunu yazdı:
-----------------------------efendimiz bunu yazdı:
-----------------------------kimseye oturup birebir kodunu yazmakla uğraşsın demiyorum tabi ama yapmış olduğu benzer projesi olan varsa paylaşması güzel olur fikir vermesi için.
-----------------------------yok hocam ondan sormadım parayla filan yaptıracaksan @wasd makul fiyata ödev yapıyor bir çok müride de bu konuda yardım etti. istersen bir pm at.
-----------------------------teşşekkür ederim başka bir ödevde iletişime geçerim anlaşabilirsek.
-
Aslına bakarsan ücret karşılığı sıfırdan ödev yaptığım bir mürid oldu şimdiye kadar o da kendisi teklif etmeseydi ben birşey istemeyecektim. Yardım isteyenlere yardımcı oluyorum ama sıfırdan ödev isteyenlere makul ücret karşılığında yapmaya karar verdim çünkü birçok mürid direk ödev istiyor ve birine yapıp öbürüne yapmasam adam der "bana garezinmi var .." diye. Bu yüzden hem müridlere yardımcı olmak, hemde ben de öğrenciyim 3-5 yolumu bulmak için böyle bir karar aldım. Birkaç arkadaş pmle ödev istedi bikaç gün önce, fırsatım olsaydı onlara para falan almadan yapacaktım ama final döneminde olduğum için yardımcı olamadım. Bu sene zaten bitti ama yaz döneminden sonra c/c++/c# ile istenilen ödevleri bu şekilde yapmayı düşünüyorum...
Senin ödevine gelince;
komut satırından parametre girdirebilmen için main fonksiyonunu kullanacaksın
int main ( int argc, char *argv[] )
mainin tam yazımı şu şekildedir c de, ve sen parametrelerini "char *argv[]" şeklinde tanımlanmış olan diziye aktararak main fonksiyonunun girilecek dosya
isimlerini komut satırında almasını sağlayacaksın
command line arguments diye araştırırsan daha detaylı bilgi ve kod örnekleri bulabilirsin.
dosyaları okuma yazma için dosyalamayı araştırıp okuman gerekiyor.
Yapacağın şey kelime ayraçlarını dosya içinde buldurup kelimeleri ayırıp her bir kelimeyi
bir diziye aktarmak, dizi içinde alfabetik sıralama yaptırmak daha sonrada ilk kelimeden başlayarak bi while döngüsü ile o kelimeden kaç tane olduğunu kontrol edip
dizinin 3. sütununa yazdırmak
daha sonra ikinci bi diziyle aynı işlemi bir sonraki dosyaya yaptıracaksın, sonrada ilk diziyle bu diziyi karşılaştırıp aynı kelimeler varsa onların 2. dizideki sayılarını ilk
dizinin 4. sütununa yerleştireceksin, ilk dizide olmayan kelimeleri alıp ilk diziye yerleştireceksin onların üçüncü sütunu 0 dördüncü sütunları ise ikinci dizideki sayıları
olacak. Sonra yeniden alfabetik sıralama yaptırırsan ilk iki dosya için istediğin şeyi yapmış olursun. İlk diziyi output dosyasına girdi için tutacaksın, ikinci diziyide
yeni dosya okutmak için kullanacaksın.
hepsinin okunması bittiğinde de kelimelerin sayılarını tutan sütunları toplatıp 2. sütuna yazdıracaksın, birde hangi sütun değeri en büyükse onu 3. sütuna
yazdıracaksın ki en fazla bulunduğu dosya içersindeki sayısıda yazılmış olsun. Bundan sonrasındada dizinin son satırına kadar ilk üç sütunu yazdıracaksın dosyaya
bitecek :) -
BarısYigit in vardı öle bi şeysi öle hatırlıorum kendisine bi pm at istersen
-
Bir arkadaş bir soru sormuştu. Ona kod yazmıştım. Senin uğraşacağın işin alt fonksiyonlarından biri benim yazdığım kod. İşine yarar umarım.
http://www.tahribat.com/Forum-Data-Structure-Donem-Projesi-157582/1/#1855956
