Разбор заданий ЕГЭ Типичные задания С1
Содержание Задача С1 варианта 1 и другие типичные задачиС1 варианта 1 другие типичные задачи Задача С1 варианта 2 и другие типичные задачиС1 варианта 2 другие типичные задачи Перечень задач Задача 1 Задача 2 Задача 3 Задача 4 Задача 5 Задача 6 Задача 7
Формулировка задачи С1 Требовалось написать программу, которая определяет, лежит ли точка А(х0, у0) внутри треугольной области, ограниченной осями координат и прямой у=2– х («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе области, недопустим). В результате программа должна выводить соответствующее текстовое сообщение. Программист торопился и написал программу неправильно. Вариант 1 Задача 1
Текст приведенной программы ПРОГРАММА НА ПАСКАЛЕ var х0,у0,у: real; begin readln(x0,у0); if х0 0 then begin y:=2 – x0; if y0
Формулировка задания Последовательно выполните три задания: 1)Приведите пример таких чисел x0 и y0, при которых программа неверно решает поставленную задачу. 2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы). 3) Укажите, как нужно доработать программу, чтобы она содержала логические операции AND или OR.
Пример решения Для более детального разбора задания построим демонстрационный чертеж Y=2-X 2 2 Программа должна проверять попадание точки в заштрихованную область Опишем условие попадания точки с координатами (X 0,Y 0 ) : 1)X 0 >0 2)Y 0 >0 3)Y 0 < 2-X 0 На Паскале можно записать: (X0>0) and (Y0>0) and (Y0< 2-X0) x y
Анализ текста приведенной программы показывает, что в ней условие Y0>0 заменено на условие X0
Кроме того, чтобы проверить одновременное выполнение трех условий при использовании вложенных ветвлений необходимо, чтобы все они были полными. А ветвление с условием X0
Текст правильной программы с использованием AND ПРОГРАММА НА ПАСКАЛЕ var х0,у0: real; begin readln(x0,у0); if (X0>0) and (Y0>0) and (Y0< 2-X0) then writeln ('точка лежит внутри области') else writeln ('точка не лежит внутри области'); end.
Исправленный текст программы мог бы выглядеть так: ПРОГРАММА НА ПАСКАЛЕ var х0,у0,у: real; begin readln(x0,у0); if Y0>0 then begin if x0> 0 then begin y:=2 – x0; if y0
Задача 2
Содержание верного ответа Элементы ответа: 1)Пример: x=3, y=0,5 (или любая пара (x,y), для которой выполняется (y>=sin x и x>π/2 и y
Указания по оцениванию Баллы Обратите внимание! В задаче требовалось выполнить три действия: указать пример входных данных, при которых программа работает неверно, и исправить две ошибки: 1. Неправильное использование условного оператора, в результате чего при невыполнении первого или второго условия программа не выдавала ничего (отсутствуют случаи ELSE). 2. Приведенным трем ограничениям удовлетворяют также те точки плоскости, у которых (y>=sin x и x>=π/2 и y=sin x и x>π/2 и y=sin(x) then write('принадлежит') else write('не принадлежит') else write('не принадлежит') else write('не принадлежит') При этом в сданной работе допускается не более двух синтаксических ошибок (пропущен или неверно указан знак пунктуации, не- верно написано зарезервированное слово языка программирования) 2 Правильно выполнен только один пункт задания. То есть, только приведен пример входных данных, либо он не приведен, но имеется программа, корректно работающая при большем количестве входных данных, чем исходная. При этом, если приведена программа, то в ней допускается не более трех синтаксических ошибок (пропущен или неверно указан знак пунктуации, неверно написано зарезервированное слово языка программирования) 1 Все пункты задания выполнены неверно (пример входных данных не указан или указан неверно, программа не приведена, либо приведенная программа корректно работает в не большем количестве случаев, чем исходная) 0 Максимальный балл 3 Демонстрационный вариант ЕГЭ 2009 г. ИНФОРМАТИКА, 11 класс.
Решите самостоятельно Задача 3
Решите самостоятельно Задача 4
Формулировка задачи С1 Требовалось написать программу, которая решает уравнение «ax 2 +bx+c=0» относительно x для любых чисел a, b и c, введенных с клавиатуры, о которых заведомо известно, что a0, b0, c0. Программист торопился и написал программу неправильно. Формулировка задачи С1 Вариант 2 Задача 5
Текст приведенной программы ПРОГРАММА НА ПАСКАЛЕ var a,b,c,d,x1,x2: real; begin readln(a,b,c,x1,x2); d:=b*b-4*a*c; if d > 0 then begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); write ('x1=',x1); write ('x2=',x2); end else writeln ('действительных корней нет'); end.
Последовательно выполните три задания: 1)Приведите пример таких чисел a, b, с, при которых программа неверно решает поставленную задачу. 2) Укажите, какая часть программы является лишней. 3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы). Формулировка задания
Содержание верного ответа Элементы ответа: 1) a = 1, b = 2, с = 1 – программа сообщит: 'действительных корней нет, тогда как при этих данных дискриминант равен 0, и X1=X2=-1 2) Лишняя часть: не нужно вводить x1 и x2 с клавиатуры. Верно: readln(a,b,c); 3) Возможная доработка: readln(a,b,c); d:=b*b-4*a*c; if d >= 0 then begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); write ('x1=',x1); write ('x2=',x2); end else writeln ('действительных корней нет');
Указания по оцениванию Указания по оцениваниюБаллы Правильно выполнены все 3 пункта задания, при этом в работе (во фрагментах программ) допускается не более одной синтаксической ошибки) 3 Правильно выполнены 2 пункта задания. При этом в сданной работе допускается не более двух синтаксических ошибок (пропущен или неверно указан знак пунктуации, неверно написано зарезервированное слово языка программирования)2 Правильно выполнен только один пункт задания, при этом если это был п.3), то в нем допускается не более трех синтаксических ошибок (пропущен или неверно указан знак пунктуации, неверно написано зарезервированное слово языка программирования)1 Все пункты задания выполнены неверно0 Максимальный балл3
Требовалось написать программу, которая решает уравнение «ax+b=0» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно. ПРОГРАММА НА ПАСКАЛЕ var a, b, x: real; Begin readln(a,b,x); if b = 0 then write('x = 0') else if a = 0 then write('нет решений') else write('x =',-b/a); end. Решите самостоятельно Задача 6
Последовательно выполните три задания: 1)Приведите пример таких чисел a, b, x, при которых программа работает неправильно. 2) Укажите, какая часть программы является лишней. 3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы). Формулировка задания
Решите самостоятельно Требовалось написать программу, в которой нужно было проверить, лежит ли число х на числовой оси - между числами а и b ("между" понимается в строгом смысле, т, е. случай х = а или х = b недопустим). Числа х, а, b являются натуральными, и известно, что а отлично от b (но неизвестно: а > b или b > а). Входная информация вводится с клавиатуры, а на выходе должно быть сообщение вида "х между а и b" (если это действительно так), в противном случае никакой выходной информации не выдается. Программист торопился и написал программу некорректно. Задача 7
VAR a,b,x: integer; р: integer; BEGIN readln(a,b,x) ; if (a>x) AND (x>b) then writeln('x между a,b'); END. Последовательно выполните три задания: 1. Приведите пример таких чисел а, b, х, при которых программа работает неправильно. 2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы.) 3. Укажите, как можно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and или or.
Использованы материалы Сафронов И.К. Готовимся к ЕГЭ ИНФОРМАТИКА. 2-е издание – Спб.: БХВ-Петербург, 2009 Сафронов И.К. Готовимся к ЕГЭ ИНФОРМАТИКА.– Спб.: БХВ-Петербург, 2007 Самылкина Н.Н. и др. Готовимся к ЕГЭ по информатике. Элективный курс: учебное пособие. – М.: Бином. Лаборатория знаний, 2008