Pascal programlama dilinde yazılmış bu programda bir su tankeri 100 litre su ile doludur. Bidonlara bu tankerden su doldurulacaktır. Bidon kapasiteleri programa veri olarak girilecektir. Veri girme işlemini bitirmek için 0 gözcü değeri kullanılacaktır. İstekte bulunanların hangilerinin tankerden istedikleri suyun tamamını, hangilerinin bir kısmını ve hangilerinin hiç alamayacaklarını gösterilmiştir.
Test İşlemi:
Girdi : 30 40 20 30 50 10 0
Sonuç: 3 bidon tamamen doldurulur. 2 bidon hiç doldurumaz. 4. bidonun 30 litreden 10 litresi doldurulur.
Program Kodu:
Kod: Kodu kopyalamak için üzerine çift tıklayın!
uses crt;
var
bidon:array[1..100] of integer;
dl:array[1..100] of integer;
i,j,s,b,d,kalan:integer;
begin
clrscr;
writeln('Bidon kapasitelerini giriniz...:');
s:=0;b:=0;d:=0;
repeat
readln(b);s:=s+1; bidon[s]:=b;
until b=0;
readln;
for i:=1 to s-1 do
dl[i]:=0;
kalan:=100;
for i:=1 to s-1 do
begin
kalan:= kalan-bidon[i];
if kalan >= 0 then dl[i]:=2
else if kalan < 0 then begin kalan:= kalan + bidon[i]; i:=s-1;end;
end;
j:=0;
if kalan<>0 then
begin
for i:=1 to s-1 do
begin
if j=0 then
if dl[i]<>2 then begin dl[i]:=1; j:=i;end;
end;
end;
for i:=1 to s-1 do
if dl[i]=0 then b:=b+1
else if dl[i]=2 then d:=d+1;
writeln('');
writeln(d, ' bidon tamamen doldurulur.');
writeln(b, ' bidon hic doldurulmaz.');
if kalan<>0 then
writeln(j, '. bidonun ', bidon[j], ' litreden ', kalan, ' litresi doldurulur.');
readln;
end.