Задача №4918

Задания C1 по информатике с ответами

Поиск задачи:

Здесь представлено решение задачи по информатике. Если у вас возникли сложности в решении то вы можете воспользоваться ответами которые размещены на данной странице. Вы конечно можете не согласиться с ответами, но данная информация размещена с целью ознакомления. Списывать с ответов или решать самому выбирать вам. Данная задача по теме ЕГЭ
Решение задачи:

Уважаемые посетители сайта, если вы не согласны с той информацией которая представлена на данной странице или считаете ее не правильной, не стоит попросту тратить свое время на написание негативных высказываний, вы можете помочь друг другу, для этого присылайте в комментарии свое "правильное" решение и мы его скорее всего опубликуем.

Условие задачи:


Задания C1 по информатике
1. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x, y – действительные числа) и
определяется принадлежность этой точки заданной заштрихованной области
(включая границы). Область ограничена осями координат и прямыми y = 3 – 2x и x
= 3 – 2y. Программист торопился и написал программу неправильно.
ПРОГРАММА
НА ПАСКАЛЕ
var x,y: real;
begin
readln(x,y);
if x>=0 then
if y>=0 then
if y<=3-2*x then
if x<=3-2*y then
write('принадлежит')
else
write('не принадлежит')
end.
ПРОГРАММА
НА БЕЙСИКЕ
INPUT x, y
IF x>=0 THEN
IF y>=0 THEN
IF y<=3-2*x THEN
IF x<=3-2*y THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
END
ПРОГРАММА
НА СИ
void main(void) {
float x,y;
scanf("%f%f",&x,&y);
if (x>=0)
if (y>=0)
if (y<=3-2*x)
if (x<=3-2*y)
printf("принадлежит");
else
printf("не принадлежит");
}

Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неправильно решает
поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами, поэтому можно
указать любой правильный способ доработки исходной программы).
1) Пример: x=2, y=2 (Любая пара (x,y), для которой выполняется x<0 или y<0
или y>3–2x или x>3–2y.
2) Возможная доработка (Паскаль):
if (x>=0) and (y>=0) and ((y<=3-2*x) or (x<=3-2*y))then
write('принадлежит')
else
write('не принадлежит')
Могут быть и другие верные способы доработки.
Указания по оцениванию Балл
Обратите внимание! В задаче требовалось выполнить три действия:
указать пример входных данных, при которых программа работает
неверно, и исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего
при невыполнении первого, второго или третьего условия программа не
выдавала ничего (отсутствуют случаи ELSE).
2. Приведенным трем ограничениям не удовлетворяют точки плоскости,
у которых (x≥0) и (y≥0) и (x≤3–2y) и (y>3–2x), а также точки, у которых
(x≥0) и (y≥0) и (y≤3–2x) и (x>3–2y).
Правильно выполнены все три действия. Исправлены обе ошибки.
В работе (во фрагментах программ) допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора решения
3
Правильно выполнены два действия из трех (исправлены обе ошибки,
но не указан/неправильно указан пример требуемых входных данных,
либо правильно указан пример входных данных, программа правильно
работает при большем числе случаев, чем исходная, но не при всех).
При этом не допускается, чтобы программа неправильно работала
при тех входных данных, при которых раньше работала правильно.
ИСКЛЮЧЕНИЕ! При написании операций сравнения допускается
одно неправильное использование строгих/нестрогих неравенств
(считается несущественной ошибкой, погрешностью записи).
Например, вместо "y<=3-2*x" используется "y<3-2*x" (даже если
программа при этом стала неверно работать при тех входных данных,
при которых раньше работала правильно).
2

2. Или выполнены все три действия, но при этом в логическом
выражении неверно учтены приоритеты логических операций (не
расставлены или неправильно расставлены скобки в выражениях).
Правильно выполнено только одно действие из трех.
То есть, либо только приведен пример входных данных, либо он не
приведен (или приведен неверно), но имеется программа, корректно
работающая при большем количестве входных данных, чем исходная,
но не при всех. При оценивании этого задания на 1 балл допускается
не учитывать корректность работы программ на точках границ областей
(вместо нестрогих неравенств в решении были использованы строгие
неравенства, или наоборот).
1
Все пункты задания выполнены неверно (пример входных данных не
указан или указан неверно, программа не приведена, либо приведенная
программа корректно работает в не большем количестве случаев, чем
исходная).
0
Максимальный балл 3

2. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x,y – действительные числа) и
определяется принадлежность этой точки заданной заштрихованной области
(включая границы). Область ограничена осью абсцисс, окружностью x2+y2=2 и
прямой x+y=2. Заданные прямая и окружность касаются в точке x=1, y=1.
Программист торопился и
ПРОГРАММА НА
ПАСКАЛЕ
ПРОГРАММА НА
БЕЙСИКЕ
ПРОГРАММА НА
СИ
var x,y: real;
begin
readln(x,у);
if x*x+y*y>=2 then
If y>=0 then
if x+y<=2 then
write
('принадлежит')
else
write('не
принадлежит')
end.
INPUT x, y
IF x*x+y*y>=2
THEN
IF y>=0 THEN
IF x+y<=2 THEN
PRINT
"принадлежит"
ELSE
PRINT "не
принадлежит"
ENDIF
ENDIF
ENDIF END
void main(void)
{ float x,y;
scanf("%f%
f",&x,&y);
if (x*x+y*y>=2)
if (y>=0)
if (x+y<=2)
printf
("принадлежит");
else
printf("не
принадлежит");
}
1) Приведите пример таких чисел x, y, при которых программа
неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев
ее неправильной работы. (Это можно сделать несколькими способами,
достаточно указать любой способ доработки исходной программы).

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Элементы ответа:
Пример: x= 0, y= 0 (Любая пара (x,y), для которой выполняется:
x2+y2<2 или y<0 или (x+y<=2 и x<1))
Возможная доработка (Паскаль):
if (x*x+y*y>=2) and (y>=0) and (x+y<=2) and (x>=1) then
write('принадлежит') else
write('не принадлежит')
Возможны и другие способы доработки.
Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три действия:
указать пример входных данных, при которых программа работает
неверно и исправить две ошибки:
1. Неправильное использование условного оператора, в результате
чего при невыполнении первого или второго условия программа не
выдавала ничего (отсутствуют случаи ELSE).
2. Приведенным трем ограничениям удовлетворяют также те точки
плоскости, у которых (x2+y2>=2) и (y>=0) и (x+y<=2) и (x<1).
Правильно выполнены оба пункта задания. Исправлены две ошибки.
В работе (во фрагментах программ) допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора решения
3
Правильно выполнены 2 действия из трех (исправлены обе ошибки,
но не указан/неправильно указан пример требуемых входных
данных, либо правильно указан пример входных данных, программа
правильно работает при большем числе случаев, чем исходная, но не
при всех, и, при доработке не возникли точки, в которых исходная
программа работает верно, а доработанная - нет).
Например, если дан правильный ответ на вопрос №1, добавлены
ветки “else” ко всем усливиям “if”, но программа выдает "принадлежит" для
точек, у которых (x2+y2>=2) и (y>=0) и (x+y<=2) и (x<1):
if x*x+y*y>=2 then if y>=0 then if x+y<=2 then
write('принадлежит') else
write('не принадлежит') else
write('не принадлежит') else
write('не принадлежит')
2
Правильно выполнено только одно действие из трёх. То есть, только
приведен пример входных данных, либо он не приведен, но имеется
программа, корректно работающая при большем количестве входных данных,
чем исходная, но не при всех.
1
Все пункты задания выполнены неверно (пример входных данных не
указан или указан неверно, программа не приведена, либо приведенная
программа корректно работает в не большем количестве случаев, чем исходная).
0

3. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x,y – действительные числа) и
определяется принадлежность этой точки заданной заштрихованной области
(включая границы). Область ограничена осями координат, графиком функции
y=tg x и прямой x=1,57. Программист торопился и написал программу
неправильно.
ПРОГРАММА НА
ПАСКАЛЕ
ПРОГРАММА НА
БЕЙСИКЕ
ПРОГРАММА НА
СИ
var x,y: real;
begin
readln(x,у);
if y>=0 then
if x<=1.57 then
if y<=tan(x) then
write
('принадлежит')
else
write('не
принадлежит')
end.
INPUT x, y
IF y>=0 THEN
IF x<=1.57 THEN
IF y<=tan(x)
THEN
PRINT
"принадлежит"
ELSE
PRINT "не
принадлежит"
ENDIF
ENDIF
ENDIF END
void main(void)
{ float x,y;
scanf("%f%
f",&x,&y);
if (y>=0)
if (x<=1.57)
if (y<=tan(x))
printf
("принадлежит");
else
printf("не
принадлежит");
}
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа
неверно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев
ее неправильной работы. (Это можно сделать несколькими способами,

достаточно указать любой способ доработки исходной программы).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его
смысла)
Элементы ответа:
Пример: x= 0, y= -1 (Любая пара (x,y), для которой выполняется: y<0
или x>1.57 или (y<=tg x и x<0))
Возможная доработка (Паскаль):
if (y>=0) and (x<=1.57) and (y<=tan(x)) and (x>=0) then
write('принадлежит') else
write('не принадлежит')
Возможны и другие способы доработки.
Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три действия:
указать пример входных данных, при которых программа работает
неверно и исправить две ошибки:
1. Неправильное использование условного оператора, в результате
чего при невыполнении первого или второго условия программа не
выдавала ничего (отсутствуют случаи ELSE).
2. Приведенным трем ограничениям удовлетворяют также те точки
плоскости, у которых (y<=tg x) и (y>=0) и (x<0).
Правильно выполнены оба пункта задания. Исправлены две ошибки.
В работе (во фрагментах программ) допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора решения.
3
Правильно выполнены 2 действия из трех (исправлены обе ошибки,
но не указан/неправильно указан пример требуемых входных
данных, либо правильно указан пример входных данных, программа
правильно работает при большем числе случаев, чем исходная, но не
при всех, и, при доработке не возникли точки, в которых исходная
программа работает верно, а доработанная - нет).
Например, если дан правильный ответ на вопрос №1, добавлены
ветки “else” ко всем усливиям “if”, но программа выдает "принадлежит" для
точек, у которых (y<=tg x) и (y>=0) и (x<0: if y>=0 then if x<=1.57 then if y<=tan(x)
then
write('принадлежит') else
write('не принадлежит') else
write('не принадлежит') else
write('не принадлежит')
2
Правильно выполнено только одно действие из трёх. То есть, только
приведен пример входных данных, либо он не приведен, но имеется
программа, корректно работающая при большем количестве входных
данных, чем исходная, но не при всех.
1
Все пункты задания выполнены неверно (пример входных данных не
указан или указан неверно, программа не приведена, либо приведенная
программа корректно работает в не большем количестве случаев, чем исходная).
0

4. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x, y – действительные числа) и
определяется принадлежность этой точки заданной закрашенной области
(включая
границы). Область ограничена окружностями , и прямой y = 1. Программист
торопился и написал программу неправильно. Для вычисления модуля числа в
языках Бейсик и Паскаль используется функция abs, в языке Си – функция fabs,
считается, что эти функции не нуждаются в дополнительном объявлении.
ПРОГРАММА НА
ПАСКАЛЕ
ПРОГРАММА НА
БЕЙСИКЕ
ПРОГРАММА НА
СИ
var x,y: real;
begin
readln(x,у);
if y>=0 then
if x<=1.57 then
if y<=tan(x) then
write
('принадлежит')
else
write('не
принадлежит')
end.
INPUT x, y
IF y>=0 THEN
IF x<=1.57 THEN
IF y<=tan(x)
THEN
PRINT
"принадлежит"
ELSE
PRINT "не
принадлежит"
ENDIF
ENDIF
ENDIF END
void main(void)
{float x,y;
scanf("%f%f",&x, &y);
if ((x+1)*(x+1)+y*y>=1)
if ((x-1)*(x-1)+y*y>=1)
if (y<=1)
if (fabs(x)<=1)
printf("принадлежит");
else
printf("не
принадлежит");
}
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неверно решает
поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами, достаточно
указать любой способ доработки исходной программы).

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Элементы ответа:
Пример: x = 0, y = –1.
Ответом является любая пара (x,y), для которой выполняется: (x + 1)2 + y2 < 1 или
(x − 1)2 + y2 < 1 или y > 1 или ( x ≥ –1 и x ≤ 1 и y < 0).
Возможная доработка (Паскаль):
if ((x+1)*(x+1)+y*y>=1) аnd ((x-1)*(x-1)+y*y>=1) and (y<=1) and (abs
(x)<=1) and (y>=0)
then write('принадлежит')
else write('не принадлежит') Возможны и другие способы доработки.
Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три действия: указать
пример входных данных, при которых программа работает неверно и
исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего при
невыполнении первых трёх условий программа не выдавала ничего
(отсутствуют случаи ELSE).
2. Приведенным трем ограничениям удовлетворяют также те точки плоскости, у
которых и и x ≥ –1 и x ≤1 и y < 0, то есть необходимо добавить условие y ≥ 0. (x +
1)2 + y2 ≥1 (x − 1)2 + y2 ≥ 1
3
Правильно выполнены 2 действия из трех (исправлены обе ошибки, но не
указан/неправильно указан пример требуемых входных данных, либо правильно
указан пример входных данных, программа правильно работает при большем
числе случаев, чем исходная, но не при всех, и, при доработке не возникли точки,
в которых исходная программа работает верно, а доработанная – нет).
Например, если дан правильный ответ на вопрос №1, добавлены ветки “else”
ко всем условиям “if”, но программа выдает "принадлежит" для точек, у
которых и и x ≥ –1 и x ≤ 1 и y < 0:
if (x+1)*(x+1)+y*y>=1 then
if (x-1)*(x-1)+y*y>=1 then
if y<=1 then
if abs(x)<=1 then
write('принадлежит')
else write('не принадлежит')
else write('не принадлежит')
else write('не принадлежит')
else write('не принадлежит')
2
Правильно выполнено только одно действие из трёх. То есть, только приведен
пример входных данных, либо он не приведен, но имеется программа, корректно
работающая при большем количестве входных данных, чем исходная, но не при
всех.
1
Все пункты задания выполнены неверно (пример входных данных не указан или
указан неверно, программа не приведена, либо приведенная программа
корректно работает в не большем количестве случаев, чем исходная).
0

5. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x,y – действительные числа) и
определяется принадлежность этой точки заданной закрашенной области
(включая границы). Область ограничена гиперболой xy = 1 и прямыми x = 2 и y = 2.
Программист торопился и написал программу неправильно.
ПРОГРАММА НА
ПАСКАЛЕ
ПРОГРАММА НА
БЕЙСИКЕ
ПРОГРАММА НА
СИ
var x,y: real;
begin
readln(x,у);
if x*y>=1 then
if x<=2 then
if y<=2 then
write('принадлежит')
else
write('не принадлежит')
end.
INPUT x, y
IF x*y>=1 THEN
IF x<=2 THEN
IF y<=2 THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
END
void main(void)
{ float x,y;
scanf("%f%f",&x,&y);
if (x*y>=1)
if (x<=2)
if (y<=2)
printf("принадлежит");
else
printf("не
принадлежит");
}
Последовательно выполните следующее:
1. Приведите пример таких чисел x, y, при которых программа неверно
решает поставленную задачу.
2. Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами,
достаточно указать любой способ доработки исходной программы).

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Элементы ответа:
Пример: x=0, y=0 (Любая пара (x,y), для которой выполняется: xy<1 или x>2 или
(xy≥1 и x<0 и y<0)
Возможная доработка (Паскаль):
if (x*y>=1) and (x<=2) and (y<=2) and (x>0) and (y>0) then
write('принадлежит') else
write('не принадлежит')
Возможны и другие способы доработки.
Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три действия:
указать пример входных данных, при которых программа работает
неверно и исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего
при невыполнении первого или второго условия программа не выдавала
ничего (отсутствуют случаи ELSE).
2. Приведенным трем ограничениям удовлетворяют также те точки III
четверти плоскости, у которых (xy≥1 и x<0 и y<0).
0
Правильно выполнены оба пункта задания. Исправлены две ошибки.
В работе (во фрагментах программ) допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора решения.
3
Правильно выполнены 2 действия из трех (исправлены обе ошибки, но не
указан/неправильно указан пример требуемых входных данных, либо
правильно указан пример входных данных, программа правильно
работает при большем числе случаев, чем исходная, но не при всех, и, при
доработке не возникли точки, в которых исходная программа работает
верно, а доработанная – нет).
Например, если дан правильный ответ на вопрос №1, добавлены ветки
“else” ко всем условиям “if”, но программа выдает "принадлежит" для
точек, у которых (xy≥1) и (x<0) и (y<0):
if x*y>=1 then if x<=2 then if y<=2 then
write('принадлежит') else
write('не принадлежит') else
write('не принадлежит')
2
Правильно выполнено только одно действие из трёх. То есть, только
приведен пример входных данных, либо он не приведен, но имеется
программа, корректно работающая при большем количестве входных
данных, чем исходная, но не при всех.
1
Все пункты задания выполнены неверно (пример входных данных не
указан или указан неверно, программа не приведена, либо приведенная
программа корректно работает в не большем количестве случаев, чем
исходная).
0

6. Требовалось написать программу,при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x,y – действительные числа) и
определяется принадлежность этой точки заданной заштрихованной области
(включая границы). Область ограничена осью абсцисс, прямыми y = 1 и x = π, и
графиком функции y = sin x. Программист торопился и написал программу
неправильно.
ПРОГРАММА НА
ПАСКАЛЕ
ПРОГРАММА НА
БЕЙСИКЕ
ПРОГРАММА НА
СИ
var x,y: real;
begin
readln(x,y);
if y>=0 then
if y<=1 then
if x>=0 then
if x<=3.14 then
if y<=sin(x) then
write('принадлежит')
else
write('не принадлежит')
end.
INPUT x, y
IF y>=0 THEN
IF y<=1 THEN
IF x>=0 THEN
IF x<=3.14 THEN
IF Y<=sin(X) THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
END
void main(void) {
float x,y;
scanf("%f%f",&x,&y);
if (y>=0)
if (y<=1)
if (x>=0)
if (x<=3.14)
if (y<=sin(x))
printf("принадлежит");
else
printf("не
принадлежит");
}
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа
неправильно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами, поэтому можно
указать любой правильный способ доработки исходной программы).

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Решение:
1) Пример: x = 0, y = –1 (Любая пара (x, y), для которой выполняется y < 0 или
y > 1 или x < 0 или x > π или (y > sin x и x > π/2 и x ≤ π).
2) Возможная доработка (Паскаль): if (y>=0) and (y<=1) and (x>=0) and (x<=3.14) and
((y<=sin(x)) or (x>=1.57)) then
write('принадлежит')
else write('не принадлежит')
Возможны и другие верные способы доработки.
Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три действия:
указать пример входных данных, при которых программа работает неверно, и
исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего при
невыполнении первых четырех условий программа не выдавала ничего
(отсутствуют случаи ELSE).
2. Приведенным ограничениям не удовлетворяют точки плоскости, у
которых (x ≥ π/2) и (x ≤ π) и (y > sin x) и (y ≤ 1).
0
Правильно выполнены все три действия. Исправлены обе ошибки. В работе (во
фрагментах программ) допускается наличие отдельных синтаксических ошибок,
не искажающих замысла автора решения
3
Правильно выполнены два действия из трех (исправлены обе ошибки, но не
указан/неправильно указан пример требуемых входных данных, либо правильно
указан пример входных данных, программа правильно работает при большем
числе случаев, чем исходная, но не при всех).
При этом не допускается, чтобы программа неправильно работала при тех
входных данных, при которых раньше работала правильно.
ИСКЛЮЧЕНИЕ! При написании операций сравнения допускается одно
неправильное использование строгих/нестрогих неравенств (считается
несущественной ошибкой, погрешностью записи). Например, вместо "y<=sin(x)"
используется "y<sin(x)" (даже если программа при этом стала неверно работать
при тех входных данных, при которых раньше работала правильно).
2. Или выполнены все три действия, но при этом в логическом выражении
неверно учтены приоритеты логических операций (не расставлены или
неправильно расставлены скобки в выражениях).
2
Правильно выполнено только одно действие из трех.
То есть, либо только приведен пример входных данных, либо он не приведен
(или приведен неверно), но имеется программа, корректно работающая при
большем количестве входных данных, чем исходная, но не при всех. При
оценивании этого задания на 1 балл допускается не учитывать корректность
работы программ на точках границ областей (вместо нестрогих неравенств в
решении были использованы строгие неравенства, или наоборот).
1
Все пункты задания выполнены неверно (пример входных данных не
указан или указан неверно, программа не приведена, либо приведенная
программа корректно работает в не большем количестве случаев, чем исходная).
0

7. Требовалось написать программу,при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x,y – действительные числа) и
определяется принадлежность этой точки заданной заштрихованной области
(включая границы). Область ограничена осью абсцисс, прямыми y = 1 и x = 0, и
графиком функции y = sin x. Программист торопился и написал программу
неправильно.
ПРОГРАММА НА
ПАСКАЛЕ
ПРОГРАММА НА
БЕЙСИКЕ
ПРОГРАММА НА
СИ
var x,y: real;
begin
readln(x,y);
if x>=0 then
if x<=3.14 then
if y<=1 then
if y>=0 then
if y<=sin(x) then
write('принадлежит')
else
write('не принадлежит')
end
INPUT x, y
IF x>=0 THEN
IF x<=3.14 THEN
IF y<=1 THEN
IF y>=0 THEN
IF Y<=sin(X) THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
END
void main(void) {
float x,y;
scanf("%f%f",&x,&y);
if (x>=0)
if (x<=3.14)
if (y<=1)
if (y>=0)
if (y<=sin(x))
printf("принадлежит");
else
printf("не
принадлежит");
}
Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неправильно решает
поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами, поэтому можно
указать любой правильный способ доработки исходной программы).

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Элементы ответа:
1) Пример: x = 0, y = –1 (Любая пара (x, y), для которой выполняется y < 0
или y > 1 или x < 0 или x > π или (y > sin x и x < π/2 и x ≥ 0).
2) Возможная доработка (Паскаль):
if (y>=0) and (y<=1) and (x>=0) and (x<=3.14) and ((y<=sin(x))
or (x<=1.57)) then write('принадлежит')
else
write('не принадлежит')
Возможны и другие верные способы доработки.
Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три действия: указать пример
входных данных, при которых программа работает неверно, и исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего при
невыполнении первых четырех условий программа не выдавала ничего (отсутствуют
случаи ELSE).
2. Приведенным ограничениям не удовлетворяют точки плоскости, у
которых (x ≤ π/2) и (x ≥ 0) и (y > sin x) и (y ≤ 1).
0
Правильно выполнены все три действия. Исправлены обе ошибки. В работе (во
фрагментах программ) допускается наличие отдельных синтаксических ошибок, не
искажающих замысла автора решения
3
Правильно выполнены два действия из трех (исправлены обе ошибки, но не
указан/неправильно указан пример требуемых входных данных, либо правильно указан
пример входных данных, программа правильно работает при большем числе случаев,
чем исходная, но не при всех). При этом не допускается, чтобы программа неправильно
работала при тех входных данных, при которых раньше работала правильно.
ИСКЛЮЧЕНИЕ! При написании операций сравнения допускается одно неправильное
использование строгих/нестрогих неравенств (считается несущественной ошибкой,
погрешностью записи).
Например, вместо "y<=sin(x)" используется "y<sin(x)" (даже если программа при этом
стала неверно работать при тех входных данных, при которых раньше работала
правильно).
2. Или выполнены все три действия, но при этом в логическом выражении неверно
учтены приоритеты логических операций (не расставлены или неправильно расставлены
скобки в выражениях).
2
Правильно выполнено только одно действие из трех.
То есть, либо только приведен пример входных данных, либо он не приведен (или
приведен неверно), но имеется программа, корректно работающая при большем
количестве входных данных, чем исходная, но не при всех. При оценивании этого
задания на 1 балл допускается не учитывать корректность работы программ на точках
границ областей (вместо нестрогих неравенств в решении были использованы строгие
неравенства, или наоборот).
1
Все пункты задания выполнены неверно (пример входных данных не указан или указан
неверно, программа не приведена, либо приведенная программа корректно работает в
не большем количестве случаев, чем исходная).
0

8. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x, y – действительные числа) и
определяется принадлежность этой точки заданной закрашенной области
(включая
границы). Программист торопился и написал программу неправильно.
Бейсик Паскаль
INPUT x, y
IF y<=2-x THEN
IF y>=0 THEN
IF y>=x*x THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
END
Си Алгоритмический язык
void main(void){
float x,y;
scanf("% f % f",&x,&y);
if (y<=2-x)
if (y>=0)
if (y>=x*x)
printf("принадлежит");
else
printf("не принадлежит");
}
алг
нач
вещ x,y
ввод x,y
если y<=2-x то
если y>=0 то
если y>=x*x то
вывод 'принадлежит'
иначе
вывод 'не принадлежит'
все
все
все

Последовательно выполните следующее. 1. Перерисуйте и заполните таблицу,
которая показывает, как работает программа при аргументах, принадлежащих
различным областям (A, B, C, D, E, F,G и H). Точки, лежащие на границах областей,
отдельно не рассматривать.
Область Условие 1
(y<=2-x)
Условие 2
(y>=0)
Условие 3
(y>=x*x)
Программа
выведет
Область
обрабатывается
верно
A
B
C
D
E
F
G
H
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не
выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если
программа ведет себя по-разному для разных значений, принадлежащих данной
области. В столбце "Программа выведет" укажите, что программа выведет на экран.
Если программа ничего не выводит, напишите "—" (прочерк). Если для разных
значений, принадлежащих области, будут выведены разные тексты, напишите «не
изв». В последнем столбце укажите "да" или "нет".

2. Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами, достаточно
указать любой способ доработки исходной программы.)
Элементы ответа:
1.
Область Условие 1
(y<=2-x)
Условие 2
(y>=0)
Условие 3
(y>=x*x)
Программа
выведет
Область
обрабатывается
верно
A Да Да Нет не
принадлежит
Да
B Нет - - - Нет
C Да Да Да принадлежит Да
D Да Да Нет не
принадлежит
Нет
E Нет - - - Нет
F Нет - - - Нет
G Да Нет - - Нет
H Нет - - - Нет
2. Возможная доработка (Паскаль):
if (x<0) and (y<=2-x) and (y>=x*x) or (x>=0) and (y>=0)
and (y<=2-x) then
write('принадлежит')
else
write('не принадлежит')
Возможны и другие способы доработки.
Пример:
if (y<=2-x) and (y>=0) and ((x>0) or (y>=x*x)) then
write('принадлежит')
else
write('не принадлежит')
Обратите внимание! В задаче требовалось выполнить три действия: указать для
каждой области, как будет работать программа, что она выведет на экран и
правильно ли это (в виде таблицы), и исправить две ошибки. Баллы за данное
задание начисляются как сумма баллов за верное выполнение каждого действия.
1. Верное заполнение предложенной таблицы.
2. Неправильное использование условного оператора, в результате чего при
невыполнении первого или второго условия программа не выдавала ничего
(отсутствуют случаи ELSE). Исправлением этой ошибки может быть либо добавление
случая ELSE к каждому условию IF, либо объединение всех условий IF в одно при
помощи конъюнкции.

В сложных случаях это действие считается выполненным, если программа выдает
одно из двух сообщений «принадлежит» или «не принадлежит» для любых чисел x
и y, при этом программа не стала работать хуже, чем раньше, то есть для всех точек,
для которых программа ранее выдавала верный ответ, доработанная программа
также должна выдавать верный ответ.
3. Приведенным трем ограничениям не удовлетворяют точки плоскости, у которых y
< x2, y ≤ 2–x, x > 0. Исправлением этой ошибки может быть разбиение области на
две части и использование дизъюнкции либо отбрасывание от большей области ее
части.
В сложных случаях это действие считается выполненным, если верно определена
закрашенная область, то есть программа выводит сообщение «принадлежит» для
всех точек закрашенной области и только для них, для точек вне закрашенной
области программа выводит «не принадлежит» или не выводит ничего.
Указания по оцениванию Баллы
Правильно выполнены оба пункта задания. Исправлены две ошибки.
Программа для всех пар чисел x, y верно определяет принадлежность
точки закрашенной области. В работе (во фрагментах программ)
допускается наличие отдельных синтаксических ошибок, не искажающих
замысла автора решения.
3
1. Правильно выполнены два действия из трех (исправлены обе ошибки, но
в первом пункте задания не приведена таблица (либо таблица содержит
ошибки в двух и более строках), либо приведена таблица (которая содержит
ошибки не более чем в одной строке), но исправлена только одна ошибка
программы). При написании операций сравнения допускается одно
неправильное использование строгих/нестрогих неравенств (считается
несущественной ошибкой, погрешностью записи). Например, вместо
«y>=0» используется «y>0».
2. Или выполнены все три действия, но при этом в логическом выражении
неверно учтены приоритеты логических операций (не расставлены или
неправильно расставлены скобки в выражениях).
2
Правильно выполнено только одно действие из трех, то есть, либо только
приведена таблица, которая содержит ошибки в не более чем одной строке,
либо таблица не приведена (или приведена и содержит ошибки более чем в
одной строке), но исправлена одна ошибка программы. При оценивании
этого задания на 1 балл допускается не учитывать корректность работы
программ на точках границ областей (вместо нестрогих неравенств в
решении были использованы строгие неравенства или наоборот).
1
Все пункты задания выполнены неверно (таблица анализа правильности
алгоритма не приведена, либо содержит ошибки в двух и более строках,
программа не приведена, либо ни одна из двух ошибок не исправлена).
0
Максимальный балл 3

9. Требовалось написать программу, при выполнении которой с клавиатуры
считываются координаты точки на плоскости (x, y – действительные числа) и
определяется принадлежность этой точки заданной закрашенной области
(включая
границы). Программист торопился и написал программу неправильно.
Бейсик Паскаль
INPUT x, y
IF y<=2+x THEN
IF y>=0 THEN
IF y>=x*x THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
END
var x,y: real;
begin
readln(x,y);
if y<=2+x then
if y>=0 then
if y>=x*x then
write('принадлежит')
else
write('не принадлежит')
end.
Си Алгоритмический язык
void main(void){
float x,y;
scanf("%f%f", &x, &y);
if (y<=2+x)
if (y>=0)
if (y>=x*x)
printf("принадлежит");
else
printf("не принадлежит");
}
алг
нач
вещ x,y
ввод x,y
если y<=2+x то
если y>=0 то
если y>=x*x то
вывод 'принадлежит'
иначе
вывод 'не принадлежит'
все
все
все
кон

Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа
при аргументах, принадлежащих различным областям (A, B, C, D, E, F,G и H).
Точки, лежащие на границах областей, отдельно не рассматривать.
Область Условие 1
(y<=2-x)
Условие 2
(y>=0)
Условие 3
(y>=x*x)
Программа
выведет
Область
обрабатывается
верно
A
B
C
D
E
F
G
H
В столбцах условий укажите "да", если условие выполнится, "нет", если условие не
выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если
программа ведет себя по-разному для разных значений, принадлежащих данной
области. В столбце "Программа выведет" укажите, что программа выведет на экран.
Если программа ничего не выводит, напишите "—" (прочерк). Если для разных
значений, принадлежащих области, будут выведены разные тексты, напишите "не
изв". В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее
неправильной работы. (Это можно сделать несколькими способами, достаточно
указать любой способ доработки исходной программы.)

Область Условие 1
(y<=2-x)
Условие 2
(y>=0)
Условие 3
(y>=x*x)
Программа
выведет
Область
обрабатывается
верно
A Нет - - - Нет
B Нет - - - Нет
C Да Да Нет не
принадлежит
Нет
D Да Да Да
принадлежит
Да
E Нет - - - Нет
F Да ДА Нет не
принадлежит
Да
G Да Нет - - Нет
H Да Нет - - Нет
2. Возможная доработка (Паскаль):
if (x<0) and (y<=2+x) and (y>=0) or (x>=0) and
(y>=x*x) and (y<=2+x) then
write('принадлежит')
else
write('не принадлежит')
Возможны и другие способы доработки.
Пример:
if (y<=2+x) and (y>=0) and ((x<0) or (y>=x*x)) then
write('принадлежит')
else
write('не принадлежит')

Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить три
действия
1. Заполнить таблицу.
2. Исправить ошибку в условном операторе.
3. Исправить ошибку, связанную с тем, что выбран неправильный набор условий.
Баллы за данное задание начисляются как сумма баллов за
верное выполнение каждого действия.
1. Действие по заполнению таблицы считается выполненным, если в таблице нет
ошибок или ошибки присутствуют только в одной строке.
2. Исправление ошибки в условном операторе. Неправильное использование условного
оператора приводит к тому, что при невыполнении первого или второго условия
программа не выдает ничего (отсутствуют случаи ELSE). Исправлением этой ошибки
может быть либо добавление случая ELSE к каждому условию IF, либо объединение
всех условий IF в одно при помощи конъюнкции. В сложных случаях это действие
считается выполненным, если программа выдает одно из двух сообщений
«принадлежит» или «не принадлежит» для любых чисел x
и y, и при этом программа не стала работать хуже, чем раньше, то есть для всех точек,
для которых программа ранее выдавала верный ответ, доработанная программа также
должна выдавать верный ответ.
3. Ошибка при выборе набора условий приводит к тому, что им не удовлетворяют точки
плоскости, у которых y < x2, y ≤ 2–x, x > 0. Исправлением этой ошибки может быть
разбиение области на две части и использование дизъюнкции либо отбрасывание от
большей области ее
части. В сложных случаях это действие считается выполненным, Информатика. 11 класс.
Вариант 1-2 . 5 если верно определена закрашенная область, то есть программа
выводит сообщение «принадлежит» для всех точек закрашенной области и только для
них, для точек вне закрашенной области программа выводит «не принадлежит» или не
выводит ничего.
В работе (во фрагментах программ)допускается наличие отдельных синтаксических
ошибок.
Выполнены все три действия 3
Правильно выполнены два действия из трех (исправлены обе ошибки, но в первом
пункте задания не приведена таблица (либо таблица содержит ошибки в двух и более
строках), либо приведена таблица (которая содержит ошибки не более чем в одной
строке), но исправлена только одна ошибка программы).
При написании операций сравнения допускается одно неправильное использование
строгих/нестрогих неравенств (считается несущественной ошибкой, погрешностью
записи). Например, вместо «y>=0» используется «y>0».
2
Правильно выполнено только одно действие из трех, то есть, либо только приведена
таблица, которая содержит ошибки в не более чем одной строке, либо таблица не
приведена (или приведена и содержит ошибки более чем в одной строке), но
исправлена одна ошибка программы.
При оценивании этого задания на 1 балл допускается не учитывать корректность
работы программ на точках границ областей (вместо нестрогих неравенств в решении
были использованы строгие неравенства или наоборот).
1
Все пункты задания выполнены неверно (таблица анализа правильности алгоритма
не приведена, либо содержит ошибки в двух и более строках, программа не
приведена, либо ни одна из двух ошибок не исправлена).
0
Максимальный балл 3


Категория: по информатике | Добавил: Админ (03.01.2016)
Просмотров: | Теги: ЕГЭ | Рейтинг: 0.0/0


Другие задачи:
Всего комментариев: 0
avatar