Задания
Версия для печати и копирования в MS Word
Тип 6 № 87397
i

Ис­пол­ни­тель Че­ре­па­ха дей­ству­ет на плос­ко­сти с де­кар­то­вой си­сте­мой ко­ор­ди­нат. В на­чаль­ный мо­мент Че­ре­па­ха на­хо­дит­ся в на­ча­ле ко­ор­ди­нат, её го­ло­ва на­прав­ле­на вдоль по­ло­жи­тель­но­го на­прав­ле­ния оси ор­ди­нат, хвост опу­щен. При опу­щен­ном хво­сте Че­ре­па­ха остав­ля­ет на поле след в виде линии. В каж­дый кон­крет­ный мо­мент из­вест­но по­ло­же­ние ис­пол­ни­те­ля и на­прав­ле­ние его дви­же­ния. У ис­пол­ни­те­ля су­ще­ству­ет 6 ко­манд: Под­нять хвост, озна­ча­ю­щая пе­ре­ход к пе­ре­ме­ще­нию без ри­со­ва­ния; Опу­стить хвост, озна­ча­ю­щая пе­ре­ход в режим ри­со­ва­ния; Вперёд n (где n  — целое число), вы­зы­ва­ю­щая пе­ре­дви­же­ние Че­ре­па­хи на n еди­ниц в том на­прав­ле­нии, куда ука­зы­ва­ет её го­ло­ва; Назад n (где n  — целое число), вы­зы­ва­ю­щая пе­ре­дви­же­ние в про­ти­во­по­лож­ном го­ло­ве на­прав­ле­нии; На­пра­во m (где m  — целое число), вы­зы­ва­ю­щая из­ме­не­ние на­прав­ле­ния дви­же­ния на m гра­ду­сов по ча­со­вой стрел­ке; На­ле­во m (где m  — целое число), вы­зы­ва­ю­щая из­ме­не­ние на­прав­ле­ния дви­же­ния на m гра­ду­сов про­тив ча­со­вой стрел­ки.

За­пись По­вто­ри k [Ко­ман­да1 Ко­ман­да2 ... Ко­ман­даS] озна­ча­ет, что по­сле­до­ва­тель­ность из S ко­манд по­вто­рит­ся k раз.

 

Че­ре­па­хе был дан для ис­пол­не­ния сле­ду­ю­щий ал­го­ритм.

По­вто­ри 2 [Вперёд 8 На­ле­во 270 Назад 6 На­пра­во 90]

Под­нять хвост

Вперёд 5 На­пра­во 90 Назад 3 На­ле­во 90

Опу­стить хвост

По­вто­ри 2 [Вперёд 7 На­пра­во 90 Вперёд 2 На­пра­во 90]

Под­нять хвост

Вперёд 3 На­пра­во 180 Назад 1

Опу­стить хвост

По­вто­ри 2 [Вперёд 5 На­пра­во 90 Вперёд 5 На­пра­во 90]

 

Опре­де­ли­те пло­щадь объ­еди­не­ния фигур, огра­ни­чен­ных за­дан­ны­ми ал­го­рит­мом ли­ни­я­ми.

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке КуМир.

 

Вы­бе­ри­те мас­штаб сетки рав­ным 1, за­пу­сти­те про­грам­му для ис­пол­ни­те­ля Че­ре­па­ха.

ис­поль­зо­вать Че­ре­па­ха

алг

нач

опу­стить хвост

нц 2 раз

впе­ред(8)

влево(270)

назад(6)

впра­во(90)

кц

под­нять хвост

впе­ред(5)

впра­во(90)

назад(3)

влево(90)

опу­стить хвост

нц 2 раз

впе­ред(7)

впра­во(90)

впе­ред(2)

впра­во(90)

кц

под­нять хвост

впе­ред(3)

впра­во(180)

назад(1)

опу­стить хвост

нц 2 раз

впе­ред(5)

впра­во(90)

впе­ред(5)

впра­во(90)

кц

кон

 

Пло­щадь объ­еди­не­ния фигур, огра­ни­чен­ных за­дан­ны­ми ал­го­рит­мом ли­ни­я­ми равна сумме пло­ща­дей трех пря­мо­уголь­ни­ков минус пло­ща­ди пе­ре­се­че­ния фигур: 48+25+14-12-6=69.

 

Ответ: 69.

 

При­ведём по­стро­е­ние ри­сун­ка Бо­ри­са Са­ве­лье­ва на языке Python.

from turtle import* #под­клю­че­ние мо­ду­ля че­ре­па­ха

#го­то­вим шаб­лон сетки и ско­рость от­ри­сов­ки

tracer(0)#уби­ра­ем за­держ­ку перед об­нов­ле­ни­ем экра­на или delay(0)

k=20#устав­нав­ли­ва­ем мас­штаб

#го­то­вим ко­ор­ди­нат­ную плос­кость

penup()#под­ни­ма­ет перо, чтобы не ри­со­вать

for x in range (-400,400,k):#ВСЕ ЧИСЛА СТРО­ГО КРАТ­НЫ МАС­ШТА­БУ!

for y in range(-400, 400, k):

goto(x,y)#пе­ре­ме­ща­ет че­ре­па­ху в точку с ко­ор­ди­на­та­ми х и у

pendown()#опус­ка­ет перо, чтобы ри­со­вать

circle(1)#окруж­ность ра­ди­у­сом 1 или dot(3,'red')

penup()

#от­ри­сов­ка фи­гу­ры по за­да­нию

goto(0,0)#воз­вра­ща­ет че­ре­па­ху в на­чаль­ную точку, можно из­ме­нять, чтобы пе­ре­ме­щать фи­гу­ру вверх, вниз, впра­во или влево, СТРО­ГО КРАТ­НО К

pendown()#опус­ка­ет перо, чтобы ри­со­вать

for i in range (2):

forward(8*k)

circle(1)

left(270)

backward(6*k)

circle(1)

right(90)

penup()

forward(5*k)

right(90)

backward(3*k)

left(90)

pendown()

for i in range (2):

forward(7*k)

circle(1)

right(90)

forward(2*k)

circle(1)

right(90)

penup()

forward(3*k)

right(180)

backward(1*k)

pendown()

for i in range (2):

forward(5*k)

circle(1)

right(90)

forward(5*k)

circle(1)

right(90)

done()#остав­ля­ет экран ак­тив­ным

 

 

При­ведём про­грам­му Сер­гея Донец на PascalABC.NET:

uses turtle;begin down;

loop 2 do begin Forw(8);Turn(-270);Forw(-6);Turn(90);end;

up;Forw(5);Turn(90);Forw(-3);Turn(-90);down;

loop 2 do begin Forw(7);Turn(90);Forw(2);Turn(90);end;

up;Forw(3);Turn(180);Forw(-1);down;

loop 2 do begin Forw(5);Turn(90);Forw(5);Turn(90);end;

end.


Аналоги к заданию № 87397: 87424 Все