lostyazilim
tr.link

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

6 Mesajlar 1.275 Okunma
lstbozum
tr.link

sedattr sedattr WM Aracı Kullanıcı
  • Üyelik 13.03.2012
  • Yaş/Cinsiyet - / E
  • Meslek wm
  • Konum
  • Ad Soyad ** **
  • Mesajlar 4
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
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
 

 

wmaraci
reklam

erkut erkut WM Aracı Kullanıcı
  • Üyelik 14.01.2012
  • Yaş/Cinsiyet - / E
  • Meslek öğrenci
  • Konum
  • Ad Soyad ** **
  • Mesajlar 295
  • Beğeniler 35 / 33
  • Ticaret 0, (%0)
Arkadaşım yarına kadar biri cevap vermez ve sen bulamaz isen yarın deneyip başarabilirsem kod satırlarını sana atarım.
 

 

VoyL VoyL WM Aracı Kullanıcı
  • Üyelik 17.03.2013
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** Ç**
  • Mesajlar 133
  • Beğeniler 0 / 23
  • Ticaret 0, (%0)
$istek=80;

$elli;
$yirmibes;
$yirmi;
$on;


if(istek>50)
{$elli++;
istek=istek-50;
}
if(istek>25)
{
$yirmibes++;
istek=istek-25;
}
if(istek>20)
{
$yirmi++;
istek=istek-20;
}
if(istek>10)
{
$on++;
istek=istek-10;
}


nolur bilmiyorum ama bi dene istersen sahurluk kafayla bu kadar oluyo.
Muhsin ASLAN

kişi bu mesajı beğendi.

alabacaknet alabacaknet Developer Kullanıcı
  • Üyelik 14.09.2012
  • Yaş/Cinsiyet 39 / E
  • Meslek Yazılım geliştirme
  • Konum Ankara
  • Ad Soyad M** A**
  • Mesajlar 217
  • Beğeniler 55 / 48
  • Ticaret 0, (%0)
Do ..... while() ile birşeyler yapabiliriz suan sahur haliyle yarın bakarım mantık şu 80 veya üstü olana kadar dönecek bir döngü kurucaz en büyük sayıdan geriye doğru toplatacağız.
 

 

Murat Alabacak <http://muratalabacak.net>
wmaraci
wmaraci

0Derece 0Derece WM Aracı Kullanıcı
  • Üyelik 08.12.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Web Developer
  • Konum Ankara
  • Ad Soyad O** U**
  • Mesajlar 355
  • Beğeniler 27 / 104
  • Ticaret 0, (%0)

$sayi = 80;

while($sayi>0){
if($sayi>=50){
$sayi = ($sayi-50);
echo '50\'lik kartin kodu
'; }
elseif(($sayi>=25)&&(substr($sayi,-1, 1)>=5)){
$sayi = ($sayi-25);
echo '25\'lik kartin kodu
'; }
elseif($sayi>=20){
$sayi = ($sayi-20);
echo '20\'lik kartin kodu
'; }
elseif($sayi>=10){
$sayi = ($sayi-10);
echo '10\'luk kartin kodu
'; }
else{
// eger 23 kontor gibi bir istek yapılırsa 20 kontorun kodunu veriyoruz kalan 3 kontor icin hata kodunu yapistiyoruz
echo ('Maalesef 10\'dan buyuk 5 ve katlari haricindeki kontor isteklerinize cevap veremiyoruz cevap veremedigimiz kontor sayisi: '.$sayi);
$sayi = 0;
}
}

?>


kolay gelsin...
 

 

asimavi asimavi Kpss Mağduru Kullanıcı
  • Üyelik 10.07.2013
  • Yaş/Cinsiyet 36 / E
  • Meslek Kpss Mağduru
  • Konum Nevşehir
  • Ad Soyad S** K**
  • Mesajlar 121
  • Beğeniler 8 / 19
  • Ticaret 2, (%100)
$elli=0;
$yirmibes=0;
$yirmi=0;
$yirmibes_aldi=false;
$on=0;
$istek=122;
while($istek>=50){
$istek-=50;
$elli++;
}
while($istek>=25){
$istek-=25;
$yirmibes++;
$yirmibes_aldi=true;
}
$sonuc_ne=$istek % 2 == 0 ? "cift" : "tek";
if($sonuc_ne=='tek'&&$yirmibes_aldi==true){
$yirmibes--;
$istek+=25;
}
while($istek>=20){
$istek-=20;
$yirmi++;
}
while($istek>=10){
$istek-=10;
$on++;
}
echo "Ellilik : ".$elli;
echo "
Yrimi beşlik: ". $yirmibes;
echo "
Yrimilik : ". $yirmi;
echo "
Onluk : ". $on;
if($istek<10&&$istek>0){
echo '
10 konturden az kalan miktar kontörlerimiz mevcut değildir Eksik Kalan Kontor : '.$istek;
}
?>
 

 

@simavi www.asimavi.net
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al