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

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

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

PIC

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

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

|---------|---------------------|--------------------|----------------------|---------------------------------| |О бласть |У слови е 1          |Усл овие 2          |П ро грамм а выв едет |О бласть обр аба&#x |         |                     |                    |                      |                                 | |---------|(x-∗-x +-y ∗-y-<=-9)-|(x-∗ x-+-y-∗-y <=-1-)----------------------|---------------------------------| |A--------|---------------------|--------------------|----------------------|---------------------------------| |B--------|---------------------|--------------------|----------------------|---------------------------------| |C        |                     |                    |                      |                                 | |D--------|---------------------|--------------------|----------------------|---------------------------------| --------------------------------------------------------------------------------------------------------------|

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

1)

|---------|---------------------|--------------------|----------------------|---------------------------------| |О бласть |У слови е 1          |Усл овие 2          |П ро грамм а выв едет |О бласть обр аба&#x |         |(x ∗ x + y ∗ y <= 9) |(x ∗ x + y ∗ y <= 1 )                      |                                 | |---------|---------------------|--------------------|----------------------|---------------------------------| |A--------|д-а------------------|да------------------|п-рина-длеж-ит--------|да-------------------------------| |B--------|д-а------------------|нет-----------------|н-е п-рина-длеж-ит----|да-------------------------------| |C--------|д-а------------------|нет-----------------|н-е п-рина-длеж-ит----|нет------------------------------| |D        |н ет                 |— -                 |— -                   |нет                              | --------------------------------------------------------------------------------------------------------------

2)Возможная доработка:

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

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

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