задача программы исполнителя водолей.имеются три сосуда вместимостью 8,3 и 5 литра.наибольший сосуд полон молока.Как разделить этл молоко на 2 равные части,используя остальные сосуды

Ответы

Ответ дал: srzontmp
0

var a,b,c,va,vb,vc: integer;

begin

 va:=8; vb:=3; vc:=5;

 a:=va; b:=0; c:=0;

 write('начальное распределение: ');

 writeln('a = ',a,'  b = ',b,'  c = ',c);

 while true do

 begin

   if ((a>0) and (b<vb)) then

   begin

     a:=a-(vb-b); b:=vb;

   end

   else

   if (c<vc) and (b>0) then

   begin

     b:=b-min((vc-c),vb); c:=c+min((vc-c),vb);

   end;

   if (c=vc) then

   begin

     writeln('a = ',a,'  b = ',b,'  c = ',c);    

     a:=a+c; c:=0;

     writeln('a = ',a,'  b = ',b,'  c = ',c);

     c:=b; b:=0;

   end;

   writeln('a = ',a,'  b = ',b,'  c = ',c);

   if (a=(va div 2)) then break;

 end;

 if b+c<=vc then

 begin

   c:=c+b; b:=0;

   writeln('a = ',a,'  b = ',b,'  c = ',c);

 end;

 write('конечное распределение: ');

 writeln('a = ',a,'  b = ',b,'  c = ',c);

end.


начальное распределение: a = 8  b = 0  c = 0

a = 5  b = 3  c = 0

a = 5  b = 0  c = 3

a = 2  b = 3  c = 3

a = 2  b = 1  c = 5

a = 7  b = 1  c = 0

a = 7  b = 0  c = 1

a = 4  b = 3  c = 1

a = 4  b = 0  c = 4

конечное распределение: a = 4  b = 0  c = 4


Вас заинтересует