Научная статья на тему 'Методические подходы к решению заданий части С2 ЕГЭ по информатике'

Методические подходы к решению заданий части С2 ЕГЭ по информатике Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
442
97
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЕГЭ ПО ИНФОРМАТИКЕ / ПРОГРАММИРОВАНИЕ / ПРОГРАММА НА ЯЗЫКЕ PASCAL / МАССИВ / ЭЛЕМЕНТ МАССИВА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мароченкова Ольга Николаевна

В статье предлагаются методические подходы, используемые при подготовке учащихся к решению заданий части С2 ЕГЭ по информатике. Использование этих подходов поможет учащемуся сделать выбор в пользу задания С2 и облегчит успешное его выполнение. Сформулирован основной принцип предлагаемого методического подхода. Приведены несколько примеров заданий С2 разного плана с разбором решения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Методические подходы к решению заданий части С2 ЕГЭ по информатике»

ИКТ в современной школе

J

Л

Мароченкова Ольга Николаевна

Учитель информатики ГБОУ СОШ № 641 им. С. Есенина г. Москва

E-mail: rachana641@yandex.ru

МЕТОДИЧЕСКИЕ ПОДХОДЫ К РЕШЕНИЮ ЗАДАНИЙ ЧАСТИ С2 ЕГЭ ПО ИНФОРМАТИКЕ

Г

Аннотация. В статье предлагаются методические подходы, используемые при подготовке учащихся к решению заданий части С2 ЕГЭ по информатике. Использование этих подходов поможет учащемуся сделать выбор в пользу задания С2 и облегчит успешное его выполнение. Сформулирован основной принцип предлагаемого методического подхода. Приведены несколько примеров заданий С2 разного плана с разбором решения.

Ключевые слова: ЕГЭ по информатике, программирование, программа на языке Pascal, массив, элемент массива.

ЕГЭ по информатике является необязательным экзаменом, однако многие учащиеся хотели бы в дальнейшем связать свою жизнь с IT-технологиями, а значит, им необходимо будет сдавать экзамен по этому предмету [4,5]. Учитель информатики может рекомендовать учащемуся улучшить свою оценку за экзамен, попробовав свои силы в решении задания С2 из ЕГЭ.

Почему стоит решать это задание из ЕГЭ? Во-первых, есть повод преодолеть свой страх в решении таких задач и попробовать свои силы в формализации несложного словесного задания;

Во-вторых, правильно решив С2, можно заработать 2 балла, удельный вес которых выше по сравнению с заработанными двумя баллами по заданиям из части А и В, и тем самым компенсировать, возможно, неправильно решенные задания «на внимательность» из части А и В;

В-третьих, это дает возможность значительно повысить свой итоговый балл за экзамен.

Теперь непосредственно о методических подходах в подготовке учащихся. Предлагается применить в качестве основного системный подход к решению задания С2 ЕГЭ по информатике. Сначала задание разбивается на отдельные части (компоненты), которые находятся в тесной взаимосвязи друг с другом, потом выявляется единство всех компонентов и все собирается в единое целое.

Задачи типа С2 направлены на обработку массива по некоторым критериям. От учащегося требуется «дописать» программу, приводящую к решению

поставленной задачи. В итоге структура программы должна приобрести следующий вид:

1) Организация ввода данных (уже есть)

2) Инициализация начальных значений некоторых переменных (требуется задать!)

3) Обработка данных (требуется выполнить!)

4) Вывод данных (требуется выполнить!) [2].

Таким образом, работа учащегося сводится к этим

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

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

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

Для успешного выполнения любого задания С2 ЕГЭ по информатике учащиеся должны знать:

• Теорию по одномерным массивам;

• Виды циклических алгоритмов, их особенности;

• Реализацию компьютером всех видов циклов;

• Алгоритмы основных операций обработки элементов одномерного массива;

• Основные ошибки, возникающие при работе с элементами массива.

Эксперимент и инновации в школе 2014/3

7

ИКТ в современной школе

В задании С2 проверяется умение учащегося писать короткую простую программу на 10-15 строк по ее описанию на одном из языков программирования или естественном языке.

Для этого учащиеся должны уметь:

• Описывать, заполнять и распечатывать одномерный массив;

• Реализовывать алгоритмы основных операций с элементами одномерного массива (нахождение суммы, произведения, количества элементов с заданным признаком, максимума, минимума, сортировка, вставка и удаление элементов, и т.д.);

• Оценивать программу с точки зрения возникновения логических ошибок, задавать потоки «критических» данных для тестирования программы;

• Производить трассировку программы с целью обнаружения логических ошибок и устранять их;

• Грамотно и корректно писать программу на одном из языков программирования;

• Выполнять практические вычисления.

Этапы подготовки:

1) Учащиеся должны знать основную теорию по одномерным массивам.

Массив - это ограниченная совокупность однотипных величин, имеющая имя (общее имя всех входящих в него переменных), тип (одинаковый тип для всех компонентов) и тип индексов переменных. Именем массива может быть набор латинских букв и цифр, начинающийся с буквы [3].

Каждая отдельная величина называется элементом массива. Элементы массива пронумерованы. Номера элементов массива называют индексами, а сами элементы массива - индексными переменными (переменной с индексом).

В качестве индексов используются целые числа из интервала, границы которого будем указывать при объявлении массива в квадратных скобках. [1,2]

В программе на языке Pascal в разделе описания переменных массив объявляется следующим образом:

Имя массива: array [начальный индекс.. конечный индекс] of тип.

Массив может состоять как из целых, действительных чисел, так и принимать символьные или строковые значения.

Например: A: array [1.. 10] of real;

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

Массив также можно описать как типизированную константу в разделе описания констант. Список значений элементов массива при этом заключается в круглые скобки.

Пример:

Const x: array [1..5] of integer = (1,3,5,7,9);

Для обращения к элементу массива надо указать имя массива и индекс элемента в массиве: A [10], Mas [0]. Элемент массива, к которому мы обращаемся, является обычной переменной. Естественно ее тип - это тип, который задан в описании массива. С этим элементом допустимо производить все операции, которые возможны над данными этого типа: присваивание, сравнение, ввод, вывод и т.п: A [5]:=3; A [6]:=A [1] +A [10]. Над самими массивами в целом определена единственная операция - присваивания M1:=M2. [1,2]

2) Учащиеся должны уметь вводить и выводить элементы массива.

Для ввода, вывода и обработки массивов применяют циклы, особенно удобен цикл FOR, т.к. номера элементов следуют по порядку с шагом 1. Прежде чем выполнять действия с массивом, его надо заполнить. Значения элементов массива можно задать различными способами: с клавиатуры; с помощью счетчика случайных чисел; присваиванием; а так же можно считывать в массив данные из файлов.

Примеры различных способов заполнения массива из 10 элементов:

VAR A: array [1.. 10] of Integer; i: integer;

1) С клавиатуры: FOR i:=1 TO 10 DO READLN (A [i]);

2) Счетчиком случайных чисел: FOR i:=1 TO 10 DO A [i]:= RANDOM (100);

3) Присваиванием: FOR i:=1 TO 10 DO A [i]:= 2 * i + 1;

Примеры различных способов печати массива

из 10 элементов:

1) Элементы массива выводятся в строчку, через пробел:

FOR i:=1 TO 10 DO WRITE (A [i], « «);

2) Элементы выводятся в столбик: FOR i:=1 TO 10 DO WRITELN (A [i]. [3]

3) Следующим этапом подготовки к выполнению задания ЕГЭ является усвоение различных алгоритмов для обработки элементов массива и овладение навыками по формализации следующих словесных задач. Для этого требуются умения нахождения:

• суммы элементов, в том числе с заданными свойствами;

• произведения элементов, в том числе с заданными свойствами;

• максимума, минимума, среднего арифметического, в том числе среди элементов с заданными свойствами;

• количества элементов с заданными свойствами;

• монотонных последовательностей, определение длины новой последовательности;

• перестановка элементов массива в обратном порядке, смещение элементов массива;

• сортировка массива.

4) Для правильного выполнения задания учащиеся должны знать критерии проверки задания С2.

8

Эксперимент и инновации в школе 2014/3

ИКТ в современной школе

Примеры формализации некоторых типичных для С2 составляющих комбинированного условия:

Примеры комбинированного условия Пример его формального описания для некоторого элемента массива А [i]

принадлежность элемента массива к положительным /отрицательным числам/ неотрицательным числам A [i] >0/ A [i] <0/ A [i] >=0

четность/нечетность A [i] mod 2 =0/ A [i] mod 2 <>0

наличие указанного числа знаков в числе (только однозначное или двузначное) (трехзначное положительное число) (A [i] >=100) and (A [i] <=999)

наличие указанной цифры в конце (начале) числа (последняя цифра числа - 5) A [i] mod 10 =5 (в двузначном числе первая цифра -5) A [i] div 10 =5

делимость на некоторое число (делится на 3 нацело) A [i] mod 3=0

соответствие элемента массива указанному условию (последующий элемент массива больше предыдущего более чем в три раза, поиск элемента массива меньшего по сравнению с соседними) (последующий элемент массива больше предыдущего более чем в три раза) A [i+1] > A [i] *3 (A [i] <A [i-1]) and (A [i] <A [i+1])

массив является/не является палиндромом A [i] =A [N+1 -i] /A [i] <>A [N+1 -i]

переписать элементы массива в обратном порядке For i:=1 to N do M1 [i]:=M2 [N+1 -i]

сдвиг элементов массива на одну позицию вправо P:=A [N]; For i:=N downto 2 do A [i]:=A [i-1]; A [1]:=P;

сумма элементов массива Sum:=0; - записать в раздел инициализации начальных значений Sum:=A [i] +sum; - команда в цикле

Длина возрастающей последовательности элементов массива L:=1; - записать в раздел инициализации начальных значений For i:=1 to N-1 do If A [i+1] >A [i] then L:=L+1

Нахождение максимального/минимального элемента массива imax:=1: max:=A [1]; - (либо присвоить известное самое наи-меньшее/наибольше значение) записать в раздел инициализации начальных значений For i:=2 to N do if A [i] >max then begin imax:=i; max:=A [i]; end;

Сортировка обменом (метод пузырька) For i:=1 to N-1 do begin For j:=1 to N-1 do If A [j] >A [j+1] then begin P:=A [j]; A [j]:=A [j+1]; A [j+1]:=P; End; End;

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

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

Предложено в целом верное решение, содержащее не более одной ошибки из числа следующих

Эксперимент и инновации в школе 2014/3

9

ИКТ в современной школе

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(если одинаковая ошибка повторяется несколько раз, она считается за одну ошибку). Оценивается в 1 балл.

1. Отсутствует инициализация или произведена неверная инициализация счётчика.

2. Неверно определены границы цикла проверки, в результате проверяются не все элементы или происходит выход за границы массива.

3. Не проверяются крайние (первый и/или последний) элементы.

4. Не проверяется или неверно проверяется делимость на заданное число.

5. При проверке на минимум используется нестрогое неравенство вместо строгого.

6. Вместо количества подходящих элементов подсчитывается их сумма.

7. Отсутствует вывод ответа.

8. Используется переменная, не объявленная в разделе описания переменных.

9. Индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно.

Ставится 0 баллов. Не выполнены условия, позволяющие поставить 1 или 2 балла.

5) Практическое применение знаний.

После того, как вышеуказанные навыки будут отработаны, полезно выполнить практикум, составленный из заданий С2 различных лет, тренировочных вариантов ЕГЭ, из сборников по подготовке, заданий, размещенных на сайтах ФИПИ, ВУЗов и т.д.

Пример 1.

Рассмотрим задание С2 от 14 декабря 2012 года Дан массив, содержащий 70 целых чисел. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести наименьшее содержащееся в массиве положительное число, десятичная запись которого оканчивается цифрой 7. Гарантируется, что в массиве есть хотя бы один положительный элемент, десятичная запись которого оканчивается цифрой

7. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них. const N=70; var

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

i, j, m: integer;

begin

for i:=1 to N do readln (a [i]);

end.

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

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

Итак, первый блок программы по Организации ввода данных (уже выполнен).

Следующий шаг инициализация, задание начальных значений.

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

В качестве начального значения минимума принимается значение заведомо не подходящее под заданное ограничение, например 0 [2].

Пример верного ответа:

m:=0;

for i:=1 to N do begin

if (a [i] >0) and (a [i] mod 10 =7) and ((m=0) or (a [i] <m))

then m:=a [i];

end;

writeln (m);

Значение элемента m будет обновляться элементами массива. В итоге найдется наименьшее число. Ответом задачи является значение переменной m.

Пример 2.

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на 9. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не кратно 9, то выведите сообщение «Не найдено». Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Const N = 20;

10

Эксперимент и инновации в школе 2014/3

ИКТ в современной школе

Var a: array [1..N] of integer;

i, j, max: integer;

begin

for i:= 1 to N do readln (a [i]);

end.

Объявляем массив A из 20 элементов.

Объявляем целочисленные переменные i, j, max.

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

Содержание верного ответа max:= 99;

Начальное значение переменной max:=99 назначено заведомо не отвечающее заданным условиям.

for i:= 1 to N do

if (a [i] >=100) and (a [i] <=998) and (a [i] mod 9<>0) and (a [i] >max)

then max:= a [i];

Вывод ответа производится с помощью условия. if max > 99 then writeln (max) else writeln (‘Не найдено');

Пример 3

Дан массив, содержащий 2014 положительных целых чисел. Напишите на одном из языков программирования программу, которая находит в этом массиве количество локальных минимумов, значение которых кратно 3. Локальным минимумом называется элемент массива, который меньше всех своих соседей. Например: в массиве из 6 элементов, содержащем числа 4,6,12,7,3,8, есть 2 локальных минимума: это элементы равные 4 и 3. Программа должна вывести общее количество подходящих элементов, значения элементов выводить не нужно. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

Const N=2014;

Var

a: array [1..N] of integer; i, j, k: integer; begin

for i:=1 to N do

readln (a [i]);

End.

Предлагается следующее решение. k:=0; (начальное значение для счетчика) for i:=2 to N-1 do begin

if (a [i] <a [i-1]) and (a [i] <a [i+1]) and (a [i] mod 3 =0) then k:=k+ 1; end;

(проверяются все элементы кроме первого и последнего элемента массива на предложенное условие)

if (a [1] <a [2]) and (a [1] mod 3 =0) then k:=k+1; (проверяется первый элемент)

if (a [N] <a [N-1]) and (a [N] mod 3 =0) then k:=k+1; (проверяется последний элемент) write (k); (вывод ответа). [3]

Результатом применения данных методических подходов в подготовке учащихся к ЕГЭ по информатике является то, что ученики приобретают умения:

- планировать свою собственную деятельность;

- опираясь на свои знания и предоставленные материалы, собирать в единое целое компоненты задания и увязывать их;

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

Литература

1. Грацианова Т. Ю. Программирование в примерах и задачах./ - М.: БИНОМ. Лаборатория знаний, 2013.- 349с.: ил.- (ВМК МГУ - школе).

2. Гидлевский А. В., Кошкарова Т. В. Проблема трудности учебных тестовых заданий // Образование и наука. 2009. № 10.с.13-22

3. Новоселов С. А., Иванова Н. П. Применение средств компьютерной графики при реализации методов эвристического комбинирования. // Инновационные проекты и программы в образовании. 2013. № 6. С.63-67.

4. Золотарюк А. В., Ниматулаев М. М. Проблемы ЕГЭ: новый подход к формированию итоговой оценки школьников. // Муниципальное образование: инновации и эксперимент 2012. № 2.С. 22-24.

5. Шиварев П. В. Система вопросов в аксиологически ориентированной проектной технологии как дидактический инструмент обучения и воспитания (на основе анализа опыта реализации программы Intel «Обучение для будущего») // Образование и наука.2011.№ 2. С. 95-103

Эксперимент и инновации в школе 2014/3

11

i Надоели баннеры? Вы всегда можете отключить рекламу.