Информатика. ЕГЭ. Задачи части С. C1 (повышенный уровень, время – 30 мин) Тема: Исправление ошибок в простой программе с условными операторами.

Презентация:



Advertisements
Похожие презентации
Подготовка к ЕГЭ (С 4) Обработка данных, вводимых в виде символьных строк или последовательности чисел.
Advertisements

Апрель - май 2011 г. Выполнил : Шамов Сергей Ученик 11 б класса МОУ ФСОШ 2 « с углубленным изучение отдельных предметов » Апрель - май 2011 г. Задания.
ЕДИННЫЙ ГОСУДАРСТВЕННЫЙ ЭКЗАМЕН Часть С демо-варианта 2009.
Методика решения и оценивания задач «С1», «С2» Единого Государственного Экзамена.
Ключевая тема этого задания ЕГЭ – использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой»
ЕГЭ информатика Алгоритмизация и программирование Консультация 3.
Задания сЗадания сТребовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у - действительные.
Решение заданий части С Подготовка к ЕГЭ по информатике.
ЕГЭ 2012 Информатика и ИКТ Консультация 3. Пример.
Разбор заданий ЕГЭ Типичные задания С1. Содержание Задача С1 варианта 1 и другие типичные задачиС1 варианта 1 другие типичные задачи Задача С1 варианта.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Методика решения и оценивания задач части «С» Единого Государственного Экзамена Информатика Ульяновск, 2009 г.
ЕГЭ 2012 Информатика и ИКТ Консультация 4ЕГЭ 2012 Информатика и ИКТ Консультация 4.
Методика решения и оценивания задач части «С» Единого Государственного Экзамена Информатика Ульяновск, 2009 г.
Сайт для подготовки к ЕГЭ: kpolyakov.narod.ru Презентация будет выложена на сайте elschool11.ru ученикам – информатика –Подготовка к ЕГЭ (внизу странички)
Методические рекомендации по решению задач части С.
ПОДГОТОВКА К СДАЧЕ ЕДИНОГО ГОСУДАРСТВЕННОГО ЭКЗАМЕНА Часть С Автор-составитель - Демержеева Т.В.
Результаты ГИА по информатике Ульяновск, ЕГЭ Участников 507 Пороговый балл - 40 Доля участников, не преодолевших «минимальный порог» (%) Доля участников,
ЕГЭ 2011 Информатика и ИКТ Консультация 3 18 марта.
ЕГЭ информатика Алгоритмизация и программирование Консультация 4.
Транксрипт:

Информатика. ЕГЭ. Задачи части С

C1 (повышенный уровень, время – 30 мин) Тема: Исправление ошибок в простой программе с условными операторами.

Что нужно знать: правила построения программы на Паскале, Бэйсике или Си правила работы с переменными (объявление, ввод, вывод, оператор присваивания) ветвление – это выбор одного из двух возможных вариантов действий в зависимости от того, выполняется ли некоторое условие;

Пример задания: Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она: var x,y: real; begin readln(x,y); if y <= 1 then if x >= 0 then if y >= sin(x) then write('принадлежит') else write('не принадлежит') end. Последовательно выполните следующее: 1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. 2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы.

За что снимают баллы: неправильно определены входные данные, при которых исходная программа работает неверно исправлены не все ошибки в программе, например, легко «просмотреть», что необходимо еще условие программа работает правильно в большем количестве случаев, чем исходная, но не для всех возможных исходных данных перепутаны знаки, логические операции or и and неверно расставлены операторные скобки begin-end синтаксические ошибки (знаки пунктуации – запятые, точки, точки с запятой; неверное написание ключевых слов); чтобы получить 3 балла, нужно при абсолютно правильном решении сделать не более одной синтаксической ошибки; на 2 балла – до двух ошибок, на 1 балл – до трех ошибок

Задание С2 Тема: Обработка массива Цель задания: Умение написать короткую (10-15 строк) простую программу обработки массива на языке программирования или записать алгоритм на естественном языке. Время на решение: 30 минут.

Что нужно знать определение массива и правил его объявления (одномерного и двумерного); правила обращения к элементам массива по индексу; использование операторов цикла for, while, repeat для обработки массива основные функции обработки одномерных массивов (подсчет суммы элементов массива, подсчет количества элементов массива, поиск максимального и минимального элементов и их местоположения, сортировка массива) основные функции обработки двумерных массивов (обработка отдельных строк и столбцов, подсчет суммы элементов массива, подсчет количества элементов массива, поиск максимального и минимального элементов и их местоположения)

Возможные проблемы в задачах С2 проверьте, что будет записано в переменные до начала цикла (определены ли их начальные значения) проверяйте, не выйдет ли индекс за границу массива в начале или в конце цикла будьте внимательны с «крайними» случаями, например, нужно обязательно убедиться, что программа работает, когда интересующая нас цепочка стоит в самом начале или в самом конце массива

Критерии оценивания С2 Задание С2 относится к высокому уровню сложности. За решение этого задания можно получить два балла. По содержанию проверяет умение формально описывать известный (изученный в школе) алгоритм на естественном языке или на языке программирования.

За что снимают баллы: задано неверное начальное значение переменных (или вообще не задано) неверно указано условие завершения цикла «забыли» изменять переменную цикла в цикле while (repeat) перепутаны знаки, логические операции or и and неверно расставлены операторные скобки begin-end программа не выводит результат или выводит не то, что спрашивают синтаксические ошибки (знаки пунктуации – запятые, точки, точки с запятой; неверное написание ключевых слов) допускаются в разумных пределах (если они не искажают замысел автора)

Замечания по оцениванию С2 Ответ может быть представлен в виде текста на русском языке, алгоритма на псевдокоде, блок-схемы, программы на языке программирования Описывать алгоритм ввода данных в массив не требуется Для естественного языка возможно использование не вполне четких формулировок при существовании правильной интерпретации высказывания Не разрешается использовать стандартные процедуры и функции из библиотек (кроме функций чтения и записи) Эффективность алгоритма не оценивается За синтаксические ошибки, способ записи (отступы, прописные/строчные буквы), качество изображения графических элементов баллы не снимаются.

Задание С3 Тема: Дерево игры. Поиск выигрышной стратегии. Цель задания: Умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию Время на решение: 30 минут.

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

Критерии оценивания С3 Для получения максимального бала за эту задачу необходимо выполнить три условия: Сказать какой игрок выиграет Каков должен быть первый ход этого игрока Доказать достоверность своих утверждений, например построить дерево ходов и проанализировать его.

За что снимают баллы: если вы правильно указали выигрывающего игрока, но не привели никакого обоснования, эксперт поставит 0 баллов не описана стратегия выигрывающего игрока (как именно ему нужно ходить) не проведен полный анализ возможных ходов обоих игроков (рассмотрены не все случаи ответных ходов)

Замечания по оцениванию С3 Доказательство выигрышности стратегии может быть представлено в любой форме Указание выигрывающего игрока без выигрышного хода не оценивается Если существует две (или более выигрышных стратегий) и ученик нашел только одну из них, то решение задачи засчитывается как полное Если есть все дерево, но нет анализа, то балл не ставится

C4 (высокий уровень, время – 60 мин) Тема: Обработка данных, вводимых в виде символьных строк (написать программу средней сложности из строк).

На вход программе подается набор символов, заканчивающийся точкой (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка, или считывать данные из файла). Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая сначала будет определять, есть ли в этом наборе символы, соответствующие десятичным цифрам. Если такие символы есть, то можно ли переставить их так, чтобы полученное число было симметричным (читалось одинаково как слева направо, так и справа налево). Ведущих нулей в числе быть не должно, исключение – число 0, запись которого содержит ровно один ноль. Если требуемое число составить невозможно, то программа должна вывести на экран слово «NO». А если возможно, то в первой строке следует вывести слово «YES», а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы: Do not 911 to 09 do. В данном случае программа должна вывести YES 91019

Этапы создания программы Анализ условия Выбор алгоритма решения и языка программирования для его реализации Выбор алгоритма решения и языка программирования для его реализации Написание программы Отладка и тестирование программы

Анализ условия Формат входных данных Назначение программы Формат выходных данных Дополнительные условия и рекомендации программисту

Формат входных данных На вход программе подается набор символов, заканчивающийся точкой.

Назначение программы Программа сначала будет определять, есть ли в этом наборе символы, соответствующие десятичным цифрам. Если такие символы есть, то определить, можно ли переставить их так, чтобы полученное число было симметричным (читалось одинаково как слева направо, так и справа налево). Ведущих нулей в числе быть не должно, исключение – число 0, запись которого содержит ровно один ноль.

Формат выходных данных Если требуемое число составить невозможно, то программа должна вывести на экран слово «NO». А если возможно, то в первой строке следует вывести слово «YES», а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы: Do not 911 to 09 do. В данном случае программа должна вывести YES 91019

Дополнительные условия и рекомендации программисту Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0)эффективную

Эффективная по используемой памяти программа не должна содержать лишних выделений памяти, размер которых пропорционален N – объему входных данных, или некоторой функции от N.

Выбор алгоритма решения и языка программирования для его реализации Ввести строку Посчитать количество каждой из цифр в строке Определить, можно ли составить симметричное число из этих цифр Да, если лишь одна из цифр встречается нечетное число раз; в строке символов встретилась только цифра «0», причем один раз Нет, если среди символов нет цифр; в строке несколько цифр встречаются нечетное число раз; в строке символов встретилась только цифра «0», причем более одного раза Составить число и вывести его на экран

var a:array['0'..'9'] of integer; c, c_odd: char; i, k: integer; f: boolean; begin for c:='0' to '9' do a[c]:=0; read(с); {читаем первый символ строки} while c<>'.' do begin if c in ['0'.. '9'] then a[c] := a[c] + 1; read(c); end;

k := 0; {количество цифр, встречающихся нечетное число раз} for c := '0' to '9' do if a[c] mod 2 = 1 then begin k := k + 1; c_odd := c end; f := (a['0'] = 1); for c := '1' to '9' do if (a[c] > 1) or (a[c] = 1) and (a['0'] = 0) then f := true;

if (k > 1)or not f then writeln('NO') else begin writeln('YES'); for c := '9' downto '0' do for i := 1 to a[c] div 2 do write(c); if k = 1 then write(c_odd); for c := '0' to '9' do for i := 1 to a[c] div 2 do write(c); end end.

Тестирование ввести строку, в которой нет цифр ввести строку, в которой есть только один «0» ввести строку, в которой несколько нулей ввести строку, в которой четное число цифр ввести строку в которой одна цифра встречается нечетное число раз ввести строку, в которой несколько цифр встречаются нечетное число раз

За что снимают баллы: входные данные запоминаются в массиве символов или строке или считываются несколько раз программа работает неверно при некоторых входных данных неэффективность алгоритма: используется несколько проходов по массиву, когда достаточно одного лишний расход памяти ( используются дополнительные массивы или размер массива определен неверно) переменная не описана или описана неверно переменным не присвоены нужные начальные значения (например, не обнуляются счетчики) или присвоены неверные значения

За что снимают баллы: нет вывода результата в конце программы перепутаны знаки, логические операции or и and применяется недопустимая операция, например, div или mod для вещественных чисел неверно расставлены операторные скобки begin-end в цикле for используется вещественная переменная (Паскаль) в цикле while или repeat не изменяется переменная цикла, из-за чего происходит зацикливание синтаксические ошибки (знаки пунктуации – запятые, точки, точки с запятой; неверное написание ключевых слов); чтобы получить 4 балла, при абсолютно верном решении нужно сделать не более одной синтаксической ошибки; на 3 балла – до трех ошибок, на 2 балла – до пяти и на 1 балл – до семи ошибок

Список используемых источников Сайт Константина Полякова Материалы для подготовки к ЕГЭ Демонстрационные варианты ЕГЭ