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




Школа экспертов
Вернуться на основную страницу «Школы экспертов»

Ниже представлены ученические решения экзаменационных заданий. Оцените каждое из них в соответствии с критериями проверки заданий ЕГЭ. После нажатия кнопки «Проверить» вы узнаете правильный балл за каждое из решений. В конце будут подведены итоги.

Задание 963
Задание 1681


Задание № 963

20.1

На бес­ко­неч­ном поле име­ет­ся вер­ти­каль­ная стена. Длина стены неизвестна. От верх­не­го конца стены впра­во от­хо­дит го­ри­зон­таль­ная стена также не­из­вест­ной длины. Робот на­хо­дит­ся в клетке, рас­по­ло­жен­ной слева от ниж­не­го края вер­ти­каль­ной стены.

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

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

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

 

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

 

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

 

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

–32

14

17

0

1

Пояснение

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

 

| Двигаемся вверх, пока не дойдём до конца вер­ти­каль­ной стены, за­кра­ши­вая все клет­ки на пути

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

закрасить

вверх

кц

 

| Закрасим уг­ло­вую клет­ку и пе­ре­ме­стим­ся в на­ча­ло го­ри­зон­таль­ной стены

закрасить

вправо

 

| Двигаемся впра­во до конца го­ри­зон­таль­ной стены, за­кра­ши­вая все клет­ки на пути

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

закрасить

вправо

кц

 

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

 

20.2 Ва­ри­ант ре­ше­ния на языке Паскаль.

var a, answer: integer;

begin

answer:=0;

readln(a);

while a<>0 do begin

if (a mod 2 = 0) and (a mod 7 = 0) then

answer := answer + 1;

readln(a); end;

writeln(answer);

end.



Критерии оце­ни­ва­ния вы­пол­не­ния за­да­ния 20.1Баллы
Записан правильный алгоритм, не приводящий к уничтожению Робота, полностью решающий поставленную задачу. Допускается использование иного синтаксиса инструкций исполнителя, более привычного учащимся Допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения.2
Алгоритм в целом записан верно, но может содержать одну ошибку. Примеры ошибок:

1) Робот закрашивает одну или несколько лишних клеток;

2) Робот не закрашивает одну из клеток (например, клетку над пересечением вертикальной и горизонтальной стены).

Несколько однотипных ошибок считаются за одну ошибку.

1
Задание выполнено неверно, или возможных ошибок в алгоритме больше одной.0
Максимальный балл2

 

 

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

 

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

10

7

0

0
2

17

0

0
3 14

0

1
4

–42

1001

2800

0

2

 

Критерии оце­ни­ва­ния вы­пол­не­ния за­да­ния 20.2Баллы
Предложено вер­ное решение. Про­грам­ма пра­виль­но ра­бо­та­ет на всех приведённых выше тестах. Про­грам­ма может быть за­пи­са­на на любом языке программирования.2
Программа выдаёт неверный ответ на одном из тестов, приведённых выше. Например, решение, в котором неверно задано условие отбора чисел: (a mod 2=0)or(a mod 7=0), выдаст неправильный ответ на тесте № 1.

ИЛИ

Программа выдаёт на всех тестах ответ на единицу больше, чем требуется. Такое возможно, если в решении при определении количества чётных чисел, кратных 7, ошибочно учитывается 0.

1
Программа выдаёт на тестах неверные ответы, отличные от описанных в критерии на 1 балл.0
Максимальный балл2


Пример 1.

 

закрасить

вверх

закрасить

вверх

закрасить

вверх

закрасить

вверх

закрасить

вверх

закрасить

вверх

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

Оцените это решение в баллах:

Пример 2.

 

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

закрасить

вверх

кц

(закрасить) и (вправо)

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

закрасить

вправо

кц

Оцените это решение в баллах:

Пример 3.

 

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

закрасить

вверх

все

закрасить

вправо

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

красить

вправо

все

Оцените это решение в баллах:

Пример 4.

 

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

закрасить

вверх

кц

вправо

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

закрасить

вправо

кц

Оцените это решение в баллах:

Пример 5.

 

 

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

вверх

закрасить

кц

вправо

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

закрасить

вправо

кц

Оцените это решение в баллах:

Пример 6.

 

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

закрасить

вверх

кц

закрасить

вправо

закрасить

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

вправо

закрасить

кц

Оцените это решение в баллах:



Задание № 1681

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

 

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

 

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

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

 

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

 

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

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

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

все

 

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

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

вправо

закрасить

все

 

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

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

вправо

все

 

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

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

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

кц

 

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

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

вправо

кц

 

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

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

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

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

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

Алгоритм дол­жен ре­шать за­да­чу для лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен и лю­бо­го рас­по­ло­же­ния и раз­ме­ра про­хо­дов внут­ри стен.

Алгоритм может быть вы­пол­нен в среде фор­маль­но­го ис­пол­ни­те­ля или за­пи­сан в тек­сто­вом редакторе.

 

20.2

Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти натуральных чисел опре­де­ля­ет максимальное число, крат­ное 5 и не крат­ное 7. Про­грам­ма получает на вход ко­ли­че­ство чисел в последовательности, а затем сами числа. В по­сле­до­ва­тель­но­сти всегда име­ет­ся число, крат­ное 5 и не крат­ное 7.

Количество чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000.

Программа долж­на вывести одно число: мак­си­маль­ное число, крат­ное 5, но не крат­ное 7.

 

 

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

 

Входные данныеВыходные данные
3
10
25
12
25

Пояснение

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 5 = 0) and (a mod 7 <> 0) and (a > max)

then max := a;

end;

writeln(max)

end.

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

 

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

 

Входные данныеВыходные данные
1 3
5
35
8
5
2 4
35
10
25
15
25
3 4
15
20
10
35
20


Критерии оце­ни­ва­ния вы­пол­не­ния за­да­ния 20.1Баллы
Алгоритм пра­виль­но ра­бо­та­ет при всех до­пу­сти­мых ис­ход­ных данных2
При всех до­пу­сти­мых ис­ход­ных дан­ных верно следующее:

1) вы­пол­не­ние ал­го­рит­ма завершается, и при этом Робот не разбивается;

2) за­кра­ше­но не более 10 лиш­них клеток;

3) оста­лись не­за­кра­шен­ны­ми не более 10 кле­ток из числа тех, ко­то­рые долж­ны были быть закрашены

1
Задание вы­пол­не­но неверно, т. е. не вы­пол­не­ны условия, поз­во­ля­ю­щие по­ста­вить 1 или 2 балла0
Максимальный балл2

 

Критерии оце­ни­ва­ния вы­пол­не­ния за­да­ния 20.2Баллы
Предложено вер­ное решение. Про­грам­ма пра­виль­но ра­бо­та­ет на всех приведённых выше тестах. Про­грам­ма может быть за­пи­са­на на любом языке программирования2
Программа выдаёт не­вер­ный ответ на одном из тестов, приведённых выше1
Программа выдаёт на те­стах не­вер­ные ответы, от­лич­ные от опи­сан­ных в кри­те­рии на 1 балл0
Максимальный балл2


Пример 1.

20.1

Оцените это решение в баллах:

Пример 2.

20.1

Оцените это решение в баллах:

Пример 3.

20.1

Оцените это решение в баллах:

Пример 4.

20.2

Оцените это решение в баллах:

Пример 5.

20.2

Оцените это решение в баллах:

Пример 6.

20.2

Оцените это решение в баллах:



Наверх
Вернуться на основную страницу «Школы экспертов»