“Hiç uğraşamam…”

twitter.com/brsyuksel

İlk C Uygulamam: Kelime Tahmin

Uzun bir aradan sonra tekrar merhaba. Bu süre içerisinde C çalıştığımı ya da üzerinde çalıştığım uygulamalarla vakit geçirdiğimi sanıyorsanız, yanılıyorsunuz; yatıyordum.
Bilgisayar Mühendisliği öğrencisi olan bir arkadaşımın Veri Yapıları ve Algoritmalar dersi için 2.vize ödevi olan kelime tahmin uygulamasını yaptım. C dilinde kayda değer ilk uygulamam olduğundan dolayı yayınlayıp eleştiri almayı beklemek sanırım en doğrusu olacak.

Uygulama içerisinde 18000 küsür kelime barından txt dosyasını okuyarak istenilen şekilde bir sözlük oluşturuyor ve size rastgele kelimeler gönderip benzerlik değerini girmenizi istiyor. Bu benzerlik değerlerinden yola çıkarak aklınızdaki kelimeyi tahmin etmeye çalışıyor. Algoritması gayet basit, sözlükteki her kelimeleri birbirleriyle karşılaştırıp sonucu bir matrise atıyor ve benzerlik değeri girildikçe matris kontrol ediliyor, ardına girilen benzerlik değeri aynı olmayan sözcükler sözlükten siliniyor. Anagram kelimelere ( bkz: ayak, kaya, yaka )  ulaşılana kadar bu işlem devam ediyor.

Uygulama bana bir çok şey öğretti: Dinamik Bellek Yönetimi, wchar.h, GDB, Makefile

Son olarak, sanırım bu uygulamada ben “memory leak” e sebep olan bir hata yaptım ya da “stringler uygulama sonlanıncaya kadar bellekte kalırlar” diyerek kendimi avutmalıyım ama integer’lar için de aynı sorun söz konusu. Bu konuda yorumlarınızla bana yanlışımı gösterirseniz çok sevinirim.

Yeter, kelimetahmin.c.tar.gz

Konsolda “make install” komutunu vermeden önce sozluk.c dosyasında 10.satırı ve Makefile dosyasında 3.satırı kendinize göre düzenleyin. Automake Barış, automake…

Tags: , ,
Posted in C · Mayıs 5th, 2010 · Comments (0)

No comments yet

Leave a Reply

Bağlantılar

Etiketler

çember özel yöntem isimleri apache2screen apache2screen.deb bele kuvvet bi_rle4 brute-force classic classes classmethod descriptors getanurse ic.lnx icontacts ileri c programlama image imagedraw kaba kuvvet kelime tahmin libnotify math math.cos math.sin matruşka matryoshka memory leak mesafe metaclass mysqli new-style classes oauth php5 property pynotify Python singleton special method names staticmethod steganografi steganography super twittell TwittellOAuth wchar yeni stil sınıflar __mro__

Meta