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

Определить попадет ли точка в круг? - C++

Восстановить пароль Регистрация
 
vasco da gama
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 2
01.04.2014, 15:37     Определить попадет ли точка в круг? #1
Определить,попадает ли точка M(x,y) в круг с радиусом R с центром в точке О(1,2). Значение радиуса и координаты X и Y ввести при помощи INPUT.txt. Выходной файл OUTPUT.txt должен содержать true, если соответствуюшая точка попадает в область круга и false в противном случае
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 15:37     Определить попадет ли точка в круг?
Посмотрите здесь:

C++ Попадет ли точка в заштрихованную область
Определить, попадает ли точка в круг. C++
C++ Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их
Попадет ли точка с заданными координатами в заштрихованную область C++
Наследование классов: реализовать классы точка, линия, треугольник, круг C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
enyx
 Аватар для enyx
7 / 7 / 2
Регистрация: 03.07.2013
Сообщений: 42
01.04.2014, 17:42     Определить попадет ли точка в круг? #2
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
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
 
bool some_function(double x,double y,double r);
int main()
{
    double x;
    double y;
    double r;
    cout<<"Enter x ... "<<endl;
    cin>>x;
    cout<<"Enter y ... "<<endl;
    cin>>y;
    cout<<"Enter r ... "<<endl;
    cin>>r;
    int b = some_function(x,y,r);
    if(b == 0)
    {
        cout<<"Out of cyrcle"<<endl;
    }
    else
    {
        cout<<"In cyrcle"<<endl;
    }
    return 0;
}
 
bool some_function(double x,double y,double r)
{
    if(abs(x) <= r)
    {
        if(abs(y) <= r)
        {
            if(x*x + y*y <= r*r)
            {
                return true;
            }
        }
    }
    else
    {
        return false;
    }
}
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
01.04.2014, 17:55     Определить попадет ли точка в круг? #3
Цитата Сообщение от enyx Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bool some_function(double x,double y,double r)
{
    if(abs(x) <= r)
    {
        if(abs(y) <= r)
        {
            if(x*x + y*y <= r*r)
            {
                return true;
            }
        }
    }
    else
    {
        return false;
    }
}
зачем столько проверок
у тебя здесь все проверится
C++
1
if(x*x + y*y <= r*r)
и если допустим if(abs(y) <= r) ложь
то в ветку else не попадешь и return не будет

функцию можно упростить
C++
1
2
3
4
5
bool some_function(double x,double y,double r)
{
 return (x*x + y*y <= r*r);
 
}
Добавлено через 2 минуты
Цитата Сообщение от enyx Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
int b = some_function(x,y,r);
    if(b == 0)
    {
        cout<<"Out of cyrcle"<<endl;
    }
    else
    {
        cout<<"In cyrcle"<<endl;
    }
и это упрощается

C++
1
2
3
4
5
6
7
8
9
    if(some_function(x,y,r))
    {
       cout<<"In cyrcle"<<endl; 
 
    }
    else
    {
      cout<<"Out of cyrcle"<<endl;
    }
Добавлено через 2 минуты
и еще заметил
Цитата Сообщение от enyx Посмотреть сообщение
double x,
Цитата Сообщение от enyx Посмотреть сообщение
abs(x)
abs для целочисленных, для плавающих fabs
enyx
 Аватар для enyx
7 / 7 / 2
Регистрация: 03.07.2013
Сообщений: 42
01.04.2014, 18:05     Определить попадет ли точка в круг? #4
вы правы,не заметил,на быструю руку
kasan
Чорумфанин
337 / 337 / 185
Регистрация: 06.03.2014
Сообщений: 872
01.04.2014, 18:16     Определить попадет ли точка в круг? #5
уравнение окружности с центром в точке (1,2)
C++
1
(x-1)*(x-1)+(y-2)*(y-2)<=r*r
Yandex
Объявления
01.04.2014, 18:16     Определить попадет ли точка в круг?
Ответ Создать тему
Опции темы

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