СДАМ ГИА: РЕШУ ОГЭ
Образовательный портал для подготовки к экзаменам
Информатика
информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 15 № 681

Вы­бе­ри­те ОДНО из пред­ло­жен­ных ниже за­да­ний: 15.1 или 15.2.

 

15.1 Ис­пол­ни­тель Робот умеет пе­ре­ме­щать­ся по ла­би­рин­ту, на­чер­чен­но­му на плос­ко­сти, раз­би­той на клет­ки. Между со­сед­ни­ми (по сто­ро­нам) клет­ка­ми может сто­ять стена, через ко­то­рую Робот прой­ти не может. У Ро­бо­та есть де­вять ко­манд. Че­ты­ре ко­ман­ды — это ко­ман­ды-при­ка­зы:

 

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

 

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

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

 

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

 

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

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

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

все

 

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

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

впра­во

за­кра­сить

все

 

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

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

впра­во

все

 

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

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

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

кц

 

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

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

впра­во

кц

 

 

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

На бес­ко­неч­ном поле име­ет­ся лест­ни­ца. Сна­ча­ла лест­ни­ца спус­ка­ет­ся вниз слева на­пра­во, потом под­ни­ма­ет­ся вверх также слева на­пра­во. После подъ­ема лест­ни­ца пе­ре­хо­дит в вер­ти­каль­ную стену. Вы­со­та каж­дой сту­пе­ни — 1 клет­ка, ши­ри­на — 1 клет­ка. Ко­ли­че­ство сту­пе­нек, ве­ду­щих вверх, и ко­ли­че­ство сту­пе­нек, ве­ду­щих вниз, не­из­вест­но. Между спус­ком и подъ­емом ши­ри­на пло­щад­ки — 1 клет­ка. Робот на­хо­дит­ся в клет­ке, рас­по­ло­жен­ной в на­ча­ле спус­ка. На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен бук­вой «Р») .

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

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

 

 

15.2 Вве­ди­те с кла­ви­а­ту­ры 5 по­ло­жи­тель­ных целых чисел. Вы­чис­ли­те сумму тех из них, ко­то­рые де­лят­ся на 4 и при этом за­кан­чи­ва­ют­ся на 6. Про­грам­ма долж­на вы­ве­сти одно число: сумму чисел, вве­ден­ных с кла­ви­а­ту­ры, крат­ных 4 и окан­чи­ва­ю­щих­ся на 6.

 

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

 

Вход­ные дан­ныеВы­ход­ные дан­ные
12
16
36
26
30
52

Решение.

15.1 Следующий алгоритм выполнит требуемую задачу.

вправо

вниз

 

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

закрасить

вправо

закрасить

вниз

кц

 

закрасить

вверх

 

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

вправо

закрасить

вверх

закрасить

кц

 

15.2 Решение

 

var i, sum, а : integer;

begin

sum := 0;

for i := 1 to 5 do begin

readln(a);

if (a mod 4=0) and (a mod 10 = 6) then

sum := sum + a;

end;

writeln(sum);

end.

 

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

 

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

2

3

4

5

6

0
2

16

14

15

13

12

16
3

16

26

36

56

66

108