Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Oleg-2809
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 4
1

Попадание точки в заштрихованную область

22.09.2014, 11:13. Просмотров 1078. Ответов 2
Метки нет (Все метки)

Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом. Результат работы программы вывести в виде текстового сообщения. Параметр R вводится с клавиатуры.
0
Изображения
 
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2014, 11:13
Ответы с готовыми решениями:

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

Попадание точки в заштрихованную область
Здравствуйте! Пыталась написать программу, но ничего не выходит, помогите с кодом. Очень нужно! ...

Определить попадание точки в заштрихованную область
Вот сама задача: Одномерные массивы: #include <stdio.h> #include <conio.h> #include...

Определите попадание произвольной точки в заштрихованную область
определите попадание произвольной точки в заштрихованную область. Я написал, но когда...

Определить попадание произвольной точки в заштрихованную область
помогите пожалуйста написать программу "определить попадание произвольной точки в заштрихованную...

2
kasan
Чорумфанин
342 / 342 / 320
Регистрация: 06.03.2014
Сообщений: 898
22.09.2014, 11:48 2
Проверяйте,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
float R,x,y;
x=1;
y=2;
 
printf("Enter R: ");
scanf("%f",&R);
 
 
if( (x>0 && x<y && x*x+y*y<R*R) || (x<0 && y<x && x*x+y*y<R*R) )
    printf("in");
else
    printf("out");
 
return 0;
}
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
22.09.2014, 19:45 3
Лучший ответ Сообщение было отмечено Oleg-2809 как решение

Решение

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
91
92
93
94
#include <math.h>       // hypot, atan2
#include <stdio.h>      // puts, scanf
 
typedef struct point {
    double x;
    double y;
} Point;
 
void
Point_Init(Point* const this, const double x, const double y)
{
    this->x = x;
    this->y = y;
}
 
double
Point_Distance(const Point* const this, const Point* const p)
{
    return hypot(this->x - p->x, this->y - p->y);
}
 
double
Point_Angle(const Point* const this)
{
    if( this->x == 0.0 ) {
        return this->y < 0.0? -90.0 : 90.0;
    }
    return atan2(this->y, this->x) * 180.0 * M_1_PI;
}
 
typedef struct circle {
    Point center;
    double radius;
} Circle;
 
void
Circle_Init(Circle* const this, const Point* const center, const double radius)
{
    this->center = *center;
    this->radius = radius;
}
 
int
Circle_Contains(const Circle* const this, const Point* const p)
{
    return Point_Distance(&(this->center), p) <= this->radius;
}
 
typedef struct figure {
    Circle circle;
    double angle;
} Figure;
 
void
Figure_Init(Figure* const this, const double radius, const double angle)
{
    Point p;
    Point_Init(&p, 0.0, 0.0);
    Circle_Init(&(this->circle), &p, radius);
    this->angle = angle;
}
 
int
Figure_Contains(const Figure* const this, const Point* const p)
{
    if( !Circle_Contains(&(this->circle), p) ) { return 0; }
    double a = Point_Angle(p);
    return (a <= 90.0 && a >= this->angle)
        || (a <= -90.0 && a >= this->angle - 180.0);
}
 
int
main(void)
{
    const double angle = 45.0;
 
    while ( 1 ) {
        double x, y, radius;
        do {
            puts("Input x, y, radius:");
        } while( scanf("%lf %lf %lf", &x, &y, &radius) != 3 );
 
        if( radius <= 0.0 ) { break; }
 
        Figure figure;
        Figure_Init(&figure, radius, angle);
 
        Point point;
        Point_Init(&point, x, y);
 
        puts( Figure_Contains(&figure, &point)? "In" : "Out" );
    }
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2014, 19:45

Определить попадание произвольной точки в заштрихованную область
Добрый вечер! Помогите определить попадание произвольной точки в заштрихованную область.

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

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


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

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

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