Задача к ЕГЭ по информатике на тему «тригонометрия в координатах» №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 -2:                    |int main(void){                     |if y<=sin (x) then                | |    if y >=0:                    |float x,y;                           |   if y>=x  -2 then                | |       print("п ринад леж ит")    |cin >>  x >>  y;                    |     if y>=0  then                | |    else:                        |if (y<=sin (x ))                     |       write(’прин адлеж ит’)    | |                                 |                                    |                                 | |       print("н е п ринад леж ит")|  if (y>=x -2)                      |     else                         | |                                 |     if (y>=0 )                      |       write(’не прин адлеж ит’) | |                                 |       cout <<  "при надл ежи т";   |end.                             | |                                 |     else                            |                                 | |                                 |                                    |                                 | |                                 |       cout <<  "не при надл ежи т";|                                 | -----------------------------------}----------------------------------------------------------------------

PIC

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

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

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

1)

|---------|---------------|--------------|-----------|---------------------|---------------------------------| |О бласть |У слови е 1    |У словие 2    |Усл овие 3 |П рограм ма вы ведет | Обл асть & |         |(y <=  sin(x)) |(y >=  x − 2) |(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 -2 and y>=0  and x>=0:  |                                                  |readln(x,y );                                                | |  print("при надлеж и т")                       |int main (void ){                                  |if (y<=sin (x)) and (y>=x  -2 ) and (y >=0 ) and (x>=0 ) then | |else:                                            |float  x,y;                                         |  write(’п рина длеж ит’)                                    | |  print("не при надлеж и т")                    |cin > > x > > y;                                  |else                                                         | |                                                |                                                  |                                                            | |                                                |if (y <=sin (x) & & y>=x -2 & & y >=0  & & x>=0  ) |  write(’н е п рина длеж ит’)                                | |                                                |   cout <<  "при надлеж ит ";                     |end.                                                        | |                                                |else                                              |                                                            | |                                                |   cout <<  "не прин адлеж ит ";                  |                                                            | |                                                |                                                  |                                                            | --------------------------------------------------}--------------------------------------------------------------------------------------------------------------|

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

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