Информатика класс Вариант ИН10101...

31
Информатика. 11 класс. Вариант ИН10101 1 © СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена Критерии оценивания заданий с развёрнутым ответом Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 10 9 , и выводится количество цифр в десятичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.) Бейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1 cnt = cnt + A MOD 10 A = A \ 10 WEND PRINT cnt END var A: longint; cnt: integer; begin readln(A); cnt := 0; while A > 1 do begin cnt:=cnt + A mod 10; A := A div 10; end; writeln(cnt); end. Си Алгоритмический язык #include<stdio.h> int main() { long int A; int cnt; scanf("%ld", &A); cnt = 0; while (A > 1) { cnt = cnt + A%10; A = A /10; } printf("%d", cnt); } алг нач цел A, cnt ввод A cnt := 0 нц пока A > 1 cnt := cnt + mod(A, 10) A := div(A, 10) кц вывод cnt кон Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 111. 2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: а) выпишите строку, в которой сделана ошибка; б) укажите, как исправить ошибку: приведите правильный вариант строки. Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. 24

Transcript of Информатика класс Вариант ИН10101...

Page 1: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 1

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Критерии оценивания заданий с развёрнутым ответом

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится количество цифр в десятичной записи этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик ПаскальDIM A AS LONG INPUT A cnt = 0 WHILE A > 1 cnt = cnt + A MOD 10 A = A \ 10 WEND PRINT cnt END

var A: longint; cnt: integer; begin readln(A); cnt := 0; while A > 1 do begin cnt:=cnt + A mod 10; A := A div 10; end; writeln(cnt); end.

Си Алгоритмический язык #include<stdio.h> int main() { long int A; int cnt; scanf("%ld", &A); cnt = 0; while (A > 1) { cnt = cnt + A%10; A = A /10; } printf("%d", cnt); }

алг нач цел A, cnt ввод A cnt := 0 нц пока A > 1 cnt := cnt + mod(A, 10) A := div(A, 10) кц вывод cnt кон

Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 111. 2. Найдите все ошибки в этой программе (их может быть одна или

несколько). Для каждой ошибки: а) выпишите строку, в которой сделана ошибка; б) укажите, как исправить ошибку: приведите правильный вариант строки. Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

24

Page 2: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 2

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках.

1. Программа выведет число 2. 2. Первая ошибка. Неверное условие продолжения цикла.

Программа не будет рассматривать старшую цифру числа, если она равна 1. Строка с ошибкой: while A > 1 do Возможные варианты исправления: while (A >= 1) do или while (A > 0) do При этом замена на while (A >= 0) do корректной не является. 3. Вторая ошибка. Неверный подсчёт количества цифр (переменная cnt). Вместо количества цифр числа программа считает их сумму. Строка с ошибкой: сnt := cnt + A mod 10; Возможный вариант исправления: сnt := cnt + 1;

Указания по оцениванию БаллыОбратите внимание! В задаче требовалось выполнить три действия: указать, что выведет программа при конкретном входном значении, и исправить две ошибки. Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия (ниже указано, какое действие считается выполненным). 1. Верно указано, что именно выведет программа при указанных в условии входных данных. 2. Указано на неверное условие продолжения цикла, и оно исправлено на верное. 3. Указано на неверное суммирование при подсчёте количества цифр числа, и оно исправлено на верное. Каждый из п. 2 и 3 считается выполненным, если: а) правильно указана строка с ошибкой; б) указан такой новый вариант строки, что при исправлении ошибок получается правильная программа

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

3

Page 3: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 3

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Выполнено одно из следующих условий. 1. Правильно выполнены два действия из трёх (исправлены обе ошибки, но в п. 1 задания ответ неверный или отсутствует, или выполнен п. 1 и верно исправлена только одна ошибка). Верное указание на ошибку при её неверном исправлении при этом не засчитывается. 2. Выполнен п. 1, а вместо указания на ошибки в программе и их исправления приведён новый верный текст решения, возможно, совершенно непохожий на исходный. 3. Правильно выполнены все действия (приведён верный ответ на вопрос 1, и исправлены обе ошибки), но в текст программы внесены и другие изменения, приводящие к её неверной работе

2

Правильно выполнено только одно действие из трёх, то есть либо только выполнен п. 1, либо он не выполнен или выполнен неверно и верно указана и исправлена только одна ошибка программы

1

Все пункты задания выполнены неверно (ответ на п. 1 не приведён или приведён неверно; ошибки не найдены или найдены, но не исправлены или исправлены неверно)

0

Максимальный балл 3

Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди двузначных элементов массива, не делящихся на 3. Если в исходном массиве нет элемента, значение которого является двузначным числом и при этом не кратно трём, то выведите сообщение «Не найдено».

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Бейсик Паскаль N = 40 DIM A(N) AS INTEGER DIM I, J, MAX AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I ... END

const N = 40; var a: array [1..N] of integer; i, j, max: integer; begin for i := 1 to N do readln(a[i]); ... end.

25

Page 4: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 4

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Си Алгоритмический язык #include <stdio.h> #define N 40 void main() { int a[N]; int i, j, max; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... }

алг нач цел N = 40 целтаб a[1:N] цел i, j, max нц для i от 1 до N ввод a[i] кц ... кон

Естественный язык Объявляем массив A из 40 элементов. Объявляем целочисленные переменные I, J, MAX. В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й. … В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

На языке Паскаль max := 9; for i := 1 to N do if (a[i]>=10) and (a[i]<=98) and (a[i] mod 3<>0) and (a[i]>max) then max := a[i]; if max > 9 then writeln(max) else writeln(Не найдено);

На алгоритмическом языке max := 9 нц для i от 1 до N если a[i]>=10 и a[i]<=98 и mod(a[i],3)<>0 и a[i]>max то max := a[i] все кц если max > 9 то вывод max иначе вывод "Не найдено" все

Page 5: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 5

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

На языке Бейсик MAX = 9 FOR I = 1 TO N IF A(I)>=10 AND A(I)<=99 AND A(I) MOD 3<>0 AND A(I)>MAX THEN MAX = A(I) END IF NEXT I IF MAX > 9 THEN PRINT MAX ELSE PRINT "Не найдено" END IF

На языке Си max = 9; for (i = 0; i<N; i++) if (a[i]>9 && a[i]<99 && a[i]%3!=0 && a[i]>max) max = a[i]; if (max>9) printf("%d", max); else printf("Не найдено");

На естественном языке Записываем в переменную MAX начальное значение, равное 9. В цикле от первого элемента до сорокового находим остаток от деления элемента исходного массива на 3. Если значение данного остатка не равно 0 и значение текущего элемента массива больше 9 и меньше 100, то сравниваем значение текущего элемента массива со значением переменной MAX. Если текущий элемент массива больше MAX, то записываем в MAX значение этого элемента массива. Переходим к следующему элементу. После завершения цикла проверяем значение переменной MAX. Если оно больше 9, то выводим его, иначе выводим сообщение «Не найдено».

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

2

Page 6: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 6

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

В любом варианте решения может присутствовать не более одной ошибки из числа следующих:

1) не инициализируется или неверно инициализируется переменная MAX (например, присваивается начальное значение, большее или равное 10);

2) неточно определяется принадлежность диапазону двузначных чисел (например, в сравнении с 10 вместо знака «больше или равно» используется знак «больше»; также обратите внимание на то, что с учётом ограничения на кратность трём допустима проверка на принадлежность диапазону от 10 до 98);

3) неверно осуществляется проверка делимости на 3; 4) на делимость на 3 проверяется не значение элемента, а его

индекс; 5) в сложном условии вместо логической операции «И»

используется логическая операция «ИЛИ»; 6) отсутствует вывод ответа или при выводе ответа

не учитывается случай, что требуемого числа в массиве может не быть;

7) используется переменная, не объявленная в разделе описания переменных;

8) не указано или неверно указано условие завершения цикла; 9) индексная переменная в цикле не меняется (например, в цикле

while) или меняется неверно; 10) неверно расставлены операторные скобки.

1

Ошибок, перечисленных в п. 1–10, две или больше, или алгоритм сформулирован неверно.

0

Максимальный балл 2

Два игрока, Паша и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один или три камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 18 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 33. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 33 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 32.

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

26

Page 7: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 7

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Выполните следующие задания. Во всех случаях обосновывайте свой ответ. 1. а) Укажите все такие значения числа S, при которых Паша может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S. б) Укажите такое значение S, при котором Паша не может выиграть за один ход, но при любом ходе Паши Вася может выиграть своим первым ходом. Опишите выигрышную стратегию Васи. 2. Укажите 3 таких значения S, при которых у Паши есть выигрышная стратегия, причём Паша не может выиграть за один ход и может выиграть своим вторым ходом независимо от того, как будет ходить Вася. Для каждого указанного значения S опишите выигрышную стратегию Паши. 3. Укажите хотя бы одно значение S, при котором: – у Васи есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Паши, и – у Васи нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Для указанного значения S опишите выигрышную стратегию Васи. Постройте дерево всех партий, возможных при этой выигрышной стратегии Васи (в виде рисунка или таблицы).

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

1. а) Паша может выиграть, если S = 17, … 32. Во всех этих случаях достаточно удвоить количество камней. При меньших значениях S за один ход нельзя получить кучу, в которой больше 33 камней. б) Вася может выиграть первым ходом (как бы ни играл Паша), если исходно в куче будет S = 16 камней. Тогда после первого хода Паши в куче будет 17, 19 или 32 камня. Во всех случаях Вася удваивает количество камней и выигрывает в один ход.

2. Возможные значения S: 8, 13, 15. В этих случаях Паша, по пункту 1а, не может выиграть первым ходом. Однако он может получить кучу из 16 камней: в первом случае удвоением кучи, во втором – добавлением трёх камней, в третьем – добавлением одного камня. Эта позиция разобрана в п. 1б. В ней игрок, который будет ходить (теперь это Вася), выиграть не может, а его противник (то есть Паша) следующим ходом выиграет.

3. Могут быть названы возможные значения S = 12 или S = 14 (учащемуся достаточно указать одно из них).

Если S = 12, то после первого хода Паши в куче будет 13, или 15, или 24 камня. Если в куче станет 24 камня, Вася удвоит количество камней и выиграет первым ходом. Ситуация, когда в куче 13 или 15 камней, разобрана в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Вася), выигрывает своим вторым ходом.

Page 8: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 8

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

В таблице изображено дерево возможных партий при описанной стратегии Васи. Заключительные позиции (в них выигрывает Вася) подчёркнуты. На рисунке это же дерево изображено в графическом виде (оба способа изображения дерева допустимы).

Положения после очередных ходов

Исходная позиция

1-й ход Паши (разобраны все

ходы)

1-й ход Васи (только ход по стратегии)

2-й ход Паши (разобраны все

ходы)

2-й ход Васи (только ход по стратегии)

12

12 + 1 = 13 13 + 3 = 16

16 + 1 = 17 17 * 2 = 34

16 + 3 = 19 19 * 2 = 38

16 * 2 = 32 32 * 2 = 64

12 + 3 = 15 15 + 1 = 16

16 + 1 = 17 17 * 2 = 34

16 + 3 = 19 19 * 2 = 38

16 * 2 = 32 32 * 2 = 64

12 * 2 = 24 24 * 2 = 48

Рис. 1. Дерево всех партий, возможных при Васиной стратегии (исходная позиция S = 12).

Знаком >> обозначены позиции, в которых партия заканчивается

Page 9: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 9

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Если S = 14, то после первого хода Паши в куче будет 15, или 17, или 28 камней. Если в куче станет 17 или 28 камней, Вася удвоит количество камней и выиграет первым ходом. Ситуация, когда в куче 15 камней, разобрана в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Вася), выигрывает своим вторым ходом.

В таблице изображено дерево возможных партий при описанной стратегии Васи. Заключительные позиции (в них выигрывает Вася) подчёркнуты. На рисунке это же дерево изображено в графическом виде (оба способа изображения дерева допустимы).

Положения после очередных ходов

Исходная позиция

1-й ход Паши (разобраны все

ходы)

1-й ход Васи (только ход по стратегии)

2-й ход Паши (разобраны все

ходы)

2-й ход Васи (только ход по стратегии)

14

14 + 3 = 17 17 * 2 = 34

14 + 1 = 15 15 + 1 = 16

16 + 1 = 17 17 * 2 = 34

16 + 3 = 19 19 * 2 = 38

16 * 2 = 32 32 * 2 = 64

14 * 2 = 28 28 * 2 = 56

Рис. 2. Дерево всех партий, возможных при Васиной стратегии (исходная позиция S = 14).

Знаком >> обозначены позиции, в которых партия заканчивается

Page 10: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 10

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Указания по оцениванию Баллы

В задаче от ученика требуется выполнить три задания. Их трудность возрастает. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже). Одна ошибка в решении, не искажающая основного замысла и не приведшая к неверному ответу, например, арифметическая ошибка при вычислении количества камней в заключительной позиции, при оценке решения не учитывается. Первое задание считается выполненным полностью, если выполнены полностью оба пункта: а) и б). Пункт а) считается выполненным полностью, если правильно указаны все позиции, в которых Паша выигрывает первым ходом, и указано, каким должен быть первый ход. Пункт б) считается выполненным полностью, если правильно указана позиция, в которой Вася выигрывает первым ходом, и описана стратегия Васи, то есть показано, как Вася может получить кучу, в которой содержится нужное количество камней, при любом ходе Паши. Первое задание считается выполненным частично, если: а) правильно указаны все позиции, в которых Паша выигрывает первым ходом; б) правильно указана позиция, в которой Вася выигрывает первым ходом, и явно сказано, что при любом ходе Паши Вася может получить кучу, которая содержит нужное для выигрыша количество камней. Отличие от выполненного полностью задания состоит в том, что не указаны явно ходы, которыми выиграет Паша или Вася. Второе задание выполнено, если правильно указаны все три позиции, выигрышные для Паши, и полностью описана соответствующая стратегия Паши – так, как это написано в примере решения, или другим способом, например, с помощью дерева всех партий, возможных при выбранной стратегии Паши. Третье задание выполнено, если правильно указана хотя бы одна позиция, выигрышная для Васи, и построено дерево всех партий, возможных при Васиной стратегии. В этом дереве в каждой позиции, где должен ходить Паша, должны быть разобраны все возможные ходы, а для позиций, где должен ходить Вася, – только ход, соответствующий стратегии, которую выбрал Вася.

Во всех случаях стратегии могут быть описаны так, как это сделано в примере решения, или другим способом

Выполнены второе и третье задания. Первое задание выполнено полностью или частично. Здесь и далее допускаются арифметические ошибки, которые не искажают сути решения и не приводят к неправильному ответу (см. выше).

3

Page 11: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 11

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Не выполнены условия, позволяющие поставить 3 балла, и выполнено одно из следующих условий. 1. Третье задание выполнено полностью. 2. Первое и второе задания выполнены полностью. 3. Первое задание выполнено полностью или частично, для второго

и третьего заданий указаны правильные значения, при этом для третьего задания достаточно указать одно значение S

2

Не выполнены условия, позволяющие поставить 3 или 2 балла, и выполнено одно из следующих условий. 1. Первое или второе задание выполнено полностью. 2. Во втором задании правильно указано одно или два из трёх

возможных значений S, и для этих значений указана и обоснована выигрышная стратегия Паши.

3. Первое задание выполнено частично, и для одного из остальных заданий правильно указаны значения S, при этом для третьего задания достаточно указать одно значение S .

4. Для второго и третьего заданий правильно указаны значения S, при этом для третьего задания достаточно указать одно значение S

1

Не выполнено ни одно из условий, позволяющих поставить 3, 2 или 1 балл

0

Максимальный балл 3

Последовательность натуральных чисел характеризуется числом Y –наибольшим числом, кратным 26 и являющимся произведением двух элементов последовательности с различными номерами. Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), находящую число Y для последовательности натуральных чисел, значение каждого элемента которой не превосходит 1000. Программа должна напечатать найденное число, если оно существует для заданной последовательности, или ноль в противном случае. Перед текстом программы кратко опишите используемый Вами алгоритм решения. На вход программе в первой строке подаётся количество чисел N. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. Пример входных данных: 5 40 100 130 28 51

27

Page 12: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 12

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Пример выходных данных для приведённого выше примера входных данных: 13000

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

Произведение двух чисел делится на 26, если: один из сомножителей делится на 26 (второй может быть любым) либо ни один из сомножителей не делится на 26, но один из сомножителей

делится на 13, а другой – на 2. Поэтому программа, вычисляющая число Y, может работать так. Программа читает все входные данные один раз, не запоминая все данные в массиве. Программа для прочитанного фрагмента входной последовательности хранит значения четырёх величин: М13 – самое большое число, кратное 13, но не кратное 2; M2 – самое большое число, кратное 2, но не кратное 13; M26 – самое большое число, кратное 26; МAX – самое большое число среди всех элементов последовательности, отличное от М26 (если число М26 встретилось более одного раза и оно же является максимальным, то MAX = M26). После того как все данные прочитаны, искомое число Y вычисляется как максимум из произведений М26*MAX и М13*М2. Ниже приведён пример программы на языке Паскаль, которая реализует описанный алгоритм. Кроме того, приведён пример программы на языке Бейсик, которая правильно решает задачу, но использует алгоритм, немного отличающийся от описанного выше. Возможны и другие правильные алгоритмы. Допускаются решения, записанные на других языках программирования.

Page 13: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 13

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Пример правильной и эффективной программы на языке Паскаль: var M13,M2,M26,MAX,dat,res,i,N: longint; begin M13 := 0; M2 := 0; M26 := 0; MAX := 0; readln(N); for i := 1 to N do begin readln(dat); if ((dat mod 13) = 0) and ((dat mod 2) > 0) and (dat > M13) then M13 := dat; if ((dat mod 2) = 0) and ((dat mod 13) > 0) and (dat > M2) then M2 := dat; if (dat mod 26 = 0) and (dat > M26) then begin if M26 > MAX then MAX := M26; M26 := dat end else if dat > MAX then MAX := dat; end; if (M13*M2 < M26*MAX) then res := M26*MAX else res := M13*M2; writeln(res); end.

Page 14: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 14

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Пример правильной и эффективной программы на языке Бейсик: M26 = 0 M13 = 0 M2 = 0 MAX = 0 INPUT N FOR I = 1 TO N INPUT DAT IF DAT MOD 13 = 0 AND DAT > M13 THEN M13 = DAT ELSE IF DAT MOD 2 = 0 AND DAT > M2 THEN M2 = DAT END IF END IF IF DAT MOD 26 = 0 AND DAT > M26 THEN IF M26 > MAX THEN MAX = M26 END IF M26 = DAT ELSE IF DAT > MAX THEN MAX = DAT END IF END IF NEXT I IF M2 * M13 < M26 * MAX THEN RES = M26 * MAX ELSE RES = M2 * M13 END IF PRINT RES END

Page 15: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 15

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Указания по оцениванию Баллы

4 балла ставится за эффективную и правильно работающую программу, которая, возможно, содержит до трёх синтаксических ошибок. 3 балла ставится в случае, когда задача фактически решена, но программа содержит четыре-пять синтаксических ошибок, или если допущена одна содержательная ошибка, или если все входные данные сохраняются в массиве или иной структуре данных (программа неэффективна по памяти, но эффективна по времени работы). 2 балла ставится, если программа неэффективна по времени работы (перебираются все возможные пары элементов) или в программе имеются две содержательные ошибки либо шесть-семь синтаксических ошибок. 1 балл ставится, если программа написана неверно, но из описания алгоритма и общей структуры программы видно, что экзаменуемый в целом правильно представляет путь решения задачи. Далее уточняются перечисленные выше критерии.

Программа правильно работает для любых входных данных произвольного размера. Используемая память не зависит от количества прочитанных чисел, а время работы пропорционально этому количеству. Допускается наличие в тексте программы до трёх синтаксических ошибок одного из следующих видов:

пропущен или неверно указан знак пунктуации; неверно написано или пропущено зарезервированное слово

языка программирования; не описана или неверно описана переменная; применяется операция, недопустимая для соответствующего

типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку).

4

Не выполнены условия, позволяющие поставить 4 балла. Программа в целом работает правильно для любых входных данных произвольного размера. Время работы пропорционально количеству введённых чисел. Количество синтаксических ошибок («описок») указанных выше видов – не более пяти. Используемая память, возможно, зависит от количества прочитанных чисел (например, входные данные запоминаются в массиве или другой структуре данных (контейнер priority_queue, vector, set или map в С++)). Допускается ошибка при вводе данных, неверный или неполный вывод результатов или неверная работа программы

3

Page 16: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10101 16

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

в «экзотических» ситуациях. Например, при использовании 16-битного целого (integer в BPascal или Qbasic) умножаются два числа этого типа (результат по условию может не помещаться в 16 бит). Кроме того, допускается наличие одной ошибки, принадлежащей к одному из следующих видов. 1. Ошибка при инициализации максимумов. 2. Неверно обрабатывается ситуация, когда один или несколько максимумов не определены. 3. Неверно обрабатывается ситуация, когда максимальное произведение получается умножением одинаковых чисел (но разных элементов входной последовательности). 4. При вычислении максимумов учитываются произведения вида a[i]*a[i]. 5. Допущен выход за границу массива. 6. Используется знак «<» вместо «<=»,«or» вместо «and» и т. п. Не выполнены условия, позволяющие поставить 3 или 4 балла. Программа работает в целом верно, эффективно или нет, но в реализации алгоритма содержится до двух содержательных ошибок, допустимые виды ошибок перечислены в критериях на 3 балла. Количество синтаксических «описок» не должно быть более семи. Программа может быть неэффективна по времени. Например, все числа запоминаются в массиве (ниже n – количество прочитанных чисел), и перебираются все возможные пары элементов последовательности, например, так: max := 0; for i := 1 to n - 1 do for j := i + 1 to n do if ((a[i]*a[j]) mod 26 = 0) and ((a[i]*a[j]) > max) then max := a[i]*a[j];

2

Не выполнены условия, позволяющие поставить 2, 3 или 4 балла. При этом выполнено одно из двух условий.

1. Из описания алгоритма и общей структуры программы видно, что экзаменуемый в целом правильно представляет путь решения задачи.

2. Программа правильно работает в одном из важных частных случаев, например, в случае, когда искомое произведение – это произведение наибольшего числа, которое делится на 2, и наибольшего числа, которое делится на 13.

Допускается любое количество синтаксических ошибок.

1

Не выполнены критерии, позволяющие поставить 1, 2, 3 или 4 балла.

0

Максимальный балл 4

Page 17: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 1

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Критерии оценивания заданий с развёрнутым ответом

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится произведение его цифр. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)

Бейсик ПаскальDIM A AS LONG DIM pr AS LONG INPUT A pr = 0 WHILE A >= 10 pr = pr * (A MOD 10) A = A \ 10 WEND PRINT pr END

var A,pr: longint; begin readln(A); pr := 0; while A >= 10 do begin pr:=pr * (A mod 10); A := A div 10; end; writeln(pr); end.

Си Алгоритмический язык #include<stdio.h> int main() { long int A,pr; scanf("%ld", &A); pr = 0; while (A >= 10) { pr = pr * (A%10); A = A /10; } printf("%d", pr); }

алг нач цел A, pr ввод A pr := 0 нц пока A >= 10 pr := pr * mod (A, 10) A := div(A, 10) кц вывод pr кон

Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 123. 2. Найдите все ошибки в этой программе (их может быть одна или

несколько). Для каждой ошибки: а) выпишите строку, в которой сделана ошибка; б) укажите, как исправить ошибку: приведите правильный вариант строки. Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

24

Page 18: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 2

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках. 1. Программа выведет число 0. 2. Первая ошибка. Неверная инициализация переменной pr. Строка с ошибкой: pr := 0; Возможный вариант исправления: pr := 1; 3. Вторая ошибка. Неверное условие продолжения цикла. Строка с ошибкой: while A >= 10 do Возможные варианты исправления: while (A >= 1) do или while (A > 0) do При этом замены на while (A > 1) do или while (A >= 0) doкорректными не являются.

Указания по оцениванию Баллы

Обратите внимание! В задаче требовалось выполнить три действия: указать, что выведет программа при конкретном входном значении, и исправить две ошибки. Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия (ниже указано, какое действие считается выполненным). 1. Верно указано, что именно выведет программа при указанных в условии входных данных. 2. Указано на неверную инициализацию произведения цифр, и она исправлена на верную. 3. Указано на неверное условие продолжения цикла, и оно исправлено на верное. Каждый из п. 2 и 3 считается выполненным, если: а) правильно указана строка с ошибкой; б) указан такой новый вариант строки, что при исправлении ошибок получается правильная программа.

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

3

Page 19: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 3

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Выполнено одно из следующих условий. 1. Правильно выполнены два действия из трёх (исправлены обе ошибки, но в п. 1 задания ответ неверный или отсутствует, или выполнен п. 1 и верно исправлена только одна ошибка). Верное указание на ошибку при её неверном исправлении при этом не засчитывается. 2. Выполнен п. 1, а вместо указания на ошибки в программе и их исправления приведён новый верный текст решения, возможно, совершенно непохожий на исходный. 3. Правильно выполнены все действия (приведён верный ответ на вопрос 1, и исправлены обе ошибки), но в текст программы внесены и другие изменения, приводящие к её неверной работе.

2

Правильно выполнено только одно действие из трёх, то есть либо только выполнен п. 1, либо он не выполнен или выполнен неверно и верно указана и исправлена только одна ошибка программы.

1

Все пункты задания выполнены неверно (ответ на п. 1 не приведён или приведён неверно; ошибки не найдены или найдены, но не исправлены или исправлены неверно).

0

Максимальный балл 3

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди трёхзначных элементов массива, делящихся на 7. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом кратно семи, то выведите сообщение «Не найдено».

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Бейсик Паскаль N = 30 DIM A(N) AS INTEGER DIM I, J, MIN AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I ... END

const N = 30; var a: array [1..N] of integer; i, j, min: integer; begin for i := 1 to N do readln(a[i]); ... end.

25

Page 20: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 4

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Си Алгоритмический язык #include <stdio.h> #define N 30 void main() { int a[N]; int i, j, min; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... }

алг нач цел N = 30 целтаб a[1:N] цел i, j, min нц для i от 1 до N ввод a[i] кц ... кон

Естественный язык Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, MIN. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

На языке Паскаль min := 1000; for i := 1 to N do if (a[i]>=100) and (a[i]<=999) and (a[i] mod 7 = 0) and (a[i]< min) then min := a[i]; if min < 1000 then writeln(min) else writeln(Не найдено);

Page 21: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 5

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

На алгоритмическом языке

min := 1000 нц для i от 1 до N если a[i]>=100 и a[i]<=999 и mod(a[i],7)=0 и a[i]<min то min := a[i] все кц если min < 1000 то вывод min иначе вывод "Не найдено" все

На языке Бейсик MIN = 1000 FOR I = 1 TO N IF A(I)>=100 AND A(I)<=994 AND A(I) MOD 7=0 AND A(I)<MIN THEN MIN = A(I) END IF NEXT I IF MIN < 1000 THEN PRINT MIN ELSE PRINT "Не найдено" END IF

На языке Си min = 1000; for (i = 0; i<N; i++) if (a[i]>99 && a[i]<=994 && a[i]%7==0 && a[i]<min) min = a[i]; if (min<1000) printf("%d", min); else printf("Не найдено");

На естественном языке Записываем в переменную MIN начальное значение, равное 1000. В цикле от первого элемента до тридцатого находим остаток от деления элемента исходного массива на 7. Если значение данного остатка равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной MIN. Если текущий элемент массива меньше MIN, то записываем в MIN значение этого элемента массива. Переходим к следующему элементу. После завершения цикла проверяем значение переменной MIN. Если оно меньше 1000, то выводим его, иначе выводим сообщение «Не найдено».

Page 22: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 6

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Указания по оцениванию Баллы

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

2

В любом варианте решения может присутствовать не более одной ошибки из числа следующих:

1) не инициализируется или неверно инициализируется переменная MIN (например, присваивается начальное значение, меньшее или равное 993);

2) неточно определяется принадлежность диапазону трёхзначных чисел (например, в сравнении со 100 вместо знака «больше или равно» используется знак «больше»; также обратите внимание на то, что с учётом ограничения на кратность семи допустима проверка на принадлежность диапазону от 105 до 994);

3) неверно осуществляется проверка делимости на 7; 4) на делимость на 7 проверяется не значение элемента, а его

индекс; 5) в сложном условии вместо логической операции «И»

используется логическая операция «ИЛИ»; 6) отсутствует вывод ответа или при выводе ответа

не учитывается случай, что требуемого числа в массиве может не быть;

7) используется переменная, не объявленная в разделе описания переменных;

8) не указано или неверно указано условие завершения цикла; 9) индексная переменная в цикле не меняется (например, в цикле

while) или меняется неверно; 10) неверно расставлены операторные скобки.

1

Ошибок, перечисленных в п. 1–10, две или больше, или алгоритм сформулирован неверно.

0

Максимальный балл 2

Page 23: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 7

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или два камня или увеличить количество камней в куче в три раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 17 или 45 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 46. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 46 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 45.

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

Выполните следующие задания. Во всех случаях обосновывайте свой ответ. 1. а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S. б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани. 2. Укажите 3 таких значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть за один ход и может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для каждого указанного значения S опишите выигрышную стратегию Пети. 3. Укажите значение S, при котором: – у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и – у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы).

26

Page 24: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 8

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

1. а) Петя может выиграть, если S = 16, … 45. Во всех этих случаях достаточно утроить количество камней. При меньших значениях S за один ход нельзя получить кучу, в которой больше 45 камней. б) Ваня может выиграть первым ходом (как бы ни играл Петя), если исходно в куче будет S = 15 камней. Тогда после первого хода Пети в куче будет 16, 17 или 45 камней. Во всех случаях Ваня утраивает количество камней и выигрывает в один ход.

2. Возможные значения S: 5, 13, 14. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 15 камней: в первом случае утроением пяти камней, во втором – добавлением двух камней, в третьем – добавлением одного камня. Эта позиция разобрана в п. 1б. В ней игрок, который будет ходить (теперь это Ваня), выиграть не может, а его противник (то есть Петя) следующим ходом выиграет.

3. Возможное значение S: 12. После первого хода Пети в куче будет 13, 14 или 36 камней. Если в куче станет 36 камней, Ваня утроит количество камней и выиграет первым ходом. Ситуация, когда в куче 13 или 14 камней, разобрана в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.

В таблице изображено дерево возможных партий при описанной стратегии Вани. Заключительные позиции (в них выигрывает Ваня) подчёркнуты. На рисунке это же дерево изображено в графическом виде (оба способа изображения дерева допустимы).

Положения после очередных ходов

Исходная позиция

1-й ход Пети (разобраны все

ходы)

1-й ход Вани (только ход по стратегии)

2-й ход Пети (разобраны все

ходы)

2-й ход Вани (только ход по стратегии)

12

12 + 1 = 13 13 + 2 = 15

15 + 1 = 16 16 * 3 = 48

15 + 2 = 17 17 * 3 = 51

15 * 3 = 45 45 * 3 = 135

12 + 2 = 14 14 + 1 = 15

15 + 1 = 16 16 * 3 = 48

15 + 2 = 17 17 * 3 = 51

15 * 3 = 45 45 * 3 = 135

12 * 3 = 36 36 * 3 = 108

Page 25: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 9

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Рис. 1. Дерево всех партий, возможных при Ваниной стратегии. Знаком >> обозначены позиции, в которых партия заканчивается

Указания по оцениванию БаллыВ задаче от ученика требуется выполнить три задания. Их трудность возрастает. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже). Одна ошибка в решении, не искажающая основного замысла и не приведшая к неверному ответу, например, арифметическая ошибка при вычислении количества камней в заключительной позиции, при оценке решения не учитывается. Первое задание считается выполненным полностью, если выполнены полностью оба пункта: а) и б). Пункт а) считается выполненным полностью, если правильно указаны все позиции, в которых Петя выигрывает первым ходом, и указано, каким должен быть первый ход. Пункт б) считается выполненным полностью, если правильно указана позиция, в которой Ваня выигрывает первым ходом, и описана стратегия Вани, то есть показано, как Ваня может получить кучу, в которой содержится нужное количество камней, при любом ходе Пети. Первое задание считается выполненным частично, если: а) правильно указаны все позиции, в которых Петя выигрывает первым ходом; б) правильно указана позиция, в которой Ваня

+2

*3 108>>

16

17

*3

*3

48>>

51>>

45

16

*3

*3

135>

48>>

17

45

*3

*3

51>>

135>

+2 15 13

+1

*3

+2 +1 15 14

+1

*3

+2 12

+1

36

*3

1-й ход Пети

1-й ход Вани

2-й ход Пети

2-й ход Вани

Page 26: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 10

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

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

Во всех случаях стратегии могут быть описаны так, как это сделано в примере решения, или другим способом. Выполнены второе и третье задания. Первое задание выполнено полностью или частично. Здесь и далее допускаются арифметические ошибки, которые не искажают сути решения и не приводят к неправильному ответу (см. выше).

3

Не выполнены условия, позволяющие поставить 3 балла, и выполнено одно из следующих условий. 1. Третье задание выполнено полностью. 2. Первое и второе задания выполнены полностью. 3. Первое задание выполнено полностью или частично, для второго

и третьего заданий указаны правильные значения S.

2

Не выполнены условия, позволяющие поставить 3 или 2 балла, и выполнено одно из следующих условий. 1. Первое или второе задание выполнено полностью. 2. Во втором задании правильно указаны два из трёх возможных

значений S, и для этих значений указана и обоснована выигрышная стратегия Пети.

3. Первое задание выполнено частично, и для одного из остальных заданий правильно указаны значения S.

4. Для второго и третьего заданий правильно указаны значения S.

1

Не выполнено ни одно из условий, позволяющих поставить 3, 2 или 1 балл.

0

Максимальный балл 3

Page 27: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 11

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Последовательность натуральных чисел характеризуется числом Х –наибольшим числом, кратным 14 и являющимся произведением двух элементов последовательности с различными номерами. Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), находящую число X для последовательности натуральных чисел, значение каждого элемента которой не превосходит 1000. Программа должна напечатать найденное число, если оно существует для заданной последовательности, или ноль в противном случае. Перед текстом программы кратко опишите используемый Вами алгоритм решения. На вход программе в первой строке подаётся количество чисел N. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. Пример входных данных: 5 40 1000 7 28 55

Пример выходных данных для приведённого выше примера входных данных: 28000

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

Произведение двух чисел делится на 14, если: один из сомножителей делится на 14 (второй может быть любым) либо ни один из сомножителей не делится на 14, но один из сомножителей

делится на 7, а другой – на 2. Поэтому программа, вычисляющая число X, может работать так. Программа читает все входные данные один раз, не запоминая все данные в массиве. Программа для прочитанного фрагмента входной последовательности хранит значения четырёх величин: М7 – самое большое число, кратное 7, но не кратное 2; M2 – самое большое число, кратное 2, но не кратное 7; M14 – самое большое число, кратное 14; МAX – самое большое число среди всех элементов последовательности, отличное от М14 (если число М14 встретилось более одного раза и оно же является максимальным, то MAX = M14). После того как все данные прочитаны, искомое число X вычисляется как максимум из произведений М14*MAX и М7*М2.

27

Page 28: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 12

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Ниже приведён пример программы на языке Паскаль, которая реализует описанный алгоритм. Кроме того, приведён пример программы на языке Бейсик, которая правильно решает задачу, но использует алгоритм, немного отличающийся от описанного выше. Возможны и другие правильные алгоритмы. Допускаются решения, записанные на других языках программирования. Пример правильной и эффективной программы на языке Паскаль: var M7,M2,M14,MAX,dat,res,i,N: longint; begin M7 := 0; M2 := 0; M14 := 0; MAX := 0; readln(N); for i := 1 to N do begin readln(dat); if ((dat mod 7) = 0) and ((dat mod 2) > 0) and (dat > M7) then M7 := dat; if ((dat mod 2) = 0) and ((dat mod 7) > 0) and (dat > M2) then M2 := dat; if (dat mod 14 = 0) and (dat > M14) then begin if M14 > MAX then MAX := M14; M14 := dat end else if dat > MAX then MAX := dat; end; if (M7*M2 < M14*MAX) then res := M14*MAX else res := M7*M2; writeln(res); end.

Page 29: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 13

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Пример правильной и эффективной программы на языке Бейсик: M14 = 0 M7 = 0 M2 = 0 MAX = 0 INPUT N FOR I = 1 TO N INPUT DAT IF DAT MOD 7 = 0 AND DAT > M7 THEN M7 = DAT ELSE IF DAT MOD 2 = 0 AND DAT > M2 THEN M2 = DAT END IF END IF IF DAT MOD 14 = 0 AND DAT > M14 THEN IF M14 > MAX THEN MAX = M14 END IF M14 = DAT ELSE IF DAT > MAX THEN MAX = DAT END IF END IF NEXT I IF M2 * M7 < M14 * MAX THEN RES = M14 * MAX ELSE RES = M2 * M7 END IF PRINT RES END

Page 30: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 14

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

Указания по оцениванию Баллы

4 балла ставится за эффективную и правильно работающую программу, которая, возможно, содержит до трёх синтаксических ошибок. 3 балла ставится в случае, когда задача фактически решена, но программа содержит четыре-пять синтаксических ошибок, или если допущена одна содержательная ошибка, или если все входные данные сохраняются в массиве или иной структуре данных (программа неэффективна по памяти, но эффективна по времени работы). 2 балла ставится, если программа неэффективна по времени работы (перебираются все возможные пары элементов) или в программе имеются две содержательные ошибки либо шесть-семь синтаксических ошибок. 1 балл ставится, если программа написана неверно, но из описания алгоритма и общей структуры программы видно, что экзаменуемый в целом правильно представляет путь решения задачи. Далее уточняются перечисленные выше критерии.

Программа правильно работает для любых входных данных произвольного размера. Используемая память не зависит от количества прочитанных чисел, а время работы пропорционально этому количеству. Допускается наличие в тексте программы до трёх синтаксических ошибок одного из следующих видов:

пропущен или неверно указан знак пунктуации; неверно написано или пропущено зарезервированное слово

языка программирования; не описана или неверно описана переменная; применяется операция, недопустимая для соответствующего

типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку).

4

Не выполнены условия, позволяющие поставить 4 балла. Программа в целом работает правильно для любых входных данных произвольного размера. Время работы пропорционально количеству введённых чисел. Количество синтаксических ошибок («описок») указанных выше видов – не более пяти. Используемая память, возможно, зависит от количества прочитанных чисел (например, входные данные запоминаются в массиве или другой структуре данных (контейнер priority_queue, vector, set или map в С++)). Допускается ошибка при вводе данных, неверный или неполный вывод результатов или неверная работа программы

3

Page 31: Информатика класс Вариант ИН10101 1gymn22.ru/Study/Homework/Kriterii_IN11_28092015.pdfБейсик Паскаль DIM A AS LONG INPUT A cnt = 0 WHILE A > 1

Информатика. 11 класс. Вариант ИН10102 15

© СтатГрад 2015–2016 уч. г. Публикация в Интернете или печатных изданиях без письменного согласия СтатГрад запрещена

в «экзотических» ситуациях. Например, при использовании 16-битного целого (integer в BPascal или Qbasic) умножаются два числа этого типа (результат по условию может не помещаться в 16 бит). Кроме того, допускается наличие одной ошибки, принадлежащей к одному из следующих видов. 1. Ошибка при инициализации максимумов. 2. Неверно обрабатывается ситуация, когда один или несколько максимумов не определены. 3. Неверно обрабатывается ситуация, когда максимальное произведение получается умножением одинаковых чисел (но разных элементов входной последовательности). 4. При вычислении максимумов учитываются произведения вида a[i]*a[i]. 5. Допущен выход за границу массива. 6. Используется знак «<» вместо «<=»,«or» вместо «and» и т. п. Не выполнены условия, позволяющие поставить 3 или 4 балла. Программа работает в целом верно, эффективно или нет, но в реализации алгоритма содержится до двух содержательных ошибок, допустимые виды ошибок перечислены в критериях на 3 балла. Количество синтаксических «описок» не должно быть более семи. Программа может быть неэффективна по времени. Например, все числа запоминаются в массиве (ниже n – количество прочитанных чисел), и перебираются все возможные пары элементов последовательности, например, так: max := 0; for i := 1 to n - 1 do for j := i + 1 to n do if ((a[i]*a[j]) mod 14 = 0) and ((a[i]*a[j]) > max) then max := a[i]*a[j];

2

Не выполнены условия, позволяющие поставить 2, 3 или 4 балла. При этом выполнено одно из двух условий. 1. Из описания алгоритма и общей структуры программы видно,

что экзаменуемый в целом правильно представляет путь решения задачи.

2. Программа правильно работает в одном из важных частных случаев, например, в случае, когда искомое произведение – это произведение наибольшего числа, которое делится на 2, и наибольшего числа, которое делится на 7. Допускается любое количество синтаксических ошибок.

1

Не выполнены критерии, позволяющие поставить 1, 2, 3 или 4 балла.

0

Максимальный балл 4