Анализируем материалы ЕГЭ по информатике, предложенные Федеральной службой по надзору в сфере образования и науки Российской Федерации в демонстрационном варианте от 2009 г.

 

Попробуем предугадать оценку выпускника 2009 года, решившегося сдать информатику в формате ЕГЭ. Для этого проанализируем несколько заданий из «творческой части» демонстрационных материалов, опубликованных в Интернете Федеральной службой по надзору в сфере образования и науки Российской Федерации.

Часть 3. Задача С1. Чтобы не ошибиться в постановке условия задачи, взглянем на скриншот оригинала:

Скриншот задани ЕГЭ 2009

Предвидеть действия большей части экзаменующихся, столкнувшихся с такой постановкой задачи несложно, поскольку даже начинающий изучать Бейсик, не вникая в суть алгоритма, найдет сразу же три ошибки, так как он твердо знает, что ENDIF следует писать раздельно.
Выпускнику и невдомек, что «программист - торопыга» желал «сделать всего две ошибки» согласно рекомендациям по проверке, а допустил их - целых десять, поэтому он (ученик), просидевший уже полтора часа над частью А и Б, скорее всего, не заметит «подвоха» и не станет анализировать алгоритм, а быстренько перепишет приведенный выше код, исправив трижды ENDIF на END IF, затем приведет пример чисел x,y, при которых программа будет неверно решать поставленную задачу и перейдет ко второму вопросу.
И что же при этом получит за «свою опрометчивость» наш испытуемый? Взглянем на критерии оценивания, откуда «ясно видно», что замеченные и исправленные им три ошибки не будут оценены никоим образом.

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

Возникает извечный вопрос: "Кто виноват?"

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

В данном случае ясно, что нужно проанализировать два интервала: 0<=X<=3,14/2 и SIN(X)<=Y<=1 которые можно записать однозначно: (0<=X) AND (X<=3.14/2) AND (SIN(X)<=Y) AND (Y<=1) откуда и вытекают сами собой правильные ответы на все поставленные вопросы, например:

явно видно, что программа не учитывает тот случай, когда X<=3.14/2 и, кроме того не выведет на печать, что точка "не принадлежит" для всех случаев кроме одного, когда Y>=SIN(X). Если структурировать программу (добавим для наглядности и цвет), то станет очевидным и отсутствие веток ELSE, и операторов печати и т.д. А самое интересное то, что вместо "обещанных в указаниях по оцениванию двух ошибок", их можно будет обнаружить - десять...

INPUT X,Y
IF Y<=1 THEN
__IF X>=0 THEN
_____IF Y>=SIN(X) THEN
_________IF X <=3.14/2 THEN _________REM
ошибка 1 пропущена проверка правой границы для Х
____________PRINT "принадлежит"
_________ELSE
____________PRINT "не принадлежит"
_________END IF
_____ELSE________________________REM
ошибка 2 пропущен оператр ELSE
________PRINT "не принадлежит"
___REM
ошибка 3 пропущен оператор печати
_____END IF
______________________ REM
ошибка 4 ошибка написания ключевого слова
__ELSE __________________________ REM
ошибка 5 пропущен оператор ELSE
_____PRINT "не принадлежит"
______REM
ошибка 6 пропущен оператор печати
__END IF
_________________________ REM
ошибка 7 ошибка написания ключевого слова
ELSE ____________________________ REM
ошибка 8 пропущен оператор ELSE
__PRINT "не принадлежит"
_______ _ REM
ошибка 9 пропущен оператор печати
END IF
_________________________ __REM
ошибка 10 ошибка написания ключевого слова
END

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

a$="принадлежит"
INPUT X,Y
IF (0>X) AND (X>3.14/2) AND (SIN(X)>Y) AND (Y>1) THEN a$="не принадлежит"
PRINT a$

либо такое:

a$="принадлежит"
INPUT X,Y
IF (0>X) AND (X>3.14/2) AND (SIN(X)>Y) AND (Y>1) THEN a$="не "+a$
PRINT a$

или наоборот:

a$="не принадлежит"
INPUT X,Y
IF (0<=X) AND (X<=3.14/2) AND (SIN(X)<=Y) AND (Y<=1) THEN a$="принадлежит"
PRINT a$

и совсем банальное решение:

INPUT X,Y
IF (0<=X) AND (X<=3.14/2) AND (SIN(X)<=Y) AND (Y<=1) THEN
_____PRINT "принадлежит"
ELSE
_____PRINT "не принадлежит"
END IF

и алгоритм представленный ниже тоже отработает правильно

INPUT X,Y
S=3.14/2
Q=SIN(X)
IF 0>X AND X>S AND Q >Y AND Y>1 THEN
_____PRINT "не принадлежит"
ELSE
_____PRINT "принадлежит"
END IF

С первым вопросом вроде бы все понятно поэтому пойдем дальше и предложим экзаменуемому выступить в роли эксперта по проверке работоспособности предложенного алгоритма решения задачи С2, вот ее условие: - показать

Рейтинг@Mail.ru

Copyright © А.Козлов, 2009