• 24-11-2008, 20:12:51
    #1
    Merhaba arkadaşlar kendim için bir sistem kurmaya çalışıyorum sistem kısaca şöyle olacak başla komutundan sonra 3 dk süre tutulacak ve bu süreden sonra kişinin kaç kelime yazdığı belirlenecek bu bölümde sorun yok sistemi kurdum Daktilografi Denemeleri sistem burda çalışıyor yapamadığım şey şu örneğin başta belirlenen bir metin olacak ve bu metine göre yanlış yazılan kelimeler çıkarılıp toplam kelime sayısı verilecek bir de yanlış yazılan kelimelerin altını kırmızı ile doğru yazılanların yeşille gösterilmesi falan var bu konuda fikirlerinizi almak istiyorum.
  • 24-11-2008, 21:43:06
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    karşılaştırma için aklıma gelen bir yol.
    kişinin yazmasını istediğin metni bir değişkende tutarsın $metin1 , kişinin yazdığı metni bir değişkende tutarsın $metin2

    $metin1 ve $metin2 değişkenlerindeki kelimeleri explode edip orjinal metinin kelime sayısına göre karşılaştırma yaparsın bir for döngüsü içinde $metin1[0] == $metin2[0] gibi bu karşılaştırmaya görede okutacağın css/font ile renklendirme işlemini yapabilirsin.
  • 24-11-2008, 23:01:53
    #3
    226747 kelime yazdınız.

    =) çok eksiği var dostum...Arakdaşın dediği gibi yapabilirsin oluyorsa PHP karakter gruplarıylada yapabilirsin ama bne onları tam iyi bilmiyorum...
  • 25-11-2008, 16:03:51
    #4
    jagum adlı üyeden alıntı: mesajı görüntüle
    karşılaştırma için aklıma gelen bir yol.
    kişinin yazmasını istediğin metni bir değişkende tutarsın $metin1 , kişinin yazdığı metni bir değişkende tutarsın $metin2
    $metin1 ve $metin2 değişkenlerindeki kelimeleri explode edip orjinal metinin kelime sayısına göre karşılaştırma yaparsın bir for döngüsü içinde $metin1[0] == $metin2[0] gibi bu karşılaştırmaya görede okutacağın css/font ile renklendirme işlemini yapabilirsin.
    Hocam mümkünse örnek bir kod verir misin mantığı çözemedim bir türlü.
  • 25-11-2008, 17:41:27
    #5
    Üyeliği durduruldu
    jagum adlı üyeden alıntı: mesajı görüntüle
    karşılaştırma için aklıma gelen bir yol.
    kişinin yazmasını istediğin metni bir değişkende tutarsın $metin1 , kişinin yazdığı metni bir değişkende tutarsın $metin2
    $metin1 ve $metin2 değişkenlerindeki kelimeleri explode edip orjinal metinin kelime sayısına göre karşılaştırma yaparsın bir for döngüsü içinde $metin1[0] == $metin2[0] gibi bu karşılaştırmaya görede okutacağın css/font ile renklendirme işlemini yapabilirsin.
    yanlışlıkla boşluğa basarsa. oradan sonraki bütün kelimeler yanlış olarak işaretlenecek.

    bu olayın mantığını oturtmak çok zor.
  • 25-11-2008, 18:09:50
    #6
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    yanlışlıkla boşluğa basarsa. oradan sonraki bütün kelimeler yanlış olarak işaretlenecek.
    bu olayın mantığını oturtmak çok zor.
    Sanmıyorum olmasın ama aklıma gelmiyor bir türlü .
  • 25-11-2008, 19:05:30
    #7
    boşlukları baz alıp , kelimeleri diziye alsan eşit mi diye kontrol edebilirsin diyecem ama, araya fazla kelime , harf basarsa o zamanda iş karışır.
    10 parmak diye bir program vardı okullarda kullanılan bi bak istersen nasıl bişeymiş
  • 25-11-2008, 19:09:18
    #8
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    yanlışlıkla boşluğa basarsa. oradan sonraki bütün kelimeler yanlış olarak işaretlenecek.

    bu olayın mantığını oturtmak çok zor.
    birden fazla boşluk karakterini temizleyerek veriyi işleme sokarsak oluşabilecek karışıklıkları en minimal düzeyde tutarız, kaldi ki zaten doğru yazıp yazmadığını denetleyecek kişi kelime arasında yanlış bir boşluk bırakırsa zaten yanlış yazmış olacağından mantıksal olarak kod görevini yapmış ve hatalı kelimeleri hatalı diye imlemiş olacaktır.

    her iki kelime arasında birden fazla boşluk karakterini engellemek için
    preg_replace("'\s+'"," ",$str)
    kullanalım, dolayısıyla artık kalacak olan boşluklar zaten hatalı olan başlıklardır.

    örnek algoritmayı birazdan ekleyeceğim.
  • 25-11-2008, 19:21:01
    #9
    $metin1 = "bu bizim deneme amaçlı kullanıcıya sunduğumuz örnek metin";
    $metin2 = "bu bisim deneme amacli kullanıcıya sundğumuz örnek metin";
    $parcala1 = explode(" ", $metin1);
    $parcala2 = explode(" ", $metin2);
    for($i = 0; $i < count($parcala1); $i++){
        echo "Doğru Kelime : $parcala1[$i] Girilen Kelime : $parcala2[$i] | Durum : ";
        if($parcala1[$i]==$parcala2[$i])
        {
            echo " <b><font color=\"#02D602\">Doğru</font></b><br>";
        }
        else
        {
            echo " <b><font color=\"#cc0000\">Hatalı</font></b><br>";
        }
    }
    doğru ve yanlış kelime sayısını öğrenmek için if/else kısmında $i++ gibi bir sayaç yapısı kullanılabilir.

    kolay gelsin