Математика ЕГЭ
Русский язык ЕГЭ
Математика 5-7
Математика ОГЭ
Информатика
Физика
Обществознание
Кликните, чтобы открыть меню

(Старый формат ЕГЭ) 24. Программирование – исправление ошибки

1. Вспоминай формулы по каждой теме
2. Решай новые задачи каждый день
3. Вдумчиво разбирай решения

Тригонометрия в координатах

Задание 1 #12704

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y<=sin(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y>=-x:}& \text{int main(void)\{}& \text{if y<=sin(x) then}\\ \quad\quad\text{if y>=0:}& \text{float x,y;}& \quad\text{if y>=-x then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if y>=0 then}\\ \quad\quad\text{else:}& \text{if (y<=sin(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y>=-x)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (y>=0)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=sin(x))&\text(y>=-x)&\text(y>=0)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=sin(x))&\text(y>=-x)&\text(y>=0)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{нет}\\ \hline \text{C}&\text{да}&\text{да}&\text{нет}&\text{не принадлежит}&\text{да}\\ \hline \text{D}&\text{нет}&\text{—-}&\text{—}&\text{—}&\text{нет}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y<=sin(x) and y>=-x and y>=0 and x<=4:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y<=sin(x)) and (y>=-x) and (y>=0) and (x<=4) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y<=sin(x) \&\& y>=-x \&\& y>=0 \&\& x<=4)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение

Задание 2 #12705

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y<=sin(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y>=x-2:}& \text{int main(void)\{}& \text{if y<=sin(x) then}\\ \quad\quad\text{if y>=0:}& \text{float x,y;}& \quad\text{if y>=x-2 then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if y>=0 then}\\ \quad\quad\text{else:}& \text{if (y<=sin(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y>=x-2)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (y>=0)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=sin(x))&\text(y>=x-2)&\text(y>=0)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=sin(x))&\text(y>=x-2)&\text(y>=0)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{нет}\\ \hline \text{C}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \text{D}&\text{нет}&\text{—}&\text{—-}&\text{—}&\text{нет}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y<=sin(x) and y>=x-2 and y>=0 and x>=0:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y<=sin(x)) and (y>=x-2) and (y>=0) and (x>=0) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y<=sin(x) \&\& y>=x-2 \&\& y>=0 \&\& x>=0)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение

Задание 3 #12706

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y>=sin(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y>=-x-2:}& \text{int main(void)\{}& \text{if y>=sin(x) then}\\ \quad\quad\text{if y<=0:}& \text{float x,y;}& \quad\text{if y>=-x-2 then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if y<=0 then}\\ \quad\quad\text{else:}& \text{if (y>=sin(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y>=-x-2)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (y<=0)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y>=sin(x))&\text(y>=-x-2)&\text(y<=0)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y>=sin(x))&\text(y>=-x-2)&\text(y<=0)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \text{C}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{нет}\\ \hline \text{D}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y>=sin(x) and y>=-x-2 and y<=0 and x<=0:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y>=sin(x)) and (y>=-x-2) and (y<=0) and (x<=0) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y>=sin(x) \&\& y>=-x-2 \&\& y<=0 \&\& x<=0)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение

Задание 4 #12707

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y<=sin(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y>=-1:}& \text{int main(void)\{}& \text{if y<=sin(x) then}\\ \quad\quad\text{if y<=0:}& \text{float x,y;}& \quad\text{if y>=-1 then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if y<=0 then}\\ \quad\quad\text{else:}& \text{if (y<=sin(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y>=-1)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (y<=0)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=sin(x))&\text(y>=-1)&\text(y<=0)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=sin(x))&\text(y>=-1)&\text(y<=0)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{да}&\text{не изв.}&\text{не изв.}&\text{не изв.}&\text{нет}\\ \hline \text{C}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \text{D}&\text{да}&\text{да}&\text{нет}&\text{не принадлежит}&\text{да}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y<=sin(x) and y>=-1 and y<=0 and x>=-Pi/2 and x<=3*Pi/2:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y<=sin(x)) and (y>=-1) and (y<=0) and (x>=-Pi/2) and (x<=3*Pi/2) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y<=sin(x) \&\& y>=-1 \&\& y<=0 \&\& x>=-Pi/2 \&\& x<=3*Pi/2)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение

Задание 5 #12708

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y<=cos(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y>=-x:}& \text{int main(void)\{}& \text{if y<=cos(x) then}\\ \quad\quad\text{if y>=0:}& \text{float x,y;}& \quad\text{if y>=-x then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if y>=0 then}\\ \quad\quad\text{else:}& \text{if (y<=cos(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y>=-x)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (y>=0)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=cos(x))&\text(y>=-x)&\text(y>=0)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y<=cos(x))&\text(y>=-x)&\text(y>=0)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{нет}\\ \hline \text{C}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \text{D}&\text{да}&\text{да}&\text{нет}&\text{не принадлежит}&\text{да}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y<=cos(x) and y>=-x and y>=0 and x<=4:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y<=cos(x)) and (y>=-x) and (y>=0) and (x<=4) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y<=cos(x) \&\& y>=-x \&\& y>=0 \&\& x<=4)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение

Задание 6 #12709

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y>=cos(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y>=-x+2:}& \text{int main(void)\{}& \text{if y>=cos(x) then}\\ \quad\quad\text{if y<=0:}& \text{float x,y;}& \quad\text{if y>=-x+2 then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if y<=0 then}\\ \quad\quad\text{else:}& \text{if (y>=cos(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y>=-x+2)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (y<=0)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y>=cos(x))&\text(y>=-x+2)&\text(y<=0)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y>=cos(x))&\text(y>=-x+2)&\text(y<=0)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \text{C}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{нет}\\ \hline \text{D}&\text{да}&\text{да}&\text{нет}&\text{не принадлежит}&\text{да}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y>=cos(x) and y>=-x+2 and y<=0 and x<=7:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y>=cos(x)) and (y>=-x+2) and (y<=0) and (x<=7) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y>=cos(x) \&\& y>=-x+2 \&\& y<=0 \&\& x<=7)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение

Задание 7 #12710

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

\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}& \text{\#include <iostream>}& \text{var x,y: real;}\\ \text{y = float(input())}& \text{using namespace std;}& \text{begin}\\ \text{if y>=cos(x):}& \text{}& \text{readln(x,y);}\\ \quad\text{if y<=0:}& \text{int main(void)\{}& \text{if y>=cos(x) then}\\ \quad\quad\text{if x<=2.5:}& \text{float x,y;}& \quad\text{if y<=0 then}\\ \quad\quad\quad\text{print("принадлежит")}& \text{cin}>>\text{x}>>\text{y;}& \quad\quad\text{if x<=2.5 then}\\ \quad\quad\text{else:}& \text{if (y>=cos(x))}& \quad\quad\quad\text{write('принадлежит')}\\ \quad\quad\quad\text{print("не принадлежит")}& \quad\text{if (y<=0)}& \quad\quad\text{else}\\ \text{}& \quad\quad\text{if (x<=2.5)}& \quad\quad\quad\text{write('не принадлежит')}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"принадлежит";}& \text{end.}\\ \text{}& \quad\quad\text{else}& \text{}\\ \text{}& \quad\quad\quad\text{cout}<<\text{"не принадлежит";}& \text{}\\ \text{}& \text{\}}& \text{}\\ \hline \end{array}\]

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите “да”, если условие выполнится, “нет”, если условие не выполнится, “—” (прочерк), если условие не будет проверяться, “не изв.”, если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце “Программа выведет” укажите, что программа выведет на экран. Если программа ничего не выводит, напишите “—” (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите “не изв”. В последнем столбце укажите “да” или “нет”.

\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y>=cos(x))&\text(y<=0)&\text(x<=2.5)&&\\ \hline \text{A}&&&&&\\ \hline \text{B}&&&&&\\ \hline \text{C}&&&&&\\ \hline \text{D}&&&&&\\ \hline \end{array}\]

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

1)
\[\begin{array}{|l|l|l|l|l|l|} \hline \text{Область} & \text{Условие 1}&\text{Условие 2}&\text{Условие 3}&\text{Программа выведет}&\text{Область обрабатывается верно}\\ &\text(y>=cos(x))&\text(y<=0)&\text(x<=2.5)&&\\ \hline \text{A}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{да}\\ \hline \text{B}&\text{да}&\text{да}&\text{да}&\text{принадлежит}&\text{нет}\\ \hline \text{C}&\text{да}&\text{нет}&\text{—}&\text{—}&\text{нет}\\ \hline \text{D}&\text{нет}&\text{—}&\text{—}&\text{—}&\text{нет}\\ \hline \end{array}\]

2)Возможная доработка:
\[\begin{array}{|l|l|l|} \hline \text{Python} & \text{C++}&\text{Pascal}\\ \hline \text{x = float(input())}&\text{\#include <iostream>}&\text{var x,y: real;}\\ \text{y = float(input())}&\text{using namespace std;}&\text{begin}\\ \text{if y>=cos(x) and y<=0 and x>=0 and x<=2.5:}&\text{}&\text{readln(x,y);}\\ \quad\text{print("принадлежит")}&\text{int main(void)\{}&\text{if (y>=cos(x)) and (y<=0) and (x>=0) and (x<=2.5) then}\\ \text{else:}&\text{float x,y;}&\quad\text{write('принадлежит')}\\ \quad\text{print("не принадлежит")}&\text{cin}>>\text{x}>>\text{y;}&\text{else}\\ \text{}&\text{if (y>=cos(x) \&\& y<=0 \&\& x>=0 \&\& x<=2.5)}&\quad\text{write('не принадлежит')}\\ \text{}&\quad\text{cout}<<\text{"принадлежит";}&\text{end.}\\ \text{}&\text{else}&\quad\quad\quad\text{}\\ \text{}&\quad\text{cout}<<\text{"не принадлежит";}&\text{}\\ \text{}&\text{\}}&\text{}\\ \hline \end{array}\]

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

Ответ: см. решение