Единый государственный экзамен по ИНФОРМАТИКЕ И ИКТ
Демонстрационный вариант контрольных измерительных материалов единого государственного экзамена
2010 года по информатике и ИКТ
подготовлен Федеральным государственным научным учреждением
«ФЕДЕРАЛЬНЫЙ ИНСТИТУТ ПЕДАГОГИЧЕСКИХ ИЗМЕРЕНИЙ» Единый государственный экзамен по ИНФОРМАТИКЕ и ИКТ
Пояснения к демонстрационному варианту контрольных измерительных материалов единого государственного экзамена 2010 года по информатике и ИКТ
При ознакомлении с демонстрационным вариантом контрольных измерительных материалов ЕГЭ 2010 года следует иметь в виду, что задания, в него включённые, не отражают всех вопросов содержания, которые будут проверяться с помощью вариантов КИМ в 2010 году. Полный перечень вопросов, которые могут контролироваться на едином государственном экзамене 2010 года, приведен в Кодификаторе элементов содержания и требований к уровню подготовки выпускников общеобразовательных учреждений для единого государственного экзамена 2010 года по информатике и ИКТ.
Назначение демонстрационного варианта заключается в том, чтобы дать возможность любому участнику ЕГЭ и широкой общественности составить представление о структуре будущих КИМ, количестве заданий, их форме, уровне сложности. Приведённые критерии оценки выполнения заданий с развёрнутым ответом, включённые в этот вариант, дают представление о требованиях к полноте и правильности записи развёрнутого ответа.
Эти сведения позволят выпускникам выработать стратегию подготовки к ЕГЭ.
© 2010 Федеральная служба по надзору в сфере образования и науки Российской Федерации
Демонстрационный вариант контрольных измерительных материалов единого государственного экзамена
2010 года по ИНФОРМАТИКЕ и ИКТ
Инструкция по выполнению работы
На выполнение экзаменационной работы по информатике отводится 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–А18) поставьте знак «
× » в клеточку, номер которой соответствует номеру выбранного вами ответа.
Дано А=9D16
, B=2378
. Какое из чисел C, записанных в двоичной системе, отвечает условию A<C<B?
1) 100110102
2) 100111102
3) 100111112
4) 110111102
В некоторой стране автомобильный номер состоит из 7 символов. В качестве символов используют 18 различных букв и десятичные цифры в любом порядке.
Каждый такой номер в компьютерной программе записывается минимально возможным и одинаковым целым количеством байтов, при этом используют посимвольное кодирование и все символы кодируются одинаковым и минимально возможным количеством битов.
Определите объем памяти, отводимый этой программой для записи 60 номеров.
1) 240 байт
2) 300 байт
3) 360 байт
4) 420 байт
В таблице ниже представлена часть кодовой таблицы ASCII:
Символ
|
1
|
5
|
A
|
B
|
Q
|
a
|
b
|
Десятичный код
|
49
|
53
|
65
|
66
|
81
|
97
|
98
|
Шестнадцатеричный код
|
31
|
35
|
41
|
42
|
51
|
61
|
62
|
Каков шестнадцатеричный код символа “q
” ?
1) 71 2) 83 3) А1 4) В3 Вычислите сумму чисел X и Y, если
X=1101112
Y=1358
Результат представьте в двоичном виде.
1) 110101002
2) 101001002
3) 100100112
4) 100101002
Определите значение переменной c
после выполнения следующего фрагмента программы (записанного ниже на разных языках программирования
):
Бейсик
|
Паскаль
|
a = 100 b = 30 a = a – b * 3 IF a > b THEN c = a – b ELSE c = b – a
ENDIF
|
a := 100; b := 30; a := a – b * 3; if a > b then c := a – b else c := b – a;
|
Си
|
Алгоритмический
|
a = 100; b = 30; a = a – b * 3; if (a > b) c = a – b; else c = b – a;
|
a := 100 b := 30 a := a – b * 3 если a > b то c := a – b иначе c := b – a все
|
1) c = 20 2) c = 70 3) c = – 20 4) c = 180
В программе используется одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются.
Бейсик
|
Паскаль
|
FOR i=0 TO 10
A(i)=i
NEXT i
FOR i=0 TO 10
A(10-i)=A(i)
A(i)=A(10-i)
NEXT i
|
for i:=0 to 10 do A[i]:=i; for i:=0 to 10 do begin
A[10-i]:=A[i]; A[i]:=A[10-i]; end;
|
Си
|
Алгоритмический язык
|
for (i=0;i<=10;i++) A[i]=i;
for (i=0;i<=10;i++)
{
A[10-i]=A[i];
A[i]=A[10-i];
}
|
нц для i от 0 до 10
A[i]:=i кц
нц для i от 0 до 10
A[10-i]:=A[i] A[i]:=A[10-i] кц
|
Чему будут равны элементы этого массива после выполнения фрагмента программы?
1) 10 9 8 7 6 5 4 3 2 1 0 2) 0 1 2 3 4 5 6 7 8 9 10
3) 10 9 8 7 6 5 6 7 8 9 10
4) 0 1 2 3 4 5 4 3 2 1 0
Какое из приведенных имен удовлетворяет логическому условию ¬ (первая буква гласная →
вторая буква гласная) /\ последняя буква гласная
1) ИРИНА 2) МАКСИМ 3) АРТЕМ 4) МАРИЯ
Какое логическое выражение равносильно выражению ¬ (¬A \/ ¬B) /\ C
1) ¬A \/ B \/ ¬C 2) A /\ B /\ C 3) (A \/ B) /\ C 4) (¬A /\ ¬B) \/ ¬C
Дан фрагмент таблицы истинности выражения F:
X
|
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 Путешественник пришел в 08:00 на автостанцию населенного пункта КАЛИНИНО и обнаружил следующее расписание автобусов:
Пункт отправления
|
Пункт прибытия
|
Время отправления
|
Время прибытия
|
КАМЫШИ
|
КАЛИНИНО
|
08:15
|
09:10
|
КАЛИНИНО
|
БУКОВОЕ
|
09:10
|
10:15
|
РАКИТИНО
|
КАМЫШИ
|
10:00
|
11:10
|
РАКИТИНО
|
КАЛИНИНО
|
10:05
|
12:25
|
РАКИТИНО
|
БУКОВОЕ
|
10:10
|
11:15
|
КАЛИНИНО
|
РАКИТИНО
|
10:15
|
12:35
|
КАЛИНИНО
|
КАМЫШИ
|
10:20
|
11:15
|
БУКОВОЕ
|
КАЛИНИНО
|
10:35
|
11:40
|
КАМЫШИ
|
РАКИТИНО
|
11:25
|
12:30
|
БУКОВОЕ
|
РАКИТИНО
|
11:40
|
12:40
|
Определите самое ранее время, когда путешественник сможет оказаться в пункте РАКИТИНО согласно этому расписанию.
1) 12:25 2) 12:30 3) 12:35 4) 12:40
Для передачи по каналу связи сообщения, состоящего только из символов
А, Б, В и Г используется посимвольное кодирование: А-00, Б-11, В-010, Г011. Через канал связи передается сообщение: ВАГБГВ. Закодируйте сообщение данным кодом. Полученную двоичную последовательность переведите в шестнадцатеричный вид.
1) AD34 2) 43DA 3) 101334 4) CADBCD
Витя пригласил своего друга Сергея в гости, но не сказал ему код от цифрового замка своего подъезда, а послал следующее SMS-сообщение: “в последовательности чисел 3, 1, 8, 2, 6 все числа больше 5 разделить на 2, а затем удалить из полученной последовательности все четные числа”. Выполнив указанные в сообщении действия, Сергей получил следующий код для цифрового замка:
1) 3, 1 2) 1, 1, 3 3) 3, 1, 3 4) 3, 3, 1
Для групповых операций с файлами используются маски имен файлов
.
Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы:
Символ «?» (вопросительный знак) означает ровно один произвольный символ.
Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.
Определите, какое из указанных имен файлов удовлетворяет маске: ?ba*r.?xt
1) bar.txt 2) obar.txt 3) obar.xt 4) barr.txt
Ниже приведены фрагменты таблиц базы данных участников конкурса исполнительского мастерства:
Страна
|
Участник
|
Германия
|
Силин
|
США
|
Клеменс
|
Россия
|
Холево
|
Грузия
|
Яшвили
|
Германия
|
Бергер
|
Украина
|
Численко
|
Германия
|
Феер
|
Россия
|
Каладзе
|
Германия
|
Альбрехт
|
Участник
|
Инструмент
|
Автор произведения
|
Альбрехт
|
флейта
|
Моцарт
|
Бергер
|
скрипка
|
Паганини
|
Каладзе
|
скрипка
|
Паганини
|
Клеменс
|
фортепиано
|
Бах
|
Силин
|
скрипка
|
Моцарт
|
Феер
|
флейта
|
Бах
|
Холево
|
скрипка
|
Моцарт
|
Численко
|
фортепиано
|
Моцарт
|
Яшвили
|
флейта
|
Моцарт
|
Представители скольких стран исполняют Моцарта?
1) 5 2) 2 3) 3 4) 4
Для кодирования цвета фона web-страницы используется атрибут bgcolor="#ХХХХХХ", где в кавычках задаются шестнадцатеричные значения интенсивности цветовых компонент в 24-битной RGB-модели. Какой цвет будет у страницы, заданной тэгом <body bgcolor="#00FF00">?
1) белый
2) зеленый
3) красный 4) синий
В динамической (электронной) таблице приведены значения пробега автомашин (в км) и общего расхода дизельного топлива (в литрах) в четырех автохозяйствах с 12 по 15 июля. В каком из хозяйств средний расход топлива на 100 км пути за эти четыре дня наименьший?
|
12 июля
|
13 июля
|
14 июля
|
15 июля
|
За четыре дня
|
Название автохозяйства
|
Пробег
|
Расход
|
Пробег
|
Расход
|
Пробег
|
Расход
|
Пробег
|
Расход
|
Пробег
|
Расход
|
Автоколонна №11
|
9989
|
2134
|
9789
|
2056
|
9234
|
2198
|
9878
|
2031
|
38890
|
8419
|
Грузовое такси
|
490
|
101
|
987
|
215
|
487
|
112
|
978
|
203
|
2942
|
631
|
Автобаза №6
|
1076
|
147
|
2111
|
297
|
4021
|
587
|
1032
|
143
|
8240
|
1174
|
Трансавтопарк
|
998
|
151
|
2054
|
299
|
3989
|
601
|
1023
|
149
|
8064
|
1200
|
1) Автоколонна №11
2) Грузовое такси
3) Автобаза №6
4) Трансавтопарк
В цехе трудятся рабочие трех специальностей – токари (Т), слесари (С) и фрезеровщики (Ф). Каждый рабочий имеет разряд не меньший второго и не больший пятого. На диаграмме I отражено распределение рабочих по специальностям, а на диаграмме II количество рабочих с различными разрядами. Каждый рабочий имеет только одну специальность и один разряд.
I) II)
Какое из утверждений:
А) Среди слесарей найдется хотя бы один третьего разряда Б) Среди токарей найдется хотя бы один второго разряда В) Все токари могут иметь четвертый разряд
Г) Все фрезеровщики могут иметь третий разряд
следует из диаграмм?
1) А 2) Б 3) В 4) Г
Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:
При выполнении этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды служат для проверки истинности условия отсутствия соответствующей стены у той клетки, где находится РОБОТ:
сверху свободно
|
снизу свободно
|
слева свободно
|
справа свободно
|
Цикл
ПОКА < условие
> команда
выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Если РОБОТ начнет движение в сторону стены, то он разрушится и выполнение программы прервется.
Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ уцелеет и остановится в той же клетке, с которой он начал движение?
НАЧАЛО
ПОКА < сверху свободно
> вправо
6
ПОКА < справа свободно
> вниз
5
ПОКА < снизу свободно
> влево
4
ПОКА < слева свободно
> вверх
3
КОНЕЦ 2
1
A B C D E F
1) 1 2) 2 3) 3 4) 4
Часть 2
Ответом к заданиям этой части (В1–В10) является набор символов, которые следует записать в бланк ответов № 1 справа от номера соответствующего задания, начиная с первой клеточки. Каждый символ пишите в отдельной клеточке в соответствии с приведенными образцами.
Некоторое сигнальное устройство за одну секунду передает один из трех сигналов. Сколько различных сообщений длиной в четыре секунды можно передать при помощи этого устройства?
B2
Запишите значение переменной b
после выполнения фрагмента алгоритма:
Примечание: знаком
“:=”
обозначена операция присваивания.
В бланк ответа впишите только число.
В системе счисления с некоторым основанием десятичное число 49 записывается в виде 100. Укажите это основание.
Сколько различных решений имеет уравнение
J /\ ¬K /\ L /\ ¬M /\ (N \/ ¬N) = 0
где J, K, L, M, N – логические переменные?
В ответе не нужно
перечислять все различные наборы значений J, K, L, M и N, при которых выполнено данное равенство. В качестве ответа Вам нужно указать количество таких наборов.
B5
Исполнитель Робот ходит по клеткам бесконечной вертикальной
клетчатой доски, переходя по одной из команд вверх, вниз, вправо, влево
в соседнюю клетку в указанном направлении. Робот выполнил следующую программу:
влево вверх вверх влево вниз вправо вправо вправо
Укажите наименьшее возможное число команд в программе, приводящей Робота из той же начальной клетки в ту же конечную.
На одной улице стоят в ряд 4 дома, в которых живут 4 человека: Алексей,
Егор, Виктор и Михаил. Известно, что каждый из них владеет ровно одной из следующих профессий: Токарь, Столяр, Хирург и Окулист, но неизвестно, кто какой и неизвестно, кто в каком доме живет. Однако, известно, что:
1) Токарь живет левее Столяра
2) Хирург живет правее Окулиста
3) Окулист живет рядом со Столяром
4) Токарь живет не рядом со Столяром
5) Виктор живет правее Окулиста 6) Михаил не Токарь
7) Егор живет рядом со Столяром
8) Виктор живет левее Егора
Выясните, кто какой профессии, и кто где живет, и дайте ответ в виде заглавных букв имени людей, в порядке слева направо. Например, если бы в домах жили (слева направо) Константин, Николай, Роман и Олег, ответ был бы: КНРО
B7
У Васи есть доступ к Интернет по высокоскоростному одностороннему
радиоканалу, обеспечивающему скорость получения им информации 218
бит в секунду. У Пети нет скоростного доступа в Интернет, но есть возможность получать информацию от Васи по низкоскоростному телефонному каналу со средней скоростью 215
бит в секунду. Петя договорился с Васей, что тот будет скачивать для него данные объемом 5 Мбайт по высокоскоростному каналу и ретранслировать их Пете по низкоскоростному каналу.
Компьютер Васи может начать ретрансляцию данных не раньше, чем им будут получены первые 512 Кбайт этих данных. Каков минимально возможный промежуток времени (в секундах), с момента начала скачивания Васей данных, до полного их получения Петей?
В ответе укажите только число, слово «секунд» или букву «с» добавлять не нужно.
Строки (цепочки латинских букв) создаются по следующему правилу. Первая строка состоит из одного символа – латинской буквы «А». Каждая из последующих цепочек создается такими действиями: в очередную строку сначала записывается буква, чей порядковый номер в алфавите соответствует номеру строки (на i-м шаге пишется «i
»-я буква алфавита), к ней слева дважды подряд приписывается предыдущая строка. Вот первые 4 строки, созданные по этому правилу:
(1) A
(2) AAB
(3) AABAABC
(4) AABAABCAABAABCD
Латинский алфавит (для справки):
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Запишите шесть символов подряд, стоящие в седьмой строке со 117-го по 122-е место (считая слева направо).
На месте преступления были обнаружены четыре обрывка бумаги. Следствие установило, что на них записаны фрагменты одного IP-адреса. Криминалисты обозначили эти фрагменты буквами А, Б, В и Г.
Восстановите IP-адрес.
В ответе укажите последовательность букв, обозначающих фрагменты, в порядке, соответствующем IP-адресу.
В таблице приведены запросы к поисковому серверу. Расположите номера запросов в порядке возрастания
количества страниц
, которые найдет поисковый сервер по каждому запросу.
Для обозначения логической операции “ИЛИ” в запросе используется символ |, а для логической операции “И” – &.
№
|
Запрос
|
1
|
канарейки | щеглы | содержание
|
2
|
канарейки & содержание
|
3
|
канарейки & щеглы & содержание
|
4
|
разведение & содержание & канарейки & щеглы
|
Не забудьте перенести все ответы в бланк ответов № 1.
Часть 3
Для записи ответов к заданиям этой части (С1–С4) используйте бланк ответов № 2. Запишите сначала номер задания (С1 и т.д.), а затем полное решение. Ответы записывайте четко и разборчиво.
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x,y
– действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы).
Программист торопился и написал программу неправильно.
ПРОГРАММА НА ПАСКАЛЕ
|
ПРОГРАММА НА БЕЙСИКЕ
|
ПРОГРАММА НА СИ
|
var x,y: real; begin readln(x,y); if x*x+y*y>=4 then if x>= –2 then if y<= –x then write('принадлежит') else write('не принадлежит') end.
|
INPUT x, y
IF x*x+y*y>=4 THEN
IF x>= –2 THEN
IF y<= –x THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
END
|
void main(void) { float x,y; scanf("% f % f",&x,&y); if (x*x+y*y>=4) if (x>= –2) if (y<= –x)
printf("принадлежит"); else printf("не принадлежит");
}
|
Последовательно выполните следующее:
1) Приведите пример таких чисел x
, y
, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы).
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет найти и вывести минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе хотя бы один учащийся получил за тест положительную оценку.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль
|
Бейсик
|
const N=30; var a: array [1..N] of integer; i, j, min: integer; begin for i:=1 to N do readln(a[i]);
… end.
|
N=30
DIM A(N) AS INTEGER
DIM I, J, MIN AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
…
END
|
СИ
|
Естественный язык
|
#include <stdio.h> #define N 30 void main(void) {int a[N]; int i, j, min; for (i=0; i<N; i++) scanf("% d", &a[i]);
…
}
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
…
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Два игрока играют в следующую игру. На координатной плоскости стоит фишка. В начале игры фишка находится в точке с координатами (–2,–1). Игроки ходят по очереди. Ход состоит в том, что игрок перемещает фишку из точки с координатами (x,y) в одну из трех точек: (x+3,y), (x,y+4), (x+2,y+2). Игра заканчивается, как только расстояние от фишки до начала координат превысит число 9. Выигрывает игрок, который сделал последний ход. Кто выигрывает при безошибочной игре – игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.
На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.
Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число данных о стоимости бензина. В каждой из последующих N
строк находится информация в следующем формате:
<Компания> <Улица> <Марка> <Цена> где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов, <Улица> – строка, состоящая не более, чем из 20 символов без пробелов, <Марка> – одно из чисел – 92, 95 или 98, <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках. <Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом. Пример входной строки:
Синойл Цветочная 95 2250
Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0. Пример выходных данных:
12 1 0
Инструкция по проверке и оценке работ экзаменуемых по информатике и ИКТ
ЧАСТЬ 1
За правильный ответ на каждое задание части 1 ставится 1 балл.
Если указаны два и более ответов (в том числе правильный), неверный ответ или ответ отсутствует – 0 баллов.
№ задания
|
Ответ
|
№ задания
|
Ответ
|
А1
|
2
|
А10
|
2
|
А2
|
2
|
А11
|
2
|
А3
|
1
|
А12
|
3
|
А4
|
4
|
А13
|
2
|
А5
|
1
|
А14
|
4
|
А6
|
4
|
А15
|
2
|
А7
|
1
|
А16
|
3
|
А8
|
2
|
А17
|
4
|
А9
|
3
|
А18
|
1
|
ЧАСТЬ 2
За правильный ответ на задания В1–В10 ставится 1 балл, за неверный ответ или его отсутствие – 0 баллов.
№
|
Ответ
|
В1
|
81
|
В2
|
255
|
В3
|
7
|
В4
|
30
|
В5
|
2
|
В6
|
АМВЕ
|
В7
|
1296
|
В8
|
AABAAB
|
В9
|
ВБГА
|
В10
|
4321
|
ЧАСТЬ 3
КРИТЕРИИ ПРОВЕРКИ И ОЦЕНКИ ВЫПОЛНЕНИЯ
ЗАДАНИЙ С РАЗВЁРНУТЫМ ОТВЕТОМ
Внимание!
При выставлении баллов за выполнение задания в «Протокол проверки ответов на задания бланка № 2» следует иметь в виду, что, если ответ отсутствует
(нет никаких записей, свидетельствующих о том, что экзаменуемый приступал к выполнению задания), то в протокол проставляется «Х»
, а не «0».
C1
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x,y
– действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы).
Программист торопился и написал программу неправильно.
ПРОГРАММА НА ПАСКАЛЕ
|
ПРОГРАММА НА БЕЙСИКЕ
|
ПРОГРАММА НА СИ
|
var x,y: real; begin readln(x,y); if x*x+y*y>=4 then if x>= –2 then if y<= –x then write('принадлежит') else write('не принадлежит') end.
|
INPUT x, y
IF x*x+y*y>=4 THEN
IF x>= –2 THEN
IF y<= –x THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF END
|
void main(void) { float x,y; scanf("% f % f",&x,&y); if (x*x+y*y>=4) if (x>= –2) if (y<= –x) printf("принадлежит"); else printf("не принадлежит");
}
|
Последовательно выполните следующее:
1) Приведите пример таких чисел x
, y
, при которых программа неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы).
Ответ
:
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
|
Элементы ответа:
1) Пример: x= –1, y= –3 (Любая пара (x,y), для которой выполняется: x2
+y2
<4 или x< –2 или (y<0 и y<= –x))
2) Возможная доработка (Паскаль):
if (x*x+y*y>=4) and (x>= –2) and (y<= –x) and (y>=0) then write('принадлежит') else write('не принадлежит')
(могут быть и другие способы доработки).
|
Указания по оцениванию
|
Баллы
|
Обратите внимание! В задаче требовалось выполнить три
действия: указать пример входных данных, при которых программа работает неверно и исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего при невыполнении первого или второго условия программа не выдавала ничего (отсутствуют случаи ELSE).
2. Приведенным трем ограничениям удовлетворяют также те точки плоскости, у которых (x2
+y2
>=4) и (y<= –x) и (x>= –2) и (y<0).
|
Правильно выполнены оба пункта задания. Исправлены две ошибки.
В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения
|
3
|
Правильно выполнены 2 действия из трех (исправлены обе ошибки, но не указан/неправильно указан пример требуемых входных данных, либо правильно указан пример входных данных, программа правильно работает при большем числе случаев, чем исходная, но не при всех, и, при доработке не возникли точки, в которых исходная программа работает верно, а доработанная - нет).
Например, выдает "принадлежит" для точек, у которых (x2
+y2
>=4) и (y<= –x) и (x>= –2) и (y<0). Допускается, например, такое решение:
if x*x+y*y>=4 then if x>= –2 then if y<= –x then write('принадлежит') else
write('не принадлежит') else
write('не принадлежит') else
write('не принадлежит')
|
2
|
Правильно выполнено только одно действие из трёх.
То есть, только приведен пример входных данных, либо он не приведен, но имеется программа, корректно работающая при большем количестве входных данных, чем исходная, но не при всех.
|
1
|
Все пункты задания выполнены неверно (пример входных данных не указан или указан неверно, программа не приведена, либо приведенная программа корректно работает в не большем количестве случаев, чем исходная)
|
0
|
Максимальный балл
|
3
|
C2
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет найти и вывести минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе хотя бы один учащийся получил за тест положительную оценку.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль
|
Бейсик
|
const N=30; var
a: array [1..N] of integer; i, j, min: integer; begin
for i:=1 to N do readln(a[i]);
… end.
|
N=30
DIM A(N) AS INTEGER
DIM I, J, MIN AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
…
END
|
СИ
|
Естественный язык
|
#include <stdio.h> #define N 30 void main(void) {int a[N]; int i, j, min; for (i=0; i<N; i++) scanf("% d", &a[i]);
…
}
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
…
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Ответ
:
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
|
На языке Паскаль
|
На языке Бейсик
|
min:=100; for i:=1 to N do
if (a[i]>=20) and (a[i]<min) then min:=a[i]; writeln(min);
|
MIN = 100
FOR I = 1 TO N
IF A(I) >= 20 AND A(I) < MIN THEN
MIN = A(I)
ENDIF
NEXT I
PRINT MIN
|
На языке СИ
|
На естественном языке
|
min=100;
for (i=0; i<N; i++) if (a[i]>=20 && a[i]<min) min=a[i]; printf("% d", min);
|
Записываем в переменную MIN начальное значение, равное 100. В цикле от первого элемента до тридцатого сравниваем элементы исходного массива с 20. Если текущий элемент больше или равен 20, то сравниваем значение текущего элемента массива со значением переменной MIN. Если текущий элемент массива меньше MIN, то записываем в MIN значение этого элемента массива. Переходим к следующему элементу.
После завершения цикла выводим значение переменной MIN.
|
Указания по оцениванию
|
Баллы
|
Предложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы.
|
2
|
В любом варианте решения может присутствовать не более одной ошибки из числа следующих:
1) Не инициализируется или неверно инициализируется переменная MIN (например, ей присваивается значение a[1] или число меньшее 100)
2) В сравнении с 20 вместо знака «больше или равно» используется знак «больше».
3) Отсутствует вывод ответа
4) Используется переменная, не объявленная в разделе описания переменных.
5) Не указано или неверно указано условие завершения цикла
6) Индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно.
7) Неверно расставлены операторные скобки.
|
1
|
Ошибок, перечисленных в п. 1-7, две или больше, или алгоритм сформулирован неверно.
|
0
|
Максимальный балл
|
2
|
C3
Два игрока играют в следующую игру. На координатной плоскости стоит фишка. В начале игры фишка находится в точке с координатами (–2,–1). Игроки ходят по очереди. Ход состоит в том, что игрок перемещает фишку из точки с координатами (x,y) в одну из трех точек: (x+3,y), (x,y+4), (x+2,y+2). Игра заканчивается, как только расстояние от фишки до начала координат превысит число 9. Выигрывает игрок, который сделал последний ход. Кто выигрывает при безошибочной игре – игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.
Ответ
:
Содержание верного ответа и указания к оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
|
Выигрывает первый игрок, своим первым ходом он должен поставить фишку в точке с координатами (1,-1). Для доказательства рассмотрим неполное дерево игры, оформленное в виде таблицы, где в каждой ячейке координаты фишки на каждом этапе игры.
1 ход
|
2 ход
|
3 ход
|
4 ход
|
5 ход
|
Позиция
после
перво го хода
|
II-й игрок
(все
варианты хода)
|
I-й игрок (выигрыш ный ход)
|
II-й игрок
(все варианты хода)
|
I-й игрок
(один из вариантов)
|
1,–1
|
3,1
|
5,3
|
8,3
|
5,7
|
7,5
|
1,3
|
4,3
|
7,3
|
|
4,7
|
6,5
|
4,–1
|
4,3
|
Те же варианты третьегочетвертого ходов.
|
Таблица содержит все возможные
варианты ходов второго игрока. Из неё видно, что при любом ответе второго игрока у первого имеется ход, приводящий к победе.
|
Указания по оцениванию
|
Баллы
|
Правильное указание выигрывающего игрока и его ходов со строгим доказательством правильности (с помощью или без помощи дерева игры).
|
3
|
Правильное указание выигрывающего игрока, стратегии игры, приводящей к победе, но при отсутствии доказательства ее правильности.
|
2
|
При наличии в представленном решении одного из пунктов:
1. Правильно указаны все варианты хода первого игрока и возможные ответы второго игрока (в том числе и все выигрышные), но неверно определены дальнейшие действия и неправильно указан победитель.
2. Правильно указан выигрывающий игрок, но описание выигрышной стратегии неполно и рассмотрены несколько (больше одного, но не все) вариантов хода первого игрока и частные случаи ответов второго игрока.
|
1
|
Задание не выполнено или в представленном решении полностью отсутствует описание элементов выигрышной стратегии, и отсутствует анализ вариантов первого-второго ходов играющих (даже при наличии правильного указания выигрывающего игрока).
|
0
|
Максимальный балл
|
3
|
На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.
Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число данных о стоимости бензина. В каждой из последующих N
строк находится информация в следующем формате:
<Компания> <Улица> <Марка> <Цена> где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов, <Улица> – строка, состоящая не более, чем из 20 символов без пробелов, <Марка> – одно из чисел – 92, 95 или 98, <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках. <Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом. Пример входной строки:
Синойл Цветочная 95 2250
Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0. Пример выходных данных:
12 1 0
Ответ
:
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
|
Программа читает все входные данные один раз, не запоминая их в массиве, размер которого соответствует числу АЗС или диапазону цен. Во время чтения данных определяются минимальная цена каждой марки бензина и количество АЗС, продающих его по этой цене. Для этого используются 6 переменных или соответствующие массивы (например, для удобства из 8 элементов каждый, см. программу на языке Бейсик).
Баллы начисляются только за программу, которая решает задачу хотя бы для одного частного случая (например, когда для каждой марки бензина минимальная цена отмечена ровно на одной АЗС).
Ниже приведены примеры решения задания на языках Бейсик и Паскаль. Допускаются решения, записанные на других языках программирования. При оценивании решений на других языках программирования необходимо учитывать особенности этих языков программирования.
|
Пример правильной и эффективной программы на языке Паскаль:
|
var
min, ans: array[92..98] of integer; c: char;
i, k, N, b: integer; begin
for i:=92 to 98 do begin
min[i]:=3001;{допустимо и другое число, >3000} ans[i]:=0; end; readln(N); for i:=1 to N do begin repeat read(c);
until c=' '; {считана компания} repeat read(c);
until c=' '; {считана улица} readln(k,b); if min[k] > b then begin min[k]:=b; ans[k]:=1 end else
if min[k] = b then ans[k]:=ans[k]+1; end;
{если бензина какой-то марки не было, ans[i] осталось равным 0}
writeln(ans[92],' ', ans[95],' ', ans[98]) end.
|
Пример правильной и эффективной программы на языке Бейсик:
|
DIM min(8) AS INTEGER, ans(8) AS INTEGER
DIM s AS STRING FOR i = 2 TO 8 min(i) = 3001 ans(i) = 0 NEXT i
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 i = i + 2
REM Выделим из марки бензина только последнюю цифру
|
k = ASC(MID$(s, i, 1)) - ASC("0") i = i + 2 b = VAL(MID$(s, i)) IF min(k) > b THEN min(k) = b ans(k) = 1
ELSE IF min(k) = b THEN ans(k) = ans(k) + 1
END IF
NEXT j
PRINT ans(2),ans(5),ans(8)
END
|
Указания по оцениванию
|
Баллы
|
Программа работает верно для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве, размер которого соответствует числу N (количество данных мониторинга) или диапазону цен (3000). Программа просматривает входные данные один раз, используя для нахождения ответа два массива из 3-х (8-и) элементов каждый (как в примерах программ) или 6 соответствующих переменных. Допускается наличие в тексте программы одной синтаксической ошибки: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку).
|
4
|
Программа работает верно, но входные данные или только цены запоминаются в массиве, в том числе возможно в массиве (трех массивах) с индексами от 0 до 3000, обозначающем количество АЗС, продающих бензин по соответствующей цене, или входные данные считываются несколько раз. Возможно, вместо алгоритма поиска минимума используется сортировка всех цен. Допускается наличие от одной до трех синтаксических ошибок: Возможно, в принципиально верно организованном вводе данных есть одна ошибка. Три балла также выставляется, если в эффективной программе, удовлетворяющей критериям выставления 4 баллов, есть одна ошибка, в результате которой программа работает не верно на некоторых (не типичных) наборах входных данных (например, все цены на одну из марок бензина равны 3000).
|
3
|
Программа работает в целом верно, эффективно или нет, но, в реализации алгоритма содержатся до двух ошибок (неверная инициализация переменных, в частности значения минимума, возможно программа не верно работает, если минимальное значение равно 3000, выход за границу массива, перевод символов в числа, используется знак “<” вместо “<=”, “or” вместо “and” и т.п.). Возможно, некорректно организовано считывание входных данных. Возможно, не для всех марок бензина ответ находится
|
2
|
верно. Допускается наличие от одной до пяти синтаксических ошибок, описанных выше.
|
Программа, возможно, неверно работает при некоторых входных данных. Возможно, программа не определяет или неверно определяет, что бензина какой-то марки не было. Или минимальная цена марки бензина считается верно, а количество соответствующих АЗС – нет. При использовании сортировки допущены ошибки в ее реализации. Допускается до 4 различных ошибок в реализации алгоритма, в том числе описанных в критериях присвоения двух баллов. Допускается наличие от одной до семи синтаксических ошибок, описанных выше.
|
1
|
Задание не выполнено или выполнено неверно
|
0
|
Максимальный балл
|
4
|
|