• 29-05-2010, 20:35:32
    #1
    Merhaba,bir sorum var ama sorum birazda matematik istiyor,mantığı tam kuramadım ben şimdi 3 bölümümüz var


    1. Sayı Bu 100.000 ile 2.000.000 arasında bir rakam,kullanıcının belirlediği
    2. Sayı Üstteki sayımız 100.000-750.000 arasında ise bu rakam 1 değerini alıyor,750.000 ile 1.500.000 arasında ise 2,1.500.000 ile 2.000.000 arasında ise 3 değerini alıyor.
    3. Sayı Bu sayımızda 1 ile 40 arasında bir sayı yine kullanıcı belirtiyor bunu


    Bu sayıların önem derecesi şu şekilde sıralanıyor;

    3.sayı>1. sayı>2.sayı

    Şimdi istediğim şey şu yukarıdaki önem sırası dikkate alınarak bu 3 sayıda arttıkça bana bir yüzdeli değer gelsin örnek vericek olursak;

    1.sayımız 2.000.000 gelmiş,2. sayımız 3 olmuş,3. sayımız 40 olmuş bana gelicek yüzdeli değer %98 olmalı (hiçbir zaman %100 olmamalı) hepsi en düşükte ise bana gelicek değer %5 olmalı,mantık bu şekilde üsteki sayılar arttıkça oranda artmalı ama yukarıdaki önem sırasına göre


    Biliyorum biraz karışık ama matematiği kuvvetli arkadaşlar vardır mutlaka sadece bunla çarp bunla böl vs. gibi şeyler desenizde olur illa php ile yazmak zorunda değilsiniz ben yazarım php de mantığı bildikten sonra.


    Şimdiden Teşekkürler.
  • 29-05-2010, 22:05:30
    #2
    Yüzdeyi neye göre hesaplıyor ?
  • 29-05-2010, 22:11:16
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Evet mayağı karmaşıkmış. Sadece şu sayılara 1, 2, 3 değerini verebilmeyi yapabildim. Gerisine benden yardım çıkamaz.

    $sayi1 = 100000;
    $sayi3 = 39;
    
    if ($sayi1 <= 100000 || $sayi1 >= 2000000)
    	echo 'Seçtiğiniz sayı 100.000 - 2.000.000 arasında olmak zorundadır';
    
    if ($sayi3 <= 100000 || $sayi3 >= 2000000)
    	echo 'Seçtiğiniz sayı 1 - 40 arasında olmak zorundadır';
    
    if ($sayi1 <= 100000 || $sayi1 >= 750000)
    	$sayi2 = 1;
    elseif ($sayi1 <= 750001 || $sayi1 >= 1500000)
    	$sayi2 = 2;
    elseif ($sayi1 <= 1500001 || $sayi1 >= 2000000)
    	$sayi2 = 3;
  • 29-05-2010, 22:51:34
    #4
    Soruyu tam anlamadim ama..

    <?php
    #yüzde alma fonksiyonumuz
    function yuzde($sayi, $toplam) {
    $al = $sayi / $toplam;
    $al2 = $al * 100;
    return number_format($al2, 0);
    }
    
    #değerleri verdik
    $sayi1 = 2000000;
    $sayi2 = 2150000;
    $sayi3 = 40;
    
    #sayi2 için değer eşleştirmeleri
    if (($sayi2 > 100000) && ($sayi2 < 750000)) { $sayi2 = 1; }
    elseif (($sayi2 >= 750000) && ($sayi2 < 1500000)) { $sayi2 = 2; }
    elseif (($sayi2 >= 2000000) && ($sayi2 <= 2150000)) { $sayi2 = 3; }
    else { echo "Yanlis deger."; }
    
    #yüzdeleri alıyoruz. elimizde toplam 100 var.
    #bu yüzü önem sırasına göre dağıtiyoruz; 
    # birinci sayı : 33,3 //orta derecede önemli
    # ikinci sayı : 14,2 //en önemsiz
    # ücüncü sayı : 50 //en önemli
    #Hepsi toplamda : 97-98 (Küsüratlar etkileyecek)
    
    $bir = yuzde($sayi1,"2000000") / 3;
    $iki = yuzde($sayi2,"3") / 7;
    $uc = yuzde($sayi3,"40") / 2;
    
    #yuvarla ve echo et
    echo "Sonuç : ".ceil($bir + $iki + $uc)." %";
    ?>
    Koşulları bilmediğimiz için sallamasyon oldu biraz =)
  • 29-05-2010, 23:15:24
    #5
    Eposta Aktivasyonu Gerekmekte
    Geliştirilir
    <form action="" method="post">
    <input type="text" name="sayi1" value="" />
    <input type="text" name="sayi3" value="" /> 
    <input type="submit" value="OK" name="buton" />
    </form>
    <?php
    /*
    1. Sayı Bu 100.000 ile 2.000.000 arasında bir rakam,kullanıcının belirlediği
    2. Sayı Üstteki sayımız 100.000-750.000 arasında ise bu rakam 1 değerini alıyor,750.000 ile 1.500.000 arasında ise 2,1.500.000 ile 2.000.000 arasında ise 3 değerini alıyor.
    3. Sayı Bu sayımızda 1 ile 40 arasında bir sayı yine kullanıcı belirtiyor bunu
    
    
    Bu sayıların önem derecesi şu şekilde sıralanıyor;
    
    3.sayı>1. sayı>2.sayı
    
    Şimdi istediğim şey şu yukarıdaki önem sırası dikkate alınarak bu 3 sayıda arttıkça bana bir yüzdeli değer gelsin örnek vericek olursak;
    
    1.sayımız 2.000.000 gelmiş,2. sayımız 3 olmuş,3. sayımız 40 olmuş bana gelicek yüzdeli değer %98 olmalı (hiçbir zaman %100 olmamalı) hepsi en düşükte ise bana gelicek değer %5 olmalı,mantık bu şekilde üsteki sayılar arttıkça oranda artmalı ama yukarıdaki önem sırasına göre 
    */
    if(isset($_POST['buton'])):
                
          $sayi1 = $_POST['sayi1'];
          $sayi2 = null;
          $sayi3 = $_POST['sayi3'];
                
          if(empty($sayi1) && empty($sayi3)):
                die("Boş bırakmayın");
          endif;
          
          
          if($sayi1 < 100000 && $sayi1 > 2000000):
                echo "1nci Sayı 100.000 ile 2.000.000 arasında olmalıdır";
                die();
          elseif($sayi1 > 100000 && $sayi1 < 750000):
                $sayi2 = 1;
          elseif($sayi1 >= 75000 && $sayi1 < 1500000):
                $sayi2 = 2;
          elseif($sayi1 >= 1500000 && $sayi1 < 2000000):
                $sayi2 = 3;
          elseif($sayi3 < 1 && $sayi3 > 40):
                echo "3ncü Sayı 1 ile 40 arasında olmalıdır";
                die();
          endif;
          
          $ortalama = null;
          
          if(($sayi1 + $sayi2 + $sayi3) >= 1900000 ):
               $ortalama = rand(90,98);
          elseif(($sayi1 + $sayi2 + $sayi3) >= 1500000  && ($sayi1 + $sayi2 + $sayi3) < 1900000):
               $ortalama = rand(70,89);
          elseif(($sayi1 + $sayi2 + $sayi3) >= 1000000  && ($sayi1 + $sayi2 + $sayi3) < 1500000):
               $ortalama = rand(50,69);
          elseif(($sayi1 + $sayi2 + $sayi3) >= 750000  && ($sayi1 + $sayi2 + $sayi3) < 1000000):
               $ortalama = rand(30,49);
          elseif(($sayi1 + $sayi2 + $sayi3) >= 500000  && ($sayi1 + $sayi2 + $sayi3) < 750000):
               $ortalama = rand(20,29);
          elseif(($sayi1 + $sayi2 + $sayi3) >= 250000  && ($sayi1 + $sayi2 + $sayi3) < 500000):
               $ortalama = rand(10,19);
          elseif(($sayi1 + $sayi2 + $sayi3) >= 1):
               $ortalama = rand(1,9);
          endif;
          
          echo "%" . $ortalama;
          
    endif;
    ?>
  • 30-05-2010, 09:36:23
    #6
    İşini görmesi dileğiyle. İyi çalışmalar

    <?php
    
    // değerler
    $a = 750001;
    $b = ($a >= 100000 && $a <= 750000) ? 1 : (($a >= 750000 && $a <= 1500000) ? 2 : (($a >= 1500000 && $a <= 2000000) ? 3 : 0));
    $c = 20;
    
    // minimum ve maksimum değerler
    $mina = 100000;
    $maxa = 2000000;
    $minb = 1;
    $maxb = 3;
    $minc = 1;
    $maxc = 40;
    
    // öncelik - toplam değeri 98'e ayarlanırsa en fazla 98% değeri alınır
    $prioritya = 20;
    $priorityb = 5;
    $priorityc = 68;
    
    // a - yüzde hesaplama
    $percenta = 100 / ($maxa - $mina + 1) * ($a - $mina + 1);
    
    // b - yüzde hesaplama
    $percentb = 100 / ($maxb - $minb + 1) * ($b - $minb + 1);
    
    // c - yüzde hesaplama
    $percentc = 100 / ($maxc - $minc + 1) * ($c - $minc + 1);
    
    $percent = round(
    	($percenta / 100 * $prioritya)
    	+
    	($percentb / 100 * $priorityb)
    	+
    	($percentc / 100 * $priorityc)
    , 2) + 5;
    
    echo $percent.'%';
  • 30-05-2010, 10:18:24
    #7
    Teşekkürler arkadaşlar denicem birazdan hepsini tek tek

    by_grafitus adlı üyeden alıntı: mesajı görüntüle
    Evet mayağı karmaşıkmış. Sadece şu sayılara 1, 2, 3 değerini verebilmeyi yapabildim. Gerisine benden yardım çıkamaz.

    $sayi1 = 100000;
    $sayi3 = 39;
    
    if ($sayi1 <= 100000 || $sayi1 >= 2000000)
    	echo 'Seçtiğiniz sayı 100.000 - 2.000.000 arasında olmak zorundadır';
    
    if ($sayi3 <= 100000 || $sayi3 >= 2000000)
    	echo 'Seçtiğiniz sayı 1 - 40 arasında olmak zorundadır';
    
    if ($sayi1 <= 100000 || $sayi1 >= 750000)
    	$sayi2 = 1;
    elseif ($sayi1 <= 750001 || $sayi1 >= 1500000)
    	$sayi2 = 2;
    elseif ($sayi1 <= 1500001 || $sayi1 >= 2000000)
    	$sayi2 = 3;
    Hehe bu kadar karmaşık bir soru sorduğuma göre bunuda yapabilirim heralde