LOGO ЕГЭ. Информатика Рекомендации по выполнению заданий блока С (С2) Учитель информатики МОУ гимназии 1 Красакова О.Н. Новокуйбышевск, 2011 г.
Задание С2 относится к высокому уровню сложности. На выполнение задания отводится 30 минут. За правильное выполнение задания можно получить два балла. По содержанию проверяется умение написать короткую простую программу обработки массива (10-15 строк) на языке программирования или записать алгоритм на естественном языке.
Знания и умения Для выполнения задания С2 необходимо знать: Что такое массив. (Массив – это упорядоченный набор однотипных элементов, имеющих общее имя). Одномерные, двумерные массивы (матрицы). Способы обращения элементам массива, (A[i], A[i,j]) Понятие цикла, вложенного цикла.
Знания и умения Для выполнения задания С2 необходимо знать: каждая строка матрицы – это обычный (одномерный, линейный) массив; для того, чтобы обработать строку Х в матрице из M столбцов, нужно использовать цикл, в котором меняется номер столбца k: for j:=1 to M do begin Элемент массива обозначается в цикле A[X,j] end; каждый столбец матрицы – это обычный (одномерный, линейный) массив; для того, чтобы обработать столбец k в матрице из N строк, нужно использовать цикл, в котором изменяется номер строки i: for i:=1 to N do begin Элемент массива обозначается в цикле A[i,X] end;
Знания и умения Для выполнения задания С2 необходимо уметь: находить сумму элементов массива, удовлетворяющих заданному условию; находить нахождение наибольшего или наименьшего элемента массива (строки, столбца); находить нахождение среднего арифметического элемента; сортировать по возрастанию или убыванию; проверять упорядоченности массива.
Типичные ошибки неверная организация ввода-вывода данных; неверный тип данных; в организации работы циклов (неверное определение граничных значений счетчиков циклов); учащихся не знакомы с массивами и решают задачу, используя просто входную последовательность чисел; не выполнена инициализация переменных у учащихся (не заданы или неверно заданы первоначальные значения переменных, например, при поиске максимального (минимального) элемента массива). в организации работы с массивами (выход за пределы массива при организации циклов); в расстановке операторных скобок. неверное описание переменных (массивов).
Задание 1 (Демонстрационный вариант 2011 г.). Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 1 до Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит среднее арифметическое всех элементов массива, имеющих нечётное значение. Гарантируется, что хотя бы один такое элемент в массиве есть. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них. В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Выполнение задания 1 Среднее арифметическое – это сумма всех нужных элементов, деленная на их количество. Для нечетных элементов остаток от деления на 2 равен 1, поэтому условие выглядит так: if a[i] mod 2 = 1 then begin... Значит, нам нужно использовать переменных: счетчик найденных элементов и сумму; обе переменные сначала необходимо обнулить. Затем надо пройти в цикле весь массив, и если очередной элемент при делении на 2 дает остаток 1, увеличить счетчик на 1, а сумму – на значение этого элемента. Затем считаем среднее как отношение суммы к количеству. Поскольку сказано, что хотя бы один такой элемент есть, можно не опасаться деления на ноль.
Выполнение задания 1 Пример решения на естественном языке. Записываем в переменные x и y нулевые значения. В цикле перебираем значения переменной i от 1 до N. Если очередной элемент при делении на 2 дает в остатке 1, увеличиваем счетчик x на 1 и сумму y – на значение этого элемента. После окончания цикла записываем в переменную s результат деления y на x. Выводим значение переменной s.
Выполнение задания 1 Пример правильного решения на Паскале. const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(a[i]); x:=0; y:=0; for i:=1 to N do if a[i] mod 2 = 1 then begin x := x + 1; y := y + a[i]; end; s := y / x; writeln(s); end.
Задание 2 Опишите на русском языке или одном из языков программирования алгоритм подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов.
Выполнение задания 2 Пример решения экзаменуемого: Комментарий: При первом проходе по массиву определяется максимум, при втором проходе подсчитывается количество вхождений максимума. Неэффективный алгоритм (двойной проход по массиву) и мелкие огрехи в синтаксисе не делают решение неверным.
Выполнение задания 2 Пример решения экзаменуемого: Комментарий: Возможно при условии конкретизации действий «Заведем переменную для максимума. Будем сравнивать ее со всеми элементами массива» В ответе не описана инициализация переменной для поиска максимума. Согласно критериям оценивания должен быть выставлен 1 балл, так как алгоритм сформулирован с недочетом. Заведем переменную для максимума. Будем сравнивать ее со всеми элементами массива. Если её значение будет меньше элемента массива, то присваиваем ей значение этого элемента.. После этого, заводим еще одну переменную-счетчик, обнуляем её, последовательно просматриваем весь массив и увеличиваем счетчик по числу элементов, равных значению максимума..
Выполнение задания 2 Пример правильного решения const N = 30; var a:array[1..N] of integer; Max, Num, i: integer; begin Max := a[1]; Num := 1; for i := 2 to N do if a[i] > Max then begin Max := a[i]; Num := 1 end else if a[i] = Max then Num := Num + 1; writeln(Num) end.
Возможные варианты задач С2 Поиск минимального или максимального значения: поиск максимального (минимального) элемента в строке (в столбце); поиск номера максимального (минимального) элемента; вычисления суммы максимальных (минимальных) элементов из каждой строки (столбца); вычисление суммы элементов строки, в которой расположен элемент с максимальным значением; поиск строки (столбца) с наибольшей (наименьшей) суммой элементов; подсчет числа элементов, равных максимальному; поиск (двух) трех последовательных элементов, сумма которых максимальна; номера первого из двух последовательных элементов в целочисленном массиве, сумма которых максимальна; нахождение и вывод суммы наибольшей возрастающей последовательности подряд идущих элементов; нахождение и вывод второго максимума массива (элемент, который в отсортированном по невозрастанию массиве стоял бы вторым). Нахождение среднего арифметического: нахождение среднего арифметического элементов, удовлетворяющих условию (все четные, нечетные, кратные 5, оканчивающиеся на 5 и т.д.); нахождение номера элемента массива, наименее отличающегося от среднего арифметического всех его элементов.
Издания, рекомендованные ФИПИ ЕГЭ-2011: Информатика / ФИПИ авторы-составители: Якушкин П.А., Ушаков Д.М.– М.: Астрель, ГИА Экзамен в новой форме. Информатика. 9 класс/ ФИПИ авторы- составители: Кириенко Д.П., Осипов П.О., Чернов А.В. - М.: Астрель, ЕГЭ. Информатика. Тематические тестовые задания/ФИПИ авторы: Крылов С.С., Ушаков Д.М. – М.: Экзамен, Единый государственный экзамен Информатика. Универсальные материалы для подготовки учащихся / ФИПИ авторы-составители: Якушкин П.А., Крылов С.С., Лещинер В.Р. – М.: Интеллект-Центр, 2010.
LOGO