Soru:

Bir banka mudilerine istedikleri parayı bankamatikten çekebilmeleri için bilgisayar programı istemektedir. Mudinin istediği paranın mümkün olan en büyük para birimleriyle ödenmesi gerekmektedir.

[Yol gösterme: Mudi 13.450.000 TL istemişse, bankamatik şu birimleri ödemelidir:
	1 tane  10.000.000 TL
	3 tane   1.000.000 TL
	4 tane     100.000 TL
	1 tane      50.000 TL

ödemelidir.

Mudinin istediği miktarı, bankamatikten mümkün olan en büyük para birimleriyle ödeyen bir Pascal programı yazınız. Gerektiği kadar procedure veya fonksiyon tanımlayınız.

Çözüm:

program ZamanBul;
uses wincrt;
type
	zaman	= record
	              saniye,dakika, saat,gun : integer;
			  end;
Var
	  ilk, ek, son	: zaman;


PROCEDURE IlkZamanOku(var t : zaman);
      Begin
        writeln('Saat açtır? ');
        readln(t.saat);
        writeln('dakika kaçtır? ');
        readln(t.dakika);
        writeln('Saniye kaçtır? ');
        readln(t.saniye);
     End;

PROCEDURE EkZamanOku(var t : zaman);
      Begin
        writeln('Kaç Saat eklenecek? ');
        readln(t.saat);
        writeln('Kaç dakika eklenecek? ');
        readln(t.dakika);
        writeln('Kaç Saniye eklenecek? ');
        readln(t.saniye);
     End;


PROCEDURE ZamanHesapla(a,b: zaman; var c:zaman);
var
   toplam_saniye,
   toplam_dakika,
   toplam_saat,
   artan_dakika,
   artan_saat       : longint;


    Begin

      toplam_saniye := a.saniye + b.saniye;
      artan_dakika  := toplam_saniye div 60;
      c.saniye      := toplam_saniye mod 60;

      toplam_dakika := a.dakika + b.dakika + artan_dakika;
      artan_saat    := toplam_dakika div 60;
      c.dakika      := toplam_dakika mod 60;

      toplam_saat   := a.saat + b.saat + artan_saat;
      c.gun         := c.gun + (toplam_saat div 24);
      c.saat        := toplam_saat mod 24;

    End;
           


 PROCEDURE ZamanYaz(t1,t2,t3 : zaman);
   Begin
     ClrScr;
     WriteLn('İlk Zaman : ', t1.saat, ':',t1.dakika, ':', t1.saniye);
     WriteLn;
     WriteLn('Ek  Zaman : ', t2.saat, ':',t2.dakika, ':', t2.saniye);
     WriteLn;
     WriteLn('Son Zaman : ', t3.saat, ':',t3.dakika, ':', t3.saniye);
     WriteLn;
     WriteLn('Gun Sayısı: ', t3.gun);
   End;


BEGIN
   IlkZamanOku(ilk);
   EkZamanOku (ek);
   ZamanHesapla(ilk,ek,son);
   ZamanYaz(ilk,ek,son);
END.