Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






вверх вниз влево впра­во





 

При вы­пол­не­нии любой из этих ко­манд Робот пе­ре­ме­ща­ет­ся на одну клет­ку со­от­вет­ствен­но: вверх ↑ вниз ↓, влево ←, впра­во →. Если Робот по­лу­чит ко­ман­ду пе­ре­дви­же­ния сквозь стену, то он раз­ру­шит­ся.

Также у Ро­бо­та есть ко­ман­да за­кра­сить, при ко­то­рой за­кра­ши­ва­ет­ся клет­ка, в ко­то­рой Робот на­хо­дит­ся в на­сто­я­щий мо­мент.

Ещё че­ты­ре ко­ман­ды — это ко­ман­ды про­вер­ки усло­вий. Эти ко­ман­ды про­ве­ря­ют, сво­бо­ден ли путь для Ро­бо­та в каж­дом из четырёх воз­мож­ных на­прав­ле­ний:

 

Свер­ху сво­бод­но снизу сво­бод­но слева сво­бод­но спра­ва сво­бод­но

 

Эти ко­ман­ды можно ис­поль­зо­вать вме­сте с усло­ви­ем «если», име­ю­щим сле­ду­ю­щий вид:

 

Если усло­вие то

по­сле­до­ва­тель­ность ко­манд

Все

 

Здесь усло­вие — одна из ко­манд про­вер­ки усло­вия. По­сле­до­ва­тель­ность ко­манд — это одна или не­сколь­ко любых ко­манд-при­ка­зов. На­при­мер, для пе­ре­дви­же­ния на одну клет­ку впра­во, если спра­ва нет стен­ки, и за­кра­ши­ва­ния клет­ки можно ис­поль­зо­вать такой ал­го­ритм:

Если спра­ва сво­бод­но то

Впра­во

За­кра­сить

Все

 

В одном усло­вии можно ис­поль­зо­вать не­сколь­ко ко­манд про­вер­ки усло­вий, при­ме­няя ло­ги­че­ские связ­ки и, или, не, на­при­мер:

 

Если (спра­ва сво­бод­но) и (не снизу сво­бод­но) то

Впра­во

Все

 

Для по­вто­ре­ния по­сле­до­ва­тель­но­сти ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий сле­ду­ю­щий вид:

 

нц пока усло­вие

по­сле­до­ва­тель­ность ко­манд

Кц

 

На­при­мер, для дви­же­ния впра­во, пока это воз­мож­но, можно ис­поль­зо­вать сле­ду­ю­щий ал­го­ритм:

 

Нц пока спра­ва сво­бод­но

Впра­во

Кц

Вы­пол­ни­те за­да­ние.

 

На бес­ко­неч­ном поле име­ет­ся го­ри­зон­таль­ная стена. Длина стены не­из­вест­на. Робот на­хо­дит­ся свер­ху от стены в левом ее конце. На ри­сун­ке при­ве­де­но рас­по­ло­же­ние ро­бо­та от­но­си­тель­но стены (робот обо­зна­чен бук­вой «Р»):

 

На­пи­ши­те ал­го­ритм для ро­бо­та, за­кра­ши­ва­ю­щий все клет­ки, рас­по­ло­жен­ные выше стены на рас­сто­я­нии одной пу­стой клет­ки от стены, не­за­ви­си­мо от длины стены. Робот дол­жен за­кра­сить толь­ко клет­ки, удо­вле­тво­ря­ю­щие за­дан­но­му усло­вию. На­при­мер, для при­ведённого выше ри­сун­ка робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки.

Ко­неч­ное рас­по­ло­же­ние Ро­бо­та может быть про­из­воль­ным. Ал­го­ритм дол­жен ре­шать за­да­чу для про­из­воль­но­го раз­ме­ра поля и лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен внут­ри пря­мо­уголь­но­го поля. При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен раз­ру­шить­ся. Ал­го­ритм может быть вы­пол­нен в среде фор­маль­но­го ис­пол­ни­те­ля или за­пи­сан в тек­сто­вом ре­дак­то­ре.

 

 

20.2 На­пи­ши­те про­грам­му, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет мак­си­маль­ное число, окан­чи­ва­ю­ще­е­ся на 3. Про­грам­ма по­лу­ча­ет на вход ко­ли­че­ство чисел в по­сле­до­ва­тель­но­сти, а затем сами числа. В по­сле­до­ва­тель­но­сти все­гда име­ет­ся число, окан­чи­ва­ю­ще­е­ся на 3. Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти одно число — мак­си­маль­ное число, окан­чи­ва­ю­ще­е­ся

на 3.

 

При­мер ра­бо­ты про­грам­мы:

 

Вход­ные дан­ные Вы­ход­ные дан­ные
   

По­яс­не­ние.

20.1 Ко­ман­ды ис­пол­ни­те­ля будем за­пи­сы­вать жир­ным шриф­том, а ком­мен­та­рии, по­яс­ня­ю­щие ал­го­ритм и не яв­ля­ю­щи­е­ся его ча­стью, — кур­си­вом. На­ча­ло ком­мен­та­рия будем обо­зна­чать сим­во­лом «|».

 

|Будем дви­гать­ся впра­во вдоль стены, на каж­дом шаге за­кра­ши­вая клет­ку свер­ху и пе­ре­дви­га­ясь впра­во.

 

нц пока не снизу сво­бод­но

вверх

за­кра­сить

вниз

впра­во

кц

 

Воз­мож­ны и дру­гие ва­ри­ан­ты ре­ше­ния. До­пус­ка­ет­ся ис­поль­зо­ва­ние иного син­так­си­са ин­струк­ций ис­пол­ни­те­ля, более при­выч­но­го для уча­щих­ся. До­пус­ка­ет­ся на­ли­чие от­дель­ных син­так­си­че­ских оши­бок, не ис­ка­жа­ю­щих за­мыс­ла ав­то­ра ре­ше­ния.

 

20.2 Ре­ше­ни­ем яв­ля­ет­ся про­грам­ма, за­пи­сан­ная на любом языке про­грам­ми­ро­ва­ния. При­мер вер­но­го ре­ше­ния, за­пи­сан­но­го на языке Пас­каль:

 

var n,i,a,max: integer;

begin

readln(n);

max:= -1;

for i:= 1 to n do

begin

readln(a);

if (a mod 10 = 3) and (a > max)

then max:= a;

end;

writeln(max);

end.

 

Воз­мож­ны и дру­гие ва­ри­ан­ты ре­ше­ния.

Для про­вер­ки пра­виль­но­сти ра­бо­ты про­грам­мы не­об­хо­ди­мо ис­поль­зо­вать сле­ду­ю­щие тесты:

 

Вход­ные дан­ные Вы­ход­ные дан­ные
     
     
     

 

Date: 2016-06-06; view: 507; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию