Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЕГЭ 11 от 26 01 2015

.pdf
Скачиваний:
361
Добавлен:
11.02.2015
Размер:
635.86 Кб
Скачать

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

17

Часть 2

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

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

Бейсик

Python

INPUT x

x = int(input())

cnt = 0

cnt = 0

WHILE x > 0

while x > 0:

cnt = cnt + 1

cnt = cnt+1

x = x MOD 10

x = x % 2

WEND

print(cnt)

PRINT cnt

 

END

 

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

Паскаль

алг

var x,cnt: integer;

нач

begin

цел x, cnt

readln(x);

ввод x

cnt := 0;

cnt := 0

while x > 0 do

нц пока x > 0

begin

cnt := cnt+1

cnt:=cnt + 1;

x := mod(x, 10)

x := x mod 10

кц

end;

вывод cnt

writeln(cnt)

кон

end.

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

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

18

Си

#include<stdio.h> int main()

{

int x,cnt; scanf("%ld", &x); cnt = 0;

while (x > 0)

{

cnt = cnt + 1; x = x % 10;

}

printf("%d", cnt);

}

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

1.Напишите, что выведет эта программа при вводе числа 6.

2.Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.

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

1)выпишите строку, в которой сделана ошибка;

2)укажите, как исправить ошибку, т.е. приведите правильный вариант

строки.

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

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

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

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

19

25Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 100 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых не кратна 6, а произведение меньше 1000. Под парой подразумевается два подряд идущих элемента массива.

Исходные данные объявлены так, как показано ниже на примерах для

некоторых языков программирования и естественного языка. Запрещается

использовать переменные, не

описанные ниже, но разрешается

не использовать некоторые из описанных переменных.

 

 

 

Бейсик

 

Паскаль

N = 40

 

const

DIM A(N) AS LONG

 

N = 40;

DIM I, J, K AS LONG

 

var

FOR I = 1 TO N

 

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

INPUT A(I)

 

i, j, k: longint;

NEXT I

 

begin

...

 

for i := 1 to N do

 

 

readln(a[i]);

END

 

...

 

 

end.

Си

 

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

#include <stdio.h>

 

алг

#define N 40

 

нач

void main()

 

цел N = 40

{

 

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

long a[N];

 

цел i, j, k

long i, j, k;

 

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

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

 

ввод a[i]

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

 

кц

...

 

...

}

 

кон

 

 

 

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

Объявляем массив A из 40 элементов. Объявляем целочисленные переменные I, J, K.

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

...

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

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

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

20

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

у каждого игрока есть неограниченное количество камней.

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

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

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

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

Задание 1.

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

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

Задание 2.

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

Задание 3.

Укажите значение S, при котором:

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

у Васи нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

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

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

 

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

 

 

 

 

21

 

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

27

 

найти минимальную сумму двух её элементов, номера которых различаются

 

 

не

менее чем

на

4.

Значение

каждого

элемента

последовательности

 

не превышает

1000.

Количество

элементов

последовательности

не

 

превышает 10000.

 

 

 

 

 

 

 

 

Вам

предлагаются

два

задания, связанные

с

этой

задачей: задание

А

изадание Б. Вы можете решать оба задания А и Б или одно из них по своему выбору.

Итоговая оценка выставляется как максимальная из оценок за задания А

иБ. Если решение одного из заданий не представлено, то считается, что оценка за это задание составляет 0 баллов.

Задание Б является усложненным вариантом задания А, оно содержит дополнительные требования к программе.

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

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

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

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

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

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

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

Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, – 3 балла.

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

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

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

22

Входные данные представлены следующим образом. В первой строке задаётся число N – общее количество элементов последовательности. Гарантируется, что

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

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

7

10

45

55

245

35

25

10

Программа должна вывести одно число – описанную в условии сумму.

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

20

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