Московский городской педагогический университет Математический факультет ОЛИМПИАДА ПО ИНФОРМАТИКЕ. 2006 год УСЛОВИЯ ПРОВЕДЕНИЯ Олимпиада проводится 9 апреля 2006 года в 10.00 часов в помещении Математического факультета Московского городского педагогического университета по адресу: г. Москва, ул. Шереметьевская, д.29. Задание состоит из 6 задач. На выполнение задания дается 3 часа. Задания выполняются на бланках без использования компьютеров. Максимальная оценка, выставляемая за полное выполнение всего задания – 100 баллов. ПРИМЕРНЫЕ КРИТЕРИИ ОЦЕНИВАНИЯ Задача 1. Максимальная оценка за полное решение задачи – 5 баллов. Решение. Так как все числа даны в различных системах счисления, для их сравнения необходимо перевести все числа в одну систему счисления. Например, в двоичную: 1234 = 110112 348 = 111002 2016 = 10000010 или в десятичную: 111012 = 2910 1234 = 2710 348 = 2810 2016 = 3210 Таким образом, заданные числа в порядке возрастания: 1234, 348, 111012, 2016 Критерии оценивания. Получен правильный обоснованный ответ – 5 баллов. Получен обоснованный ответ, но допущена одна ошибка при выписывании чисел в порядке возрастания – 3 балла. Задача 2. Максимальная оценка за полное решение задачи – 10 баллов. Решение. 2 x 2 (бит) 8 y 5 ( Кбайт) 2 y 1 2 ( Мбайт) 16 x 3 (бит) 2 x 2 (бит) 2 3( y 5) 210 2 3 (бит) 2 y 1 20 3 2 2 2 (бит) 2 4 ( x 3) (бит) 2 x 2 (бит) 2 3( y 5) 103 (бит) ( 2 y 1) 203 2 (бит) 2 4 ( x 3) (бит) x 2 3( y 5) 13 2 y 22 4( x 3) x 2 3( y 5) 13 2 y 22 4( x 3) x 3 y 4 y 2 x 17 y 2(3 y 4) 17 y5 y 5 x 11 Ответ: x = 11, y = 5. Критерии оценивания. Правильно переведены Мбайты и Кбайты в биты. Уравнения выражены через степень с основанием степени равным 2. Приведение системы показательных уравнений к системе двух уравнений с двумя переменными. Решение системы одним из методов и получение правильного решения – 8-10 баллов. Правильно переведены Мбайты и Кбайты в биты. Уравнения выражены через степень с основанием степени равным 2. Приведение системы показательных уравнений к системе двух уравнений с двумя переменными – 6-7 баллов. Правильно переведены Мбайты и Кбайты в биты. Уравнения выражены через степень с основанием степени равным 2 – 4-5 баллов. Правильно переведены Мбайты и Кбайты в биты – 1-3 баллов. Задача 3. Максимальная оценка за полное решение задачи – 10 баллов. Решение. Системное программное обеспечение (ПО) – обеспечивает целостное функционирование компьютера. Необходимо для корректного функционирования прикладного программного обеспечения, управления режимами работы и настройки аппаратного обеспечения. К системному ПО относятся: - операционная система (ОС) - комплекс программ, управляющих устройствами компьютера, файловой системой, диалогом с пользователем; - сервисное ПО - программы обслуживания дисков, контролирующие и диагностирующие программы, архиваторы, антивирусы. Прикладное программное обеспечение предназначено для непосредственного решения пользовательских (прикладных) задач. К прикладному ПО относятся: - прикладные программы общего назначения - текстовые, графические, звуковые редакторы и процессоры, СУБД, табличные процессоры, игры; - прикладные программы специального назначения - математические пакеты, САПР, бухгалтерские пакеты, экспертные системы, педагогические программные средства. Общие черты системного и прикладного программного обеспечения в том, что все эти программы позволяют пользователю использовать компьютер для решения разнообразных задач. Критерии оценивания. Ответ учащегося, записанный в произвольной форме, содержит корректное определение и общие черты системного и прикладного программного обеспечения – 13 баллов. В ответе перечислены программы, входящие в состав системного и прикладного программного обеспечения – 1-3 балла. Дан развернутый ответ, содержащий дополнительные сведения, определения, примеры, рисунки и т.п. – 1-2 балла. Корректность, грамотность и логичность изложения – 1-2 балла. При определении итогового балла за выполнение задачи суммируются баллы, выставленные по вышеотмеченным критериям. Задача 4. Оценка за полное решение задачи – 15 баллов. Решение. х = div(n, m)*(n – m) + 1, где div — операция целочисленного целения. Рассуждения: так как при n < m имеем: div(n, m) = 0, а при n = m: n – m = 0, то число х, которое будем выводить, может быть определено следующим образом: х = div(n, m)*(n – m) + 1. Тогда если n m, то будет выведено 1, иначе – другое число. Возможными правильными решениями являются также х = (n div (m+1)) + 1, х = n-m + abs(n-m) + 1, где abs - взятие модуля. Критерии оценивания. Разработан фрагмент программы, решающий поставленную задачу во всех случаях – 14-15 баллов. Разработан фрагмент программы, решающий поставленную задачу не во всех случаях – 6-10 баллов. Задача 5. Оценка за полное решение задачи – 25 баллов. Решение. Основные этапы решения задачи: 1) определение номера “тройки” цифр, в которую входит заданная k–я цифра; этот номер (n) может быть найден, например, так: n = (k + 2) div 3, где div — операция целочисленного целения; 2) нахождение трехзначного числа m, образованного соответствующей “тройкой” цифр: m = 100 + n; 3) определение в найденном трехзначном числе m искомой цифры. На школьном алгоритмическом языке соответствующий фрагмент программы имеет вид: если mod(k, 3) = 0 |число k кратно трем | то |искомая цифра х равна последней цифре числа m | x := mod(m, 10) | иначе | если mod(k, 3) = 1 |k — одно из чисел 1, 4, 7, … | | то | | x := 1 |первая цифра каждой “тройки“ — 1 | | иначе |k — одно из чисел 2, 5, 8, …, | | |т.е. искомая цифра равна средней цифре числа m | | x := mod(div(m, 10), 10) | все все Критерии оценивания. Разработана программа, решающая поставленную задачу во всех случаях – 20-25 баллов. Разработана программа, решающая поставленную задачу не во всех случаях – 15-19 баллов. Составлен только корректный алгоритм решения задачи – 5-10 баллов. Задача 6. Оценка за полное решение задачи – 35 баллов. Решение. Приводится текст программы, решающей поставленную задачу. program Key; var n, i, sum, dif, invNum: Integer; str: String; begin readLn(n); i:=0; sum:=0; str:=''; while sum < n do begin i:=i+1; str:=str + '+'; sum:=sum+i; end; dif:=sum-n; if dif <> 0 then begin invNum:= dif div 2; if invNum>0 then str[invNum]:='-'; sum:=sum-2*invNum; if (dif mod 2) > 0 then begin str:=str+'+-'; i:=i+2; sum:=sum-1; end; end; writeLn(i); writeLn(str); end. Критерии оценивания. Разработана программа, решающая поставленную задачу во всех случаях – 30-35 баллов. Разработана программа, решающая поставленную задачу не во всех случаях – 20-25 баллов. Составлен только корректный алгоритм решения задачи – 15-19 баллов.