Şimdi Ara

PHP Kontör Ödeme Sistemi (Algoritma Yardım)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
717
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar, direk sorunumu anlatmaya geçiyorum;

    Şimdi bir kontör sistemi olarak anlatayım ben size sistemi daha rahat anlıyacaksınızdır.

    Elimde 10,20,25,50 şeklinde kontör kartları var.

    Bi müşteri geldi benden 80 kontör istedi. ben bunu en büyük kontörden başlıyarak vermek istiyorum.

    Yani direk 8 tane 10 kontör degilde, 1 tane 50 1 tane 20 1 tanede 10 kontör şeklinde vermek istiyorum.

    Bunu mantık olarak nasıl yapabilirm, birisi algoritmayı anlatabilirmi



  • ilk once en buyukten kac tane verceksin ona bakacaksın , sonra kalanı hesap edip bi alttakine gececeksin .

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: sedattr

    Merhaba arkadaşlar, direk sorunumu anlatmaya geçiyorum;

    Şimdi bir kontör sistemi olarak anlatayım ben size sistemi daha rahat anlıyacaksınızdır.

    Elimde 10,20,25,50 şeklinde kontör kartları var.

    Bi müşteri geldi benden 80 kontör istedi. ben bunu en büyük kontörden başlıyarak vermek istiyorum.

    Yani direk 8 tane 10 kontör degilde, 1 tane 50 1 tane 20 1 tanede 10 kontör şeklinde vermek istiyorum.

    Bunu mantık olarak nasıl yapabilirm, birisi algoritmayı anlatabilirmi

    istenen kontoru al;
    elinde olan kontrol büyüklük ve adetlerini al;
    kontor büyüklüğü sayısı kadar bir döngü içinde{
    --istenen kontoru en büyükten başlayarak kontor büyüklerine int olarak böl ve x değişkenine at;
    --eğer x değişkeni, bu kontor büyüklüğündeki adetten küçük veya eşitse{
    ---- bunlar vermen gereken kontor ve adedi olacak bir yere kaydet;
    ----istenen kontorden=istenenkontor- kontor büyüklüğü*adedi;
    ----eğer istenen kontor 0 olmuşsa döngüden çık;
    --}
    }


    yani 130 kontor alacaksam eğer ben, sırasıyla şu işlemleri uygulaman gerekir
    130/50= 2, x=2;
    sende 2 tane 50 lik kontor varmı, varsa bana 2 tane 50 lik kontor vereceksin bir dizi veya nesneye kaydet;
    sonra 130-50*2= 30 , 30 artık yeni satacağın kontor olacak,30 sıfırdan büyük olduğu için devam, döngün yine kontrol edecek, kontor kartların bitene dek

    {130/50 =2, 130-50*2, 30 / 20=1, 30-20*1, 10/10=1 10-10*1=0 }
    {70/50=1, 70-50*1, 20/20=1, 20-20*1=0} gibi örneklerle anlarsın umarım




  • $gelen=230;

    $kn1=50;
    $kn2=25;
    $kn3=10;

    $islem1=$gelen/$kn1;
    $kalan1=$gelen-($islem1.$kn1);

    $ellilik=$islem1;


    $islem2=$kalan1/$kn2;
    $kalan2=$kalan1-($islem2.$kn2);

    $yirmibeslik=$islem2;


    $islem3=$kalan2/$kn3;
    $kalan3=$kalan2-($islem3.$kn3);

    $onluk=$islem3;


    echo "Hattınıza ".$ellilik." tane ellilik ".$yirmibeslik." tane yirmibeslik ".$onluk." tane onluk kontör yükledik . ".$kalan3." tl arttı artık sakız mı alırsın nabarsın bilmiyoruz . .. ;



    beyle

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • ama tabi sen bunu classla yaz ki arada lazım olan seyler olursa eklersin lol

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • arkadaşlar bende dediginiz mantıkla yazmıştım önceden fakat 80 kontör olucan sistem şöyle çalışıyordu;

    1 tane 50 lik veriyor sonraki en büyük olan 25 geçiyor 25 tane 1 tane veriyor ve 5 kontorü tamamlıyamıyordu.

    farklı forumdan bi arkadaşın mantıklı bir önerisi üzerine, sonu 5 ile bitenlerde 25 i dahil et eger sonu 0 ise 25 i aradan çıkart dedi.

    2 gündür uyumuyorum sanırım onun etksiinden aklıma gelmedi bu.

    Sizlerinde yardımları için çok çok teşekkür ederim.

    iyi geceler =))
  • bu visual basic banknot program kodları senin söylediğin şeye cok benzer bak mantıgını anlarsın bu tarz birşeyde yapabilirsin yada dizi olusturup bölersin sırasıyla büyükten küçüğe.

    i = Val(Text1.Text)
    j = Int(i / 100)
    Print j; " Tane 100 YTL Vardır "
    i = i Mod 100
    j = Int(i / 50)
    Print j; " Tane 50 YTL Vardır "
    i = i Mod 50
    j = Int(i / 20)
    Print j; " Tane 20 YTL Vardır "
    i = i Mod 20
    j = Int(i / 10)
    Print j; " Tane 10 YTL Vardır "
    i = i Mod 10
    j = Int(i / 5)
    Print j; " Tane 5 YTL Vardır "
    i = i Mod 5
    j = Int(i / 1)
    Print j; " Tane 1 YTL Vardır "
    i = i Mod 1
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.