Задача к ЕГЭ по информатике на тему «тригонометрия в координатах» №1

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

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

PIC

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

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

|---------|---------------|------------|-----------|---------------------|---------------------------------| |О бласть |У слови е 1    |У словие 2  |Усл овие 3 |П рограм ма вы ведет |О бла сть &#x |         |               |            |           |                     |                                 | |---------|(y-<=--sin(x))-|(y->=—−-x)-|(y->=—0)—|———————|———————————| |A———|—————|————|————|———————|———————————| |B———|—————|————|————|———————|———————————| |C        |               |            |           |                     |                                 | |D———|—————|————|————|———————|———————————| ———————————————————————————————————— » class=»math-display» width=»auto»></center> </p>
<p class= 2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)

1)

|---------|---------------|------------|-----------|---------------------|---------------------------------| |О бласть |У слови е 1    |У словие 2  |Усл овие 3 |П рограм ма вы ведет |О бла сть &#x |         |(y <=  sin(x)) |(y >=  − x) |(y >=  0)  |                     |                                 | |———|—————|————|————|———————|———————————| |A———|д-а————|да———-|да———|при-надлеж-и-т——-|д-а——————————| |B———|д-а————|да———-|да———|при-надлеж-и-т——-|н-ет——————————| |C———|д-а————|да———-|нет———|не-при-надлеж-и-т—-|д-а——————————| |D        |н ет           |— —         |—          |—                    |н ет                             | ———————————————————————————————————— » class=»math-display» width=»auto»></center> </p>
<p class= 2)Возможная доработка:

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

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

Ответ: см. решение
Оцените статью
Я решу все!