• 03-10-2009, 19:13:19
    #28
    mustafa90 adlı üyeden alıntı: mesajı görüntüle
    Evet döngü kullanılarak rahat yapılabiliyor Fakat döngüsüz yapabilir misiniz ?
    Sen yapıp gösterir misin hocam merak ettim şuan. (Döngüsüz olarak)
  • 03-10-2009, 19:27:15
    #29
    Biraz uğraşalım hemen söylemek olmaz
    Şunu söyliyeyim;
    Sonucu bulurken döngü yapmak gerekebilir ama öyle ilk sayıdan son sayıya kadar döngü kurmak olmaz. Çünkü aralarında 1milyon fark varsa bu işlem uzun sürer. O yüzden çok kısa döngülerle de yapılabilir.
  • 04-10-2009, 00:44:21
    #30
    mustafa90 adlı üyeden alıntı: mesajı görüntüle
    Bende bir soru sorayım ozaman
    87654 - 8661 = ?
    PHP de çıkarma işlemini kullanmadan sonucu nasıl buluruz ?
    Güzel soru

    MaviTm adlı üyeden alıntı: mesajı görüntüle
    for ile 8661 den 87654 arasında oluşan iterasyon sayısını alabilirim ama 80 bin gibi bir iterasyon kasıntılı olur bu konuda pratiği iyi olan kişilerin vereceği cevabı merak ettim
    Düşündüğün gibi olmaz, çünkü 80 bin sonucu tek tek işlemezsin, sadece dönen değeri sayarsın, tüy gibi olur

    $sayi1 = 87654;
    $sayi2 = 8661;
    
    for($i = $sayi2; $i<$sayi1; $i++){
    $sonuc[] = $i;
    }
    echo count($sonuc);
  • 04-10-2009, 00:48:46
    #31
    Onun yerine böyle yapılabilir;
    $sayi1 = 87654;
    $sayi2 = 8661;
    $sonuc = 0;
    for($i = $sayi2; $i<$sayi1; $i++){
    $sonuc++;
    }
    echo $sonuc;
    Ama arada 10milyon fark varsa ne olacak ? Daha kısa döngülerle halledebiliriz.
    Haydi biraz daha düşünelim
  • 04-10-2009, 00:57:04
    #32
    Üyeliği durduruldu
    mustafa90 adlı üyeden alıntı: mesajı görüntüle
    Onun yerine böyle yapılabilir;
    $sayi1 = 87654;
    $sayi2 = 8661;
    $sonuc = 0;
    for($i = $sayi2; $i<$sayi1; $i++){
    $sonuc++;
    }
    echo $sonuc;
    Ama arada 10milyon fark varsa ne olacak ? Daha kısa döngülerle halledebiliriz.
    Haydi biraz daha düşünelim
    İpucu: Bitler, pireler
    isterse 100 milyon fark olsun, buyrun burdan yakın;

    $sayi1 = 10000000;
    $sayi2 = 5000;
    $sonuc = 0;
    
    for($i = $sayi2 / 1000; $i < $sayi1 / 1000; $i++)
    {
        $sonuc+= 1000;
    }
    echo $sonuc;
  • 04-10-2009, 01:02:44
    #33
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    isterse 100 milyon fark olsun, buyrun burdan yakın;
    $sayi1 = 10000000;
    $sayi2 = 5000;
    $sonuc = 0;
    for($i = $sayi2 / 1000; $i < $sayi1 / 1000; $i++)
    {
        $sonuc+= 1000;
    }
    echo $sonuc;
    4 -3 işleminde çalışmayacaktır ama
  • 04-10-2009, 01:03:58
    #34
    Enigmatic adlı üyeden alıntı: mesajı görüntüle
    Güzel soru



    Düşündüğün gibi olmaz, çünkü 80 bin sonucu tek tek işlemezsin, sadece dönen değeri sayarsın, tüy gibi olur

    $sayi1 = 87654;
    $sayi2 = 8661;
    
    for($i = $sayi2; $i<$sayi1; $i++){
    $sonuc[] = $i;
    }
    echo count($sonuc);
    senin yaptiginda 80bin dongunun yaninda birde diziye 80 bin kadar eleman eklemek, bilmem farkindamisin ? 80 bin adet ayri degisken olusturmussun gibi dusun.
    veritabanimi aciyorsun napiyorsun ? : ) yedin bitirdin buffer'i : )

    en mantiklisi uysal_rockci'nin verdigindeki gibi, dongu disinda 1 adet degisken olusturmak sonra dongu icinde bunun degerini her donuste 1 arttirmak. ayni degiskeni degistirmis olur hic degilse. birbirinden ayri 80bin veri girmis olmaz. (gerci bu yontemi oda gostermis, her iki seklide.)
  • 04-10-2009, 01:04:41
    #35
    devturkeli adlı üyeden alıntı: mesajı görüntüle
    isterse 100 milyon fark olsun, buyrun burdan yakın;

    $sayi1 = 10000000;
    $sayi2 = 5000;
    $sonuc = 0;
    
    for($i = $sayi2 / 1000; $i < $sayi1 / 1000; $i++)
    {
        $sonuc+= 1000;
    }
    echo $sonuc;
    Matematik işlemi kullanabiliyorsak çok daha rahat olur elbet
  • 04-10-2009, 01:06:47
    #36
    Çıkarma işlemini hiç kullanmadan istediğiniz işlemi kullanabilirsiniz. Ama hızlı çalışacak bir şey arıyoruz