Письмами Рособрнадзора от 02.12.2016 N 10-835, от 23.12.2016 N 02-411 направлены уточненные редакции методических документов, рекомендуемых к использованию при организации и проведении ГИА-9 и ГИА-11 в 2017 году.

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

20

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от -10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых оба числа делятся на 3. В данной задаче под парой подразумевается два подряд идущих элемента массива.

Например, для массива из пяти элементов: 6; 2; 9; -3; 6 - ответ: 2.

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

Бейсик

Python

CONST N AS INTEGER = 20

DIM A (1 TO N) AS INTEGER

DIM I AS INTEGER,

J AS INTEGER,

K AS INTEGER

# допускается также

# использовать две

# целочисленные переменные j и k

a = []

n = 20

for i in range(0, n):

a.append(int(input()))

...

FOR I = 1 TO N

INPUT A(I)

NEXT I

...

END

Алгоритмический язык

Паскаль

алг

нач

цел N = 20

целтаб a[1:N]

цел i, j, k

нц для i от 1 до N

ввод a[i]

кц

...

const

N = 20;

var

a: array [1..N] of integer;

i, j, k: integer;

begin

for i: = 1 to N do

readln(a[i]);

...

кон

end.

Си

Естественный язык

#include <stdio.h>

#define N 20

int main() {

int a[N];

int i, j, k;

for (i = 0; i<N; i++)

scanf("%d", &a[i]);

...

return 0;

}

Объявляем массив A из 20 элементов.

Объявляем целочисленные переменные I, J, K.

В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.

...

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

Содержание верного ответа и указания по оцениванию

(допускаются иные формулировки решений, приводящие к правильному результату)

На языке Паскаль

k := 0;

for i := 1 to N-1 do

if (a[i] mod 3=0) and (a[i+1] mod 3=0) then

inc(k);

writeln(k);

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

k := 0;

нц для i от 1 до N-1

если mod(a[i],3)=0 и mod(a[i+1],3)=0

то

k := k+1

все

кц

вывод k

На языке Бейсик

K = 0

FOR I = 1 TO N-1

IF (A(I) MOD 3 = 0) AND (A(I + 1) MOD 3 = 0) THEN

K = K+1

END IF

NEXT I

PRINT K

На языке Си

k = 0;

for (i = 0; i<N-1; i++)

if (a[i]%3 == 0 && a[i+1]%3 == 0)

k++;

printf("%d", k);

На языке Python

k = 0

for i in range(0, n - 1):

if (a[i] % 3 == 0 and a[i + 1] % 3 == 0):

k += 1

print(k)

На естественном языке

Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления текущего и следующего элемента массива на 3. Если оба остатка равны 0, увеличиваем переменную K на единицу.

После завершения цикла выводим значение переменной K

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

Баллы

Общие указания.

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

2. Эффективность алгоритма не имеет значения и не оценивается.

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

Предложен правильный алгоритм, выдающий в качестве результата верное значение

2

Не выполнены условия, позволяющие поставить 2 балла. Предложено в целом верное решение, содержащее не более одной ошибки из числа следующих:

1) в цикле происходит выход за границу массива (например, используется цикл от 1 до N);

2) не инициализируется или неверно инициализируется счетчик количества найденных пар;

3) счетчик количества пар в цикле не изменяется или изменяется неверно;

4) неверно проверяется делимость на 3;

5) на делимость проверяются не сами элементы, а их индексы;

6) при проверке выполнения условия для пары элементов используются неверные индексы;

7) в сложном логическом условии простые проверки верны, но условие в целом построено неверно (например, перепутаны операции "И" и "ИЛИ", неверно расставлены скобки в логическом выражении);

8) отсутствует вывод ответа;

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

10) не указано или неверно указано условие завершения цикла;

11) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно;

12) неверно расставлены операторные скобки

1

Ошибок, перечисленных в п. 1 - 12, две или больше, или алгоритм сформулирован неверно (в том числе при отсутствии цикла в явном или неявном виде)

0

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

2