Форум программистов, компьютерный форум CyberForum.ru

Попадание точки в заданную область - C++

Восстановить пароль Регистрация
 
Naril
-10 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 12
21.06.2013, 21:37     Попадание точки в заданную область #1
Дана точка на плоскости с координатами (x,y).Составить программу, которая выдает одно из сообщений <<Да>>,<<Нет>>,<<На границе>> в зависимости от того , лежит ли точка внутри заштрихованной области , вне заштрихованной области или на ее границе. Области задаются графически следующим образом:
Название: 1.jpg
Просмотров: 113

Размер: 3.1 Кб

 Комментарий модератора 
@Naril, обращаю ваше внимание на правила форума:
заголовок должен отражать суть задания
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
22.06.2013, 03:07     Попадание точки в заданную область #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "");
    double x, y; cin >> x >> y;
    if ( ((x == y || y == 0.0) && x <= 0.0 && x > -23.0) ||
        (x == -23.0 && y <= 0.0 && y >= -23.0) )
            cout << "На границе";
    else if ( x < 0.0 && x > -23.0 && y > x && y < 0.0)
        cout << "Да";
    else cout << "Нет";
    return 0;
}
Я нигде не ошибся?
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
22.06.2013, 10:37     Попадание точки в заданную область #3
Цитата Сообщение от Olivеr Посмотреть сообщение
Я нигде не ошибся?
Нет.
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
#include <iostream>
 
using namespace std;
 
int is_in_area( int x, int y ) {
    if ( ((x == y || y == 0) && x <= 0 && x > -23) ||
         ( x == -23 && y <= 0 && y >= -23) )
        return 1; // На границе
    else if ( x < 0 && x > -23 && y > x && y < 0)
        return 2; // Да
    else
        return 0; // no
}
 
int main()
{
    for ( int j = 5; j >= -25; j-- ) {
        for ( int i = -25; i < 5; i++ ) {
            cout << " *#"[is_in_area( i, j )];
        }
        cout << endl;
    }
 
    return 0;
}
Вывод:
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
                              
                              
                              
                              
                              
  ************************    
  *#####################*     
  *####################*      
  *###################*       
  *##################*        
  *#################*         
  *################*          
  *###############*           
  *##############*            
  *#############*             
  *############*              
  *###########*               
  *##########*                
  *#########*                 
  *########*                  
  *#######*                   
  *######*                    
  *#####*                     
  *####*                      
  *###*                       
  *##*                        
  *#*                         
  **                          
  *
-=ЮрА=-
Заблокирован
Автор FAQ
22.06.2013, 11:00     Попадание точки в заданную область #4
Цитата Сообщение от Naril Посмотреть сообщение
Дана точка на плоскости с координатами (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
#include <iostream>
using namespace std;
 
bool IsInBounds(double x, double y);
bool IsOnBounds(double x, double y);
 
int main()
{
    double x, y;
    while(true)
    {
        cout<<"Enter x y (example 5 4) : ";
        cin>>x>>y;
        if(IsOnBounds(x, y))
            cout<<"ON BOUNDS : YES"<<endl;
        else
            cout<<"ON BOUNDS : NO"<<endl;
        if(IsInBounds(x, y))
            cout<<"IN BOUNDS : YES"<<endl;
        else
            cout<<"IN BOUNDS : NO"<<endl;
    }
    return 0;
}
 
bool IsOnBounds(double x, double y)
{
    bool bOnBounds = false;
    if
    (
        x == 0 && y == 0
        ||
        x == -23 && -23 <= y && y <= 0
        ||
        x == y && y / x < 1.61977519054
    )
        bOnBounds = true;
    return bOnBounds;
}
 
 
bool IsInBounds(double x, double y)
{
    bool bInBounds = false;
    if(-23 < x && x < 0)
    if(-23 < y && y < 0)
    {
        if(y / x < 1.61977519054) //1.61977519054 - tg(45) DEG
            bInBounds = true;
    }
    return bInBounds;
}
Миниатюры
Попадание точки в заданную область   Попадание точки в заданную область  
Yandex
Объявления
22.06.2013, 11:00     Попадание точки в заданную область
Ответ Создать тему
Опции темы

Текущее время: 22:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru