3. фермер с собакой, девочка с кроликами и мальчик с хомячками
эта адача намного труднее двух предыдущих, но веселая мультимедийная модель поиск решения и
доставит вам радость и удовольствие. когда решение с модели будет найдено, запишите его е еде
алгоритма так же, как и для двух предыдущих . командыг для исполнителя придумайте сами.
thіlе open, aqpaper
условие
фермер с собакой, девочка с двумя кроликами и мальчик с двумя хомячками подошли к берегу реки, через которую им
необходимо перебраться. у берега они увидели маленькую лодку, которая может вместить не более двух людей или
одного человека и одного животного. фермер, мальчик и девочка умеют лодкой, животные это делать не
умеют. лодка сама по себе двигаться так же не умеет.
в компании сложились непростые отношения, и при переправе необходимо учитывать следующие условия:
1 собаку нельзя оставлять без присмотра фермера - она всех подряд начинает кусать.
2. кроликов нельзя оставлять с мальчиком в отсутствие девочки - он начинает дразнить бедных животных,
которые из-за этого расстраиваются и могут заболеть.
3. хомячков нельзя оставлять с девочкой без присмотра мальчика - она начинает дразнить бедных хомячков,
которые из-за этого тоже могут заболеть.
других ограничений на соседство в лодке или на берегу нет.
как всей компании целой и здоровой перебраться с левого берега реки на правый?
ссылка на интерактивную модель:
описание алгоритма для перевозчика (используйте одну строку документа для записи 2 команд алгоритма):
n,k,i:integer;
begin
for n:=1 to 2 do
begin
writeln('Введите строку ',n,':');
readln(s);
k:=0;
for i:=1 to length(s) do
begin
case s[i] of
'[': k:=k+1;
']': k:=k-1;
end;
end;
if k=0
then writeln('В строке ',s,' количество [ и ] одинаково')
else writeln('В строке ',s,' количество [ и ] не одинаково');
end;
end.
Пример:
Введите строку 1:
c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c
В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково
Введите строку 2:
Просто [ пример ]] со [[ скобками
В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
ответ:
uses graphabc;
var xx,yy,u: integer;
procedure growl(x,y,r: integer);
var i: byte;
begin
for i: =1 to r do
begin
circle(x,y,i);
sleep(5);
end;
end;
procedure growr(x,y: integer);
var i: byte;
begin
for i: =1 to 20 do
begin
ellipse(x-5,y-(i),x-(i*3),y+(i));
ellipse(x+5,y-(i),x+(i*3),y+(i));
ellipse(x-(i),y-5,x+(i),y-(i*3));
ellipse(x-(i),y+5,x+(i),y+(i*3));
sleep(3);
end;
end;
procedure fall;
var r,prer,i: byte;
x,y: integer;
begin
for i: =1 to 10 do
begin
x: =random(160)-80+windowwidth div 2;
prer: =0;
r: =random(10)+10;
for y: =80+windowheight div 2 to windowheight+30 do
begin
setpencolor(clwhite);
circle(x,y-1,prer);
setpencolor(clblack);
circle(x,y,r);
prer: =r;
sleep(3);
end;
end;
end;
procedure growd (x,y: integer);
var i: byte;
begin
for i: =20 downto 5 do
begin
clearwindow;
setbrushcolor(clgreen);
ellipse(x-5,y-(20),x-(60),y+(20));
ellipse(x+5,y-(20),x+(60),y+(20));
ellipse(x-(20),y-5,x+(20),y-(60));
ellipse(x-(20),y+5,x+(20),y+(60));
setbrushcolor(rgb(255,255-((20-i)*10),255-((20-i)*;
circle(x-i,y-i,i);
circle(x+i,y-i,i);
circle(x+i,y+i,i);
circle(x-i,y+i,i);
sleep(5);
end;
end;
var j: integer;
begin
repeat
setbrushcolor(clgreen);
growr(windowwidth div 2,windowheight div 2);
setbrushcolor(clwhite);
for j: =1 to 360 do
if j mod 10=0 then
begin
xx: =round(windowwidth div 2+20*cos(pi*(u+(j*10))/180));
yy: =round(windowheight div 2+20*sin(pi*(u+(j*10))/180));
growl(xx,-j) div 10));
end;
sleep(100);
fall;
growd (windowwidth div 2,windowheight div 2);
sleep(100);
until false;
end.
объяснение: