Örnek 10/ 12-16 Mayıs Haftası

Örnek 10/ 12-16 Mayıs Haftası
Soru: Bir X firmasının sahip olduğu 20 tane nakliye aracı
vardır. Bu araçlar 1 den 20 ye kadar numaralandırılmıştır. Bu
firma şehirdeki 4 farklı bölgedeki bayilerine 30 gün sure ile
koli şeklinde mal taşımaktadır. Firmanın her bir bölgeye koli
başına taşıma maliyeti aşağıdaki gibidir.
Bölge
1.
2.
3.
4.
bölge
bölge
bölge
Bölge
Taşıma
Maliyeti
5 TL
2 TL
3 TL
6 TL
Gün içerisinde bir nakliye aracı en az bir bölgeye bir koli
mal
götürmektedir.
Klavyeden
bölge
ve
taşınan
koli
miktarı
girildiğinde,
a. Her bir nakliye aracının en az taşıdığı koli miktarının
hangi güne ait olduğunu,
b. Ay sonunda en çok taşıma maliyetine sahip olan nakliye
aracının numarası ve miktarı,
c. Firmanın toplam taşıma maliyetini,
bulup yazdıran program yazınız.
Çözüm:
uses crt;
label
bas,10,20,30;
var
arac,gun,bolge,hg,ha:byte;
kolimik,topkolimik,gkolimik,enk,enb,m,ucret,topmaliyet,maliyet
:integer;
cvp:char;
begin
clrscr;
topmaliyet:=0;
arac:=0;
m:=0;
30:
arac:=arac+1;
topkolimik:=0;
maliyet:=0;
10:
gun:=0;
gun:=gun+1;
gkolimik:=0;
Örnek 10/ 12-16 Mayıs Haftası
bas:
writeln(arac,'nolu aracn',gun,'nolu gundeki bolge ve
koli miktari:');
readln(bolge,kolimik);
case (bolge) of
1:ucret:=kolimik*5;
2:ucret:=kolimik*2;
3:ucret:=kolimik*3;
4:ucret:=kolimik*6;
end;
gkolimik:=gkolimik+kolimik;
topkolimik:=topkolimik+kolimik;
maliyet:=maliyet+ucret;
topmaliyet:=topmaliyet+ucret;
writeln('baska bolgeye gidilecek mi?E-H');
readln(cvp);
if (cvp='e') or (cvp='E') then goto bas;
if(gun=1) then begin
enk:=gkolimik;
hg:=gun;
end;
if (enk>=gkolimik) then begin
enk:=gkolimik;
hg:=gun;
end;
if (gun<30) then goto 10;
writeln(arac,'nolu aracin en az tasidigi koli
miktar:',enk, ' gunu:',hg);
if(arac=1) then begin
enb:=maliyet;
m:=topkolimik;
ha:=arac;
end;
if (enb<=maliyet) then begin
enb:=maliyet;
m:=topkolimik;
ha:=arac;
end;
if (arac<20) then goto 30;
writeln('en cok tasima maliyetine sahip arac:',ha,'
maliyeti:',enb,'miktari ',m);
writeln('toplam maliyet:',topmaliyet);
readln;
end.
Örnek 10/ 12-16 Mayıs Haftası
Soru 2: Fakültemizin, 7 bölümündeki ( bölümleri 1,2,3,4,5,6, ve 7
olarak numaralandıralım) gunluk su tuketim miktarları, 30 gün
boyunca gün (ton olarak) veriliyor. Belediyenin, su
ücretlendirmesi ise aşağıdaki gibidir.
Harcanan miktar
0-20 ton
21-30 ton
30 ton üzerinde
Ücret
2 TL
5 TL
8 TL
Buna göre, bir ay sonunda,
a) her bir bölümün, ödeyeceği toplam ücreti ve toplam
su miktarını,
b) en çok su tüketen bölümün hangi bölüm olduğunu,
tükettiği su miktarını ve ödenecek toplam rakamı,
c) belediyenin alacağı toplam ödemeyi,
bulup yazdıran bir Pascal programı yazınız.
uses crt;
label
10,20;
var
belediyetop, b, topb, miktar, encokucret,
encokmiktar,topmiktar:longint;
bolumno, gunsayac, encokbolum: byte;
begin
clrscr;
20:
10:
belediyetop:=0;
bolumno:=0;
bolumno:= bolumno +1;
gunsayac:=0;
topb:=0;
topmiktar:=0;
gunsayac:= gunsayac+1;
writeln(gunsayac,'inci gundeki',' ', bolumno ,'inci
bolumun kullandigi su miktarini giriniz');
readln(miktar);
if (miktar>=0) and (miktar<=20) then b:=miktar*2;
if (miktar>=21) and (miktar<=30) then b:=miktar*5;
if (miktar>30) then b:=miktar*8;
topb:=topb+b;
(*Ücreti*)
topmiktar:=topmiktar+miktar; (*kullanıan su miktarı*)
belediyetop:= belediyetop+ topb; (*belediye verilecek
para*)
if (gunsayac<30) then goto 10;
writeln(bolumno,'inci bolumun odeyecegi toplam miktar=
',topb,' su miktari= ', topmiktar);
Örnek 10/ 12-16 Mayıs Haftası
if (bolumno=1) then begin
encokbolum:=1;
encokmiktar:=topmiktar;
encokucret:=topb;
end;
if (encokmiktar < topmiktar) then begin
encokbolum:=bolumno;
encokmiktar:=topmiktar;
encokucret:=topb;
end;
if (bolumno<7) then goto 20;
writeln('En cok su kullanan bolum no: ',encokbolum, '
',encokmiktar, 'ton su kullanmis ve ',encokucret,'TL
odeyecektir');
writeln('belediyeye odenecek toplam ucret= ',
belediyetop);
readln;
end.
.