Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 9
1

Фигуры, которые разбивают плоскость на области

23.04.2013, 19:00. Просмотров 797. Ответов 6
Метки нет (Все метки)

Здравствуйте!
Суть:
Даны фигуры, которые разбивают плоскость на области: трапеция с
вершинами в точках: (0.5 , 0.5), (0.5 , 2.5), (4.5 , 2.5), (2.5 , 0.5), окружность с
центром в точке (2,2) и радиусом r=1, и парабола с вершиной в точке (2,2),
пересекающая ось Ox в точках (0,0) и (4,0). Составить алгоритм, который
определяет, в какую из имеющихся на плоскости областей попадает точка с
заданными координатами (x,y) и выводом соответствующего сообщения.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <locale.h>
using namespace std;
 
/*
    Функция проверяет, находится ли точка с координатами (x,y)
    внутри параболы (true) или снаружи параболы (false)
*/
bool InParabola(double x, double y)
{
  return ((y + 0.5 * x * x - 2.0 * x) <= 0) ? true : false;
}
/*
    Функция проверяет, находится ли точка с координатами (x,y)
    внутри окружности (true) или снаружи окружности (false)
*/
bool InCircle(double x, double y)
{
  return (((x - 2.0)*(x - 2.0) +
(y - 2.0)*(y - 2.0)) <= 1.0) ? true : false;
}
/*
    Функция проверяет, находится ли точка с координатами (x,y)
    внутри трапеции (true) или снаружи трапеции (false)
*/
bool InTrapezium(double x, double y)
{
  return (y <= 2.5 && y >= 0.5 &&
x >= 0.5 && (x - y) <= 2.0) ? true : false;
}
/*
    Функция проверяет, какой области принадлежит точка
с координатами (x,y) и возвращает номер области от 1 до 8
*/
int CheckArea(double x, double y)
{
  bool bCircle = InCircle(x,y);
  bool bParabola = InParabola(x,y);
  bool bTrapezium = InTrapezium(x,y);
  if(bCircle == true && bParabola == true &&
     bTrapezium == true) return 1;
  else if(bCircle == true && bParabola == false &&
          bTrapezium == true) return 2;
  else if(bCircle == false && bParabola == false &&
          bTrapezium == true && x > 2.0) return 3;
  else if(bCircle == false && bParabola == false &&
          bTrapezium == true && x < 2.0) return 4;
  else if(bCircle == false && bParabola == true &&
          bTrapezium == true) return 5;
  else if(bCircle == false && bParabola == true &&
          bTrapezium == false) return 6;
  else if(bCircle == true && bParabola == false &&
          bTrapezium == false) return 7;
  return 8;
}
/*
    Главная функция. Реализует интерфейс с пользователем.
*/
void main(void)
{
  char ch;
  double x,y;
  do
  {
cout << "\nEntry X: ";
cin >> x;
    if(cin.fail())
    {
       cin.clear();
       cout << “Incorrect X-value”;    
    }
    else
{ cout << "\nEntry Y: ";
cin >> y;
       if(cin.fail())
       {
       cin.clear();
          cout << “Incorrect Y-value”;
       }
       else
       {
cout << "\nPoint is placed in area: " << CheckArea(x,y);
       }
    }
    cin.sync();
cout << "\nDo you want to entry a new point [Y/N]?";
cin.get(ch);
  }
  while((ch == ‘Y’) || (ch == ‘y’));
}
Выдает ошибку, что идентификатор "Incorrect" не определен, и, что после X и Y требуется ";"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 19:00
Ответы с готовыми решениями:

Дан набор прямых линий на плоскости. Найти количество областей, на которые они разбивают плоскость
Здравствуйте уважаемые форумчане. Помогите пожалуйста с задачкой: Дан набор прямых линий на...

Прямые разбивают плоскость на полосы
Прямые разбивают плоскость на полосы ширины 7. Определить вероятность того, что отрезок длины 1,...

Проекция объёмной фигуры на плоскость
Доброго всем времени суток! Столкнулся тут с оной интересной проблемой. Может кто сталкивался или...

Проецирование трехмерной фигуры на плоскость
Есть трехмерная фигура, точнее координаты ее точек(x,y,z). Нужна формула, которая будет формировать...

6
Эксперт C
24529 / 15154 / 3205
Регистрация: 24.12.2010
Сообщений: 32,508
23.04.2013, 19:14 2
Странные какие-то кавычки в строках 71, 79. И не подсвечивается красным как положено константе...
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 9
23.04.2013, 20:17  [ТС] 3
огромное спасибо, почему то в таких случаях появляются глобальные мысли, а посмотреть на банальное не получается))
0
Эксперт C
24529 / 15154 / 3205
Регистрация: 24.12.2010
Сообщений: 32,508
23.04.2013, 20:34 4
Цитата Сообщение от semen67sml Посмотреть сообщение
посмотреть на банальное
А в чем дело то было? Просто любопытно. Кавычки не той кодировки? Или чего?
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 9
23.04.2013, 20:53  [ТС] 5
да, не те кавычки, и он не знал, что с ними делать
0
Эксперт C
24529 / 15154 / 3205
Регистрация: 24.12.2010
Сообщений: 32,508
23.04.2013, 21:52 6
Маленькое замечание.
Цитата Сообщение от semen67sml Посмотреть сообщение
Суть: Даны фигуры, которые...
В данном случае до Сути вы еще не добрались. Пока компилятор выдает синтаксические ошибки, о сути не может быть никакой речи. Суть начинается тогда, когда программа скомпилировалась, работает как-то, но чуток не так, как вы этого ожидаете.
Это так, на будущее
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 9
23.04.2013, 23:31  [ТС] 7
Цитата Сообщение от Байт Посмотреть сообщение
Это так, на будущее
Спасибо, учту)) сессия приперла, приходится начинать постигать азы С++, ничего не понимаю, делаю все методом "тыка"=)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2013, 23:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Построить две фигуры и найти плоскость их пересечения
Всем привет! Нужно построить две фигуры объемных и найти их плоскость пересечения. Посмотрел...

Плоскость xOy разделена на четыре области
Плоскость xOy разделена на четыре области, обозначенные буквами A, B, C, D. Способ деления...

Как из области background image создать плоскость?
Здравствуйте. На backgorund две произвольных области. Допустим зелёная и красная. Хочу создать...

Плоскость xOy разделена на четыре области, обозначенные буквами A, B, C, D
Плоскость xOy разделена на четыре области, обозначенные буквами A, B, C, D


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.