Инфоурок Информатика Другие методич. материалыДиагностическая работа по информатике

Диагностическая работа по информатике

Скачать материал

Выберите документ из архива для просмотра:

Выбранный для просмотра документ diagnoz_2017.pdf



Государственное автономное образовательное учреждение дополнительного профессионального образования города Москвы «Центр педагогического мастерства»

М.А.Ройтберг, Я.Н.Зайдельман

ИнформатикаиИКТ

Подготовка кЕГЭвгоду

Диагностическиеработы

Материалы книги соответствуют Федеральному государственному образовательному стандарту (ФГОС)

Москва

Издательство МЦНМО



УДК :

ББК .. Р

Ройтберг М.А., Зайдельман Я.Н.

Р       Информатика и ИКТ. Подготовка к ЕГЭ в  году. Диагностические работы. — М.: МЦНМО, .

ISBN ----

Данное пособие предназначено для отработки практических умений и навыков учащихся при подготовке к экзамену по информатике в  классе в формате ЕГЭ. Оно содержит варианты диагностических работ по информатике, содержание которых соответствует контрольно-измерительным материалам, разработанным Федеральным институтом педагогических измерений для проведения единого государственного экзамена. В книгу входят также ответы к заданиям и критерии проверки и оценивания выполнения заданий с развёрнутым ответом. Авторы пособия являются разработчиками тренировочных и диагностических работ для системы СтатГрад (http://statgrad.org).

Материалы книги рекомендованы учителям и методистам для выявления уровня и качества подготовки учащихся по предмету, определения степени их готовности к единому государственному экзамену.

Издание соответствует Федеральному государственному образовательному стандарту (ФГОС).

ББК ..

Оригинал-макет издания подготовлен в ГАОУ ДПО ЦПМ.

Приказом № Министерства образования и науки Российской Федерации Московский центр непрерывного математического образования включён в перечень организаций, осуществляющих издание учебных пособий, допущенных к использованию в образовательном процессе.

Учебно-методическое издание

Михаил Абрамович Ройтберг, Яков Наумович Зайдельман

Иíôîðìàòèêà è ИКТ. Пîäãîòîâêà ê ЕГЭ â 2017 ãîäó. Дèàãíîñòè÷åñêèå ðàáîòû

Подписано в печать .. г. Формат 60×90 /. Бумага офсетная. Печать офсетная. Тираж  экз. Заказ №               .

Издательство Московского центра непрерывного математического образования.

, Москва, Большой Власьевский пер., д. . Тел. ()--.

Отпечатано в ООО «Принт Сервис Групп».

, Москва, ул. Борисовская, д. .

Книги издательства МЦНМО можно приобрести в магазине «Математическая книга», Москва, Большой Власьевский пер., д.. Тел. ()--. E-mail: biblio@mccme.ru


Предисловие

СтатГрад – это всероссийский интернет-проект, созданный для того, чтобы обеспечить каждое образовательное учреждение качественными дидактическими и методическими материалами. Основные направления деятельности СтатГрада – система диагностики образовательных достижений учащихся, методическая поддержка систем внутришкольного контроля, учебнометодические материалы для подготовки учащихся к ЕГЭ и ОГЭ. СтатГрад предоставляет методические материалы по всем ведущим дисциплинам школьной программы – по математике, физике, биологии, русскому языку, литературе, истории, обществознанию, химии, информатике, географии, иностранным языкам. Использование на уроках и при самостоятельной работе тренировочных и диагностических работ в формате ЕГЭ и ОГЭ, диагностических работ для 5–11 классов позволит учителям выявить пробелы в знаниях учащихся, а учащимся – подготовиться к государственным экзаменам, заранее попробовать свои силы. Авторы и эксперты СтатГрада – специалисты высокого класса, кандидаты и доктора наук, авторы учебной литературы для средней и высшей школы. В настоящее время СтатГрад сотрудничает более чем с 13 000 образовательных организаций России.

Настоящий сборник содержит диагностические материалы, разработанные специалистами СтатГрада для подготовки учащихся выпускных классов основной школы к ЕГЭ по информатике и ИКТ. Материалы соответствуют нормативным документам ФИПИ 2016 года.

 

3

Инструкция по выполнению работы

Работа состоит из двух частей, включающих в себя 27 заданий. Часть 1 содержит 23 задания с кратким ответом. Часть 2 содержит 4 задания с развёрнутым ответом.

На выполнение работы отводится 3 часа 55 минут (235 минут).

Ответы к заданиям 1–23 записываются в виде числа, последовательности букв или цифр. 

Для выполнения заданий 24–27 Вам необходимо написать развёрнутый ответ в произвольной форме.

При выполнении заданий можно пользоваться черновиком. Записи  в черновике не учитываются при оценивании работы.

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

 

Желаем успеха!

В заданиях используются следующие соглашения

1. Обозначения для логических связок (операций):

a)  отрицание (инверсия, логическое НЕ) обозначается ¬ (например, ¬А);

b)  конъюнкция       (логическое умножение, логическое И) обозначается

/\ (например, А /\ В) либо & (например, А & В);

c)  дизъюнкция       (логическое сложение, логическое ИЛИ) обозначается

\/ (например, А \/ В) либо | (например, А | В);

d)  следование (импликация) обозначается → (например, А → В);

e)  тождество обозначается ≡ (например, A ≡ B). Выражение A ≡ B истинно тогда и только тогда, когда значения A и B совпадают (либо они оба истинны, либо они оба ложны);

f)   символ 1 используется для обозначения истины (истинного высказывания); символ 0 – для обозначения лжи (ложного высказывания).

2.  Два логических выражения, содержащие переменные, называются равносильными (эквивалентными), если значения этих выражений совпадают при любых значениях переменных. Так, выражения А → В и (¬А) \/ В равносильны, а А \/ В и А /\ В неравносильны (значения выражений разные, например, при А = 1, В = 0).

3.  Приоритеты логических операций: инверсия (отрицание), конъюнкция

(логическое умножение), дизъюнкция (логическое сложение), импликация (следование), тождество. Таким образом, ¬А /\ В \/ С /\ D означает то же, что и ((¬А) /\ В) \/ (С /\ D).

Возможна запись А /\ В /\ С вместо (А /\ В) /\ С. То же относится и к дизъюнкции: возможна запись А \/ В \/ С вместо (А \/ В) \/ С.

4.  Обозначения Мбайт и Кбайт используются в традиционном для информатики смысле – как обозначения единиц измерения, чьё соотношение с единицей «байт» выражается степенью двойки.

Вариант 1

Часть 1

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

 

Сколько единиц в двоичной записи шестнадцатеричного числа ВЕС216?

 

Ответ: ___________________________.

 

Логическая функция F задаётся выражением: 

(¬x /\ y /\ z) \/ (¬x /\ y /\ ¬z) \/ (¬x /\¬y /\ ¬z).

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z. 

1

2

 

Переменная 1

Переменная 2

Переменная 3

Функция

???

???

???

F

0

0

0

1

1

0

0

1

1

0

1

1

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу, затем – буква, соответствующая второму столбцу, и т. д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и таблица истинности:

 

 

Переменная 1

Переменная 2

Функция

 

???

???

F

0

0

1

0

1

0

1

0

1

1

1

1

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

 

Ответ: ___________________________.


На рисунке схема дорог Н-ского района изображена в виде графа, а в таблице

3 содержатся сведения о длине этих дорог (в километрах). 

 

 

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта Г в пункт Е. В ответе запишите целое число.

 

Ответ: ___________________________.

 

4

Во фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите, сколько всего внуков и внучек Павленко А.К. упомянуты в таблице 1.

 

 

Таблица 1

 

 

Таблица 2

 

ID

Фамилия_И.О.

Пол

 

ID_Родителя

ID_Ребёнка

2146

Кривич Л.П.

Ж

 

2146

2302

2155

Павленко А.К.

М

 

2146

3002

2431

Хитрук П.А.

М

 

2155

2302

2480

Кривич А.А.

М

 

2155

3002

2302

Павленко Е.А.

Ж

 

2302

2431

2500

Сокол Н.А.

Ж

 

2302

2511

3002

Павленко И.А.

М

 

2302

3193

2523

Павленко Т.Х.

Ж

 

3002

2586

2529

Хитрук А.П

М

 

3002

2570

2570

Павленко П.И.

М

 

2523

2586

2586

Павленко Т.И.

Ж

 

2523

2570

2933

Симонян А.А.

Ж

 

2529

2431

2511

Сокол В.А.

Ж

 

2529

2511

3193

Биба С.А.

Ж

 

2529

3193

 

 

Ответ: ___________________________.

По каналу связи передаются сообщения, содержащие только пять букв: 

5

A, B, С, D, E. Для передачи используется двоичный код, допускающий однозначное декодирование. Для букв A, B, C используются такие кодовые слова: A – 111, B – 0, C – 100. 

Укажите кратчайшее кодовое слово для буквы D, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

 

Ответ: ___________________________.

 

6

Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

1.  Перемножаются первая и вторая, а также вторая и третья цифры. 

2.  Полученные два числа записываются друг за другом в порядке неубывания без разделителей. 

 

Пример. Исходное число: 631. Произведения: 6·3 = 18; 3·1 = 3. Результат: 318.

 

Укажите наибольшее число, при обработке которого автомат выдаёт результат 621.

 

Ответ: ___________________________.

 

7

Дан фрагмент электронной таблицы. Из ячейки D3 в ячейку E4 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке E4?

 

 

А

В

С

D

E

1

40

4

400

70

7

2

30

3

300

60

6

3

20

2

200

= $B2 + B$2

5

4

10

1

100

40

 

 

Примечание. Знак $ обозначает абсолютную адресацию.

 

Ответ: ___________________________.

 

Запишите число, которое будет напечатано в результате выполнения

8

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

 

Бейсик

 

Python

DIM S, N AS INTEGER

S = 0

N = 0

WHILE 2*S < 111

  S = S + 8

  N = N + 2

WEND

PRINT N

 

s = 0 n = 0 while 2*s < 111:     s = s + 8     n = n + 2

print(n)

 

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

 

Паскаль

алг

 

var s, n: integer;

begin   s := 0;   n := 0;

  while 2*s < 111 do   begin     s := s + 8;     n := n + 2   end;   writeln(n) end.

нач

 

  цел s, n   s := 0   n := 0

  нц пока 2*s < 111

 

    s := s + 8

 

    n := n + 2   кц   вывод n

 

кон 

 

Си

 

#include <stdio.h> int main()

{   int s = 0, n = 0;   while (2*s < 111) {     s = s + 8;     n = n + 2;

  }

  printf("%d\n", n);   return 0;

}

 

 

Ответ: ___________________________.

Какой минимальный объём памяти (в Кбайтах) нужно зарезервировать, чтобы

9

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

 

Ответ: ___________________________.

 

10

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём буква X появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?

 

Ответ: ___________________________.

 

11

Ниже на пяти языках программирования записаны рекурсивные функции F и G.

 

Бейсик

Паскаль

FUNCTION F(n)

  IF n > 2 THEN

    F = F(n - 1) + G(n - 2)

  ELSE 

F  = 1

  END IF

END FUNCTION

 

FUNCTION G(n)

  IF n > 2 THEN

G  = G(n - 1) + F(n - 2)

  ELSE 

    G = 1

  END IF

END FUNCTION

function F(n: integer): integer; begin

  if n > 2 then

F         := F(n - 1) + G(n - 2)   else     F := 1; end; 

function G(n: integer): integer; begin

  if n > 2 then

G         := G(n - 1) + F(n - 2)   else     G := 1; end;


Си

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

int F(int n)

{

  if (n > 2)

    return F(n-1) + G(n-2);   else return 1;

int G(int n)

{

  if (n > 2)

    return G(n-1) + F(n-2);   else return 1;

}

алг цел F(цел n) нач

  если n > 2 

    то

      знач := F(n - 1) + G(n - 2)

    иначе       знач := 1 

  все

кон

 

алг цел G(цел n)

нач

  если n > 2 

    то

      знач := G(n - 1) + F(n - 2)     иначе

      знач := 1 

  все

кон

Python

 

def F(n):     if n > 2:

       return F(n-1)+ G(n-2)     else: return 1

 def G(n):

    if n > 2:

       return G(n-1) + F(n-2)     else: return 1

 

 

Чему будет равно значение, вычисленное при выполнении вызова F(7)?

 

Ответ: ___________________________.

 

В терминологии сетей TCP/IP маской сети называется двоичное число,

12 определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. При этом в двоичном представлении маски сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Обычно маска записывается по тем же правилам, что и IPадрес, – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 111.81.200.27 адрес сети равен 111.81.192.0. Чему равно наибольшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

 

Ответ: ___________________________.

 

13

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 15 символов и содержащий только символы  из 12-символьного набора: А, В, C, D, Е, F, G, H, K, L, M, N. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством битов. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов; это число одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 300 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байтов.

 

Ответ: ___________________________.

 

Исполнитель Редактор получает на вход строку цифр и преобразует её. 14

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 

заменить (111, 27)  преобразует строку 05111150 в строку 0527150. 

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие                   последовательность команд 

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ условие 

     ТО команда1

     ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 125 идущих подряд цифр «8»? В ответе запишите полученную строку.

 

НАЧАЛО

ПОКА нашлось (333) ИЛИ нашлось (888) 

                    ЕСЛИ нашлось (333) 

                         ТО заменить (333, 8) 

                         ИНАЧЕ заменить (888, 3)

                    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

 

Ответ: ___________________________.

На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, К, 15

Л, М, Н, П, Р, Т. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. 

Сколько существует различных путей из города А в город Т?

 

Ответ: ___________________________.

 

16

Значение арифметического выражения: 98 + 35 – 2 – записали в системе счисления с основанием 3. Сколько цифр «2» содержится в этой записи?

 

Ответ: ___________________________.

 

17

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. 

Запрос

Найдено страниц (в тысячах)

Лондон & Манчестер

270

Лондон & (Ливерпуль | Манчестер)

470

Лондон & Ливерпуль

355

Какое количество страниц (в тысячах) будет найдено по запросу Лондон & Ливерпуль & Манчестер?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

 

Ответ: ___________________________.

Обозначим через m & n поразрядную конъюнкцию неотрицательных целых

18 чисел m и n. Например, 14 & 5 = 11102 & 01012 = 01002 = 4.

Для какого наименьшего неотрицательного целого числа А формула x & 29 ≠ 0 → (x & 17 = 0 → x & А ≠ 0)

тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной х)?

 

Ответ: ___________________________.

 

19

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6, 7, 3, 8, 5, 1, 2, 0, 9, 4 соответственно, т. е. A[0] = 6, A[1] = 7 и т. д.

Определите значение переменной c после выполнения следующего фрагмента этой программы, записанного ниже на пяти языках программирования.

Ниже на пяти языках программирования записан алгоритм. Получив на вход

20 число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т. е. большее 100) число x, при вводе которого алгоритм печатает 15.

Бейсик

Python

DIM X, L, M AS INTEGER

INPUT X

L  = X – 30

M  = X + 30

WHILE L <> M

  IF L > M THEN

L         = L – M   ELSE

M         = M – L

  END IF

WEND

PRINT M

x = int(input())

L        = x–30 M = x+30 while L != M:     if L > M:         L = L – M     else:

M        = M – L print(M)

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

Паскаль

алг  нач

var x, L, M: integer; begin   readln(x);   L := x–30;   M := x+30;

  while L <> M do begin     if L > M then       L := L – M     else

      M := M – L;   end;   writeln(M); end.

  цел x, L, M

  ввод x

  L := x–30

  M := x+30   нц пока L <> M     если L > M       то

        L := L – M

      иначе

        M := M – L

    все

  кц

  вывод M кон


 

21

Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 20. Для Вашего удобства программа приведена на пяти языках программирования. 

 

Бейсик

Python

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) < G(K)

  I = I + 1

WEND

PRINT I

 

FUNCTION F(N)

F         = N * N * N END FUNCTION

 

FUNCTION G(N)

G         = 3*N + 3

END FUNCTION

def f(n):

    return n*n*n

 def g(n):

    return 3*n+3

 

k = int(input()) i = 1 while f(i) < g(k):

    i+=1 print (i)

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

Паскаль

 

алг  нач

var

  k, i : longint;

 

function f(n: longint): longint; begin

  f := n * n * n; end; 

function g(n: longint): longint; begin   g := 3*n + 3; end;  begin   readln(k);   i := 1;

  while f(i) < g(k) do      i := i+1;   writeln(i) end.

 

  цел i, k

 

  ввод k

 

  i := 1

 

  нц пока f(i) < g(k)     i := i + 1   кц   вывод i

 

кон

 

 

алг цел f(цел n) нач

 

  знач := n * n * n

 

кон

 

алг цел g(цел n) нач

 

  знач := 3*n + 3

 

кон

 

Си

 

 

#include<stdio.h> long f(long n) {   return n * n * n;

}  

long g(long n) {   return 3*n + 3;

int main()

{

  long k, i;   scanf("%ld", &k);   i = 1;

  while (f(i) < g(k))     i++;    printf("%ld", i);   return 0;

}

 

 

 

 

 

Ответ: ___________________________.

 

Исполнитель Май16 преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера: 

1.  Прибавить 1

2.  Умножить на 2

Первая команда увеличивает число на экране на 1, вторая умножает его на 2.

Программа для исполнителя Май16 – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 31 и при этом траектория вычислений содержит число 15 и не содержит числа 22?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

 

Ответ: ___________________________.

22

23

 

 

Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1 x2) /\ (x2 x3) /\ (x3 x4) /\ (x4 x5) /\ (x5 x6) = 1 (y1 y2) /\ (y2 y3) /\ (y3 y4) /\ (y4 y5) /\ (y5 y6) = 1 x1y1= 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

 

Ответ: ___________________________.

 

Часть 2

Для записи ответов на задания этой части (24–27) используйте отдельный лист. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

 

24

Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство: 

1 + 2 + … + KN.

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

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Бейсик

Python

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE N >= 0

  K = K + 1

  N = N - K

WEND

PRINT K

END

n = int(input()) k = 1 while n>=0:     k = k + 1     n = n - k print(k)

 

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

Паскаль

алг

var n, k: integer; begin   read(n);   k := 1;

  while n>=0 do begin     k := k + 1;     n := n - k;   end;   writeln(k) end. 

нач

  цел n, k

  ввод n

  k := 1   нц пока n>=0

    k := k + 1

    n := n - k   кц   вывод k

кон

Последовательно выполните следующее.

1.    Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.

2.    Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3.    Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

25

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

 

Дан массив, содержащий 2015 неотрицательных целых чисел. Пиком называется не крайний элемент массива, который больше обоих своих соседей. Необходимо найти в массиве самый высокий пик, т. е. пик, значение которого максимально. Если в массиве нет ни одного пика, ответ считается равным 0. Например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17, 3, 8, есть два пика – 9 и 17, максимальный пик равен 17.

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

Бейсик

Python

CONST N=2015

DIM A(N) AS INTEGER

DIM I, J, K AS INTEGER

FOR I = 1 TO N 

    INPUT A(I)

NEXT I

END

 

# допускается также использо-

# вание целочисленных # переменных j, k a = []

N = 2015 # менять значение

         # N нельзя for i in range(0, n):

    a.append(int(input()))

 

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

Паскаль

алг

const     N=2015; var

    a: array [1..N] of integer;     i, j, k: integer; begin     for i:=1 to N do          readln(a[i]);

    … end. 

нач

    цел N=2015| Изменять значение

          |этой переменной нельзя

    целтаб a[1:N]     цел i, j, k

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

        ввод a[i]

    кц

    … кон

Си

#include <stdio.h> #define N 2015 int main(){     int a[N];     int i, j, k;     for (i=0; i<N; i++)         scanf("%d", &a[i]);

    …

    return 0;

}

 

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

 

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Например, пусть в одной куче 20 камней, а в другой 7 камней; такую позицию в игре будем обозначать (20, 7).

Тогда за один ход можно получить любую из четырёх позиций: 

(21, 7), (40, 7), (20, 8), (20, 14). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.

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

26

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. Например, в начальных позициях (10, 44) и (11, 43) выигрышная стратегия есть у Пети. Чтобы выиграть, ему достаточно удвоить количество камней во второй куче.

Задание 1. Для каждой из начальных позиций (10, 43), (12, 42) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии.

Задание 2. Для каждой из начальных позиций (10, 42), (11, 42), (12, 41) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии.

Задание 3. Для начальной позиции (11, 41) укажите, кто из игроков имеет выигрышную стратегию. Опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии. Постройте дерево всех партий, возможных при указанной Вами выигрышной стратегии. Представьте дерево в виде рисунка или таблицы.

 


На плоскости задано множество точек с целочисленными координатами.

27

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

Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.

Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз.

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

Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.

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

В первой строке задаётся N – количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа – координаты очередной точки. Пример входных данных:

3

6 0

0 8

9 7

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

Если искомый треугольник существует, программа должна напечатать одно число: максимально возможную площадь треугольника, удовлетворяющего условиям. Если искомый треугольник не существует, программа должна напечатать сообщение: «Треугольник не существует».

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

24

Вариант 2

Часть 1

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

 

1

Сколько единиц в двоичной записи шестнадцатеричного числа ВЕС316?

 

Ответ: ___________________________.

 

2

Логическая функция F задаётся выражением: 

(¬x /\ y /\ z) \/ (¬x /\ ¬y /\ z) \/ (¬x /\¬y /\ ¬z).

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

 

Переменная 1

Переменная 2

Переменная 3

Функция

???

???

???

F

0

0

0

1

1

0

0

1

1

0

1

1

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу, затем – буква, соответствующая второму столбцу, и т. д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно. Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и таблица истинности:

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

 

Ответ: ___________________________.

25

На рисунке схема дорог Н-ского района изображена в виде графа, а в таблице

3 содержатся сведения о длине этих дорог (в километрах). 

 

 

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта В в пункт Г. В ответе запишите целое число.

 

Ответ: ___________________________.

 

4

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

Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звёздочка) означает любую последовательность символов произвольной длины, в том числе       «*» может задавать и пустую последовательность.

В каталоге находятся 6 файлов: mustard.map mustard.mp3 catarsis.mp4 vitarcon.mp4 taras.mp3 star.mp3

Ниже представлено восемь масок. Сколько среди них таких, которым соответствуют ровно четыре файла из данного каталога? 

 

*tar*.mp*

*?tar?*.mp?

?*tar*.mp?*

*t*r*?.m?p*

???*???.mp*

???*???.m*

*a*.*a*

*s*.mp*

 

Ответ: ___________________________.


По каналу связи передаются сообщения, содержащие только пять букв: 

5

A, B, С, D, E. Для передачи используется двоичный код, допускающий однозначное декодирование. Для букв A, B, C используются такие кодовые слова: A – 1, B – 010, C – 000. 

Укажите кратчайшее кодовое слово для буквы E, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

 

Ответ: ___________________________.

 

6

Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

1. Перемножаются первая и вторая, а также вторая и третья цифры. 

2. Полученные два числа записываются друг за другом в порядке неубывания без разделителей. 

 

Пример. Исходное число: 631. Произведения: 6·3 = 18; 3·1 = 3. Результат: 318.

 

Укажите наименьшее число, при обработке которого автомат выдаёт результат 621.

 

Ответ: ___________________________.

 

7

Дан фрагмент электронной таблицы. Из ячейки D3 в ячейку E4 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке E4?

 

 

А

В

С

D

E

1

40

4

400

70

7

2

30

3

300

60

6

3

20

2

200

= $B1 + B$3

5

4

10

1

100

40

 

 

Примечание. Знак $ обозначает абсолютную адресацию.

 

Ответ: ___________________________.

 

Запишите число, которое будет напечатано в результате выполнения

8

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

 

Бейсик

 

Python

DIM S, N AS INTEGER

S = 0

N = 0

WHILE 3*S < 111

  S = S + 8

  N = N + 2

WEND

PRINT N

 

s = 0 n = 0 while 3*s < 111:     s = s + 8     n = n + 2

print(n)

 

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

 

Паскаль

алг

 

var s, n: integer;

begin   s := 0;   n := 0;

  while 3*s < 111 do   begin     s := s + 8;     n := n + 2   end;   writeln(n) end.

нач

 

  цел s, n   s := 0   n := 0

  нц пока 3*s < 111

 

    s := s + 8

 

    n := n + 2   кц   вывод n

 

кон  

Си

 

#include <stdio.h> int main()

{

  int s = 0, n = 0;   while (3*s < 111) {     s = s + 8;      n = n + 2;

  }

  printf("%d\n", n);   return 0;

}

 

 

 

Ответ: ___________________________.

 

9

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

 

Ответ: ___________________________.

Алексей составляет таблицу кодовых слов для передачи сообщений, каждому

10 сообщению соответствует своё кодовое слово. В качестве кодовых слов Алексей использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём буква X может появиться на первом месте или не появиться вовсе. Сколько различных кодовых слов может использовать Алексей?

 

Ответ: ___________________________.

 

11

Ниже на пяти языках программирования записаны рекурсивные функции F и G.

 

Бейсик

Паскаль

FUNCTION F(n)

  IF n > 2 THEN

    F = F(n - 1) + G(n - 2)

  ELSE 

F  = 1

  END IF

END FUNCTION

 

FUNCTION G(n)

  IF n > 2 THEN

G  = G(n - 1) + F(n - 2)

  ELSE 

    G = 1

  END IF

END FUNCTION

function F(n: integer): integer; begin

  if n > 2 then

F         := F(n - 1) + G(n - 2)   else     F := 1; end; 

function G(n: integer): integer; begin

  if n > 2 then

G         := G(n - 1) + F(n - 2)   else     G := 1; end;

Си

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

int F(int n)

{

  if (n > 2)

    return F(n-1) + G(n-2);   else return 1;

int G(int n)

{

  if (n > 2)

    return G(n-1) + F(n-2);   else return 1;

}

алг цел F(цел n)   если n > 2 

    то

      знач := F(n - 1)+G(n - 2)

    иначе

      знач := 1    все

кон

 

алг цел G(цел n) нач   если n > 2      то

      знач := G(n - 1) + F(n - 2)

    иначе

      знач := 1 

  все

кон


Python

 

def F(n):     if n > 2:

       return F(n-1)+ G(n-2)     else: return 1

 def G(n):     if n > 2:

       return G(n-1) + F(n-2)     else: return 1

 

 

Чему будет равно значение, вычисленное при выполнении вызова F(8)?

 

Ответ: ___________________________.

 

12

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. При этом в двоичном представлении маски сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Обычно маска записывается по тем же правилам, что и IPадрес, – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 111.81.208.27 адрес сети равен 111.81.192.0. Чему равно наибольшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

 

13

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 15 символов и содержащий только символы  из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством битов. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов; это число одно и то же для всех пользователей. 

Для хранения сведений о 20 пользователях потребовалось 300 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байтов.

 

Ответ: ___________________________.

 

Исполнитель Редактор получает на вход строку цифр и преобразует её.

14

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 

заменить (111, 27)  преобразует строку 05111150 в строку 0527150. 

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие                   последовательность команд 

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ условие 

     ТО команда1

     ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 127 идущих подряд цифр «9»? В ответе запишите полученную строку.

 

НАЧАЛО

ПОКА нашлось (333) ИЛИ нашлось (999) 

                    ЕСЛИ нашлось (333) 

                         ТО заменить (333, 9) 

                         ИНАЧЕ заменить (999, 3)

                    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

 

Ответ: ___________________________.

На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, К, 15

Л, М, Н, П, Р, Т. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. 

Сколько существует различных путей из города А в город Т?

 

 

Ответ: ___________________________.

 

16

Значение арифметического выражения: 98 + 38 – 2 – записали в системе счисления с основанием 3. Сколько цифр «2» содержится в этой записи?

 

Ответ: ___________________________.

 

17

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. 

Запрос

Найдено страниц (в тысячах)

Лондон & Манчестер

270

Лондон & (Ливерпуль | Манчестер)

470

Лондон & Ливерпуль

367

Какое количество страниц (в тысячах) будет найдено по запросу Лондон & Ливерпуль & Манчестер?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

 

Ответ: ___________________________.

Обозначим через m & n поразрядную конъюнкцию неотрицательных целых

18 чисел m и n. Например, 14 & 5 = 11102 & 01012 = 01002 = 4.

Для какого наименьшего неотрицательного целого числа А формула x & 29 ≠ 0 → (x & 12 = 0 → x & А ≠ 0)

тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной х)?

 

Ответ: ___________________________.

 

19

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6, 7, 5, 8, 3, 2, 0, 1, 9, 4 соответственно, т. е. A[0] = 6, A[1] = 7 и т. д.

Определите значение переменной c после выполнения следующего фрагмента этой программы, записанного ниже на пяти языках программирования.

 

Бейсик

Python

c = 0

FOR i = 1 TO 9   IF A(i) < A(0) THEN     c = c + 1     t = A(i)

    A(i) = A(0)

    A(0) = t

  END IF

NEXT i

c = 0 for i in range(1,10):

  if A[i] < A[0]:

    c = c + 1     t = A[i]

    A[i] = A[0]

    A[0] = t

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

Паскаль

c := 0

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

c := 0;

for i := 1 to 9 do   if A[i] < A[0] then   begin     c := c + 1;     t := A[i];

    A[i] := A[0];

    A[0] := t;   end;

  если A[i] < A[0] то

    c := c + 1     t := A[i]

    A[i] := A[0]

    A[0] := t   все кц


 

20

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т. е. большее 100) число x, при вводе которого алгоритм печатает 30.

 

Бейсик

Python

DIM X, L, M AS INTEGER

INPUT X

L  = X - 30

M  = X + 30

WHILE L <> M

  IF L > M THEN

L         = L – M   ELSE

M         = M – L

  END IF

WEND

PRINT M

x = int(input())

L        = x-30 M = x+30 while L != M:     if L > M:         L = L - M     else:

M        = M - L print(M)

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

Паскаль

алг  нач

var x, L, M: integer; begin   readln(x);   L := x-30;   M := x+30;

  while L <> M do begin     if L > M then       L := L - M     else

      M := M – L;   end;   writeln(M); end.

  цел x, L, M

  ввод x

  L := x - 30

  M := x+30   нц пока L <> M

    если L > M

      то

        L := L – M

      иначе

        M := M – L

    все   кц

  вывод M

кон

 

21

Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 20. Для Вашего удобства программа приведена на пяти языках программирования. 

 

Бейсик

Python

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) < G(K)

  I = I + 1

WEND

PRINT I

 

FUNCTION F(N)

F  = N * N 

END FUNCTION

 

FUNCTION G(N)

G  = 3*N + 3

END FUNCTION

def f(n):

    return n*n

 def g(n):

    return 3*n+3

 

k = int(input()) i = 1 while f(i) < g(k):

    i+=1 print (i)

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

Паскаль

 

алг  нач

var

  k, i : longint;

 

function f(n: longint): longint; begin   f := n * n; end; 

function g(n: longint): longint; begin   g := 3*n + 3; end;  begin   readln(k);   i := 1;

  while f(i) < g(k) do      i := i+1;   writeln(i) end.

 

  цел k, i

 

  ввод k

 

  i := 1

 

  нц пока f(i) < g(k)     i := i + 1   кц   вывод i

 

кон

 

 

алг цел f(цел n) нач

 

  знач := n * n

 

кон

 

алг цел g(цел n) нач

 

  знач := 3*n + 3

 

кон

 

Си

 

 

#include <stdio.h> long f(long n) {   return n * n;

}  

long g(long n) {   return 3*n + 3;

int main()

{

  long k, i;   scanf("%ld", &k);   i = 1;

  while (f(i) < g(k))     i++;    printf("%ld", i);   return 0;

}

 

 

 

 

 

Ответ: ___________________________.

 

Исполнитель Май16 преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера: 

1.  Прибавить 1

2.  Умножить на 2

Первая команда увеличивает число на экране на 1, вторая умножает его на 2.

Программа для исполнителя Май16 – это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 33 и при этом траектория вычислений содержит число 16 и не содержит числа 30?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

 

23

22

Ответ: ___________________________.

 

Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1 x2) /\ (x2 x3) /\ (x3 x4) /\ (x4 x5) /\ (x5 x6) = 1 (y1 y2) /\ (y2 y3) /\ (y3 y4) /\ (y4 y5) /\ (y5 y6) = 1 y1x1= 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

 

Ответ: ___________________________.

Часть 2

Для записи ответов на задания этой части (24–27) используйте отдельный лист. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

 

24

Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:

1 + 2 + + K > N.

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

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Бейсик

Python

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE N > 0

  N = N - K

  K = K + 1

WEND

PRINT K

END

n = int(input()) k = 1 while n>0:     n = n - k     k = k + 1 print(k)

 

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

Паскаль

алг нач

var n, k: integer; begin   read(n);   k := 1;

  while n>0 do begin     n := n - k;     k := k + 1;   end;   writeln(k) end. 

  цел n, k

  ввод n

  k := 1

  нц пока n>0

    n := n - k

    k := k + 1   кц

  вывод k

кон

Последовательно выполните следующее.

1.  Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.

2.  Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.

3.  Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

25

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

 

Дан массив, содержащий 2015 неотрицательных целых чисел. Ямой называется не крайний элемент массива, который меньше обоих своих соседей. Необходимо найти в массиве самую глубокую яму, т. е. яму, значение которой минимально. Если в массиве нет ни одной ямы, ответ считается равным 0. Например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17, 3, 8, есть две ямы – 2 и 3, самая глубокая яма – 2.

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

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

 

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Например, пусть в одной куче 20 камней, а в другой 7 камней; такую позицию в игре будем обозначать (20, 7). Тогда за один ход можно получить любую из четырёх позиций: (21, 7), (40, 7), (20, 8), (20, 14). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.

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

26

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. Например, при начальных позициях (10, 34), (11, 33) выигрышная стратегия есть у Пети. Чтобы выиграть, ему достаточно удвоить количество камней во второй куче.

Задание 1. Для каждой из начальных позиций (10, 33), (12, 32) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии.

Задание 2. Для каждой из начальных позиций (10, 32), (11, 32), (12, 31) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии.

Задание 3. Для начальной позиции (11, 31) укажите, кто из игроков имеет выигрышную стратегию. Опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии. Постройте дерево всех партий, возможных при указанной Вами выигрышной стратегии. Представьте дерево в виде рисунка или таблицы.

 


На плоскости задано множество точек с целочисленными координатами.

27

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

Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.

Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз.

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

Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.

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

В первой строке задаётся N – количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа – координаты очередной точки. Пример входных данных:

3

6 0

0 8

9 7

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

Если искомый треугольник существует, программа должна напечатать одно число: минимально возможную площадь треугольника, удовлетворяющего условиям. Если искомый треугольник не существует, программа должна напечатать сообщение: «Треугольник не существует».

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

 

 

Вариант 3

Часть 1

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

 

1

Вычислите: 101010102 – 2528 + 716.

Ответ запишите в десятичной системе счисления. В ответе запишите только число, основание системы счисления писать не нужно.

 

Ответ: ___________________________.

 

2

Логическая функция F задаётся выражением

 (¬x /\ y /\ z) \/ (¬x /\ ¬z) .

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

 

 

Переменная 1

Переменная 2

Переменная 3

Функция

 

???

???

???

F

0

0

0

1

1

0

0

1

1

1

0

1

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и таблица истинности:

 

Переменная 1

Переменная 2

Функция

???

???

F

0

0

1

0

1

0

1

0

1

1

1

1

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать yx.

 

Ответ: ___________________________.

43

На рисунке схема дорог Н-ского района изображена в виде графа, а в таблице

3 содержатся сведения о длине этих дорог (в километрах).

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта Б в пункт Д. В ответе запишите целое число.

 

Ответ: ___________________________.

 


4

В фрагменте базы данных представлены сведения о родственных отношениях. Укажите в ответе идентификационный номер (ID) бабушки Сабо С.А.

 

 

Таблица 1

 

 

Таблица 2

 

ID

Фамилия_И.О.

Пол

 

ID_Родителя

ID_Ребёнка

1243

Бесчастных П.А.

М

 

2230

1243

1248

Попович А.А.

М

 

2230

1251

1250

Ан Н.А.

Ж

 

2230

3319

1251

Ан В.А.

Ж

 

2300

6258

1257

Фоменко П.И.

М

 

2300

1257

2230

Фоменко Е.А.

Ж

 

3252

6258

2300

Фоменко И.А.

М

 

3252

1257

3252

Фоменко Т.Х.

Ж

 

5215

2230

3293

Поркуян А.А

Ж

 

5215

2300

3319

Сабо С.А.

Ж

 

6214

2230

5215

Фоменко А.К.

М

 

6214

2300

6214

Попович Л.П.

Ж

 

9252

1243

6258

Фоменко Т.И.

Ж

 

9252

1251

9252

Бесчастных А.П

М

 

9252

3319

 

 

 

 

Ответ: ___________________________.

 

 

5

По каналу связи с помощью равномерного двоичного кода передаются сообщения, содержащие только 4 буквы П, Р, С, Т. Каждой букве соответствует своё кодовое слово, при этом для набора кодовых слов выполнено такое свойство: 

любые два слова из набора отличаются не менее чем в трёх позициях

Это свойство важно для расшифровки сообщений при наличии помех.

Для кодирования букв П, Р, С используются 5-битовые кодовые слова: П: 01111,  Р: 00001,  С: 11000.

5-битовый код для буквы Т начинается с 1 и заканчивается на 0. Определите кодовое слово для буквы Т.

 

Ответ: ___________________________.

Автомат получает на вход пятизначное число. По этому числу строится новое

6

число по следующим правилам.

1.    Складываются отдельно первая, третья и пятая цифры, а также вторая и четвёртая цифры.

2.    Полученные два числа записываются друг за другом в порядке неубывания без разделителей. 

Пример. Исходное число: 63 179. Суммы: 6 + 1 + 9 = 16; 3 + 7 = 10. Результат: 1016.

Укажите наименьшее число, при обработке которого автомат выдаёт результат 621.

 

Ответ: ___________________________.

 

7

В ячейки диапазонов C2:F6 и B3:B6 электронной таблицы записаны числа, как показано на рисунке.

 

 

A

B

C

D

E

F

1

 

 

 

 

 

 

2

 

 

1

2

3

4

3

 

1

1

2

3

4

4

 

2

2

4

6

8

5

 

3

3

6

9

12

6

 

4

4

8

12

16

 

В ячейке A1 записали формулу =$E5 – D$3. После этого ячейку A1 скопировали в ячейку B2. Какое число будет показано в ячейке B2?

Примечание. Знак $ используется для обозначения абсолютной адресации.

 

Ответ: ___________________________.

 

8

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

 

Бейсик

Python

DIM S, N AS INTEGER

S = 0

N = 0

WHILE 2*S*S < 123

  S = S + 1

  N = N + 2

WEND

PRINT N

s = 0 n = 0 while 2*s*s < 123:

    s = s + 1     n = n + 2

print(n)

 

 

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

Паскаль

 

алг нач

var s, n: integer;

begin   s := 0;   n := 0;

  while 2*s*s < 123 do   begin     s := s + 1;     n := n + 2   end;   writeln(n) end.

 

  цел s, n

 

  s := 0   n := 0

  нц пока 2*s*s < 123     s := s + 1     n := n + 2   кц

 

  вывод n

 

кон  

 

Си

 

 

#include <stdio.h> int main()

{    int s = 0, n = 0;    while (2*s*s < 123) {       s = s + 1;       n = n + 2;

   }

   printf("%d\n", n);    return 0;

}

 

 

Ответ: ___________________________.

 

9

Производится четырёхканальная (квадро) звукозапись с частотой дискретизации 32 кГц и 32-битным разрешением. Запись длится 2 минуты, её результаты записываются в файл, сжатие данных не производится. Определите приблизительно размер полученного файла (в Мбайтах). В качестве ответа укажите ближайшее к размеру файла целое число, кратное 10.

 

Ответ: ___________________________.

 

10

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 4-буквенные слова, в которых есть только буквы A, B, C, D, X, причём буква X появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?

 

Ответ: ___________________________.

 

Ниже на пяти языках программирования записаны рекурсивныефункции F и G. 11

 

Бейсик

Паскаль

FUNCTION F(n)

  IF n > 2 THEN

    F = F(n - 1) + G(n - 2)

  ELSE 

F  = n

  END IF

END FUNCTION

FUNCTION G(n)

  IF n > 2 THEN

G  = G(n - 1) + F(n - 2)

  ELSE 

    G = n + 1

  END IF

END FUNCTION

function F(n: integer): integer; begin

  if n > 2 then

F         := F(n - 1) + G(n - 2)   else     F := n; end;

function G(n: integer): integer; begin

  if n > 2 then

G         := G(n - 1) + F(n - 2)   else     G := n+1; end;

Си

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

int F(int n)

{

  if (n > 2)

    return F(n-1) + G(n-2);   else return n;

}

int G(int n)

{

  if (n > 2)

    return G(n-1) + F(n-2);   else return n+1;

}

алг цел F(цел n)

нач

  если n > 2 

    то

      знач := F(n - 1)+G(n - 2)

    иначе

      знач := n    все

кон

алг цел G(цел n)

нач

  если n > 2 

    то

      знач := G(n - 1)+F(n - 2)

    иначе

      знач := n+1    все

кон

Python

 

def F(n):     if n > 2:

       return F(n-1) + G(n-2)     else: return n def G(n):

    if n > 2:

       return G(n-1) + F(n-2)     else: return n+1

 

Чему будет равно значение, вычисленное при выполнении вызова F(6)?

 

Ответ: ___________________________.


В терминологии сетей TCP/IP маской сети называется двоичное число,

12 определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

По заданным IP-адресу узла и маске определите адрес сети. 

                     IP-адрес узла:       135.12.170.217

                     Маска:                   255.255.248.0

При записи ответа выберите из приведённых в таблице чисел четыре элемента IP-адреса сети и запишите в нужном порядке соответствующие им буквы без использования точек.

 

A

B

C

D

E

F

G

H

0

12

16

132

135

160

168

170

 

Пример. 

Пусть искомый IP-адрес 191.153.128.0 и дана таблица: 

 

A

B

C

D

E

F

G

H

255

167

128

0

153

8

191

192

 

В этом случае правильный ответ будет записан в виде GECD.

 

Ответ: ___________________________.

 

13

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 15 символов и содержащий только символы  из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом пользователе отведено одинаковое минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым минимально возможным количеством битов. Кроме собственно пароля для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов, одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 320 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байтов. 

 

Ответ: ___________________________.

 

Исполнитель Редактор получает на вход строку цифр и преобразует её.

14

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 

заменить (111, 27)  преобразует строку 05111150 в строку 0527150. 

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие      последовательность команд 

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ условие 

     ТО команда1

     ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

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

 

НАЧАЛО

ПОКА нашлось (3333) ИЛИ нашлось (888)

    ЕСЛИ нашлось (3333)

         ТО заменить (3333, 8) 

         ИНАЧЕ заменить (888, 3)

    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

 

Ответ: ___________________________.

На рисунке изображенасхема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, 15

М, Н, П, Р, Т. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. 

Сколько существует различных путей из города А в город Т?

 

Ответ: ___________________________.

 

16

В системе счисления с основанием N запись числа 8710 оканчивается на 2 и содержит не менее трёх цифр. Чему равно число N?

 

Ответ: ___________________________.

 

17

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. 

 

Запрос

Найдено страниц (в тысячах)

Рим & Неаполь

268

(Рим | Неаполь) & (Венеция | Рим)

368

Венеция & Рим

255

 

Какое количество страниц (в тысячах) будет найдено по запросу Рим & Неаполь & Венеция?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

 

Ответ: ___________________________.

Элементами множеств А, P, Q являются натуральные числа, причём 

18

P = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, Q = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30}.

Известно, что выражение

( (x P) → (x A) ) \/ (¬(x A) → ¬(x Q) )

истинно (т. е. принимает значение 1) при любом значении переменной х. Определите наименьшее возможное количество элементов в множестве A.

 

Ответ: ___________________________.

 

19

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6, 7, 3, 8, 5, 1, 2, 1, 9, 4 соответственно, т. е. A[0] = 6, A[1] = 7 и т. д.

Определите значение переменной c после выполнения следующего фрагмента этой программы, записанного ниже на пяти языках программирования.

Бейсик

Python

c = 0

FOR i = 1 TO 9

  IF A(i) <= A(0) THEN     c = c + A(i)     t = A(i)

    A(i) = A(0)

    A(0) = t

  END IF

NEXT i

c = 0 for i in range(1,10):   if A[i] <= A[0]:     c = c + A[i]     t = A[i]

    A[i] = A[0]

    A[0] = t

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

Паскаль

c := 0

нц для i от 1 до 9   если A[i] <= A[0] то

c := 0;

for i := 1 to 9 do begin   if A[i] <= A[0] then   begin

    c := c + A[i];     t := A[i];

    A[i] := A[0];

    A[0] := t;   end; end;

    c := c + A{i]

    t := A[i]

    A[i] := A[0]

    A[0] := t   все кц

Си

 

c = 0;

for (i = 1; i < 10; i++) {   if (A[i] <= A[0]) {     c = c + A[i];     t = A[i];

    A[i] = A[0];     A[0] = t;

  }

}

 

Ответ: ___________________________.

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот

20                  алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 18.

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A  = 0: B = 0

WHILE X > 0   A = A + 1

  IF (X MOD 2) = 0 THEN

B  = B+(X MOD 10)

  END IF

  X = X \ 10

WEND

PRINT A

PRINT B

program B20; var x, a, b: integer; begin   readln(x);   a := 0; b := 0;   while x > 0 do   begin     a := a + 1;     if x mod 2 = 0 then       b := b+ x mod 10;     x := x div 10;    end;

  writeln(a); write(b); end.

Си

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

#include <stdio.h> int main()

{

  int x, a, b;   scanf("%d", &x);   a = 0; b = 0;   while (x > 0) {     a = a+1;     if (x%2 == 0) {       b = b+x%10;

    }

    x = x / 10;

  }

  printf("%d\n%d", a, b);   return 0;

}

алг нач   цел x, a, b   ввод x   a := 0; b := 0   нц пока x > 0     a := a+1     если mod(x,2)=0 то       b := b + mod(x,10)     все     x := div(x,10)   кц

  вывод a, нс, b кон 

Python

 

x = int(input()) a=0; b=0 while x>0:     a=a+1     if x%2==0:         b += x%10     x = x//10 print(a) print(b)

 

Ответ: ___________________________.

Напишите в ответе наименьшее значение входной переменной k, при котором

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

Бейсик

Python

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) <= K*G(I)

  I = I + 1

WEND

PRINT I

 

FUNCTION F(N)

F         = N * N * N END FUNCTION

 

FUNCTION G(N)

G         = N * N

END FUNCTION

def f(n):

    return n*n*n

 def g(n):

    return n*n

 

k = int(input()) i = 1 while f(i) <= k*g(i):

    i += 1 print (i)

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

Паскаль

алг  нач   цел k, i

var

  k, i : longint;

 

function f(n: longint): longint; begin

  f := n * n * n; end; 

function g(n: longint): longint; begin   g := n*n; end;  begin   readln(k);   i := 1;

  while f(i) <= k*g(i) do      i := i+1;   writeln(i) end.

  ввод k

  i := 1

  нц пока f(i) <= k*g(i)     i := i + 1   кц   вывод i кон

 

алг цел f(цел n)

нач

  знач := n * n * n

кон

 

алг цел g(цел n)   знач := n * n

кон


Си

#include <stdio.h> long f(long n) {   return n * n * n;

long g(long n) {   return n*n;

int main()

{

  long k, i;   scanf("%ld", &k);   i = 1;

  while (f(i) <= k*g(i))     i++;    printf("%ld", i);   return 0;

}

 

Ответ: ___________________________.

 

22

Исполнитель Май16 преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

1.  Прибавить 1

2.  Прибавить 2

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2.

Программа для исполнителя Май16 – это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 12 и при этом траектория вычислений содержит число 7? Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121  при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.

 

Ответ: ___________________________.

 

Сколько существует различных наборов значений логических переменных 

23 x1, x2, ... x9, y1, y2, ... y9, которые удовлетворяют всем перечисленным ниже условиям:

 

( (x1y1) → (x2y2) ) /\ (x1x2) /\ (y1y2) = 1; ( (x2y2) → (x3y3) ) /\ (x2x3) /\ (y2y3) = 1;

( (x8y8) → (x9y9) ) /\ (x8x9) /\ (y8y9) = 1?

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ... x9, y1, y2, ... y9, при которых выполнена данная система равенств.  В качестве ответа Вам нужно указать количество таких наборов.

 

Ответ: ___________________________.

Часть 2

Для записи ответов на задания этой части (24–27) используйте отдельный лист. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

 

24

Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M K3N.

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

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Бейсик

Python

DIM M, N, K, T AS INTEGER

INPUT M, N

K = 1

T = 1

WHILE K*K*K <= N

  IF K*K*K > M THEN T = T + 1

  K = K + 1

WEND

PRINT T

END

m = int(input()) n = int(input()) k = 1 t = 1 while k*k*k <= n:     if k*k*k > m:         t = t+1     k = k + 1 print(t)

 

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

Паскаль

алг

var m, n, k, t: integer; begin   read(m, n);   k := 1;   t := 1;

  while k*k*k <= n do begin     if k*k*k > m         then t := t + 1;     k := k + 1;   end;   writeln(t) end. 

нач

  цел m, n, k, t

  ввод m, n

  k := 1   t := 1

  нц пока k*k*k <= n     если k*k*k > m

        то t := t+1

    все     k := k+1   кц

  вывод t

кон


Последовательно выполните следующее.

1.  Напишите, что выведет эта программа при вводе M = 10 и N = 100.

2.  Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3.  Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

25

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

 

Дан массив, содержащий 2016 неотрицательных целых чисел. Необходимо найти в этом массиве количество таких элементов, которые равны среднему арифметическому двух элементов, расположенных сразу после него. Например, в массиве из 6 элементов, равных соответственно 2, 3, 1, 5, 6, 4, есть три таких элемента, они расположены на первом, втором и четвёртом месте и равны 2, 3 и 5. Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.

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

 

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

Например, имея кучу из 10 камней, за один ход можно получить кучу из 11, 12 или 20 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче превышает 29. Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 30 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 29.

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

26

Выполните следующие задания.

Задание 1. а) При каких значениях числа S Петя может выиграть первым ходом? Укажите все такие значения и выигрывающий ход Пети.

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

Задание 2. Укажите три значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для указанных значений S опишите выигрышную стратегию Пети.

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

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

 


На плоскости задано множество точек с целочисленными координатами.

27

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

Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.

Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз.

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

Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.

 

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

В первой строке задаётся N – количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа – координаты очередной точки. Пример входных данных:

3

6 6

-8 8

9 7

 

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

Если искомый треугольник существует, программа должна напечатать одно число: максимально возможную площадь треугольника, удовлетворяющего условиям. Если искомый треугольник не существует, программа должна напечатать сообщение: «Треугольник не существует».

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

 

 

Вариант 4

Часть 1

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

 

1

Вычислите 101010112 – 2538 + 616.

Ответ запишите в десятичной системе счисления. В ответе запишите только число, основание системы счисления писать не нужно.

 

Ответ: ___________________________.

 

2

Логическая функция F задаётся выражением 

 (¬x /\ z) \/ (¬x /\¬y /\ ¬z).

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z. 

 

 

Переменная 1

Переменная 2

Переменная 3

Функция

 

???

???

???

F

0

0

0

1

0

0

1

1

1

0

1

1

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем буква, соответствующая второму столбцу, и т. д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и таблица истинности:

 

 

Переменная 1

Переменная 2

Функция

 

???

???

F

0

0

1

0

1

0

1

0

1

1

1

1

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать yx.

 

Ответ: ___________________________.

На рисунке схема дорог Н-ского района изображена в виде графа, а в таблице

3 содержатся сведения о длине этих дорог (в километрах). 

 

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта Б в пункт Д. В ответе запишите целое число.

 

Ответ: ___________________________.

 


4

В фрагменте базы данных представлены сведения о родственных отношениях. Укажите в ответе идентификационный номер (ID) дедушки Сабо С.А.

 

 

Таблица 1

 

 

Таблица 2

 

ID

Фамилия_И.О.

Пол

 

ID_Родителя

ID_Ребёнка

1243

Бесчастных П.А.

М

 

2230

1243

1248

Попович А.А.

М

 

2230

1251

1250

Ан Н.А.

Ж

 

2230

3319

1251

Ан В.А.

Ж

 

2300

6258

1257

Фоменко П.И.

М

 

2300

1257

2230

Фоменко Е.А.

Ж

 

3252

6258

2300

Фоменко И.А.

М

 

3252

1257

3252

Фоменко Т.Х.

Ж

 

5215

2230

3293

Поркуян А.А

Ж

 

5215

2300

3319

Сабо С.А.

Ж

 

6214

2230

5215

Фоменко А.К.

М

 

6214

2300

6214

Попович Л.П.

Ж

 

9252

1243

6258

Фоменко Т.И.

Ж

 

9252

1251

9252

Бесчастных А.П

М

 

9252

3319

 

 

 

 

Ответ: ___________________________.

 

5

По каналу связи с помощью равномерного двоичного кода передаются сообщения, содержащие только 4 буквы А, Б, В, Г. Каждой букве соответствует своё кодовое слово, при этом для набора кодовых слов выполнено такое свойство: 

любые два слова из набора отличаются не менее чем в трёх позициях

Это свойство важно для расшифровки сообщений при наличии помех.

Для кодирования букв Б, В, Г используются 5-битовые кодовые слова: Б: 00001,  В: 01111,  Г: 10110.

5-битовый код для буквы А начинается с 1 и заканчивается на 0. Определите кодовое слово для буквы А.

 

Ответ: ___________________________.

 

Автомат получает на вход пятизначное число. По этому числу строится новое

6

число по следующим правилам.

1.  Складываются отдельно первая, третья и пятая цифры, а также вторая и четвёртая цифры.

2.  Полученные два числа записываются друг за другом в порядке неубывания без разделителей. 

Пример. Исходное число: 63 179. Суммы: 6 + 1 + 9 = 16; 3 + 7 = 10. Результат: 1016.

Укажите наименьшее число, при обработке которого автомат выдаёт результат 723.

 

Ответ: ___________________________.

 

7

В ячейки диапазонов C2:F6 и B3:B6 электронной таблицы записаны числа, как показано на рисунке. 

 

 

A

B

C

D

E

F

1

 

 

 

 

 

 

2

 

 

1

2

3

4

3

 

1

1

2

3

4

4

 

2

2

4

6

8

5

 

3

3

6

9

12

6

 

4

4

8

12

16

 

В ячейке A1 записали формулу =E$4+$D5. После этого ячейку A1 скопировали в ячейку B2. Какое число будет показано в ячейке B2?

Примечание. Знак $ используется для обозначения абсолютной адресации.

 

Ответ: ___________________________.

 

8

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

 

Бейсик

Python

DIM S, N AS INTEGER

S = 0

N = 0

WHILE 2*S*S < 123

  S = S + 1

  N = N + 3

WEND

PRINT N

s = 0 n = 0 while 2*s*s < 123:

    s = s + 1     n = n + 3

print(n)

 

 

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

Паскаль

 

алг нач

var s, n: integer;

begin   s := 0;   n := 0;

  while 2*s*s < 123 do   begin     s := s + 1;     n := n + 3   end;   writeln(n) end.

 

  цел s, n

 

  s := 0   n := 0

  нц пока 2*s*s < 123     s := s + 1     n := n + 3   кц

 

  вывод n

 

кон  

 

Си

 

 

#include <stdio.h> int main()

{   int s = 0, n = 0;   while (2*s*s < 123) {     s = s + 1;     n = n + 3;

  }

  printf("%d\n", n);   return 0;

}

 

 

Ответ: ___________________________.

 

9

Производится двухканальная (стерео) звукозапись с частотой дискретизации 32 кГц и 32-битным разрешением. Результаты записи сохраняются в файл, сжатие данных не производится; размер полученного файла – 45 Мбайт. Определите приблизительно время записи (в минутах). В качестве ответа укажите ближайшее к времени записи целое число.

 

Ответ: ___________________________.

 

10

Алексей составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Алексей использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём буква X может появиться на последнем месте или не появиться вовсе. Сколько различных кодовых слов может использовать Алексей?

 

Ответ: ___________________________.

 

Ниже на пяти языках программирования записаны рекурсивныефункции F и G. 

11

Бейсик

Паскаль

FUNCTION F(n)

  IF n > 2 THEN

    F = F(n - 1) + G(n - 2)

  ELSE 

F  = n

  END IF

END FUNCTION

 

FUNCTION G(n)

  IF n > 2 THEN

G  = G(n - 1) + F(n - 2)

  ELSE 

    G = n + 1

  END IF

END FUNCTION

function F(n: integer): integer; begin

  if n > 2 then

F         := F(n - 1) + G(n - 2)   else     F := n; end; 

function G(n: integer): integer; begin

  if n > 2 then

G         := G(n - 1) + F(n - 2)   else     G := n+1; end;

Си

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

int F(int n)

{

  if (n > 2)

    return F(n-1) + G(n-2);   else return n;

int G(int n)

{

  if (n > 2)

    return G(n-1) + F(n-2);   else return n+1;

}

алг цел F(цел n)

нач

  если n > 2      то

      знач := F(n - 1)+G(n - 2)

    иначе

      знач := n 

  все

кон

 

алг цел G(цел n)   если n > 2 

    то

      знач := G(n - 1)+F(n - 2)

    иначе

      знач := n+1 

  все

кон

Python

 

def F(n):     if n > 2:

       return F(n-1) + G(n-2)     else: return n

 def G(n):     if n > 2:

       return G(n-1) + F(n-2)     else: return n+1

 

Чему будет равно значение, вычисленное при выполнении вызова G(6)?

Ответ: ___________________________.


В терминологии сетей TCP/IP маской сети называется двоичное число,

12 определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

По заданным IP-адресу узла и маске определите адрес сети.

           IP-адрес узла:       135.21.171.214

           Маска:                   255.255.248.0

При записи ответа выберите из приведённых в таблице чисел четыре элемента IP-адреса сети и запишите в нужном порядке соответствующие им буквы без использования точек. 

 

A

B

C

D

E

F

G

H

170

168

160

135

132

16

21

0

 

Пример. 

Пусть искомый IP-адрес 191.153.128.0 и дана таблица:

 

A

B

C

D

E

F

G

H

255

167

128

0

153

8

191

192

 

В этом случае правильный ответ будет записан в виде GECD.

 

Ответ: ___________________________.

 

13

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 20 символов и содержащий только символы  из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом пользователе отведено одинаковое минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым минимально возможным количеством битов. Кроме собственно пароля для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов, одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 400 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байтов. 

 

Ответ: ___________________________.

 

Исполнитель Редактор получает на вход строку цифр и преобразует её.

14

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 

заменить (111, 27)  преобразует строку 05111150 в строку 0527150. 

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие      последовательность команд 

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ  условие 

     ТО команда1

     ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

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

 

НАЧАЛО

     ПОКА нашлось (18) ИЛИ нашлось (288) ИЛИ нашлось (3888)  

        ЕСЛИ нашлось (18) 

         ТО заменить (18, 2) 

         ИНАЧЕ ЕСЛИ нашлось (288) 

                           ТО заменить (288, 3)

                           ИНАЧЕ заменить (3888, 1)

                       КОНЕЦ ЕСЛИ

         КОНЕЦ ЕСЛИ      КОНЕЦ ПОКА КОНЕЦ

 

Ответ: ___________________________.

На рисунке изображенасхема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, 15

М, Н, П, Р, Т. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. 

Сколько существует различных путей из города А в город Т?

 

 

Ответ: ___________________________.

 

16

В системе счисления с основанием N запись числа 8710 оканчивается на 2 и содержит не более двух цифр. Чему равно наименьшее возможное число N

 

Ответ: ___________________________.

 

17

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. 

 

Запрос

Найдено страниц (в тысячах)

Париж & Лион

320

(Париж & Лион) | (Париж & Марсель)

455

Париж & Марсель

355

 

Какое количество страниц (в тысячах) будет найдено по запросу Париж & Лион & Марсель?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

 

Ответ: ___________________________.

Элементами множеств А, P, Q являются натуральные числа, причём 

18

P = {1, 3, 4, 9, 11, 13, 15, 17, 19, 21}, Q = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30}.

Известно, что выражение

( (x P) → (x A) ) \/ (¬(x A) → ¬(x Q) )

истинно (т. е. принимает значение 1) при любом значении переменной х. Определите наименьшее возможное количество элементов в множестве A.

 

Ответ: ___________________________.

 

19

Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A, в представленном фрагменте программы обрабатываются элементы массива с индексами от 1 до 10. 

 

Бейсик

Паскаль

s = 0 n = 10

FOR i = 2 TO n

  s = s+A(i)*A(i)-A(i-1)*A(i-1)

NEXT i

s:=0; n:=10; for i:= 2 to n do begin   s:=s+A[i]*A[i]-A[i-1]*A[i-1]; end;

Си

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

s = 0; n=10; for (i = 2; i <= n; i++)   s=s + A[i]*A[i]-A[i-1]*A[i-1];

s:=0 n:=10 нц для i от 2 до n   s:=s + A[i]*A[i]-A[i-1]*A[i-1] кц

Python

s=0 n=10 for i in range(2,n+1):

    s=s + A[i]*A[i]-A[i-1]*A[i-1]

 

В начале выполнения этого фрагмента в массиве находились числа 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, т. е. A[1] = 1, A[2] = 2 и т. д. Чему будет равно значение переменной s после выполнения данного фрагмента?

 

Ответ: ___________________________.

 

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот

20                  алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 20.

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A  = 0: B = 0

WHILE X > 0   A = A + 1

  IF (X MOD 2) = 0 THEN

B  = B+(X MOD 10)

  END IF

  X = X \ 10

WEND

PRINT A

PRINT B

program B20; var x, a, b: integer; begin   readln(x);   a := 0; b := 0;   while x > 0 do   begin     a := a + 1;     if x mod 2 = 0 then       b := b+ x mod 10;     x := x div 10;   end;

  writeln(a); write(b); end.

Си

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

#include <stdio.h> int main()

{

  int x, a, b;   scanf("%d", &x);   a = 0; b = 0;   while (x > 0) {     a = a+1;     if (x%2 == 0) {       b = b+x%10;

    }

    x = x / 10;

  }

  printf("%d\n%d", a, b);   return 0;

}

алг нач   цел x, a, b   ввод x   a := 0; b := 0   нц пока x > 0     a := a+1     если mod(x,2)=0 то       b := b + mod(x,10)     все     x := div(x,10)   кц

  вывод a, нс, b кон 

Python

 

x = int(input()) a=0; b=0 while x>0:     a=a+1     if x%2==0:         b += x%10     x = x//10 print(a) print(b)

 

Ответ: ___________________________.

Напишите в ответе наименьшее значение входной переменной k, при котором

21                  программа выдаёт ответ 27. Для Вашего удобства программа приведена на пяти языках программирования. 

 

Бейсик

Python

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) < K*G(I)

  I = I + 1

WEND

PRINT I

 

FUNCTION F(N)

F         = N * N * N END FUNCTION

 

FUNCTION G(N)

G         = N * N

END FUNCTION

def f(n):

    return n*n*n

 def g(n):

    return n*n

 

k = int(input()) i = 1 while f(i) < k*g(i):

    i += 1 print (i)

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

Паскаль

алг 

var

  k, i : longint;

 

function f(n: longint): longint; begin

  f := n * n * n; end; 

function g(n: longint): longint; begin   g := n*n; end;  begin   readln(k);   i := 1;

  while f(i) < k*g(i) do      i := i+1;   writeln(i) end.

нач

  цел k, i

  ввод k

  i := 1

  нц пока f(i) < k*g(i)

    i := i + 1

  кц

  вывод i

кон

 

алг цел f(цел n) нач

  знач := n * n * n

кон

 

алг цел g(цел n)

нач

  знач := n * n

кон


 

22

Исполнитель Май16 преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера: 

1.  Прибавить 1

2.  Прибавить 2

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2.

Программа для исполнителя Май16 – это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 13 и при этом траектория вычислений содержит число 7? Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121  при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.

 

Ответ: ___________________________.

 

Сколько существует различных наборов значений логических переменных 

23 x1, x2, ... x8, y1, y2, ... y8, которые удовлетворяют всем перечисленным ниже условиям:

 

( (x1y1) → (x2y2) ) /\ (x1x2) /\ (y1y2) = 1; ( (x2y2) → (x3y3) ) /\ (x2x3) /\ (y2y3) = 1;

( (x7y7) → (x8y8) ) /\ (x7x8) /\ (y7y8) = 1?

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ... x8, y1, y2, ... y8, при которых выполнена данная система равенств.  В качестве ответа Вам нужно указать количество таких наборов.

 

Ответ: ___________________________.

Часть 2

Для записи ответов на задания этой части (24–27) используйте отдельный лист. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

 

24

Даны целые положительные числа M и N. Необходимо определить количество таких целых положительных чисел K, для которых выполняется неравенство M K2N.

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

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Бейсик

Python

DIM M, N, K, T AS INTEGER

INPUT M, N

K = 1

T = 1

WHILE K*K < N

  IF K*K >= M THEN T = T + 1

  K = K + 1

WEND

PRINT T

END

m = int(input()) n = int(input()) k = 1 t = 1 while k*k < n:     if k*k >= m:         t = t+1     k = k + 1 print(t)

 

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

Паскаль

алг

var m, n, k, t: integer; begin   read(m, n);   k := 1;   t := 1;

  while k*k < n do begin     if k*k >= m         then t := t+1;     k := k + 1;   end;   writeln(t) end. 

нач

  цел m, n, k, t

  ввод m, n

  k := 1   t := 1   нц пока k*k < n     если k*k >= m

        то t := t+1

    все     k := k+1   кц

  вывод t

кон


Си

 

#include <stdio.h> int main(){     int m, n, k, t;     scanf("%d %d", &m, &n);     k = 1;     t = 1;

    while (k*k < n) {

        if (k*k >= m) t = t + 1;         k = k + 1;

    }

    printf("%d", t);     return 0;

}

 

Последовательно выполните следующее.

1.    Напишите, что выведет эта программа при вводе M = 10 и N = 40.

2.    Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3.    Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

25

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

 

 

Дан массив, содержащий 2016 неотрицательных целых чисел. Необходимо найти в этом массиве количество таких элементов, которые равны среднему арифметическому двух элементов, расположенных непосредственно перед ним. Например, в массиве из 6 элементов, равных соответственно 4, 6, 5, 1, 3, 2, есть три таких элемента, они расположены на третьем, пятом и шестом месте и равны 5, 3 и 2.

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

Бейсик

Python

CONST N=2016

DIM A(N) AS INTEGER DIM I, K AS INTEGER

FOR I = 1 TO N 

    INPUT A(I)

NEXT I

END

 

# допускается также использо-

# вание целочисленной # переменной k a = [] N = 2016 for i in range(0, n):

    a.append(int(input()))

 

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

Паскаль

алг нач

const     N=2016; var     a: array [1..N] of integer;     i, k: integer; begin     for i:=1 to N do          readln(a[i]);

    … end. 

    цел N=2016

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

    цел i, k

    нц для i от 1 до N         ввод a[i]

    кц

    … кон 

Си

 

#include <stdio.h> #define N 2016 int main(){     int a[N];     int i, k;     for (i=0; i<N; i++)         scanf("%d", &a[i]);

    …

    return 0;

}

 

 

 

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

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

Например, имея кучу из 10 камней, за один ход можно получить кучу из 11, 12 или 20 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче превышает 33. Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 34 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 33.

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

26

Выполните следующие задания.

Задание 1. а) При каких значениях числа S Петя может выиграть первым ходом? Укажите все такие значения и выигрывающий ход Пети.

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

Задание 2. Укажите три значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для указанных значений S опишите выигрышную стратегию Пети.

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

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

 

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

Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.

Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз.

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

Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.

 

27

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

В первой строке задаётся N – количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа – координаты очередной точки.

 

Пример входных данных:

3

6 6

-8 8

9 7

 

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

Если искомый треугольник существует, программа должна напечатать одно число: минимально возможную площадь треугольника, удовлетворяющего условиям. Если искомый треугольник не существует, программа должна напечатать сообщение: «Треугольник не существует».

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

 


 

Вариант 5

Часть 1

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

 

1

Какое из перечисленных ниже выражений имеет наибольшее значение?

1) 2138                   2) 12810 + 810 + 410           3) 100010102

В ответе запишите это значение в десятичной системе счисления, основание писать не нужно.

 

Ответ: ___________________________.

 

2

Логическая функция F задаётся выражением 

 

(¬x /\ y) \/ (y /\ z).

 

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

 

Переменная 1

Переменная 2

Переменная 3

Функция

???

???

???

F

0

1

0

1

0

1

1

1

1

1

1

1

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем буква, соответствующая второму столбцу, и т. д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно. Пример. Пусть заданы выражение x → y, зависящее от двух переменных x и y, и таблица истинности.

81

 

 

Переменная 1

Переменная 2

Функция

???

???

F

0

0

1

0

1

0

1

0

1

1

1

1

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

 

Ответ: ___________________________.

 

3

На рисунке схема дорог Н-ского района изображена в виде графа, а в таблице содержатся сведения о длине этих дорог (в километрах).

 

 

 

П1

П2

П3

П4

П5

П6

П7

П1

 

57

 

20

 

25

 

П2

57

 

22

42

8

 

21

П3

 

22

 

 

23

 

8

П4

20

42

 

 

 

7

33

П5

 

8

23

 

 

 

 

П6

25

 

 

7

 

 

9

П7

 

21

8

33

 

9

 

 

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта А в пункт Г. В ответе запишите целое число.

 

Ответ: ___________________________.

 

В фрагменте базы данных представлены сведения о родственных отношениях.

4

Укажите в ответе идентификационный номер (ID) тёти Фоменко П.И. Примечание. Тётя – это сестра матери или отца.

 

Таблица 1

 

 

Таблица 2

 

ID

Фамилия_И.О.

Пол

 

ID_Родителя

ID_Ребёнка

1243

Бесчастных П.А.

М

 

2230

1243

1248

Попович А.А.

М

 

2230

1251

1250

Ан Н.А.

Ж

 

2230

3319

1251

Ан В.А.

Ж

 

2300

6258

1257

Фоменко П.И.

М

 

2300

1257

2230

Фоменко Е.А.

Ж

 

3252

6258

2300

Фоменко И.А.

М

 

3252

1257

3252

Фоменко Т.Х.

Ж

 

5215

2230

3293

Поркуян А.А

Ж

 

5215

2300

3319

Сабо С.А.

Ж

 

6214

2230

5215

Фоменко А.К.

М

 

6214

2300

6214

Попович Л.П.

Ж

 

9252

1243

6258

Фоменко Т.И.

Ж

 

9252

1251

9252

Бесчастных А.П

М

 

9252

3319

 

 

Ответ: ___________________________.

 

5

По каналу связи передаются сообщения, содержащие только буквы  А, Б, В, Г, Д, Е. Для передачи используется неравномерный двоичный код, удовлетворяющий условию Фано; для букв A, Б, В используются такие кодовые слова: А – 0, Б – 101, В – 110. 

Какова наименьшая возможная суммарная длина всех кодовых слов?

Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.

 

Ответ: ___________________________.


Автомат получает на вход четырёхзначное число. По этому числу строится

6

новое число по следующим правилам.

1.   Складываются отдельно первая и вторая цифры, вторая и третья цифры, а также третья и четвёртая цифры.

2.   Из полученных трёх чисел выбираются два наибольших и записываются друг за другом в порядке неубывания без разделителей. 

Пример. Исходное число: 9575. Суммы: 9 + 5 = 14; 5 + 7 = 12; 7 + 5 = 12. Наибольшие суммы: 14, 12. Результат: 1214.

Укажите наибольшее число, при обработке которого автомат выдаёт результат 1515.

 

Ответ: ___________________________.

 

7

В ячейки диапазона B2:F6 электронной таблицы записаны числа, как показано на рисунке.

 

 

A

B

C

D

E

F

1

 

 

 

 

 

 

2

 

0

3

5

7

11

3

 

3

9

15

21

33

4

 

5

15

25

35

55

5

 

7

21

35

49

77

6

 

11

33

55

77

121

 

В ячейке B1 записали формулу =E$4+$D5. После этого ячейку B1 скопировали в ячейку A2. Какое число будет показано в ячейке A2?

Примечание. Знак $ используется для обозначения абсолютной адресации.

 

Ответ: ___________________________.

 

Запишите число, которое будет напечатано в результате выполнения

8

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

Бейсик

Python

DIM S, N AS INTEGER

S = 0

N = 0

WHILE S < 123

  S = S + 12

  N = N + 2

WEND

PRINT N

s = 0 n = 0 while s < 123:     s = s + 12     n = n + 2

print(n)

 

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

Паскаль

алг нач   цел s, n   s := 0   n := 0   нц пока s < 123     s := s + 12     n := n + 2   кц   вывод n кон

var s, n: integer;

begin   s := 0;   n := 0;   while s < 123 do   begin     s := s + 12;     n := n + 2   end;   writeln(n) end.

Си

 

#include <stdio.h> int main()

{   int s = 0, n = 0;   while (s < 123) {     s = s + 12;     n = n + 2;

  }

  printf("%d\n", n);   return 0;

}

 

 

Ответ: ___________________________.

 

9

Производится двухканальная (стерео) звукозапись с частотой дискретизации 32 кГц и 32-битным разрешением. Запись длится 2 минуты, её результаты записываются в файл, сжатие данных не производится. Определите приблизительно размер полученного файла в Мбайт. В качестве ответа укажите ближайшее к размеру файла целое число, кратное 10.

 

Ответ: ___________________________.

Вадим составляет таблицу кодовых слов для передачи сообщений, каждому

10 возможному сообщению соответствует своё кодовое слово. В качестве кодовых слов Вадим использует четырёхбуквенные слова, в которых есть только буквы A, B, C, D, E, X, причём буква X появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Вадим?

 

Ответ: ___________________________.

 

11

Бейсик

Си

FUNCTION F(n)

  IF n > 2 THEN

    F = F(n-1)+G(n-1)+F(n-2)

  ELSE 

F  = n

  END IF

END FUNCTION

 

FUNCTION G(n)

  IF n > 2 THEN

G  = G(n-1)+F(n-1)+G(n-2)

  ELSE 

    G = n+1

  END IF

END FUNCTION

int F(int n) {   if (n > 2)

    return F(n-1)+G(n-1)+F(n-2);   else return n;

int G(int n){   if (n > 2)

    return G(n-1)+F(n-1)+G(n-2);   else return n+1;

}

Паскаль

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

function F(n: integer): integer; begin

  if n > 2 then

F         := F(n-1)+G(n-1)+F(n-2)   else     F := n; end; 

function G(n: integer): integer; begin

  if n > 2 then

G         := G(n-1)+F(n-1)+G(n-2)   else     G := n+1; end;

алг цел F(цел n) нач   если n > 2     то

      знач := F(n-1)+G(n-1)+F(n-

2)     иначе       знач := n   все кон

 

алг цел G(цел n) нач   если n > 2   то

    знач := G(n-1)+F(n-1)+G(n-2)   иначе     знач := n+1   все кон

Ниже на пяти языках программирования записаны рекурсивные функции F и G.


Python

 

def F(n):     if n > 2:

       return F(n-1)+G(n-1)+F(n-2)     else: return n

 def G(n):     if n > 2:

       return G(n-1)+F(n-1)+G(n-2)     else: return n+1

 

Чему будет равно значение, вычисленное при выполнении вызова G(5)?

 

Ответ: ___________________________

12        

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. При этом в двоичном представлении маски сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Обычно маска записывается по тем же правилам, что и IPадрес, – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 111.81.200.27 адрес сети равен 111.81.192.0. Чему равно наибольшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

 

Ответ: ___________________________

 

13

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 20 символов и содержащий только символы из  10-символьного набора: А, В, C, D, Е, F, G, H, K, L. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым минимально возможным количеством битов. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов, одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 300 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байтов.

 

Ответ: ___________________________.

Исполнитель Редактор получает на вход строку цифр и преобразует её.

14

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 

заменить (111, 27)  преобразует строку 05111150 в строку 0527150. 

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие     последовательность команд 

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ условие

     ТО команда1

     ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Ниже приведена программа для исполнителя Редактор.

НАЧАЛО

ПОКА нашлось (133) ИЛИ нашлось (881)

    ЕСЛИ нашлось (133) 

        ТО заменить (133, 81) 

            ИНАЧЕ заменить (881, 13)

    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА КОНЕЦ

 

На вход этой программе подается строка, состоящая из 100 цифр; последняя цифра в строке – цифра 1, а остальные цифры – восьмёрки.

Какая строка получится в результате применения программы к этой строке? В ответе запишите полученную строку.

 

Ответ: ___________________________.

На рисунке изображенасхема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, 15

М, Н, П, Р, Т. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город Т?

 

Ответ: ___________________________.

 

16

Решите уравнение

546 + x = 547.

Ответ запишите в восьмеричной системе счисления. Основание системы в ответе писать не нужно.

 

Ответ: ___________________________.

 

17

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» – символ «&». В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. 

 

Запрос

Найдено страниц (в тысячах)

Франция & Германия

274

Германия & (Франция | Австрия)

467

Франция & Германия & Австрия

104

 

Какое количество страниц (в тысячах) будет найдено по запросу  Германия & Австрия ?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

 

Ответ: ___________________________.

Обозначим через m&n поразрядную конъюнкцию неотрицательных целых

18 чисел m и n. Например, 14&5 = 11102&01012 = 01002 = 4.

Для какого наименьшего неотрицательного целого числа А формула

((x&28 ≠ 0) \/ (x&45 ≠ 0)) → (x&48 = 0 → x&А ≠ 0)

тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной х)?

 

Ответ: ___________________________.

 

19

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4, 4, 6, 8, 5, 8, 2, 10, 9, 14 соответственно, т. е. A[0] = 4, A[1] = 4 и т. д.

Определите значение переменной c после выполнения фрагмента этой программы, записанного ниже на пяти языках программирования.

Бейсик

Python

c = 0

FOR i = 1 TO 9   IF A(i) > A(0) THEN     c = c + 1     t = A(i)

    A(i) = A(0)

    A(0) = t

  END IF

NEXT i

c = 0 for i in range(1,10):   if A[i] > A[0]:

    c = c + 1     t = A[i]

    A[i] = A[0]

    A[0] = t

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

Паскаль

c := 0

нц для i от 1 до 9   если A[i] > A[0] то     c := c + 1     t := A[i]

    A[i] := A[0]

    A[0] := t   все кц

c := 0;

for i := 1 to 9 do begin   if A[i] > A[0] then   begin     c := c + 1;     t := A[i];

    A[i] := A[0];

    A[0] := t;   end; end;

Си

 

c = 0;

for (i = 1; i < 10; i++) {   if (A[i] > A[0]) {     c++;     t = A[i];

    A[i] = A[0];     A[0] = t;

  }

}

 

Ответ: ___________________________.

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот

20 алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 12.

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A  = 0: B = 0

WHILE X > 0   A = A + 1

  IF X MOD 2 = 0 THEN

B  = B+(X MOD 10)

  END IF

  X = X\10

WEND

PRINT A

PRINT B

program B20; var x, a, b: integer; begin   readln(x);   a := 0; b := 0;   while x > 0 do   begin     a := a + 1;     if x mod 2 = 0 then        b := b + (x mod 10);     x := x div 10;   end;

  writeln(a); write(b); end.

Си

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

#include <stdio.h> int main()

{

  int x, a, b;   scanf("%d", &x);   a = 0; b = 0;   while (x > 0) {     a = a+1;     if (x%2 == 0) {        b = b + (x%10);

    }       x = x/10;

  }

  printf("%d\n%d", a, b);   return 0;

}

алг нач   цел x, a, b   ввод x   a := 0; b := 0   нц пока x > 0     a := a+1     если mod(x,2)=0       то b := b + mod(x,10)     все     x := div(x,10)   кц

  вывод a, нс, b кон 

Python

 

x = int(input()) a=0; b=0 while x>0:     a=a+1     if x%2==0:         b += x%10     x=x//10 print(a) print(b)

 

Ответ: ___________________________.

Определите, какое число будет напечатано в результате выполнения следующе-

21

го алгоритма (для Вашего удобства алгоритм представлен на пяти языках).

Бейсик

Паскаль

DIM A, B, T, M, R AS INTEGER

A = -10: B = 20

M = A: R = F(A)

FOR T = A TO B

   IF F(T) < R THEN

      M = T

      R = F(T)

   END IF

NEXT T

PRINT M+10

 

FUNCTION F(x)

  F = 2*(x*x-1)*(x*x-1)+7

END FUNCTION

var a,b,t,M,R: integer; Function F(x:integer):integer;   begin

    F := 2*(x*x-1)*(x*x-1)+7;

  end; BEGIN   a := -10; b := 20;   M := a; R := F(a);   for t := a to b do begin     if F(t)<R then begin

         M := t;          R := F(t);      end;   end;   write(M+10); END.

Си

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

#include <stdio.h> int F(int x)

{

  return 2*(x*x-1)*(x*x-1)+7;

}

int main()

{

  int a, b, t, M, R;   a = -10; b = 20;   M = a; R = F(a);   for (t=a; t<=b; t++) {     if (F(t)<R) {

      M = t; R = F(t);

    }   }

  printf("%d", M+10);   return 0;

}

алг нач

  цел a, b, t, M, R   a := -10; b := 20   M := a; R := F(a)   нц для t от a до b     если F(t) < R       то M := t; R := F(t)     все   кц   вывод M+10 кон

алг цел F(цел x) нач

  знач := 2*(x*x-1)*(x*x-1)+7 кон

Python

 

def F(x):     return 2*(x*x-1)*(x*x-1)+7 a=-10; b=20 M=a; R=F(a) for t in range(a,b+1):

    if F(t)<R:         M=t; R=F(t) print(M+10)

 

Ответ: ___________________________.

Исполнитель Май16 преобразует число на экране. 22

У исполнителя есть две команды, которым присвоены номера: 

1.  Прибавить 1

2.  Прибавить 2

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2.

Программа для исполнителя Май16 – это последовательность команд.

Сколько существует программ, для которых при исходном числе 1 результатом является число 14 и при этом траектория вычислений содержит число 7, но не содержит числа 9?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121  при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.

 

Ответ: ___________________________.

 

23

Сколько существует различных наборов значений логических переменных  x1, x2, ... x9, y1, y2, ... y9, которые удовлетворяют всем перечисленным ниже условиям:

(¬(x1y1) → ¬(x2y2)) /\ (x1 → x2) /\ (y1 → y2) = 1; (¬(x2y2) → ¬(x3y3)) /\ (x2 → x3) /\ (y2 → y3) = 1;

(¬(x8y8) → ¬(x9y9)) /\ (x8 → x9) /\ (y8 → y9) = 1.

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ... x9, y1, y2, ... y9, при которых выполнена данная система равенств.  В качестве ответа Вам нужно указать количество таких наборов.

 

Ответ: ___________________________.


Часть 2

Для записи ответов на задания этой части (24–27) используйте отдельный лист. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

 

24

Дано целое положительное число N. Необходимо определить максимальное значение степени числа 2, на которое N делится без остатка. Например, для N = 2016 нужно получить результат 32, а для N = 2017 – результат 1.

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

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Бейсик

Python

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N MOD 2 = 0

  N = N\2

  K = K + 2

WEND

PRINT K

END

n = int(input()) k = 0 while n%2 == 0:     n = n//2     k = k + 2 print(k)

 

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

Паскаль

алг нач   цел n, k   ввод n   k := 0

  нц пока mod(n,2) = 0     n := div(n,2)     k := k+2   кц   вывод k кон

var n, k: integer; begin   read(n);   k := 0;

  while n mod 2 = 0 do begin     n := n div 2;     k := k + 2;   end;   writeln(k) end. 

 

Си

#include <stdio.h> int main(){     int n, k;     scanf("%d", &n);     k = 0;

    while (n%2 == 0) {         n = n/2;         k = k + 2;

    }

    printf("%d", k);     return 0;

}

 

Последовательно выполните следующее.

1.    Напишите, что выведет эта программа при вводе N = 2016.

2.    Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3.    Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

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

 

Дан массив, содержащий 2016 целых чисел. Необходимо найти и вывести сумму тех элементов этого массива, чётность которых совпадает с чётностью максимального элемента.

Например, в массиве из 6 элементов, равных соответственно 2, 3, 1, 5, 6, 4, максимальный элемент чётный (6), значит, ответом будет сумма чётных элементов этого массива 2 + 6 + 4 = 12.

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

25

 

Бейсик

Python

CONST N=2016

DIM A(N) AS INTEGER

DIM I, M, S, P AS INTEGER

FOR I = 1 TO N 

    INPUT A(I)

NEXT I

END

 

# допускается также использо-

# вание целочисленных # переменных m, s, p

a = [] N = 2016 for i in range(0, N):

    a.append(int(input()))

 

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

Паскаль

алг нач     цел N=2016     целтаб a[1:N]     цел i, m, s, p     нц для i от 1 до N         ввод a[i]     кц     … кон

const     N=2016; var

    a: array [1..N] of integer;     i, m, s, p: integer; begin     for i:=1 to N do          readln(a[i]);

    … end.

Си

 

#include <stdio.h> #define N 2016 int main(){     int a[N];     int i, m, s, p;     for (i=0; i<N; i++)         scanf("%d", &a[i]);

    …

    return 0;

}

 

 

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

 

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

Например, имея кучу из 10 камней, за один ход можно получить кучу из 11, 13 или 20 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

26

Игра завершается в тот момент, когда количество камней в куче превышает 49. Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 50 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 49.

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

Выполните следующие задания.

Задание 1 а) При каких значениях числа S Петя может выиграть первым ходом? Укажите все такие значения и выигрывающий ход Пети.

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

Задание 2 Укажите три значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Для указанных значений S опишите выигрышную стратегию Пети.

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

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

 

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

1)   оба конца отрезка принадлежат заданному множеству;

2)   ни один конец отрезка не лежит на осях координат; 3) отрезок пересекается ровно с одной осью координат.

Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.

Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз.

27

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

Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.

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

В первой строке задаётся N – количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа x и y – координаты очередной точки. Гарантируется, что 1 ≤ N ≤ 10 000; –1000 ≤ x, y ≤ 1000. Пример входных данных:

4

6 6

-8  8

-9  -9

7 -5

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

Необходимо вывести единственное число: количество удовлетворяющих требованиям отрезков.

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

4


 

Вариант 6

Часть 1

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

 

1

Какое из перечисленных ниже выражений имеет наименьшее значение?

1) 2138                   2) 12810 + 810 + 410           3) 100010102

В ответе запишите это значение в десятичной системе счисления, основание писать не нужно.

 

Ответ: ___________________________.

 

2

Логическая функция F задаётся выражением 

 (x /\ ¬y) \/ (x /\ z).

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

 

Переменная 1

Переменная 2

Переменная 3

Функция

???

???

???

F

0

1

0

1

0

1

1

1

1

1

1

1

 

В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Пример. Пусть заданы выражение x → y, зависящее от двух переменных x и y, и таблица истинности.

 

Переменная 1

Переменная 2

Функция

???

???

F

0

0

1

0

1

0

1

0

1

1

1

1

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx. Ответ: ___________________________.

99

На рисунке схема дорог Н-ского района изображена в виде графа, а в таблице

3 содержатся сведения о длине этих дорог (в километрах).

 

 

 

П1

П2

П3

П4

П5

П6

П7

П1

 

59

 

22

 

27

 

П2

59

 

24

44

10

 

21

П3

 

24

 

 

25

 

9

П4

22

44

 

 

 

8

32

П5

 

10

25

 

 

 

 

П6

27

 

 

8

 

 

11

П7

 

21

9

32

 

11

 

 

 

Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта Г в пункт К. В ответе запишите целое число.

 

Ответ: ___________________________.

 

4

В фрагменте базы данных представлены сведения о родственных отношениях.

Укажите в ответе идентификационный номер (ID) дяди Ан В.А. Примечание. Дядя – это брат матери или отца.

 

Таблица 1

 

 

Таблица 2

ID

Фамилия_И.О.

Пол

 

ID_Родителя

ID_Ребёнка

1243

Бесчастных П.А.

М

 

2230

1243

1248

Попович А.А.

М

 

2230

1251

1250

Ан Н.А.

Ж

 

2230

3319

1251

Ан В.А.

Ж

 

2300

6258

1257

Фоменко П.И.

М

 

2300

1257

2230

Фоменко Е.А.

Ж

 

3252

6258

2300

Фоменко И.А.

М

 

3252

1257

3252

Фоменко Т.Х.

Ж

 

5215

2230

3293

Поркуян А.А

Ж

 

5215

2300

3319

Сабо С.А.

Ж

 

6214

2230

5215

Фоменко А.К.

М

 

6214

2300

6214

Попович Л.П.

Ж

 

9252

1243

6258

Фоменко Т.И.

Ж

 

9252

1251

9252

Бесчастных А.П

М

 

9252

3319

 

Ответ: ___________________________.

По каналу связи передаются сообщения, содержащие только буквы 

5

А, Б, В, Г, Д, Е. Для передачи используется неравномерный двоичный код, удовлетворяющий условию Фано; для букв A, Б, В используются такие кодовые слова: А – 1, Б – 010, В – 001. 

Какова наименьшая возможная суммарная длина всех кодовых слов?

Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.

 

Ответ: ___________________________.

 

6

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.

1.   Складываются отдельно первая и вторая цифры, вторая и третья цифры, а также третья и четвёртая цифры.

2.   Из полученных трёх чисел выбираются два наибольших и записываются друг за другом в порядке неубывания без разделителей. 

Пример. Исходное число: 9575. Суммы: 9 + 5 = 14; 5 + 7 = 12; 7 + 5 = 12. Наибольшие суммы: 14, 12. Результат: 1214.

Укажите наибольшее число, при обработке которого автомат выдаёт результат 1517.

 

Ответ: ___________________________.

 

7

В ячейки диапазона B2:F6 электронной таблицы записаны числа, как показано на рисунке. 

 

 

A

B

C

D

E

F

1

 

 

 

 

 

 

2

 

0

3

5

7

11

3

 

3

9

15

21

33

4

 

5

15

25

35

55

5

 

7

21

35

49

77

6

 

11

33

55

77

121

 

В ячейке B1 записали формулу =$D5–E$4. После этого ячейку B1 скопировали в ячейку A2. Какое число будет показано в ячейке A2?

Примечание. Знак $ используется для обозначения абсолютной адресации.

Ответ: ___________________________.

Запишите число, которое будет напечатано в результате выполнения

8

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

 

Бейсик

Python

DIM S, N AS INTEGER

S = 0

N = 0

WHILE S < 123

  S = S + 12

  N = N + 3

WEND

PRINT N

s = 0 n = 0 while s < 123:     s = s + 12     n = n + 3

print(n)

 

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

Паскаль

алг нач   цел s, n   s := 0   n := 0   нц пока s < 123     s := s + 12     n := n + 3   кц   вывод n кон

var s, n: integer;

begin   s := 0;   n := 0;   while s < 123 do   begin     s := s + 12;     n := n + 3   end;   writeln(n) end.

Си

 

#include <stdio.h> int main()

{

  int s = 0, n = 0;   while (s < 123) {     s = s + 12;     n = n + 3;

  }

  printf("%d\n", n);   return 0;

}

 

 

Ответ: ___________________________.

 

Производится двухканальная (стерео) звукозапись с частотой дискретизации

9

32 кГц и 32-битным разрешением. Результаты записи сохраняются в файл, сжатие данных не производится; размер полученного файла – 60 Мбайт. Определите приблизительно время записи в минутах. В качестве ответа укажите ближайшее к времени записи целое число.

 

Ответ: ___________________________.

 

10

Алексей составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Алексей использует 4-буквенные слова, в которых есть только буквы A, B, C, D, X, причём буква X может появиться на первом месте или не появиться вовсе. Сколько различных кодовых слов может использовать Алексей?

 

Ответ: ___________________________.

 

11

Ниже на пяти языках программирования записаны рекурсивные функции F и G.

 

Бейсик

Си

FUNCTION F(n)

  IF n > 2 THEN

    F = F(n-1)+G(n-1)+F(n-2)

  ELSE 

F  = n

  END IF

END FUNCTION

 

FUNCTION G(n)

  IF n > 2 THEN

G  = G(n-1)+F(n-1)+G(n-2)

  ELSE 

    G = n+1

  END IF

END FUNCTION

int F(int n) {   if (n > 2)

    return F(n-1)+G(n-1)+F(n-2);   else return n;

int G(int n){   if (n > 2)

    return G(n-1)+F(n-1)+G(n-2);   else return n+1;

}


 

Паскаль

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

function F(n: integer): integer; begin

  if n > 2 then

F        := F(n-1)+G(n-1)+F(n-2)   else     F := n; end; 

function G(n: integer): integer; begin

  if n > 2 then

G        := G(n-1)+F(n-1)+G(n-2)   else     G := n+1; end;

алг цел F(цел n) нач   если n > 2     то

      знач := F(n-1)+G(n-1)+F(n-

2)     иначе       знач := n   все кон

 

алг цел G(цел n) нач   если n > 2   то

    знач := G(n-1)+F(n-1)+G(n-2)   иначе     знач := n+1   все кон

Python

 

def F(n):     if n > 2:

       return F(n-1)+G(n-1)+F(n-2)     else: return n

 def G(n):

    if n > 2:

       return G(n-1)+F(n-1)+G(n-2)     else: return n+1

 

Чему будет равно значение, вычисленное при выполнении вызова F(5)?

 

Ответ: ___________________________.

 

В терминологии сетей TCP/IP маской сети называется двоичное число,

12 определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. При этом в двоичном представлении маски сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Обычно маска записывается по тем же правилам, что и IPадрес, – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 111.81.208.27 адрес сети равен 111.81.192.0. Чему равно наименьшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

 

Ответ: ___________________________.

 

13

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 20 символов и содержащий только символы  из 10-символьного набора: А, В, C, D, Е, F, G, H, K, L. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым минимально возможным количеством битов. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов, одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 400 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байтов.

 

Ответ: ___________________________.

Исполнитель Редактор получает на вход строку цифр и преобразует её.

14

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды 

заменить (111, 27)  преобразует строку 05111150 в строку 0527150. 

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Цикл

ПОКА условие     последовательность команд 

КОНЕЦ ПОКА

выполняется, пока условие истинно.

В конструкции

ЕСЛИ условие

     ТО команда1

     ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Ниже приведена программа для исполнителя Редактор.

НАЧАЛО

ПОКА нашлось (722) ИЛИ нашлось (557)

    ЕСЛИ нашлось (722)

         ТО заменить (722, 57) 

         ИНАЧЕ заменить (557, 72)

    КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА КОНЕЦ

 

На вход этой программе подается строка, состоящая из 55 цифр; последняя цифра в строке – цифра 7, а остальные цифры – пятёрки.

Какая строка получится в результате применения программы к этой строке? В ответе запишите полученную строку.

 

На рисунке изображенасхема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, 15

М, Н, П, Р, Т. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. 

Сколько существует различных путей из города А в город Т?

 

Ответ: ___________________________.

 

16

Решите уравнение

345 + x = 347.

Ответ запишите в восьмеричной системе счисления. Основание системы в ответе писать не нужно.

 

Ответ: ___________________________.

 

17

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» – символ «&». В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет. 

Запрос

Найдено страниц (в тысячах)

Канада & США

277

США & (Канада | Мексика)

417

 Канада & США & Мексика

106

Какое количество страниц (в тысячах) будет найдено по запросу  США & Мексика ?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

 

Ответ: ___________________________.

Обозначим через m&n поразрядную конъюнкцию неотрицательных целых

18 чисел m и n. Например, 14&5 = 11102&01012 = 01002 = 4.

Для какого наименьшего неотрицательного целого числа А формула

((x&28 ≠ 0) \/ (x&45 ≠ 0)) → (x&17 = 0 → x&А ≠ 0)

тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной х)?

 

Ответ: ___________________________.

 

19

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4, 4, 6, 8, 5, 8, 2, 10, 13, 14 соответственно, т. е. A[0] = 4, A[1] = 4 и т. д.

Определите значение переменной c после выполнения фрагмента этой программы, записанного ниже на пяти языках программирования.

Бейсик

Python

c = 0

FOR i = 1 TO 9   IF A(i) > A(0) THEN     c = c + 1     t = A(i)

    A(i) = A(0)

    A(0) = t

  END IF

NEXT i

c = 0 for i in range(1,10):   if A[i] > A[0]:

    c = c + 1     t = A[i]

    A[i] = A[0]

    A[0] = t

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

Паскаль

c := 0

нц для i от 1 до 9   если A[i] > A[0] то     c := c + 1     t := A[i]

    A[i] := A[0]

    A[0] := t   все кц

c := 0;

for i := 1 to 9 do begin   if A[i] > A[0] then   begin     c := c + 1;     t := A[i];

    A[i] := A[0];

    A[0] := t;   end; end;

Си

 

c = 0;

for (i = 1; i < 10; i++) {   if (A[i] > A[0]) {     c++;     t = A[i];

    A[i] = A[0];     A[0] = t;

  }

}

 


Ниже на пяти языках записан алгоритм. Получив на вход число x, этот

20                  алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 10.

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A  = 0: B = 0

WHILE X > 0   A = A + 1

  IF X MOD 2 = 0 THEN

B  = B+(X MOD 10)

  END IF

  X = X\10

WEND

PRINT A

PRINT B

program B20; var x, a, b: integer; begin   readln(x);   a := 0; b := 0;   while x > 0 do   begin     a := a + 1;     if x mod 2 = 0 then        b := b + (x mod 10);     x := x div 10;   end;

  writeln(a); write(b); end.

Си

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

#include <stdio.h> int main()

{

  int x, a, b;   scanf("%d", &x);   a = 0; b = 0;   while (x > 0) {     a = a+1;     if (x%2 == 0) {        b = b +(x%10);

    }       x = x/10;

  }

  printf("%d\n%d", a, b);   return 0;

}

алг нач   цел x, a, b   ввод x   a := 0; b := 0   нц пока x > 0     a := a+1     если mod(x,2)=0       то b := b + mod(x,10)     все     x := div(x,10)   кц

  вывод a, нс, b кон 

Python

 

x = int(input()) a=0; b=0 while x>0:     a=a+1     if x%2==0:         b += x%10     x=x//10 print(a) print(b)

 

Определите, какое число будет напечатано в результате выполнения

21                  следующего алгоритма (для Вашего удобства алгоритм представлен на пяти языках).

Бейсик

Паскаль

DIM A, B, T, M, R AS INTEGER

A = -10: B = 20

M = A: R = F(A)

FOR T = A TO B

   IF F(T) < R THEN

      M = T

      R = F(T)

   END IF

NEXT T

PRINT M+18

 

FUNCTION F(x)

  F = 2*(x*x-4)*(x*x-4)+7

END FUNCTION

var a,b,t,M,R: integer; Function F(x:integer):integer;   begin

   F := 2*(x*x-4)*(x*x-4)+7;

  end; BEGIN

  a := -10; b := 20;   M := a; R := F(a);   for t := a to b do begin     if F(t)<R then begin

         M := t;          R := F(t);      end;   end;   write(M+18); END.

Си

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

#include <stdio.h> int F(int x)

{

  return 2*(x*x-4)*(x*x-4)+7;

}

int main()

{

  int a, b, t, M, R;   a = -10; b = 20;   M = a; R = F(a);   for (t=a; t<=b; t++) {     if (F(t)<R) {

      M = t; R = F(t);

    }   }

  printf("%d", M+18);   return 0;

}

алг нач

  цел a, b, t, M, R   a := -10; b := 20   M := a; R := F(a)   нц для t от a до b     если F(t) < R       то M := t; R := F(t)     все   кц   вывод M+18 кон

алг цел F(цел x) нач

  знач := 2*(x*x-4)*(x*x-4)+7 кон

Python

 

def F(x):     return 2*(x*x-4)*(x*x-4)+7 a=-10; b=20 M=a; R=F(a) for t in range(a,b+1):

    if F(t)<R:         M=t; R=F(t) print(M+18)

 

Исполнитель Май16 преобразует число на экране. 22

У исполнителя есть две команды, которым присвоены номера: 

1.  Прибавить 1

2.  Прибавить 2

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2.

Программа для исполнителя Май16 – это последовательность команд.

Сколько существует программ, для которых при исходном числе 1 результатом является число 13 и при этом траектория вычислений содержит число 7, но не содержит числа 9?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121  при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.

 

Ответ: ___________________________.

 

23

Сколько существует различных наборов значений логических переменных  x1, x2, ... x8, y1, y2, ... y8, которые удовлетворяют всем перечисленным ниже условиям:

(¬(x1y1) → ¬(x2y2)) /\ (x1 → x2) /\ (y1 → y2) = 1; (¬(x2y2) → ¬(x3y3)) /\ (x2 → x3) /\ (y2 → y3) = 1;

(¬(x7y7) → ¬(x8y8)) /\ (x7 → x8) /\ (y7 → y8) = 1.

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ... x8, y1, y2, ... y8, при которых выполнена данная система равенств.  В качестве ответа Вам нужно указать количество таких наборов.

 

Ответ: ___________________________.

 


Часть 2

Для записи ответов на задания этой части (24–27) используйте отдельный лист. Запишите сначала номер задания (24, 25 и т. д.), а затем полное решение. Ответы записывайте чётко и разборчиво.

Дано целое положительное число N. Необходимо определить максимальное значение степени числа 2, на которое N делится без остатка. Например, для N = 2016 нужно получить результат 32, а для N = 2017 – результат 1.

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

24

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Бейсик

Python

DIM N, K AS INTEGER

INPUT N

K = 2

WHILE N MOD 2 = 0

  N = N\2

  K = K + 1

WEND

PRINT K

END

n = int(input()) k = 2 while n%2 == 0:     n = n//2     k = k + 1 print(k)

 

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

Паскаль

алг нач   цел n, k   ввод n   k := 2

  нц пока mod(n,2) = 0     n := div(n,2)     k := k+1   кц   вывод k кон

var n, k: integer; begin   read(n);   k := 2;

  while n mod 2 = 0 do begin     n := n div 2;     k := k + 1;   end;   writeln(k) end. 

Си

 

#include <stdio.h> int main(){     int n, k;     scanf("%d", &n);     k = 2;

    while (n%2 == 0) {         n = n/2;         k = k + 1;

    }

    printf("%d", k);     return 0;

}

 

 

Последовательно выполните следующее.

1.   Напишите, что выведет эта программа при вводе N = 2016.

2.   Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3.   Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

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

25

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

 

Дан массив, содержащий 2016 целых чисел. Необходимо найти и вывести сумму тех элементов этого массива, чётность которых не совпадает с чётностью минимального элемента.

Например, в массиве из 6 элементов, равных соответственно 2, 3, 1, 5, 6, 4, минимальный элемент нечётный (1), значит, ответом будет сумма чётных элементов этого массива 2 + 6 + 4 = 12.

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

 

Бейсик

Python

CONST N=2016

DIM A(N) AS INTEGER

DIM I, M, S, P AS INTEGER

FOR I = 1 TO N 

    INPUT A(I)

NEXT I

END

# допускается также использо-

# вание целочисленных # переменных m, s, p a = [] N = 2016 for i in range(0, N):

    a.append(int(input())) …

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

Паскаль

алг нач     цел N=2016     целтаб a[1:N]     цел i, m, s, p     нц для i от 1 до N         ввод a[i]     кц     … кон

const     N=2016; var     a: array [1..N] of integer;     i, m, s, p: integer; begin

    for i:=1 to N do          readln(a[i]);

    … end.

Си

 

#include <stdio.h> #define N 2016 int main(){     int a[N];     int i, m, s, p;     for (i=0; i<N; i++)         scanf("%d", &a[i]);

    …

    return 0;

}

 

 

 

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

 

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

Например, имея кучу из 10 камней, за один ход можно получить кучу из 11, 13 или 20 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче превышает 53. Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 54 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 53.

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

26

Выполните следующие задания.

Задание 1 а) При каких значениях числа S Петя может выиграть первым ходом? Укажите все такие значения и выигрывающий ход Пети.

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

Задание 2 Укажите три значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для указанных значений S опишите выигрышную стратегию Пети.

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

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

 

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

1)   оба конца отрезка принадлежат заданному множеству;

2)   ни один конец отрезка не лежит на осях координат; 3) отрезок пересекается с обеими осями координат.

Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.

Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз.

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

Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.

27

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

В первой строке задаётся N – количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа x и y – координаты очередной точки. Гарантируется, что 1 ≤ N ≤ 10000; –1000 ≤ x, y ≤ 1000. Пример входных данных:

4

6 6

-8  8

-9  -9

7 -5

 

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

Необходимо вывести единственное число: количество удовлетворяющих требованиям отрезков.

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

2


 

Система оценивания экзаменационной работы по информатике 

 

За каждый правильный ответ на задания 1–23 ставится 1 балл; за неверный ответ или его отсутствие – 0 баллов.

Решения заданий 24–27 части 2 (с развёрнутым ответом) оцениваются экспертной комиссией. На основе критериев, представленных в приведённых ниже таблицах, за выполнение каждого задания в зависимости от полноты и правильности данного учащимся ответа выставляется от 0 до 4 баллов.

 

Ответы к заданиям с кратким ответом

 

задания

 

 

Вариант

 

 

1

2

3

4

5

6

1

9

10

7

6

140

138

2

yxz

zxy

yzx

yxz

xyz

yxz

3

40

55

8

11

22

59

4

5

3

6214

5215

2230

2300

5

101

001

10110

11000

18

18

6

732

237

30969

50979

9696

9878

7

302

203

9

16

80

30

8

14

10

16

24

22

33

9

16

14

60

3

30

4

10

405

324

256

324

500

320

11

13

21

17

17

38

37

12

240

224

EBGA

DGBH

240

192

13

7

9

10

12

5

10

14

388

339

38

28

813

572

15

96

64

90

60

84

56

16

4

7

5

17

5

6

17

155

167

155

220

297

246

18

12

17

3

4

13

44

19

3

4

5

99

4

5

20

105

120

288

488

984

982

21

9

16

20

27

9

16

22

13

18

104

169

65

39

23

43

43

28

25

28

25

 

 

117

 

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

Вариант 1 

 

24

Содержание верного ответа

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

1. Примеры чисел, при вводе которых программа выводит неверный ответ:

            Значение N          Верный ответ Ответ программы

1                                        1      2

2                                        2      3

3                                        2      3

5                                        3      4

6                                        3      4

9                                        4      5

10                                     4      5

2. Примеры чисел, при вводе которых программа выводит верный ответ: 

            Значение N          Верный ответ Ответ программы

            4                          3                          3

            7                          4                          4

            12                        5                          5

 

Комментарий для эксперта. Программа выдаёт неверный ответ (на единицу больше верного) для тех значений N, которые можно представить в виде суммы 1 + 2 + … + K или 2 + … + K. При K = 1, 2, 3, 4 получим примеры, приведённые в таблице. Во всех остальных случаях программа выдаёт верный ответ.

3. Программа содержит две ошибки:       1) неверная инициализация;                2) неверное условие цикла.

Пример исправления для языка Паскаль: Первая ошибка:     k := 1;

Исправленная строка:     k := 0; Вторая ошибка:     while n>=0 do begin

Исправленная строка:

    while n>0 do begin

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

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

 

 

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

Баллы

В задаче требуется выполнить три действия.

1.  Указать пример неверной работы программы.

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

2.  Указать пример верной работы программы.

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

Экзаменуемый      не            обязан     пояснять                 этот                 результат и механизм работы программы.

3.  Найти и исправить ошибки в программе.

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

Ошибка считается исправленной, если выполнены оба следующих условия:

а) правильно указана строка с ошибкой;

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

 

Выполнены все три необходимых действия, и ни одна верная строка не указана в качестве ошибочной.

3

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

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

2.    Выполнены два первых действия, найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.

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

2

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

1.    Выполнены два первых действия. При этом несущественно, насколько правильно выполнено третье действие.

2.    Найдены и исправлены две ошибки в программе, не более чем одна верная строка названа ошибочной. При этом

1


несущественно, насколько правильно выполнены действия 1 и 2.

3. Выполнено одно из двух первых действий. Исправлена одна из двух ошибок. Не более чем одна верная строка названа ошибочной.

 

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

0

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

3

 

 

Содержание верного ответа

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

Необходимо перебрать все элементы массива, кроме первого и последнего (они не могут быть пиками, так как имеют всего по одному соседу), выделить пики и выбрать из них максимальный.

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

Пример правильной программы на Паскале

k:=0;

for i:=2 to N-1 do begin

    if (a[i]>a[i-1]) and (a[i]>a[i+1]) and (a[i]>k)         then k:=a[i]; end; writeln(k)

25

 

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

Баллы

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

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

2

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

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

1) Отсутствие инициализации или неверная инициализация одной или нескольких переменных (например, инициализация максимума первым элементом массива).

1

2)   Ошибка в сравнениях, в результате которой выводится минимум вместо максимума или рассматриваются впадины вместо пиков.

3)   Выход за границы массива (например, в перебор включены крайние элементы и проверяются их несуществующие соседи). 4) Отсутствует вывод ответа.

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

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

 

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

0

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

2

 

26

 

Содержание верного ответа

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

Задание 1. В начальных позициях (10, 43), (12, 42) выигрышная стратегия есть у Вани. При начальной позиции (10, 43) после первого хода Пети может получиться одна из следующих четырёх позиций: (11, 43), (20, 43), (10, 44), (10, 86). Каждая из этих позиций содержит менее 97 камней. При этом из любой из этих позиций Ваня может получить позицию, содержащую не менее 97 камней, удвоив количество камней во второй куче. Для позиции (12, 42) после первого хода Пети может получиться одна из следующих четырёх позиций: (13, 42), (24, 42), (12, 43), (12, 84). Каждая из этих позиций содержит менее 97 камней. При этом из любой из этих позиций Ваня может получить позицию, содержащую не менее 97 камней, удвоив количество камней во второй куче. Таким образом, Ваня при любом ходе Пети выигрывает своим первым ходом.

Задание 2. В начальных позициях (10, 42), (11, 42) и (12, 41) выигрышная стратегия есть у Пети. При начальной позиции (10, 42) он должен первым ходом получить позицию (10, 43), из начальных позиций (11, 42) и (12, 41) Петя после первого хода должен получить позицию (12, 42). Позиции (10, 43) и (12, 42) рассмотрены при разборе задания 1. В этих позициях выигрышная стратегия есть у игрока, который будет ходить вторым (теперь это Петя). Эта стратегия описана при разборе задания 1. Таким образом, Петя при любой игре Вани выигрывает своим вторым ходом.

Задание 3. В начальной позиции (11, 41) выигрышная стратегия есть у Вани. После первого хода Пети может возникнуть одна из четырёх позиций:

(12, 41), (11, 42), (22, 41) и (11, 82). В позициях (22, 41) и (11, 82) Ваня может выиграть одним ходом, удвоив количество камней во второй куче. Позиции (12, 41) и (11, 42) были рассмотрены при разборе задания 2. В этих позициях у игрока, который должен сделать ход (теперь это Ваня), есть выигрышная стратегия. Эта стратегия описана при разборе задания 2. Таким образом, в зависимости от игры Пети Ваня выигрывает на первом или втором ходу.

Примечание для эксперта. Последняя фраза в приведённом решении

 

избыточна. Не будет ошибкой, если экзаменуемый просто напишет, например: «При выбранной стратегии партия длится не более двух ходов».

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

 

 

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

 

Исходное положение

1-й ход Пети

(разобраны все ходы, указана

полученная позиция)

1-й ход Вани

(только ход по стратегии, указана

полученная позиция)

2-й ход Пети

(разобраны все ходы, указана

полученная позиция)

2-й ход Вани

(только ход по стратегии, указана

полученная позиция)

(11, 41) Всего: 52

(11, 41 + 1) =

(11, 42)

Всего: 53

(11 + 1, 42) = 

(12, 42) 

Всего: 54

(12 + 1, 42) = 

(13, 42) 

Всего: 55

(13, 42×2) = 

(13, 84) 

Всего: 97

(12, 42 + 1) = 

(12, 43) 

Всего: 55

(12, 43×2) = 

(12, 86) 

Всего: 98

(12×2, 42) = 

(24, 42)

Всего: 66

(24, 42×2) =

(24, 84) 

Всего: 108

(12, 42×2) = 

(12, 84) 

Всего: 96

(12, 84×2) = 

(12, 168) 

Всего: 180

(11 + 1, 41) =

(12, 41)

Всего: 53

(12, 41 + 1) = 

(12, 42) 

Всего: 54

(12 + 1, 42) = 

(13, 42) 

Всего: 55

(13, 42×2) = 

(13, 84) 

Всего: 97

(12, 42 + 1) = 

(12, 43) 

Всего: 55

(12, 43×2) = 

(12, 86) 

Всего: 98

(12×2, 42) = 

(24, 42)

Всего: 66

(24, 42×2) =

(24, 84) 

Всего: 108

(12, 42×2) = 

(12, 84) 

Всего: 96

(12, 84×2) = 

(12, 168) 

Всего: 180

(11×2, 41) =

(22, 41) 

Всего: 63

(22, 41×2) =

(22, 82) 

Всего: 104

 

 

(11, 41×2) =

(11, 82)

Всего: 93

(11, 82×2) = 

(11, 164) 

Всего: 175

 

 

 

Примечание для эксперта. Дерево всех партий может быть также изображено

 

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

Баллы

В задаче от ученика требуется выполнить три задания. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже).

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

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

 

Выполнены все три задания. 

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

3

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

-   выполнено задание 3;

-   выполнены задания 1 и 2.

2

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

1

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

0

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

3

 

 

 

Содержание верного ответа

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

Очевидно, что вершины невырожденного треугольника должны лежать на разных осях, их координаты должны иметь вид (x, 0) и (0, y). Площадь такого треугольника равна |x|·|y|/2. Эта площадь будет максимальной при максимальных значениях |x| и |y|.

Пример правильной программы на Паскале

program P27;    var

      N: integer; {количество точек}

      x,y: integer; {координаты очередной точки}       xmax, ymax: integer;       s: real; {площадь}       i: integer; begin    readln(N);    xmax:=0; ymax:=0;    for i:=1 to N do begin       readln(x,y);

      if (x=0) and (abs(y)>ymax) then ymax:=abs(y);       if (y=0) and (abs(x)>xmax) then xmax:=abs(x);    end;

   s:=xmax*ymax/2;    if (s=0) then

        writeln('Треугольник не существует')    else writeln(s) end.

 

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

Баллы

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

4

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

Допускается одна из следующих ошибок.

3

27

1)   Пропущенная или неверная инициализация максимумов.

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

2)   Вместо абсолютных значений (модулей) используются непосредственные значения координат.

3)   Ошибка в сравнении, в результате которой в одном или нескольких местах находится минимальное значение вместо максимального.

4)   Использование целой переменной для нахождения площади. Возможна программа, в которой значение площади вообще не присваивается никакой переменной, а вычисляется непосредственно при выводе. В этом случае нужно определить тип выводимого выражения. Например, в программе на Паскале можно записать writeln(xmin*ymin/2), а запись writeln(xmin*ymin div 2) будет ошибочной, так как операция обычного деления даёт вещественный результат, а операция div – целый. Особое внимание в этом месте нужно уделить программам на Си. Запись xmin*ymin/2 даёт целое значение даже при присваивании вещественной переменной, необходимо использовать xmin*ymin/2.0 или (float)xmin*ymin/2

5)   Неверная обработка случая отсутствия требуемого треугольника. Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла.

 

Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие.

Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

2

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

1

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

0

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

4

 


 

Вариант 2 

 

24

Содержание верного ответа

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

1.  Примеры чисел, при вводе которых программа выводит неверный ответ:

Значение N

Верный ответ

Ответ программы

2

2

3

4

3

4

5

3

4

7

4

5

2.  Примеры чисел, при вводе которых программа выводит верный ответ: 

Значение N

Верный ответ

Ответ программы

1

2

2

3

3

3

6

4

4

10

5

5

Комментарий для экспертов. Программа выдаёт верный ответ для тех значений N, которые можно представить в виде суммы 1 + 2 + … + K. При K = 1, 2, 3, 4 получим примеры, приведённые в таблице. Во всех остальных случаях программа выдаёт неверный ответ.

3.  Программа содержит две ошибки:

1)    неверное условие цикла;

2)    неверный вывод результата (выводится значение, на 1 превышающее верное).

Пример исправления для языка Паскаль:

Первая ошибка:

    while n>0 do begin

Исправленная строка:

    while n>=0 do begin Вторая ошибка:   writeln(k)

Исправленная строка:   writeln(k-1)

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

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

127

 

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

Баллы

В задаче требуется выполнить три действия.

1.  Указать пример неверной работы программы.

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

2.  Указать пример верной работы программы.

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

3.  Найти и исправить ошибки в программе.

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

Ошибка считается исправленной, если выполнены оба следующих условия:

а) правильно указана строка с ошибкой;

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

 

Выполнены все три необходимых действия, и ни одна верная строка не указана в качестве ошибочной.

3

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

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

2.   Выполнены два первых действия, найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.

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

2

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

1.   Выполнены два первых действия. При этом несущественно, насколько правильно выполнено третье действие.

2.   Найдены и исправлены две ошибки в программе, не более чем одна верная строка названа ошибочной. При этом

1

несущественно, насколько правильно выполнены действия 1 и 2.

3. Выполнено одно из двух первых действий. Исправлена одна из двух ошибок. Не более чем одна верная строка названа ошибочной.

 

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

0

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

3

 

 

25

Содержание верного ответа

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

Необходимо перебрать все элементы массива, кроме первого и последнего (они не могут быть ямами, так как имеют всего по одному соседу), выделить ямы и выбрать из них минимальную.

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

Пример правильной программы на Паскале

k:=0;

for i:=2 to N-1 do begin     if ((k=0) or (a[i]<k)) and

        (a[i]<a[i-1]) and (a[i]<a[i+1]) then       k:=a[i]; end; writeln(k)

 

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

Баллы

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

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

2

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

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

1

несколько раз, она считается за одну ошибку).

1)   Отсутствие инициализации или неверная инициализация одной или нескольких переменных (например, инициализация минимума первым элементом массива).

2)   Ошибка в сравнениях, в результате которой выводится максимум вместо минимума или рассматриваются пики вместо ям.

3)   Выход за границы массива (например, в перебор включены крайние элементы и проверяются их несуществующие соседи). 4) Отсутствует вывод ответа.

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

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

 

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

0

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

2

 

 

26

Содержание верного ответа

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

Задание 1. В начальных позициях (10, 33), (12, 32) выигрышная стратегия есть у Вани. При начальной позиции (10, 33) после первого хода Пети может получиться одна из следующих четырёх позиций: (11, 33), (20, 33), (10, 34), (10, 66). Каждая из этих позиций содержит менее 77 камней. При этом из любой из этих позиций Ваня может получить позицию, содержащую не менее 77 камней, удвоив количество камней во второй куче. Для позиции

(12, 32) после первого хода Пети может получиться одна из следующих четырёх позиций: (13, 32), (24, 32), (12, 33), (12, 64). Каждая из этих позиций содержит менее 77 камней. При этом из любой из этих позиций Ваня может получить позицию, содержащую не менее 77 камней, удвоив количество камней во второй куче. Таким образом, Ваня при любом ходе Пети выигрывает своим первым ходом.

 

Задание 2. В начальных позициях (10, 32), (11, 32) и (12, 31) выигрышная стратегия есть у Пети. При начальной позиции (10, 32) он должен первым ходом получить позицию (10, 33), из начальных позиций (11, 32) и (12, 31) Петя после первого хода должен получить позицию (12, 32). Позиции (10, 33) и (12, 32) рассмотрены при разборе задания 1. В этих позициях выигрышная стратегия есть у игрока, который будет ходить вторым (теперь это Петя). Эта стратегия описана при разборе задания 1. Таким образом, Петя при любой игре Вани выигрывает своим вторым ходом.

 

Задание 3. В начальной позиции (11, 31) выигрышная стратегия есть у Вани. После первого хода Пети может возникнуть одна из четырёх позиций:

(12, 31), (11, 32), (22, 31) и (11, 62). В позициях (22, 31) и (11, 62) Ваня может

 

выиграть одним ходом, удвоив количество камней во второй куче. Позиции (12, 31) и (11, 32) были рассмотрены при разборе задания 2. В этих позициях у игрока, который должен сделать ход (теперь это Ваня), есть выигрышная стратегия. Эта стратегия описана при разборе задания 2. Таким образом, в зависимости от игры Пети Ваня выигрывает на первом или втором ходу.

 

Примечание для эксперта. Последняя фраза в приведённом решении избыточна. Не будет ошибкой, если экзаменуемый просто напишет, например:

«При выбранной стратегии партия длится не более двух ходов».

 

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

 


 

 

 

 

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

   

 

Исходное положение

1-й ход Пети

(разобраны все ходы, указана

полученная позиция)

1-й ход Вани

(только ход по стратегии, указана

полученная позиция)

2-й ход Пети

(разобраны все ходы, указана

полученная позиция)

2-й ход Вани

(только ход по стратегии, указана

полученная позиция)

(11, 31) Всего: 42

(11, 31 + 1) =

(11, 32)

Всего: 43

(11 + 1, 32) = 

(12, 32) 

Всего: 44

(12 + 1, 32) = 

(13, 32) 

Всего: 45

(13, 32×2) = 

(13, 64) 

Всего: 77

(12, 32 + 1) = 

(12, 33) 

Всего: 45

(12, 33×2) = 

(12, 66) 

Всего: 78

(12×2, 32) = 

(24, 32)

Всего: 56

(24, 32×2) =

(24, 64) 

Всего: 88

(12, 32×2) = 

(12, 64) 

Всего: 76

(12, 64×2) = 

(12, 128) 

Всего: 140

(11 + 1, 31) =

(12, 31)

Всего: 43

(12, 31 + 1) = 

(12, 32) 

Всего: 44

(12 + 1, 32) = 

(13, 32) 

Всего: 45

(13, 32×2) = 

(13, 64) 

Всего: 77

(12, 32 + 1) = 

(12, 33) 

Всего: 45

(12, 33×2) = 

(12, 66) 

Всего: 78

(12×2, 32) = 

(24, 32)

Всего: 56

(24, 32×2) =

(24, 64) 

Всего: 88

(12, 32×2) = 

(12, 64) 

Всего: 76

(12, 64×2) = 

(12, 128) 

Всего: 140

(11×2, 31) =

(22, 31) 

Всего: 53

(22, 31×2) =

(22, 62) 

Всего: 84

 

 

(11, 31×2) =

(11, 62)

Всего: 73

(11, 62×2) = 

(11, 124) 

Всего: 135

 

 

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

 

 

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

Баллы

В задаче от ученика требуется выполнить три задания. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже).

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

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

 

Выполнены все три задания. 

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

3

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

-   выполнено задание 3;

-   выполнены задания 1 и 2.

2

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

1

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

0

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

3

 

 

 

Содержание верного ответа

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

Очевидно, что вершины невырожденного треугольника должны лежать на разных осях, их координаты должны иметь вид (x, 0) и (0, y). Площадь такого треугольника равна |x|·|y|/2. Эта площадь будет минимальной при минимально возможных ненулевых значениях |x| и |y|.

Пример правильной программы на Паскале

program P27;    var

      N: integer; {количество точек}

      x,y: integer; {координаты очередной точки}       xmin, ymin: integer;       s: real; {площадь}       i: integer; begin    readln(N);    xmin:=0; ymin:=0;    for i:=1 to N do begin       readln(x,y);

      if (x=0) and (y<>0) and 

        ((ymin=0) or (abs(y)<ymin)) then ymin:=abs(y);       if (y=0) and (x<>0) and

        ((xmin=0) or (abs(x)<xmin)) then xmin:=abs(x);    end;

   s:=xmin*ymin/2;

   if (s=0) then writeln('Треугольник не существует')    else writeln(s) end.

27

 

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

Баллы

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

4

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

3

Допускается одна из следующих ошибок.

1)   Пропущенная или неверная инициализация минимумов.

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

2)   Вместо абсолютных значений (модулей) используются непосредственные значения координат.

3)   Ошибка в сравнении, в результате которой в одном или нескольких местах находится максимальное значение вместо минимального.

4)   Использование целой переменной для нахождения площади. Возможна программа, в которой значение площади вообще не присваивается никакой переменной, а вычисляется непосредственно при выводе. В этом случае нужно определить тип выводимого выражения. Например, в программе на Паскале можно записать writeln(xmin*ymin/2), а запись writeln(xmin*ymin div 2) будет ошибочной, так как операция обычного деления даёт вещественный результат, а операция div – целый. Особое внимание в этом месте нужно уделить программам на Си. Запись xmin*ymin/2 даёт целое значение даже при присваивании вещественной переменной, необходимо использовать xmin*ymin/2.0 или (float)xmin*ymin/2

5)   Неверная обработка случая отсутствия требуемого треугольника. Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла.

 

Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие.

Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

2

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

1

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

0

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

4

 


 

Вариант 3 

 

24

Содержание верного ответа

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

1.  При вводе M = 10 и N = 100 программа выведет число 3.

2.  Примеры чисел, при вводе которых программа выводит верный ответ: 

M и N

Верный ответ

Ответ программы

 

1, 10

2

2

8, 64

3

3

 

Комментарии для экспертов. В программе есть две ошибки: ошибка инициализации всегда увеличивает ответ программы на 1, ошибка сравнения уменьшает ответ на 1 в тех случаях, когда MN и число M оказывается точным кубом. Таким образом, если MN и число M является точным кубом, программа выдаёт верный ответ, во всех остальных случаях – неверный. Ученик не обязан приводить эти рассуждения. Ему достаточно привести один пример исходных данных, при которых программа даёт верный ответ, и сам этот ответ без дополнительных пояснений.

3. Программа содержит две ошибки: 1) неверная инициализация;

2) неверное условие ветвления. Пример исправления для языка Паскаль Первая ошибка:     t := 1;

Исправленная строка:     t := 0; Вторая ошибка:

    if k*k*k > m

Исправленная строка:

    if k*k*k >= m

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

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

 

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

Баллы

В задаче требуется выполнить три действия.

1.  Указать ответ программы при данном вводе.

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

2.  Указать пример верной работы программы.

 

137

 

Это действие считается выполненным, если указан пример числа, при вводе которого выводится верный результат, и сам этот результат. Экзаменуемый не обязан пояснять этот результат, описывать общую закономерность и объяснять механизм работы программы.

3. Найти и исправить ошибки в программе.

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

Ошибка считается исправленной, если выполнены оба следующих условия:

а) правильно указана строка с ошибкой;

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

 

Выполнены все три необходимых действия, и ни одна верная строка не указана в качестве ошибочной.

3

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

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

2. Выполнены два первых действия, найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.

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

2

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

1. Выполнены два первых действия. При этом несущественно, насколько правильно выполнено третье действие.

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

3. Выполнено одно из двух первых действий. Исправлена одна из двух ошибок. Не более чем одна верная строка названа ошибочной.

1

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

0

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

3

 

 

25

Содержание верного ответа

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

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

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

Ниже продемонстрированы оба способа решения.

Пример правильной программы на языке Паскаль (способ 1)

k:=0;

for i:=1 to N-2 do begin     if 2*a[i] = a[i+1] + a[i+2]         then k := k+1; end; writeln(k)

Пример правильной программы на языке Паскаль (способ 2)

k:=0;

for i:=1 to N-2 do begin

    if ((a[i+1] + a[i+2]) mod 2 = 0) and        ((a[i+1] + a[i+2]) div 2 = a[i])       then k := k+1; end; writeln(k)

 

 

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

Баллы

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

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

2

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

 

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

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

1.   Отсутствие инициализации или неверная инициализация счётчика.

2.   Выход за границы массива (например, в перебор включены последние элементы и проверяются их несуществующие соседи).

3.   Среднее арифметическое определяется делением на 2 без проверки чётности.

4.   Отсутствует вывод ответа.

5.   Используется переменная, не объявленная в разделе описания переменных.

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

1

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

0

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

2

 

 

26

Содержание верного ответа

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

Задание 1. 

а) Петя может выиграть, если S = 15, …, 29. При меньших значениях S за один ход нельзя получить кучу, в которой будет 30 или более камней. Пете достаточно увеличить количество камней в 2 раза. 

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

Задание 2. 

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

Петя) следующим ходом выиграет.

Задание 3. 

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

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

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

 

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

 

 

 

 

 

Исходное положение

1-й ход Пети

(разобраны все ходы, указана

полученная позиция)

1-й ход Вани

(только ход по стратегии, указана

полученная позиция)

2-й ход Пети

(разобраны все ходы, указана

полученная позиция)

2-й ход Вани

(только ход по стратегии, указана

полученная позиция)

11 

11 + 1= 12

12 + 2 = 14

14 + 1 = 15

15×2 = 30>> 

14 + 2 = 16

16×2 = 32>> 

14×2 = 28

28×2 = 56>>

 

11 + 2 = 13 

13 + 1 = 14

14 + 1 = 15

15×2 = 30>> 

14 + 2 = 16

16×2 = 32>> 

14×2 = 28

28×2 = 56>> 

11×2 =22 

22×2 = 44>> 

 

 

 

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

 

 

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

Баллы

В задаче от ученика требуется выполнить три задания. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже).

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

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

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

 

 

с помощью дерева всех партий, возможных при выбранной стратегии Пети.

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

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

 

Выполнены все три задания. 

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

3

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

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

-   Выполнены задания 1 и 2.

2

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

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

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

1

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

0

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

3

 

 

27

Содержание верного ответа

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

Биссектрисами углов, образованных осями координат, служат две прямые: y = x и y = –x. Очевидно, что вершины невырожденного треугольника должны лежать на разных биссектрисах, их координаты должны иметь вид (a, a) и (b, –

b). Площадь такого треугольника равна |a| · |b|. Эта площадь будет максимальной при максимальных значениях |a| и |b|. 

 

 

Пример правильной программы на Паскале

 

program P27;    var

      N: integer; {количество точек}

      x,y: integer; {координаты очередной точки}       amax, bmax: integer;       s: integer; {площадь}       i: integer; begin    readln(N);    amax:=0; bmax:=0;    for i:=1 to N do begin       readln(x,y);

      if (x=y) and (abs(x)>amax) then amax:=abs(x);       if (x=-y) and (abs(x)>bmax) then bmax:=abs(x);    end;    s:=amax*bmax;

   if s=0 then writeln('Треугольник не существует')    else writeln(s) end.

 

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

Баллы

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

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

4

 

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

Допускается одна из следующих ошибок.

1.   Пропущенная или неверная инициализация максимумов.

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

2.   Вместо абсолютных значений (модулей) используются непосредственные значения координат.

3.   Ошибка в сравнении, в результате которой в одном или нескольких местах находится минимальное значение вместо максимального.

4.   Использование вещественных вычислений и операции извлечения корня для нахождения площади.

5.   Неверная обработка случая отсутствия требуемого треугольника.

Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла.

3

Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие.

Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

2

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

1

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

0

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

4

 


 

Вариант 4

 

24

Содержание верного ответа

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

1.  При вводе M = 10 и N = 40 программа выведет число 4.

2.  Примеры чисел, при вводе которых программа выводит верный ответ: 

                                M и N                    Верный ответ Ответ программы

                                5, 16                    2                          2

                                36, 64                  3                          3

 

Комментарии для экспертов. В программе есть две ошибки: ошибка инициализации всегда увеличивает ответ программы на 1, ошибка в условии цикла уменьшает ответ на 1 в тех случаях, когда MN и число N оказывается точным квадратом. Таким образом, если M N и число N является точным квадратом, программа выдаёт верный ответ, во всех остальных случаях – неверный. Ученик не обязан приводить эти рассуждения. Ему достаточно привести один пример исходных данных, при которых программа даёт верный ответ, и сам этот ответ без дополнительных пояснений.

3.  Программа содержит две ошибки:                 1) неверная инициализация;                2) неверное условие цикла.

Пример исправления для языка Паскаль Первая ошибка:     t := 1;

Исправленная строка:     t := 0; Вторая ошибка:   while k*k < n do begin

Исправленная строка:

  while k*k <= n do begin

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

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

 

 

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

Баллы

В задаче требуется выполнить три действия.

1.  Указать ответ программы при данном вводе.

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

2.  Указать пример верной работы программы.

Это действие считается выполненным, если указан пример числа, при вводе которого выводится верный результат, и сам этот результат. Экзаменуемый не обязан пояснять этот результат, описывать общую закономерность и объяснять механизм работы программы.

3.  Найти и исправить ошибки в программе.

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

Ошибка считается исправленной, если выполнены оба следующих условия:

а) правильно указана строка с ошибкой;

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

 

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

3

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

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

2. Выполнены два первых действия, найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.

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

2

 

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

1. Выполнены два первых действия. При этом несущественно, насколько правильно выполнено третье действие.

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

3. Выполнено одно из двух первых действий. Исправлена одна из двух ошибок. Не более чем одна верная строка названа ошибочной.

1

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

0

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

3

 

25        

Содержание верного ответа

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

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

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

Ниже продемонстрированы оба способа решения.

Пример правильной программы на языке Паскаль (способ 1)

k:=0;

for i:=3 to N do begin     if 2*a[i] = a[i-1] + a[i-2]         then k := k+1; end; writeln(k)

Пример правильной программы на языке Паскаль (способ 2)

k:=0;

for i:=3 to N do begin

    if ((a[i-1] + a[i-2]) mod 2 = 0) and        ((a[i-1] + a[i-2]) div 2 = a[i])       then k := k+1; end; writeln(k)

 

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

Баллы

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

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

2

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

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

1.   Отсутствие инициализации или неверная инициализация счётчика.

2.   Выход за границы массива (например, в перебор включены последние элементы и проверяются их несуществующие соседи).

3.   Среднее арифметическое определяется делением на 2 без проверки чётности.

4.   Отсутствует вывод ответа.

5.   Используется переменная, не объявленная в разделе описания переменных.

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

1

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

0

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

2

 

26        

Содержание верного ответа

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

Задание 1. 

а) Петя может выиграть, если S = 17, …, 33. При меньших значениях S за один ход нельзя получить кучу, в которой будет 34 или более камней. Пете достаточно увеличить количество камней в 2 раза. 

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

Задание 2. 

 

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

Петя) следующим ходом выиграет.

Задание 3. 

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

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

 

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

 

 

 

 

 

Исходное положение

1-й ход Пети

(разобраны все ходы, указана

полученная позиция)

1-й ход Вани

(только ход по стратегии, указана

полученная позиция)

2-й ход Пети

(разобраны все ходы, указана

полученная позиция)

2-й ход Вани

(только ход по стратегии, указана

полученная позиция)

13 

13 + 1 = 14

14 + 2 = 16

16 + 1 = 17

17×2 = 34>> 

16 + 2 = 18

18×2 = 36>> 

16×2 = 32

32×2 = 64>> 

13 + 2 = 15 

15 + 1 = 16

16 + 1 = 17

17×2 = 34>> 

16 + 2 = 18

18×2 = 36>> 

16×2 = 32

32×2 = 64>> 

13×2 = 26 

26×2 = 52>> 

 

 

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

 

 

Рис. 1. Дерево всех партий, возможных при описанной стратегии Вани.

Заключительные позиции обозначены знаком >>

 

 

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

Баллы

В задаче от ученика требуется выполнить три задания. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже).

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

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

 

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

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

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

 

Выполнены все три задания. 

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

3

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

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

-   Выполнены задания 1 и 2.

2

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

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

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

1

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

0

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

3

 

 

 

Содержание верного ответа

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

Биссектрисами углов, образованных осями координат, служат две прямые: y = x и y = –x. Очевидно, что вершины невырожденного треугольника должны лежать на разных биссектрисах, их координаты должны иметь вид (a, a) и (b, –

b). Площадь такого треугольника равна |a|·|b|. Эта площадь будет минимальной при минимально возможных ненулевых значениях |a| и |b|. 

 

 

Пример правильной программы на Паскале

 

program P27;    var

      N: integer; {количество точек}

      x,y: integer; {координаты очередной точки}       amin, bmin: integer;       s: integer; {площадь}       i: integer; begin    readln(N);    amin:=0; bmin:=0;    for i:=1 to N do begin       readln(x,y);

      if (x=y) and (x<>0) and

         ((amin=0) or (abs(x)<amin)) then amin:=abs(x);       if (x=-y) and (x<>0) and

         ((bmin=0) or (abs(x)<bmin)) then bmin:=abs(x);    end;    s:=amin*bmin;

   if s=0 then writeln('Треугольник не существует')    else writeln(s) end.

27

 

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

Баллы

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

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

4

 

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

Допускается одна из следующих ошибок.

1.   Пропущенная или неверная инициализация минимумов.

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

2.   Вместо абсолютных значений (модулей) используются непосредственные значения координат.

3.   Ошибка в сравнении, в результате которой в одном или нескольких местах находится максимальное значение вместо минимального.

4.   Использование вещественных вычислений и операции извлечения корня для нахождения площади.

5.   Неверная обработка случая отсутствия требуемого треугольника.

Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла.

3

Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие.

Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

2

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

1

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

0

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

4

 


 

Вариант 5 

 

24

Содержание верного ответа

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

1.   При вводе N = 2016 программа выведет число 10.

2.   Примеры чисел, при вводе которых программа выводит верный ответ: 2, 10, 2018 (ответ в этих случаях равен 2), 4, 20, 2020 (ответ равен 4).

Комментарии для экспертов. В программе правильно организован цикл, но неверно подсчитывается искомое значение: вместо требуемого по условию максимально возможного значения 2m подсчитывается величина 2m. При m = 1 и m = 2 эти значения совпадают и получается правильный ответ. При других значениях m равенство невозможно. Таким образом, программа выдаёт верный ответ, если N можно представить как произведение 2 и произвольного нечётного числа (при этом ответ равен 2) или произведение 4 и произвольного нечётного числа (при этом ответ равен 4).

3.   Программа содержит две ошибки:

1)  неверная инициализация;

2)  неверное изменение величины k.

 

Пример исправления для языка Паскаль Первая ошибка:   k := 0;

Исправленная строка:   k := 1;

Вторая ошибка:

    k := k + 2;

Исправленная строка:     k := k * 2;

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

Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков после содержательной части исправления.

 

155

 

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

Баллы

В задаче требуется выполнить тридействия.

1.  Указать ответ программы при данном вводе.

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

2.  Указать примеры верной работы программы.

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

3.  Найти и исправить ошибки в программе.

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

Ошибка считается исправленной, если выполнены оба следующих условия:

а) правильно указана строка с ошибкой;

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

 

Выполнены все три необходимых действия, и ни одна верная строка не указанав качестве ошибочной.

3

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

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

2.Выполнены два первых действия, найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.

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

2

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

1.  Выполнены два первых действия. При этом несущественно, насколько правильно выполнено третье действие.

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

3.  Выполнено одно из двух первых действий. Исправлена одна из двух ошибок. Не более чем одна верная строка названа ошибочной.

1

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

0

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

3

 

25

Содержание верного ответа

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

Чтобы получить ответ за один просмотр всех элементов массива, необходимо подсчитать суммы чётных и нечётных элементов, а также определить максимум, после чего выбрать нужную сумму в зависимости от чётности максимума.

Допустимо и двухпроходное решение: на первом проходе определяется максимум, а на втором вычисляется нужная сумма.

Ниже продемонстрированы оба способа решения.

Пример правильной программы на языке Паскаль (способ 1)

s:=0; p:=0; m:=a[1];

for i:=1 to N do begin     if a[i]>m then m:=a[i];     if a[i] mod 2 = 0         then s := s + a[i]         else p := p + a[i]; end; if m mod 2 = 0     then writeln(s)     else writeln(p)

Пример правильной программы на языке Паскаль (способ 2)

m:=a[1];

for i:=2 to N do begin     if a[i]>m then m:=a[i] end; s:=0;

for i:=1 to N do begin     if a[i] mod 2 = m mod 2         then s := s + a[i] end; writeln(s)

 

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

Баллы

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

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

2

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

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

1.   Отсутствие инициализации или неверная инициализация суммы.

2.   Отсутствие инициализации или неверная инициализация максимума.

3.   Выход за границы массива.

4.   Неверные сравнения при определении максимума (например, вместо максимума ищется минимум).

5.   Ошибка при определении чётности элемента, в результате которой одна или обе суммы подсчитываются неверно.

6.   Проверка на чётность индекса вместо значения элемента.

7.   Ошибка при выборе суммы для вывода (вывод суммы чётных элементов при нечётном максимуме или наоборот).

8.   Отсутствует вывод ответа.

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

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

1

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

0

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

2

 

 

26

Содержание верного ответа

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

Задание 1 

а) Петя может выиграть, если S = 25, …, 49; для этого ему достаточно увеличить количество камней в 2 раза. При меньших значениях S за один ход получить кучу, в которой будет 50 или более камней, нельзя.

б) Ваня может выиграть первым ходом (как бы ни играл Петя), если исходно в куче будет S = 24 камня. Тогда после первого хода Пети в куче будет 25, 27 или 48 камней. Во всех случаях Ваня увеличивает количество камней в 2 раза и выигрывает в один ход.

Задание 2 

Возможные значения S: 12, 21, 23. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 24 камней (при S = 12 он удваивает количество камней; при S = 21 добавляет 3 камня; при S = 23 добавляет 1 камень). Эта позиция разобрана в п. 1б. В ней игрок, который будет ходить (в данном случае это Ваня), выиграть не может, а его противник (т. е. Петя) следующим ходом выиграет. Задание 3 

Комментарий для проверяющего. Возможны два значения S: 20 и 22. Ученику достаточно привести одно из них. Ниже приведены решения для каждого из этих случаев. Дерево возможных партий приведено только для S = 22.

А. Возможное значение S: 20. После первого хода Пети в куче будет 21 камень, 23 камня или 40 камней. Если в куче станет 40 камней, то Ваня увеличит количество камней в 2 раза и выиграет своим первым ходом. Ситуации, когда в куче 21 камень или 23 камня, разобраны в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом. Б. Возможное значение S: 22. После первого хода Пети в куче будет 23 камня, 25 камней или 44 камня. Если в куче станет 25 камней или 44 камня, то Ваня увеличит количество камней в 2 раза и выиграет своим первым ходом. Ситуация, когда в куче 23 камня, разобрана в п. 2. В этой ситуации игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.

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

 

 

 

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

 

 

 

 

.

Исходное положение

1-й ход Пети

(разобраны все ходы, указана

полученная позиция)

1-й ход Вани

(только ход по стратегии, указана

полученная позиция)

2-й ход Пети

(разобраны все ходы, указана

полученная позиция)

2-й ход Вани

(только ход по стратегии, указана

полученная позиция)

22 

22+1 =23

23+1 = 24

24+1 = 25

25×2 = 50>> 

24+3 = 27

27×2 = 54>> 

24×2 = 48

48×2 = 96>> 

22+3 = 25 

25×2 = 50>> 

 

22×2 =44 

44×2 = 88>> 

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

 

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

 

 

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

Баллы

В задаче от ученика требуется выполнить три задания. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже).

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

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

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

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

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

 

Выполнены все три задания. 

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

3

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

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

-   Выполнены задания 1 и 2.

2

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

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

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

1

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

0

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

3

 

27

Содержание верного ответа

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

Отрезок, концы которого не лежат на осях координат, пересекается ровно с одной осью в том и только в том случае, если его концы лежат в соседних четвертях. Если известны величины n1, n2, n3, n4, показывающие количество точек в каждой четверти, то количество отрезков равно n1n2 + n2n3 + n3n4 + n4n1.

Упростив это выражение, получим

(n1 + n3)(n2 + n4).

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

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

Пример правильной и эффективной программы на языке Паскаль

(подсчёт по чётным и нечётным четвертям)

program P27;   var

    N: integer; {количество точек}

    x,y: integer; {координаты очередной точки}     n1, n2: integer; {количество точек         по чётным и нечётным четвертям}     s: integer; {количество отрезков}     i: integer; begin   readln(N);   n1:=0; n2:=0;     for i:=1 to N do begin     readln(x,y);

    if x*y > 0 then n1:=n1+1;     if x*y < 0 then n2:=n2+1;

      {нельзя ставить else – возможны нули}   end;   s := n1*n2;   writeln(s) end.

 

 

Пример правильной и эффективной программы на языке Паскаль

(подсчёт по каждой четверти отдельно)

program P27;   var

    N: integer; {количество точек}

    x,y: integer; {координаты очередной точки}     n1, n2, n3, n4: integer;

       {количество точек по четвертям}     s: integer; {количество отрезков}     i: integer; begin   readln(N);

  n1:=0; n2:=0; n3:=0; n4:=0;   for i:=1 to N do begin     readln(x,y);

    if (x>0) and (y>0) then n1 := n1+1;     if (x<0) and (y>0) then n2 := n2+1;     if (x<0) and (y<0) then n3 := n3+1;     if (x>0) and (y<0) then n4 := n4+1;   end;

  s := n1*n2 + n2*n3 + n3*n4 + n4*n1;   writeln(s) end.

 

Пример правильной и эффективной программы на языке Java (подсчёт по чётным и нечётным четвертям)

import java.util.Scanner; public class P27A1 {

    public static void main(String args[]) {         Scanner in = new Scanner(System.in);         int N = in.nextInt();         int n1 = 0, n2 = 0;         for (int i=0; i<N; ++i) {             int x = in.nextInt();             int y = in.nextInt();             if (x*y > 0) { n1++ ; }             if (x*y < 0) { n2++ ; }

        }

        int s = n1 * n2;

        System.out.println(s);

    }

}

 

Пример правильной и эффективной программы на языке Java (подсчёт по каждой четверти отдельно)

import java.util.Scanner; public class P27A2 {

    public static void main(String args[]) {         Scanner in = new Scanner(System.in);         int N = in.nextInt();

        int n1 = 0, n2 = 0, n3 = 0, n4 = 0;         for (int i=0; i<N; ++i) {             int x = in.nextInt();             int y = in.nextInt();             if (x > 0 && y > 0) { n1++ ; }             if (x < 0 && y > 0) { n2++ ; }             if (x < 0 && y < 0) { n3++ ; }             if (x > 0 && y < 0) { n4++ ; }

        }

        int s = n1*n2 + n2*n3 + n3*n4 + n4*n1;

        System.out.println(s);

    }

}

 

 

 

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

Баллы

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

4

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

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

2.   Неверные сравнения, в результате которых учитываются точки, лежащие на осях координат.

3

3. Ошибка (опечатка) в формуле подсчёта количества отрезков. Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла.

 

Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные отрезки, из которых выбираются подходящие.

Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

2

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

1

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

0

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

4

 


 

Вариант 6

 

24

Содержание верного ответа

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

1.           При вводе N = 2016 программа выведет число 7.

2.           Примеры чисел, при вводе которых программа выводит верный ответ: 4, 12, 20, 2020. Ответ во всех этих случаях равен 4.

Комментарии для экспертов. В программе правильно организован цикл, но неверно подсчитывается искомое значение: вместо требуемого по условию максимально возможного значения 2m подсчитывается величина 2+m. При m = 2 эти значения совпадают и получается правильный ответ. При других значениях m равенство невозможно. Таким образом, программа выдаёт верный ответ, если N можно представить, как произведение 4 и произвольного нечётного числа, при этом ответ всегда равен 4.

3.           Программа содержит две ошибки:

1)  неверная инициализация;

2)  неверное изменение величины k.

 

Пример исправления для языка Паскаль Первая ошибка:   k := 2;

Исправленная строка:   k := 1;

Вторая ошибка:

    k := k + 1;

Исправленная строка:     k := k * 2;

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

Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков после содержательной части исправления.

 

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

Баллы

В задаче требуется выполнить три действия.

1.  Указать ответ программы при данном вводе.

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

2.  Указать примеры верной работы программы.

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

3.  Найти и исправить ошибки в программе.

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

Ошибка считается исправленной, если выполнены оба следующих условия:

а) правильно указана строка с ошибкой;

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

 

Выполнены все три необходимых действия, и ни одна верная строка не указана в качестве ошибочной.

3

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

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

2.   Выполнены два первых действия, найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.

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

2

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

1.                    Выполнены два первых действия. При этом несущественно, насколько правильно выполнено третье действие.

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

3.                    Выполнено одно из двух первых действий. Исправлена одна из двух ошибок. Не более чем одна верная строка названа ошибочной.

1

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

0

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

3

 

 

25

Содержание верного ответа

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

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

Ниже продемонстрированы оба способа решения.

Пример правильной программы на языке Паскаль (способ 1)

s:=0; p:=0; m:=a[1];

for i:=1 to N do begin     if a[i]<m then m:=a[i];     if a[i] mod 2 = 0         then s := s + a[i]         else p := p + a[i]; end; if m mod 2 = 0     then writeln(p)     else writeln(s)

Пример правильной программы на языке Паскаль (способ 2)

m:=a[1];

for i:=2 to N do begin     if a[i]<m then m:=a[i] end; s:=0;

for i:=1 to N do begin     if a[i] mod 2 <> m mod 2         then s := s + a[i] end; writeln(s)

 

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

Баллы

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

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

2

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

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

1.   Отсутствие инициализации или неверная инициализация суммы.

2.   Отсутствие инициализации или неверная инициализация минимума.

3.   Выход за границы массива.

4.   Неверные сравнения при определении минимума (например, вместо минимума ищется максимум).

5.   Ошибка при определении чётности элемента, в результате которой одна или обе суммы подсчитываются неверно.

6.   Проверка на чётность индекса вместо значения элемента.

7.   Ошибка при выборе суммы для вывода (вывод суммы чётных элементов при чётном минимуме или наоборот).

8.   Отсутствует вывод ответа.

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

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

1

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

0

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

2

 

 

Содержание верного ответа

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

Задание 1 

а) Петя может выиграть, если S = 27, …, 53; для этого ему достаточно увеличить количество камней в 2 раза. При меньших значениях S за один ход получить кучу, в которой будет 54 или более камней, нельзя.

б) Ваня может выиграть первым ходом (как бы ни играл Петя), если исходно в куче будет S = 26 камней. Тогда после первого хода Пети в куче будет 27 камней, 29 камней или 52 камня. Во всех случаях Ваня увеличивает количество камней в 2 раза и выигрывает в один ход. Задание 2 

Возможные значения S: 13, 23, 25. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 26 камней (при S = 13 он удваивает количество камней; при S = 23 добавляет 3 камня; при S = 25 добавляет 1 камень). Эта позиция разобрана в п. 1б. В ней игрок, который будет ходить (в данном случае это Ваня), выиграть не может, а его противник (т. е. Петя) следующим ходом выиграет. Задание 3 

Комментарий для проверяющего. Возможны два значения S: 22 и 24. Ученику достаточно привести одно из них. Ниже приведены решения для каждого из этих случаев. Дерево возможных партий приведено только для S = 24.

А. Возможное значение S: 22. После первого хода Пети в куче будет 23 камня, 25 камней или 44 камня. Если в куче станет 44 камня, то Ваня увеличит количество камней в 2 раза и выиграет своим первым ходом. Ситуации, когда в куче 23 камня или 25 камней, разобраны в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.

Б. Возможное значение S: 24. После первого хода Пети в куче будет 25 камней, 27 камней или 48 камней. Если в куче станет 27 камней или 48 камней, то Ваня увеличит количество камней в 2 раза и выиграет своим первым ходом. Ситуация, когда в куче 25 камней, разобрана в п. 2. В этой ситуации игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.

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

26

 

 

 

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

 

,  

 

 

.

Исходное положение

1-й ход Пети

(разобраны все ходы, указана

полученная позиция)

1-й ход Вани

(только ход по стратегии, указана

полученная позиция)

2-й ход Пети

(разобраны все ходы, указана

полученная позиция)

2-й ход Вани

(только ход по стратегии, указана

полученная позиция)

24 

24+1 =25

25+1 = 26

26+1 = 27

27×2 = 54>> 

26+3 = 29

29×2 = 58>>

 

26×2 = 52

52×2 = 104>>

24+3 = 27 

27×2 = 54>> 

 

24×2 =48 

48×2 = 96>> 

 

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

 

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

 

 

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

Баллы

В задаче от ученика требуется выполнить три задания. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже).

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

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

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

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

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

 

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

3

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

-   выполнено задание 3;

-   выполнены задания 1 и 2.

2

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

1

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

0

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

3

 

27

Содержание верного ответа

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

Отрезок, концы которого не лежат на осях координат, пересекается с обеими осями координат в том и только в том случае, если его концы лежат в противоположных четвертях. Если известны величины n1, n2, n3, n4, показывающие количество точек в каждой четверти, то количество отрезков равно n1n3 + n2n4.

Эффективная программа решения задачи подсчитывает количество точек по четвертям и вычисляет ответ по вышеприведённой формуле.

Ниже приводится такая программа на языках Паскаль и Java.

Пример правильной и эффективной программы на языке Паскаль

program P27;   var

    N: integer; {количество точек}

    x,y: integer; {координаты очередной точки}     n1, n2, n3, n4: integer;

       {количество точек по четвертям}     s: integer; {количество отрезков}     i: integer; begin   readln(N);

  n1:=0; n2:=0; n3:=0; n4:=0;   for i:=1 to N do begin     readln(x,y);

    if (x>0) and (y>0) then n1 := n1+1;     if (x<0) and (y>0) then n2 := n2+1;     if (x<0) and (y<0) then n3 := n3+1;     if (x>0) and (y<0) then n4 := n4+1;   end;

  s := n1*n3 + n2*n4;   writeln(s) end.

 

Пример правильной и эффективной программы на языке Java

import java.util.Scanner; public class P27B {

    public static void main(String args[]) {         Scanner in = new Scanner(System.in);         int N = in.nextInt();

        int n1 = 0, n2 = 0, n3 = 0, n4 = 0;         for (int i=0; i<N; ++i) {             int x = in.nextInt();             int y = in.nextInt();             if (x > 0 && y > 0) { n1++ ; }             if (x < 0 && y > 0) { n2++ ; }             if (x < 0 && y < 0) { n3++ ; }             if (x > 0 && y < 0) { n4++ ; }

        }

        int s = n1*n3 + n2*n4;         System.out.println(s);

    }

}

 

 

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

Баллы

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

4

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

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

2.   Неверные сравнения, в результате которых учитываются точки, лежащие на осях координат.

3.   Ошибка (опечатка) в формуле подсчёта количества отрезков. Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла.

3

Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные отрезки, из которых выбираются подходящие.

Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

2

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

1

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

0

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

4

 


 

Содержание

 

Предисловие............................................................................................................... 3

Вариант 1.................................................................................................................... 6

Вариант 2.................................................................................................................. 25

Вариант 3.................................................................................................................. 43

Вариант 4.................................................................................................................. 62

Вариант 5.................................................................................................................. 81

Вариант 6.................................................................................................................. 99

Система оценивания экзаменационной работы по информатике..................... 117

Ответы к заданиям с кратким ответом................................................................. 117

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

Вариант 1............................................................................................................ 118

Вариант 2............................................................................................................ 127

Вариант 3............................................................................................................ 137

Вариант 4............................................................................................................ 146

Вариант 5............................................................................................................ 155

Вариант 6............................................................................................................ 166

 

 

 

 



Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Диагностическая работа по информатике"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Агроном

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 651 906 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 21.06.2017 568
    • RAR 1.3 мбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Полозкова Ирина Витальевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Полозкова Ирина Витальевна
    Полозкова Ирина Витальевна
    • На сайте: 7 лет и 7 месяцев
    • Подписчики: 3
    • Всего просмотров: 12670
    • Всего материалов: 18

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Няня

Няня

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Методика преподавания информатики в начальных классах

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Этот курс уже прошли 67 человек

Курс повышения квалификации

Использование нейросетей в учебной и научной работе: ChatGPT, DALL-E 2, Midjourney

36/72 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 583 человека из 76 регионов
  • Этот курс уже прошли 939 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

Учитель информатики

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 490 человек из 72 регионов
  • Этот курс уже прошли 1 514 человек

Мини-курс

Индустриальный туризм

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Основы духовно-нравственной культуры народов России: особенности преподавания

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 28 человек из 18 регионов
  • Этот курс уже прошли 28 человек

Мини-курс

Поиск работы: карьерные ориентиры и мотивы выбора профессии

6 ч.

780 руб. 390 руб.
Подать заявку О курсе