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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
#1

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости - C++

25.09.2011, 14:58. Просмотров 3024. Ответов 31
Метки нет (Все метки)

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

1) Даны действительные числа x1, y1, x2, y2. Вычислить min(x1, y1, x2, y2)+min(x1,x2,y1).

2) Даны вещественные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости. Результат вывести в виде текстового сообщения. Представить варианты программы с использованием условного оператора if и тернарной условной операции.
Название: graph1.png
Просмотров: 314

Размер: 5.0 Кб
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2011, 14:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости (C++):

Определить принадлежит ли точка с координатами (x,y) заштрихованной части плоскости - C++
Даны действительные числа x,y.Определить,принадлежит ли точка с координатами x,y заштрихованной части плоскости. Есть программа, но...

Определить, принадлежит ли точка с координатами (Х,У) заштрихованной части плоскости - C++
1. Даны целые числа Х,У. Определить, принадлежит ли точка с координатами (Х,У) заштрихованной части плоскости. Составить математическую...

Определить,принадлежит ли точка с координатами Х,У заштрихованной части плоскости - C++
Ребят выручайте, ну прям очень надо. Осталось выполнить последнее задание, знаю для вас это очень просто. Заранее огромное спасибо!!! ...

Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости - C++
даны произвольные числа x,y.Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости(включая ее границы) ...

Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости - C++
Здравствуйте! Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости. ...

Определить, принадлежит ли точка с координатами (х, у) заштрихованной части плоскости - C++
Задание: 1) Определить, принадлежит ли точка с координатами (х, у) заштрихованной части плоскости

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 15:04 #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
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
#include <iostream>
#include <cmath>
#include <limits>
 
struct pt
{
    double x, y;
};
 
std::istream& operator >> ( std::istream& stream, pt& a )
{
    stream >> a.x >> a.y;
    return stream;
}
 
class seg
{
    pt a, b;
 
public:
 
    seg( pt _a, pt _b )
    { 
        a = _a;
        b = _b;
    }
 
    double len() const
    {
        return sqrt( 1. * (a.x - b.x) * (a.x - b.x) + 1.* (a.y - b.y) * ( a.y - b.y ) );
    }
};
 
class triangle
{
    pt a, b, c;
    
public:
    
    triangle( const pt& _a, const pt& _b, const pt& _c )
    {
        a = _a;
        b = _b;
        c = _c;
    }
    
    double square() const
    {
        double ab = seg(a, b).len();
        double ac = seg(a, c).len();
        double bc = seg(b, c).len();
        
        double p = (ab + ac + bc) / 2;
        
        return sqrt( p * (p - ab) * (p - ac) * (p - bc) );
    }
    
};
 
int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    
    pt a, b ,c, d;
    
    std::cin >> a >> b >> c >> d;
    
    double sum = 
        triangle(a, b, d).square() +
        triangle(b, c, d).square() +
        triangle(c, a, d).square();
    
    const double EPS = 0.00001;
    
    if ( fabs( sum - triangle(a, b, c).square() ) < EPS )
        std::cout << "In";
    else
        std::cout << "Out";
}
Первые 3 координаты в вводе - точки треугольника, последняя - координата точки.
2
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 15:19  [ТС] #3
Цитата Сообщение от diagon Посмотреть сообщение
Первые 3 координаты в вводе - точки треугольника, последняя - координата точки.
А как сделать чтобы координаты были заданы уже в коде программы, а в вводе указывалась только координата точки?
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 15:24 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <cmath>
#include <limits>
 
struct pt
{
    double x, y;
    
    pt()
    {
        x = y = 0;
    }
    
    pt( double _x, double _y )
    {
        x = _x;
        y = _y;
    }
};
 
std::istream& operator >> ( std::istream& stream, pt& a )
{
    stream >> a.x >> a.y;
    return stream;
}
 
class seg
{
    pt a, b;
 
public:
 
    seg( pt _a, pt _b )
    { 
        a = _a;
        b = _b;
    }
 
    double len() const
    {
        return sqrt( 1. * (a.x - b.x) * (a.x - b.x) + 1.* (a.y - b.y) * ( a.y - b.y ) );
    }
};
 
class triangle
{
    pt a, b, c;
    
public:
    
    triangle( const pt& _a, const pt& _b, const pt& _c )
    {
        a = _a;
        b = _b;
        c = _c;
    }
    
    double square() const
    {
        double ab = seg(a, b).len();
        double ac = seg(a, c).len();
        double bc = seg(b, c).len();
        
        double p = (ab + ac + bc) / 2;
        
        return sqrt( p * (p - ab) * (p - ac) * (p - bc) );
    }
    
};
 
int main()
{
 
    pt a(0, 0), b(2, 0) ,c(1, 2), d;
    std::cin >> d;
    
    double sum = 
        triangle(a, b, d).square() +
        triangle(b, c, d).square() +
        triangle(c, a, d).square();
    
    const double EPS = 0.00001;
    
    if ( fabs( sum - triangle(a, b, c).square() ) < EPS )
        std::cout << "In";
    else
        std::cout << "Out";
}
Координаты в 74 строке задаются, если что.
1
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
25.09.2011, 16:01 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Первое:
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
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
 
double min(size_t cnt, ...);
 
int main()
{
    double x1, y1, x2, y2;
    printf("Input for numbers: ");
    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
 
    printf("min(%.2f, %.2f, %.2f, %.2f)+min(%.2f, %.2f, %.2f)=%.2f\n",
       x1, y1, x2, y2, x1, x2, y1,
       min(4, x1, y1, x2, y2) + min(3, x1, x2, y1));
    
    exit(0);
}
 
double min(size_t cnt, ...)
{
    double result, current;
    va_list ap;
    
    if(cnt == 0)
    fputs("Take your meds, you psycho! Can't find the minimum of no numbers!\n", stderr), exit(1);
 
 
    va_start(ap, cnt);
 
    result = va_arg(ap, double);
 
    while(--cnt)
    {
    current = va_arg(ap, double);
    result = (result < current ? result : current);
    }
    
    va_end(ap);
    return result;
}
Естественно, можно было сделать проще, но мы ведь не ищем легких путей?
1
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 16:29  [ТС] #6
Цитата Сообщение от Nameless One Посмотреть сообщение
Естественно, можно было сделать проще, но мы ведь не ищем легких путей?
Спасибо большое!
Но вот про легкие пути, то мы их ищем) И надо чтобы до этого допер такой валенок как я, чтобы потом препод порадовался моим знаниям
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2011, 16:36 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Проще некуда:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <algorithm>
 
int main(){
  double x1, y1, x2, y2;
  std::cin >> x1 >> y2 >> x2 >> y2;
  std::cout << std::min({x1, y1, x2, y2}) + std::min({x1, x2, y1});
  return 0;
}
1
Olga_
841 / 183 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.09.2011, 16:44 #8
#define MIN(x, y) ((x) < (y) ? (x) : (y))

min(a, b, c) = MIN(MIN(a, b), c)
1
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 16:46  [ТС] #9
asics, не компилится... выдаёт кучу ошибок.
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2011, 16:49 #10
Iternity, http://liveworkspace.org/code/36f419...2ed635daede0a9
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
25.09.2011, 16:54 #11
Iternity, это initializer list из C++11. Поддерживается свежими версиями gcc и cl.exe (вроде бы)
0
asics
25.09.2011, 16:57
  #12

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
cl.exe (вроде бы)
Пока еще нет...

1
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 17:00  [ТС] #13
Цитата Сообщение от asics Посмотреть сообщение
У меня ничего не происходит :\

У меня стоит Visual studio 2010. И выдаёт вот это:

Код
 error C2143: syntax error : missing ')' before '{'
1> 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)' : expects 3 arguments - 0 provided
1>  c:\program files (x86)\microsoft visual studio 10.0\vc\include\xutility(2101) : see declaration of 'std::min'
1> error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &)' : expects 2 arguments - 0 provided
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\xutility(2093) : see declaration of 'std::min'
1>error C2143: syntax error : missing ';' before '{'
1> error C2143: syntax error : missing ';' before '}'
1> error C2059: syntax error : ')'
1> error C2143: syntax error : missing ')' before '{'
1> error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)' : expects 3 arguments - 0 provided
1>   c:\program files (x86)\microsoft visual studio 10.0\vc\include\xutility(2101) : see declaration of 'std::min'
1> error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &)' : expects 2 arguments - 0 provided
1>  c:\program files (x86)\microsoft visual studio 10.0\vc\include\xutility(2093) : see declaration of 'std::min'
1> error C2143: syntax error : missing ';' before '{'
1> error C2143: syntax error : missing ';' before '}'
1>d error C2059: syntax error : ')'
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
25.09.2011, 17:02 #14
Ответ в сообщении #12
0
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 17:07  [ТС] #15
Nameless One, asics, извиняюсь за свою тупость, но ничего уж тут не поделаешь, глухо дело
Как всё-таки сделать чтобы программка заработала? Просто дело ещё в том, что она должна пойти на 2005 визуале, который стоит на компах в универе.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2011, 17:07
Привет! Вот еще темы с ответами:

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости - C++
Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости (заштрихованная...

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости - C++
Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости .

Определить принадлежит ли точка с координатами (x;y) заштрихованной части плоскости - C++
Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x;y) заштрихованной части плоскости.

Определить принадлежит ли точка с координатами (х, у) заштрихованной части плоскости - C++
Составить алгоритм и написать программу для решения задачи.Даны вещественные числа x и y. Определить принадлежит ли точка с координатами...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.09.2011, 17:07
Ответ Создать тему
Опции темы

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