Transcript
Page 1: практикум по выполнению блока с (с1)

Сивцова И. Н.учитель информатикиМОУ СОШ № 7 «ОЦ» с углубленным изучением отдельных предметов

ПРАКТИКУМ ПО ВЫПОЛНЕНИЮ ЗАДАНИЙ ТИПА С1

ЕГЭ ПО ИНФОРМАТИКЕ

Семинар «ЕГЭ и ГИА 2010: итоги, анализ, перспективы развития технологий объективной оценки результатов»

секция «Информатика»

2010-2011 учебный год

Page 2: практикум по выполнению блока с (с1)

Часть С состоит из четырех заданий. Для выполнения заданий этой части необходимо написать развернутый ответ в произвольной форме.

Задание С1 относится к повышенному уровню сложности.

Задания этого типа проверяют знание программирования с

использованием условного оператора и различных его

разновидностей, они требуют от учащихся внимания («найти

лишнюю часть», «добавить недостающую часть»), простейших

знаний языков программирования и логических функций, а так же

умения решать алгебраические уравнения и неравенства, находить

область допустимых значений.

Page 3: практикум по выполнению блока с (с1)

Как правило, требуется выполнить три задания:

1) Привести примеры входных данных, при которых данная программа неверно решает поставленную задачу;

2) Указать, какая часть программы является лишней;

3) Доработать программу, чтобы не было случаев её неправильной работы, причем можно указать любой способ доработки исходной программы (иногда встречаются ограничения, например, не использовать логические операции AND и/или OR).

Page 4: практикум по выполнению блока с (с1)

Рекомендуется:

- Решить задачу математически;

- Самостоятельно запрограммировать задачу;

- Искать расхождения с представленным вариантом решения и придумывать тестовые примеры, при которых программа будет работать неправильно.

Советы экспертов

Page 5: практикум по выполнению блока с (с1)

При решении задания:

- Выяснить цель программы;

- Не тратить время на анализ и сравнение всех трёх вариантов программы на разных языках;

- Не искать синтаксические ошибки, то есть ошибки в написании служебных слов языка программирования или в расстановке разделительных знаков. Ошибки только в логике алгоритма!

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

Page 6: практикум по выполнению блока с (с1)

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

1. Работа с числами:

- найти максимальное (минимальное) из трёх чисел;

- определить, лежит ли число Х между числами А и В.

2. Решение уравнения (неравенства):

- ах2+bx+c=0;

- a|x|+b=0;

- ax-b=0;

- (x+a)/(bx<0;

- ax+b>0.

3. Определение принадлежности точки заштрихованной области.

4. Определение дня недели для произвольного дня месяца.

Page 7: практикум по выполнению блока с (с1)
Page 8: практикум по выполнению блока с (с1)

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

var x,y:real;beginreadln (x,y);If y<=x thenIf y<=-x thenIf y>=x*x-2 thenwrite (‘принадлежит’)elsewrite (‘не принадлежит’)end.

Последовательно выполните следующее:

1) Приведите примеры таких чисел X, Y, при которых программа неправильно решает поставленную задачу;

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

Page 9: практикум по выполнению блока с (с1)

-

-

- +

+

+

принадлежит

y<=x

y<=-x

y>=x*x-2

не принадлежит

В представленном исходном варианте происходит сужение области, следовательно программа будет выдавать неверный результат, например, при х=2 и y=2

Page 10: практикум по выполнению блока с (с1)

Необходимо разбиение области на две части прямой х=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 (‘не принадлежит’)

Page 11: практикум по выполнению блока с (с1)

Требовалось написать программу, которая решает уравнение а|x|+b=0 относительно х для любых чисел а и b, введённых с клавиатуры. Все числа считаются целыми. Программист торопился и написал программу неправильно.

Последовательно выполните три задания:

1) приведите примеры таких чисел a, b, x, при которых программа неверно решает поставленную задачу;

2) укажите, какая часть программы является лишней;

3) укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

var x, a, b: integer;beginreadln(x, a, b);if a=0then if b=0then write (‘x любое’)else write(‘нет решения’)else if b=0then write (‘x=0’)else write (‘x=’, b div a,’ или x=’,-b div a);end.

Page 12: практикум по выполнению блока с (с1)

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.

Page 13: практикум по выполнению блока с (с1)

Рассмотрев все частные случаи решения уравнения, делаем вывод, что программа обязательно должна проверять, являются ли ненулевые а и b числами с разными знаками.

Page 14: практикум по выполнению блока с (с1)

Требовалось написать программу, которая находит максимальное среди чисел х, у, z, введённых с клавиатуры. Все числа считаются целыми и неравными друг другу. Решением программы должно быть сообщение вида «максимальное х». Программист торопился и написал программу неправильно.

Последовательно выполните три задания:1) приведите примеры таких чисел х, у, z, при которых программа неверно решает поставленную задачу;2) укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы);3) укажите, как нужно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и/или or и нельзя использовать дополнительные переменные.

var x, y, z: integer;beginreadln(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.

Page 15: практикум по выполнению блока с (с1)

x y z

1 2 3

2 1 3

1 3 2

2 3 1

3 1 2

3 2 1

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

1. Приведите примеры таких чисел х, у, z, при которых программа неверно решает поставленную задачу

Page 16: практикум по выполнению блока с (с1)

2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

beginreadln(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.

Page 17: практикум по выполнению блока с (с1)

3. Укажите, как нужно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и/или or и нельзя использовать дополнительные переменные.

--

-

+ +

+x>y

y<z x>z

x maxy max z max z max

Page 18: практикум по выполнению блока с (с1)

3. Укажите, как нужно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и/или or и нельзя использовать дополнительные переменные.

beginreadln(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.

Page 19: практикум по выполнению блока с (с1)

РЕЗУЛЬТАТЫ ЕГЭ 2008/2009 УЧЕБНОГО ГОДА

(учитель Сивцова И. Н.)

№ Изучение предмета С1

1 базовый+элективный курс «Программирование» 3 (3)

2 базовый+элективный курс «Программирование» 3 (3)

3 базовый+элективный курс «Программирование» 2 (3)

4 базовый+элективный курс «Программирование» 0 (3)

5 профильный 0 (3)

6 профильный 0 (3)

7 профильный 2 (3)

59 %

Page 20: практикум по выполнению блока с (с1)

РЕЗУЛЬТАТЫ ЕГЭ 2009/2010 УЧЕБНОГО ГОДА

(учитель Сивцова И. Н.)

№ Изучение предмета С1

1 базовый+элективный курс «Программирование» 2 (3)

2 базовый+элективный курс «Программирование» 2 (3)

3 базовый 0 (3)

66 %

Page 21: практикум по выполнению блока с (с1)

Используемая литература:

1. С. С. Крылов, Единый государственный экзамен. Учебно-тренировочные материалы для подготовки учащихся. Информатика 2007: «Интеллект-Центр», 2007

2. Единый государственный экзамен. Учебно-тренировочные материалы для подготовки учащихся. Информатика 2008: «Интеллект-Центр», 2007

3. Л. С. Зеленко, Е. В. Сопченко, Информатика: готовимся к ЕГЭ. 2008. тренировочные материалы: ООО «Офорт», 2008

4. И. Ю. Гусева, Информатика. ЕГЭ. Раздаточный материал тренировочных тестов. 2008: ТРИГОН, 2008

5. С. С. Крылов, Единый государственный экзамен. Учебно-тренировочные материалы для подготовки учащихся. Информатика 2009 2010 2011: «Интеллект-Центр», 2009

6. П. Я. Якушкин, Д. М. Ушаков, Самое полное издание типовых вариантов реальных заданий ЕГЭ. 2010. информатика: АСТ Астрель, 2010


Recommended