1. Сивцова И. Н. учитель информатики МОУ СОШ № 7 «ОЦ» с углубленным изучением отдельных предметов ПРАКТИКУМ ПО ВЫПОЛНЕНИЮ ЗАДАНИЙ ТИПА С1 ЕГЭ ПО ИНФОРМАТИКЕ Семинар «ЕГЭ и ГИА 2010: итоги, анализ, перспективы развития технологий объективной оценки результатов» секция «Информатика» 2010-2011 учебный год
2. Часть С состоит из четырех заданий. Для выполнения заданий этой части необходимо написать развернутый ответ в произвольной форме . Задание С1 относится к повышенному уровню сложности. Задания этого типа проверяют знание программирования с использованием условного оператора и различных его разновидностей, они требуют от учащихся внимания ( «найти лишнюю часть», «добавить недостающую часть» ), простейших знаний языков программирования и логических функций, а так же умения решать алгебраические уравнения и неравенства, находить область допустимых значений.
3. Как правило, требуется выполнить три задания: 1) Привести примеры входных данных, при которых данная программа неверно решает поставленную задачу; 2) Указать, какая часть программы является лишней; 3) Доработать программу, чтобы не было случаев её неправильной работы, причем можно указать любой способ доработки исходной программы (иногда встречаются ограничения, например, не использовать логические операции AND и / или OR ).
4. Рекомендуется: - Решить задачу математически; - Самостоятельно запрограммировать задачу; - Искать расхождения с представленным вариантом решения и придумывать тестовые примеры, при которых программа будет работать неправильно. Советы экспертов
5. При решении задания: - Выяснить цель программы; - Не тратить время на анализ и сравнение всех трёх вариантов программы на разных языках; - Не искать синтаксические ошибки, то есть ошибки в написании служебных слов языка программирования или в расстановке разделительных знаков. Ошибки только в логике алгоритма! - Составить блок-схему программы, она позволяет абстрагироваться от конкретного языка программирования и сосредоточиться на анализе алгоритма
6. Все встреченные мной в тренировочных материалах задачи можно условно разделить на следующие группы: 1. Работа с числами: - найти максимальное (минимальное) из трёх чисел; - определить, лежит ли число Х между числами А и В. 2. Решение уравнения (неравенства): - ах 2 +bx+c=0; - a|x|+b=0; - ax-b=0 ; - (x+a)/(bx<0; - ax+b>0. 3 . Определение принадлежности точки заштрихованной области. 4. Определение дня недели для произвольного дня месяца.
7.
8.
9. В представленном исходном варианте происходит сужение области, следовательно программа будет выдавать неверный результат, например, при х=2 и y=2 - - - + + + принадлежит y<=x y<=-x y>=x*x-2 не принадлежит
10. Необходимо разбиение области на две части прямой х=0, тогда возможная доработка будет выглядеть, например, так: If (x>=0) and (y>=x*x-2) and (y<=x) or (x<=0) and (y>=x*x-2) and (y<=-x) then write (‘ принадлежит ’) else write (‘ не принадлежит ’)
11.
12. a=0 b=0 x – любое b ≠0 решений нет а≠0 b=0 x=0 b ≠0 если а и b одного знака, то решений нет a|x|+b=0 -a|x|-b=0 a|x|=-b -a|x|=b решение есть только в том случае, если а и b – числа с разными знаками, то есть a*b<0 или a/b<0 или b/a<0 Ответ на первый вопрос: исходная программа выдает неверное решение, например, при a=3, b=3.
13. Рассмотрев все частные случаи решения уравнения, делаем вывод, что программа обязательно должна проверять, являются ли ненулевые а и b числами с разными знаками.
14. Требовалось написать программу, которая находит максимальное среди чисел х, у, z , введённых с клавиатуры. Все числа считаются целыми и неравными друг другу. Решением программы должно быть сообщение вида «максимальное х». Программист торопился и написал программу неправильно. Последовательно выполните три задания: 1) приведите примеры таких чисел х, у, z , при которых программа неверно решает поставленную задачу; 2) укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы); 3) укажите, как нужно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и/или or и нельзя использовать дополнительные переменные. var x, y, z: integer; begin readln(x, y, z); if (x<y) and (y>z) then writeln (‘y’) else writeln (‘z’); if (x>y) and (z<x) then writeln (‘x’) else writeln (‘z’); end.
15. Проведя анализ, замечаем, что исходная программа выдает неверный результат во всех случаях, когда z не является наибольшим числом. 1. Приведите примеры таких чисел х, у, z , при которых программа неверно решает поставленную задачу 2 1 3 1 2 3 1 3 2 2 3 1 3 1 2 3 2 1 z y x
16. 2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы). begin readln(x,y,z); if (x<y) and (y>z) then writeln('max=y'); if (x>y) and (z<x) then writeln('max=x'); If (z>x) and (z>y) then writeln('max=z'); end.
17. 3. Укажите, как нужно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и/или or и нельзя использовать дополнительные переменные. - - - + + + x>y y<z x>z x max y max z max z max
18. 3. Укажите, как нужно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и/или or и нельзя использовать дополнительные переменные. begin readln(x,y,z); if x>y then begin if x>z then writeln('max=x') else writeln('max=z') end else begin if y<z then writeln('max=z') else writeln( 'max=y') end; end.
19. РЕЗУЛЬТАТЫ ЕГЭ 2008 / 2009 УЧЕБНОГО ГОДА (учитель Сивцова И. Н.) 59 % № Изучение предмета С1 1 базовый+элективный курс «Программирование» 3 (3) 2 базовый+элективный курс «Программирование» 3 (3) 3 базовый+элективный курс «Программирование» 2 (3) 4 базовый+элективный курс «Программирование» 0 (3) 5 профильный 0 (3) 6 профильный 0 (3) 7 профильный 2 (3)
20. РЕЗУЛЬТАТЫ ЕГЭ 2009 / 2010 УЧЕБНОГО ГОДА (учитель Сивцова И. Н.) 66 % № Изучение предмета С1 1 базовый+элективный курс «Программирование» 2 (3) 2 базовый+элективный курс «Программирование» 2 (3) 3 базовый 0 (3)