«УТВЕРЖДАЮ»
Руководитель Федеральной
службы по надзору в сфере
образования и науки

Л.Н. Королев

 

«СОГЛАСОВАНО»
Председатель Научно-
методического совета ФИПИ
по информатике

Г.Г.Канторович

Единый государственный экзамен по ИНФОРМАТИКЕ
Демонстрационный вариант КИМ 2008 г.

подготовлен Федеральным государственным научным учреждением
«ФЕДЕРАЛЬНЫЙ ИНСТИТУТ ПЕДАГОГИЧЕСКИХ ИЗМЕРЕНИЙ»

Директор ФИПИ А.Г. Ершов


 

Единый государственный экзамен по ИНФОРМАТИКЕ


Пояснения к демонстрационному варианту

При ознакомлении с Демонстрационным вариантом 2008 года следует иметь в виду, что задания, включённые в демонстрационный вариант, не отражают всех вопросов содержания, которые будут проверяться с помощью вариантов КИМ в 2008 году. Полный перечень вопросов, которые могут контролироваться на едином государственном экзамене 2008 года, приведен в кодификаторе, помещённом на сайтах www.ege.edu.ru и www.fipi.ru .

Назначение демонстрационного варианта заключается в том, чтобы дать возможность любому участнику ЕГЭ и широкой общественности составить представление о структуре будущих КИМ, количестве заданий, их форме, уровне сложности: базовом, повышенном и высоком. Приведённые критерии оценки выполнения заданий с развёрнутым ответом (тип «С»), включённые в этот вариант, позволят составить представление о требованиях к полноте и правильности записи развёрнутого ответа.

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

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

   На выполнение экзаменационной работы по информатике отводится 4 часа (240 минут). Экзаменационная работа состоит из 3 частей, включающих 32 задания. На выполнение частей 1 и 2 работы рекомендуется отводить 1,5 часа (90 минут). На выполнение заданий части 3 – 2,5 часа (150 минут).
   Часть 1 включает двадцать заданий с выбором ответа. К каждому заданию дается четыре ответа, из которых только один правильный.
   Часть 2 состоит из восьми заданий с кратким ответом (к этим заданиям вы должны самостоятельно сформулировать и записать ответ).
   Часть 3 состоит из четырех заданий. Для выполнения заданий этой части вам необходимо написать развернутый ответ в произвольной форме.
   Выполняйте задания в том порядке, в котором они даны. Если какое-то задание вызывает у вас затруднение, пропустите его и постарайтесь выполнить те, в ответах на которые вы уверены. К пропущенным заданиям можно будет вернуться, если останется время.
   За каждый правильный ответ в зависимости от сложности задания дается один или более баллов. Баллы, полученные вами за все выполненные задания, суммируются. Постарайтесь выполнить как можно больше заданий и набрать как можно больше баллов.

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

В экзаменационных заданиях используются следующие соглашения: 1. Обозначения для логических связок (операций):
a) отрицание (инверсия, логическое НЕ) обозначается ¬ (например, ¬А);
b) конъюнкция (логическое умножение, логическое И) обозначается /\ (например, А /\ В) либо & (например, А & В);
c) дизъюнкция (логическое сложение, логическое ИЛИ) обозначается \/ (например, А \/ В) либо | (например, А | В);
d) следование (импликация) обозначается –> (например, А –> В);
e) символ 1 используется для обозначения истины (истинного высказыва-ния); символ 0 – для обозначения лжи (ложного высказывания).
2. Два логических выражения, содержащих переменные, называются равносильными (эквивалентными), если значения этих выражений совпадают при любых значениях переменных. Так, выражения А –> В и (¬А) \/ В равносильны, а А \/ В и А /\ В – нет (значения выражений разные, например, при А = 1, В = 0).
3. Приоритеты логических операций: инверсия (отрицание), конъюнкция (логическое умножение), дизъюнкция (логическое сложение), импликация (следование), эквивалентность (равносильность). Таким образом, ¬А /\ В \/ С /\ D совпадает с ((¬А) /\ В) \/ (С /\ D). Возможна запись А /\ В /\ С вместо (А /\ В) /\ С. То же относится и к дизъюнкции: возможна запись А \/ В \/ С вместо (А \/ В) \/ С.

Часть 1.

  При выполнении заданий этой части в бланке ответов № 1 под номером выполняемого вами задания (А1 – А20) поставьте знак « × » в клеточку, номер которой соответствует номеру выбранного вами ответа.
   
 

А1

 
В кодировке Unicode на каждый символ отводится два байта. Определите информационный объем слова из двадцати четырех символов в этой кодировке.

1)  384 бита     2)  192 бита     3)  256 бит     4)  48 бит

   
 

А2

 
Световое табло состоит из лампочек. Каждая лампочка может находиться в одном из трех состояний («включено», «выключено» или «мигает»). Какое наименьшее количество лампочек должно находиться на табло, чтобы с его помощью можно было передать 18 различных сигналов?

1) 6     2) 5     3) 3     4) 4

   
 

А3

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

1)  600 бит     2)  750 бит     3)  1200 бит     4)  60 байт

   
 

А4

 
Сколько единиц в двоичной записи десятичного числа 194,5?

1)  5     2)  6     3)  3     4)  4

   
 

А5

 
Вычислите сумму чисел x и y, при x = A616, y = 758.
Результат представьте в двоичной системе счисления.

1)110110112
2)111100012
3)111000112
4)100100112

   
 

А6

 
Определите значение переменной m после выполнения фрагмента алгоритма.

Примечание: знаком := обозначена операция присваивания.

1) 1     2) 2     3) 6     4) 16

   
 

А7

 
Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

Бейсик Паскаль Алгоритмический
a = 3 + 8 * 4
b = (a \ 10) + 14
a = (b MOD 10) + 2
'\ и MOD – операции,
вычисляющие результат
деления нацело первого
аргумента на второй и
остаток от деления
соответственно
a:= 3 + 8*4;
b:= (a div 10) + 14;
a:= (b mod 10) + 2;
{div и mod – операции,
вычисляющие результат
деления нацело первого
аргумента на второй и
остаток от деления
соответственно}
a:= 3 + 8*4
b:= div(a,10) + 14
a:= mod(b, 10) + 2
|div и mod – функции,
вычисляющие результат
деления нацело первого
аргумента на второй и
остаток от деления
соответственно|

1) a = 0, b = 18
2) a = 11, b = 19
3) a = 10, b = 18
4) a = 9, b = 17

   
 

А8

 
Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

Бейсик Паскаль Алгоритмический
FOR n=1 TO 100
A(n)=(n-80)*(n-80)
NEXT n
FOR n=1 TO 100
B(101-n)=A(n) NEXT n
for n:=1 to 100 do
A[n]:= (n-80)*(n-80);
for n:=1 to 100 do
B[101-n]:=A[n];
нц для n от 1 до 100
A[n]=(n-80)*(n-80)
кц
нц для n от 1 до 100
B[101-n]=A[n]
кц
Какой элемент массива B будет наибольшим?

1) B[1]     2) B[21]     3) B[80]     4) B[100]

   
 

А9

 
Для какого из указанных значений числа X истинно высказывание
((X < 5) –> (X < 3)) /\ ((X < 2) –> (X < 1))

1) 1     2) 2     3) 3     4) 4

   
 

А10

 
Укажите, какое логическое выражение равносильно выражению ¬(A \/ ¬ B \/ C) 1) ¬A \/ B \/ ¬C     2) A /\ ¬B /\ C     3) ¬A \/ ¬B \/ ¬C     4) ¬A /\ B /\ ¬C
   
 

А11

 
Символом F обозначено одно из указанных ниже логических выражений от трех аргументов X, Y, Z. Дан фрагмент таблицы истинности выражения F:

       Х               Y               Z               F       
1 1 1 1
1 1 0 1
1 0 1 1

Какое выражение соответствует F?
1) X \/ ¬Y \/ Z
2) X /\ Y /\ Z
3) X /\ Y /\ ¬Z
4) ¬X \/ Y \/ ¬Z

   
 

А12

 
Грунтовая дорога проходит последовательно через населенные пункты А, B, С и D. При этом длина дороги между А и В равна 80 км, между В и С – 50 км, и между С и D – 10 км.
Между А и С построили новое асфальтовое шоссе длиной 40 км. Оцените минимально возможное время движения велосипедиста из пункта А в пункт В, если его скорость по грунтовой дороге – 20 км/час, по шоссе – 40 км/час.

1) 1 час     2) 1,5 часа     3) 3,5 часа     4) 4 часа

   
 

А13

 
Для кодирования букв А, Б, В, Г решили использовать двухразрядные последовательные двоичные числа (от 00 до 11 соответственно). Если таким способом закодировать последовательность символов ГБАВ и записать результат в шестнадцатеричной системе счисления, то получится:

1) 132     2) D2     3) 3102     4) 2D

   
 

А14

 
В формировании цепочки из четырех бусин используются некоторые правила:
В конце цепочки стоит одна из бусин Р, N, Т, O. На первом – одна из бусин P, R, T, O, которой нет на третьем месте. На третьем месте – одна из бусин O, P, T, не стоящая в цепочке последней. Какая из перечисленных цепочек могла быть создана с учетом этих правил?

1) PORT     2) TTTO     3) TTOO     4) OOPO

   
 

А15

 
Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Определите, какое из указанных имен файлов удовлетворяет маске:

?a???*

1) dad1
2) dad22
3) 3daddy
4) add444
   
 

А16

 
Из правил соревнования по тяжелой атлетике:
Тяжелая атлетика – это прямое соревнование, когда каждый атлет имеет три попытки в рывке и три попытки в толчке. Самый тяжелый вес поднятой штанги в каждом упражнении суммируется в общем зачете. Если спортсмен потерпел неудачу во всех трех попытках в рывке, он может продолжить соревнование в толчке, но уже не сможет занять какое-либо место по сумме 2-х упражнений.
Если два спортсмена заканчивают состязание с одинаковым итоговым результатом, высшее место присуждается спортсмену с меньшим весом. Если же вес спортсменов одинаков, преимущество отдается тому, кто первым поднял победный вес.
Таблица результатов соревнований по тяжелой атлетике:
  Фамилия И.О.    Вес
  спортсмена  
Взято в
  рывке  
Рывок с
  попытки  
Взято в
  толчке  
Толчок с
  попытки  
Айвазян Г.С. 77,1 150,0 3 200,0 2
Викторов М.П. 79,1 147,5 1 202,5 1
Гордезиани Б.Ш. 78,2 147,5 2 200,0 1
Михальчук М.С. 78,2 147,5 2 202,5 3
Пай С.В. 79,5 150,0 1 200,0 1
Шапсугов М.Х. 77,1 147,5 1 200,0 1

Кто победил в общем зачете (сумме двух упражнений)?
1)Айвазян Г.С.
2)Викторов М.П.
3)Михальчук М.С.
4)Пай С.В.
   
 

А17

 
Для хранения растрового изображения размером 32×32 пикселя отвели 512 байтов памяти. Каково максимально возможное число цветов в палитре изображения?

1) 256     2) 2     3) 16     4) 4

   
 

А18

 
Дан фрагмент электронной таблицы:

         А         В         С        
1 10 20 =A1+B$1
2 30 40  

Чему станет равным значение ячейки С2, если в нее скопировать формулу из ячейки С1?
Знак $ обозначает абсолютную адресацию.
1) 40     2) 50     3) 60     4) 70

   
 

А19

 
Дан фрагмент электронной таблицы:

         А         В         С             D        
1   3 4  
2 =C1-B1 =B1-A2*2 =C1/2 =B1+B2

После выполнения вычислений была построена диаграмма по значениям диапазона ячеек A2:D2. Укажите получившуюся диаграмму.

   
 

А20

 
Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
  вверх     вниз     влево     вправо  
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:
  сверху свободно     снизу свободно     слева свободно     справа свободно  
Цикл
ПОКА < условие > команда
выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?
НАЧАЛО
ПОКА <справа свободно> вправо
ПОКА <сверху свободно> вверх
ПОКА <слева свободно> влево
ПОКА <снизу свободно> вниз
КОНЕЦ

1) 1     2) 0     3) 3     4) 4

   
  Часть 2.
   
  Ответом к заданиям этой части (В1 – В8) является набор символов, которые следует записать в бланк ответов № 1 справа от номера соответствующего задания, начиная с первой клеточки. Каждый символ пишите в отдельной клеточке в соответствии с приведенными образцами.
   
 

В1

 
Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 23 оканчивается на 2.
   
 

В2

 
Сколько различных решений имеет уравнение
((K \/ L) –> (L /\ M /\ N)) = 0
где K, L, M, N – логические переменные?
В ответе не нужно перечислять все различные наборы значений K, L, M и N, при которых выполнено данное равенство. В качестве ответа Вам нужно указать количество таких наборов.
   
 

В3

 
У исполнителя Утроитель две команды, которым присвоены номера: 1. вычти 2
2. умножь на три
Первая из них уменьшает число на экране на 2, вторая – утраивает его. Запишите порядок команд в программе получения из 11 числа 13, содержащей не более 5 команд, указывая лишь номера команд. (Например, 21211 – это программа:
      умножь на три
      вычти 2
      умножь на три
      вычти 2
      вычти 2,
которая преобразует число 2 в 8).
(Если таких программ более одной, то запишите любую из них.)
   
 

В4

 
Перед началом Турнира Четырех болельщики высказали следующие предположения по поводу своих кумиров:
А) Макс победит, Билл – второй;
В) Билл – третий, Ник – первый;
С) Макс – последний, а первый – Джон.
Когда соревнования закончились, оказалось, что каждый из болельщиков был прав только в одном из своих прогнозов.
Какое место на турнире заняли Джон, Ник, Билл, Макс?
(В ответе перечислите подряд без пробелов места участников в указанном порядке имен.)
   
 

В5

 
Скорость передачи данных через ADSL-соединение равна 1024000 бит/c. Передача файла через данное соединение заняла 5 секунд. Определите размер файла в килобайтах.
   
 

В6

 
Цепочки символов (строки) создаются по следующему правилу:
Первая строка состоит из одного символа – цифры «1».
Каждая из последующих цепочек создается такими действиями: в начало записывается число – номер строки по порядку (для i-й строки ставится число «i»), далее дважды подряд записывается предыдущая строка.
Вот первые 4 строки, созданные по этому правилу:
(1) 1
(2) 211
(3) 3211211
(4) 432112113211211
Сколько раз встречается цифра «1» в первых семи строках (суммарно)?
   
 

В7

 
Доступ к файлу htm.net, находящемуся на сервере com.edu, осуществляется по протоколу ftp. В таблице фрагменты адреса файла закодированы буквами от А до Ж. Запишите последовательность этих букв, кодирующую адрес указанного файла в сети Интернет.
А    /     
Б    com     
В    .edu     
Г    ://     
Д    .net     
Е    htm     
Ж    ftp     
   
 

В8

 
В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по каждому запросу.
Для обозначения логической операции “ИЛИ” в запросе используется символ |, а для логической операции “И” – &.
А   физкультура
Б   физкультура & подтягивания & отжимания  
В   физкультура & подтягивания
Г   физкультура | фитнесс
   
  Не забудьте перенести все ответы в бланк ответов № 1.
   
  Часть 3.
   
  Для записи ответов к заданиям этой части (С1 – С4) используйте бланк ответов № 2. Запишите сначала номер задания (С1 и т.д.), а затем полное решение. Ответы записывайте четко и разборчиво.
   
 

С1

 
Требовалось написать программу, которая решает уравнение «a|x|=b» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ ПРОГРАММА НА БЕЙСИКЕ ПРОГРАММА НА СИ
var a,b,x: real;
begin
readln(a,b,x);
if a = 0 then
if b = 0 then
write ('любое число')
else
write ('нет решений')
else
if b = 0 then
write('x = 0')
else
write('x =',b/a,' или x =',-b/a);
end.
INPUT a, b, x
IF a = 0 THEN
IF b = 0 THEN
PRINT "любое число"
ELSE
PRINT "нет решений"
ENDIF
ELSE
IF b = 0 THEN
PRINT "x = 0"
ELSE
PRINT "x =",b/a, " или x =",-b/a
END IF
END IF
END
void main(void)
{float a,b,x;
scanf("%f%f%f", &a,&b,&x);
if (a==0)
if (b==0)
printf("любое число");
else
printf ("нет решений");
else
if (b==0)
printf("x = 0");
else
printf("x=%f или x=%f", b/a,-b/a);
}

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

   
 

C2

 
Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30.
   
 

C3

 
Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 1, а во второй – 2 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит в том, что игрок или увеличивает в 3 раза число камней в какой-то куче, или добавляет 2 камня в какую-то кучу. Выигрывает игрок, после хода которого общее число камней в двух кучах становится не менее 17 камней. Кто выигрывает при безошибочной игре обоих игроков – игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.
   
 

C4

 
На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:
<Фамилия> <Имя> <оценки>,
где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
Иванов Петр 4 5 3
Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.
   
  Инструкция по проверке и оценке работ учащихся по информатике
   
  Часть 1
   
 
   № задания       Ответ       № задания       Ответ   
А1 1 А11 1
А2 3 А12 3
А3 1 А13 2
А4 4 А14 4
А5 3 А15 2
А6 2 А16 1
А7 4 А17 3
А8 4 А18 2
А9 2 А19 4
А10 4 А20 4
   
  Часть 2
   
 
               Ответ     
В1  3,7,21
В2  10
В3  11121
В4  3124
В5  625
В6  127
В7  ЖГБВАЕД
В8  БВАГ
   
  Часть 3
   
  КРИТЕРИИ ПРОВЕРКИ И ОЦЕНКИ ВЫПОЛНЕНИЯ
ЗАДАНИЙ С РАЗВЁРНУТЫМ ОТВЕТОМ
   
 
  Внимание! При выставлении баллов за выполнение задания в «Протокол проверки ответов на задания бланка № 2» следует иметь в виду, что, если ответ отсутствует (нет никаких записей, свидетельствующих о том, что экзаменуемый приступал к выполнению задания), то в протокол проставляется «Х», а не «0». При использовании технологии «КРОК» в подобной ситуации используется знак «–», а не «Х».
   
 

С1

 
Требовалось написать программу, которая решает уравнение «a|x|=b» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ ПРОГРАММА НА БЕЙСИКЕ ПРОГРАММА НА СИ
var a,b,x: real;
begin
readln(a,b,x);
if a = 0 then
if b = 0 then
write ('любое число')
else
write ('нет решений')
else
if b = 0 then
write('x = 0')
else
write('x =',b/a,' или x =',-b/a);
end.
INPUT a, b, x
IF a = 0 THEN
IF b = 0 THEN
PRINT "любое число"
ELSE
PRINT "нет решений"
ENDIF
ELSE
IF b = 0 THEN
PRINT "x = 0"
ELSE
PRINT "x =",b/a, " или x =",-b/a
END IF
END IF
END
void main(void)
{float a,b,x;
scanf("%f%f%f", &a,&b,&x);
if (a==0)
if (b==0)
printf("любое число");
else
printf ("нет решений");
else
if (b==0)
printf("x = 0");
else
printf("x=%f или x=%f", b/a,-b/a);
}

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

Ответ:

Содержание верного ответа и указания к оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Элементы ответа:
1) a = 1, b= –1, x =0 (Значение x может быть не указано. Значения a и bмогут быть любыми ненулевыми числами с разными знаками. Также допустим ответ, что программа работает неправильно при любых ненулевых a и b, имеющих разные знаки)
2) Лишняя часть:
не нужно вводить x с клавиатуры
верно: readln(a,b);
3) Возможная доработка:
readln(a,b);
if a = 0 then
if b = 0 then write('любое число')
else write('нет решений')
else
if b/a > 0 then
write('x=',b/a, ' или x=',-b/a)
else
if b=0 then write('x=0')
else write('нет решений');
(могут быть и другие способы доработки).
При оценке других вариантов доработки программы нужно проверять, что поставленная цель достигается.
Указания к оцениванию Баллы
Правильно выполнены все 3 пункта задания, при этом в работе (во фрагментах программ) допускается неболее одной синтаксической ошибки 3
Правильно выполнены 2 пункта задания. При этом в сданной работе допускается не более двух синтаксических ошибок (пропущен или неверно указан знак пунктуации, неверно написано зарезервированное слово языка программирования) 2
Правильно выполнен только один пункт задания, при этом, если это был п.3), то в нем допускается не более трех синтаксических ошибок (пропущен или неверно указан знак пунктуации, неверно написано зарезервированное слово языка программирования) 1
Все пункты задания выполнены неверно 0

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

3

   
 

C2

 
Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30.

Ответ:

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

Пример правильного описания алгоритма на русском языке.
Заводим переменную MaxCoin для хранения максимального количества подряд идущих совпадающих элементов и счетчик NumCoin для хранения числа элементов в последней группе совпадающих элементов. Просматривая элементы массива, сравниваем очередной элемент со следующим за ним. Если значения совпадают, увеличиваем счетчик NumCoin на единицу. Если очередной элемент массива оказывается не равным предыдущему, то сравниваем текущее значение счетчика со значением переменной MaxCoin; если он больше, то заменяем значение переменной MaxCoin значением счетчика. После сравнения записываем в счетчик NumCoin единицу. Так повторяем до конца массива. В конце работы нужно еще раз сравнить значение счетчика со значением переменной MaxCoin и переопределить ее, если счетчик больше.
При оценке других вариантов алгоритма решения необходимо проверить, что поставленная цель достигается.
Пример правильной и эффективной программы (на основе алгоритма, использующего однократный проход по массиву):
На языке Паскаль На языке Бейсик
const N = 30;
var a:array[1..N] of integer;
MaxCoin, NumCoin, i: integer;
begin
MaxCoin: = 1;
NumCoin: = 1;
for i:= 2 to N do
begin
if a[i]=a[i-1] then NumCoin:=NumCoin+1;
else begin
if NumCoin> MaxCoin then
MaxCoin:=NumCoin;
NumCoin:=1;
end;
end;
if NumCoin> MaxCoin then
MaxCoin:= NumCoin;
writeln(MaxCoin);
end.
N=30 DIM i, MaxCoin, NumCoin, a(N) AS INTEGER
MaxCoin = 1
NumCoin = 1
FOR i = 2 TO N
IF a(i) = a(i-1) THEN
NumCoin=NumCoin+1
ELSE
IF NumCoin>MaxCoin THEN
MaxCoin = NumCoin
END IF
NumCoin = 1
END IF
NEXT i
IF NumCoin>MaxCoin THEN
MaxCoin = NumCoin
END IF
PRINT MaxCoin
END
Указания к оцениванию Баллы
Предложен правильный алгоритм, выдающий верное значение (в том числе и алгоритм, требующий двукратного прохода по массиву).
Возможно использование числа 30 вместо константы.
Возможно наличие отдельных синтаксических ошибок (пропущенные «;», неверная запись оператора присваивания и т.п.), не искажающих замысла автора программы.
2
Имеется не более двух ошибок из числа следующих:
1) Не задано начальное значение MaxCoin и/или NumCoin
2) Не указано или неверно указано условие завершения цикла
3) Программа не выводит результат
4) Индексная переменная в цикле не увеличивается
5) В программе на Паскале неверно расставлены операторные скобки.
1
Ошибок, перечисленных выше, больше двух, или алгоритм сформулирован неверно (в частности, переменная NumCoin не приравнивается единице в случае прекращения последовательности одинаковых элементов или нет проверки после завершения цикла в варианте решения, аналогичном предложенному). 0

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

 

   
 

C3

 
Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 1, а во второй – 2 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит в том, что игрок или увеличивает в 3 раза число камней в какой-то куче, или добавляет 2 камня в какую-то кучу. Выигрывает игрок, после хода которого общее число камней в двух кучах становится не менее 17 камней. Кто выигрывает при безошибочной игре обоих игроков – игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте. Ответ:

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

 

 

1,4
1,6
3,4

 

 

3,4
1,18
9,4
5,4
3,12
3,6
Те же варианты третьего-четвертого ходов
Второй игрок выигрывает ответным ходом
18,4
15,4
3,36
3,18
Второй игрок выигрывает
на четвертом ходу после
любого ответа первого
игрока, например, утроив
число камней в самой
большой куче
Таблица содержит все возможные варианты ходов первого игрока. Из неё видно, что при любом ходе первого игрока у второго имеется ход, приводящий к победе.

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

   
 

C4

 
На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:
<Фамилия> <Имя> <оценки>,
где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
Иванов Петр 4 5 3
Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.

Ответ:
Содержание верного ответа и указания к оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Программа верно читает входные данные, запоминая фамилии, имена и сумму баллов в массиве записей (или в нескольких массивах), сразу или за дополнительный просмотр подсчитывая три худших по величине суммы баллов (так как количество экзаменов у всех учеников одинаковое, лучший средний балл соответствует лучшей сумме баллов). Затем за дополнительный просмотр этого массива распечатывается информация о тех учениках, которые набрали в сумме баллов не больше третьей по величине суммы. Баллы начисляются только за программу, которая решает задачу хотя бы для частного случая (например, все ученики набрали различный средний балл).
Пример правильной и эффективной программы на языке Паскаль:
var p:array[1..100] of record
name:string;
sum:integer;
end;
c:char;
i,j,N,s1,s2,s3,m:integer;
begin
readln(N);
for i:=1 to N do
begin
p[i].name:='';
repeat
read(c);
p[i].name:=p[i].name+c
until c=' '; {считана фамилия}
repeat
read(c);
p[i].name:=p[i].name+c
until c=' '; {считано имя}
p[i].sum:=0;
for j:=1 to 3 do
begin
read(m);
p[i].sum:=p[i].sum+m
end; {подсчитана сумма баллов}
readln;
end;
s1:=20; s2:=20; s3:=20;
for i:=1 to N do
begin
if p[i].sum < s1 then
begin
s3:=s2; s2:=s1;
s1:=p[i].sum
end else
if p[i].sum < s2 then
begin
s3:=s2; s2:=p[i].sum
end else
if p[i].sum < s3 then s3:=p[i].sum;
end;
for i:=1 to N do
if p[i].sum<=s3 then writeln(p[i].name);
end.
Пример правильной программы на языке Бейсик:
DIM i, j, n, s1, s2, s3, sum(100) AS INTEGER
DIM s AS STRING
DIM nm(100) AS STRING
INPUT n
FOR j = 1 TO n
LINE INPUT s
c$ = MID$(s, 1, 1)
i = 1
WHILE NOT (c$ = " ")
i = i + 1
c$ = MID$(s, i, 1)
WEND
i = i + 1
c$ = MID$(s, i, 1)
WHILE NOT (c$ = " ")
i = i + 1
c$ = MID$(s, i, 1)
WEND
nm(j) = MID$(s, 1, i)
sum(j) = ASC(MID$(s, i + 1, 1)) - ASC("0")
sum(j)=sum(j)+(ASC(MID$(s,i+3,1))-ASC("0"))
sum(j)=sum(j)+(ASC(MID$(s,i+5,1))-ASC("0"))
NEXT j
s1 = 20: s2 = 20: s3 = 20
FOR j = 1 TO n
IF sum(j) < s1 THEN
s3 = s2: s2 = s1
s1 = sum(j)
ELSE
IF sum(j) < s2 THEN
s3 = s2: s2 = sum(j)
ELSE
IF sum(j) < s3 THEN s3 = sum(j)
END IF
END IF
NEXT j
FOR j = 1 TO n
IF sum(j) <= s3 THEN PRINT nm(j)
NEXT j
END.
Указания к оцениванию Баллы
Программа работает верно, т.е. корректно выделяет из входных данных оценки, ищет три худших суммы баллов и распечатывает учеников, набравших эти суммы. Допускается наличие в тексте программы одной синтаксической ошибки. 4
Программа работает в целом верно, но содержит по крайней мере две из следующих неточностей (нерациональностей): сохраняются не суммы баллов (средние баллы), а сами баллы, и суммы перевычисляются несколько раз заново; явно вычисляются средние баллы, что приводит к сравнению вещественных чисел; при нахождении трех минимальных значений элементы массива переставляются местами; при печати сравнения производятся с каждым из трех минимальных элементов. Допускается наличие от одной до трех синтаксических ошибок: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных. 3
Программа работает в целом верно, но выводит только трех худших учеников, даже если кто-то еще сдал экзамены так же. Возможно, в реализации алгоритма содержатся 1 – 2 ошибки (используется знак “<” вместо “>”, “or” вместо “and” и т.п.). Возможно, некорректно организовано считывание входных данных. Допускается наличие до пяти синтаксических ошибок: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных. 2
Программа неверно работает при некоторых входных данных и, возможно, содержит ошибку в алгоритме поиска трех минимальных элементов. Допускается до 4 различных ошибок в ходе решения задачи, в том числе описанных в критериях присвоения двух баллов. Допускается наличие от одной до семи синтаксических ошибок: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных. 1
Задание выполнено неверно 0
Максимальный балл 4