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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.74
пока что чайник
1 / 1 / 0
Регистрация: 15.02.2011
Сообщений: 41
#1

Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма. - C++

27.02.2011, 16:50. Просмотров 3487. Ответов 5
Метки нет (Все метки)

Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма.(помогите пожалуйста,не могу сделать)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2011, 16:50     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма.
Посмотрите здесь:

Диагонали (Четыре точки являются вершинами параллелограмма. Определить длину диагоналей и найти координаты ) - C++
Помогите!!! Четыре точки A(x1; y1), B(x2; y2), C(x3; y3), D(x4; y4) являются вершинами параллелограма. Определить длину диагоналей и...

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

Даны четыре точки на плоскости, определить какое расстояние меньше - C++
Нужно написать программу:Даны четыре точки на плоскости A, B, C, D. Определить, какое расстояние меньше, AB+BC или AC+CD.C++ Спасибо...

даны стороны двух прямоугольников. определить, будут ли эти прямоугольники равновеликими, т.е имеют ли они равные площади. - C++
программирование алгоритмов разветляющейся структуры. (для программирования ветвящихся алгоритмов применятся условный оператор (оператор...

Являются ли точки заданного множества вершинами параллелограмма со сторонами, параллельными оси ОХ - C++
Определить, являются ли точки заданного множества вершинами параллелограмма со сторонами, параллельными оси ОХ. Если точки множества...

Даны целые числа. Выяснить, найдутся ли среди точек четыре таких, которые являются вершинами квадрата - C++
Даны целые числа x1, y1, x2, y2, ...xn, yn.Выяснить, найдутся ли среди точек с координатами (x1;y1), (x2;y2),...(xn;yn) четыре таких,...

Даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного остроугольного треугольника, вычислить его площадь. Где ошибка? - C++
Даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного остроугольного треугольника, вычислить его...

Четыре комбайна работают с заданной производительностью, определить сколько они собрали зерновых - C++
2) Четыре комбайны работают t1, t2, t3, t4 ч с заданной производительности p1, p2, p3, p4 т / ч. Сколько они собрали зерновых.

Даны точки на плоскости: расположить их так, чтобы они образовывали вершины выпуклого многоугольника - C++
На плоскости заданы N точек своими декартовыми координатами. Расположить эти точки в таком порядке, чтобы они образовывали вершины...

. Определить, принадлежат ли точки прямой ax+by+c=0 треугольнику с вершинами (x1,y1), (x2,y2), (x3,y3) - C++
. Определить, принадлежат ли точки прямой ax+by+c=0 треугольнику с вершинами (x1,y1), (x2,y2), (x3,y3).

Определить, являются ли заданные точки вершинами треугольника - C++
Задание: Вводятся координаты трех точек на плоскости. Определить, являются ли данные точки вершинами треугольника. Если да, то найти...

Определить, являются ли заданные точки вершинами треугольника - C++
Вводятся координаты трех точек на плоскости. Определить, является ли данные точки вершинами треугольника. Если да, то найти уравнение...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
27.02.2011, 16:58     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма. #2
Можно брать векторы вида {x2 - x1, y2 - y1} ... по сторонам этой фигуры и смотреть модули попарных векторных произведений, полагая третью координату нулем у исходных векторов.
IrineK
Заблокирован
27.02.2011, 17:10     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма. #3
Жестоко.
Достаточно проверить, что противоположные стороны попарно равны.
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
27.02.2011, 17:27     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма. #4
Цитата Сообщение от IrineK Посмотреть сообщение
Жестоко.
Достаточно проверить, что противоположные стороны попарно равны.
+1, а саму сторону вычислить по Sqrt((x1-x2)^2+(y1-y2)^2)(по-моему, точно не помню)
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
27.02.2011, 17:29     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма. #5
Естественно, просто сказал первую мысль , что пришла в голову
IrineK
Заблокирован
28.02.2011, 00:05     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма. #6
Цитата Сообщение от IrineK Посмотреть сообщение
Достаточно проверить, что противоположные стороны попарно равны.
Проверяем:

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
#include <iostream>
#include <math.h>
using namespace std;
 
//длина стороны АВ
double side(double xa, double ya, double xb, double yb)
{return sqrt((xb-xa)*(xb-xa)+(yb-ya)*(yb-ya));}
 
//отклонение С от АВ
double deviation(double x1, double y1, double x2, double y2, double x3, double y3)
{
    double r=side(x1,y1,x2,y2);
    double A=(y2-y1)/r;
    double B=(x2-x1)/r;
    double C=(x1*(y2-y1)-y1*(x2-x1))/r;
    return (x3*A-y3*B-C);
}
 
int main()
{
setlocale(LC_ALL, "");
double x[4],y[4];
int i,j, yes=0;
 
cout<<"Введите координаты точек\n";
for(i=0;i<4;i++)
{
    cout<<"x["<<i+1<<"] = ";
        cin>>x[i];
    cout<<"y["<<i+1<<"] = ";
        cin>>y[i];
}
 
//Проверка на совпадение двух точек
for(i=0;i<3;i++)
    for(j=i+1;j<4;j++)
        if(side(x[i],y[i],x[j],y[j])==0) 
            {   cout<<"Две точки совпадают\n";
                system("pause");
                return 0;
            }
//Проверка на находжение трех точек на одной прямой
double dev12_3 = deviation(x[0],y[0],x[1],y[1],x[2],y[2]);
double dev12_4 = deviation(x[0],y[0],x[1],y[1],x[3],y[3]);
double dev23_4 = deviation(x[1],y[1],x[2],y[2],x[3],y[3]);
double dev13_4 = deviation(x[0],y[0],x[2],y[2],x[3],y[3]);
if(dev12_3==0 || dev12_4==0 || dev23_4==0 || dev13_4==0)
        {   cout<<"Три точки лежат на одной прямой\n";
            system("pause");
            return 0;
        }
 
cout<<"Множество точек образует четырехугольник\n";
system("pause");
 
//определяем диагональ, проходящую через А1
//если А1А2 - диагональ, попарные стороны "А1А3/А2А4" "А2А3/А1А4"
//если А1А3 - диагональ, попарные стороны "А1А2/А3А4" "А2А3/А1А4"
//если А1А4 - диагональ, попарные стороны "А1А2/А3А4" "А2А4/А1А3"
 
double dev13_2 = deviation(x[0],y[0],x[2],y[2],x[1],y[1]);
 
if(dev12_3*dev12_4<0) //диагональ 12
    {if(side(x[0],y[0],x[2],y[2])==side(x[1],y[1],x[3],y[3]) && side(x[1],y[1],x[2],y[2])==side(x[0],y[0],x[3],y[3])) yes++;}
else 
{
    if(dev13_2*dev13_4<0) //диагональ 13
        {if(side(x[0],y[0],x[1],y[1])==side(x[2],y[2],x[3],y[3]) && side(x[1],y[1],x[2],y[2])==side(x[0],y[0],x[3],y[3])) yes++;}
    else  //диагональ 14
        {if(side(x[0],y[0],x[1],y[1])==side(x[2],y[2],x[3],y[3]) && side(x[0],y[0],x[2],y[2])==side(x[1],y[1],x[3],y[3])) yes++;}
}
 
if(yes)
    cout<<"\nЭто - параллелограмм\n";
else
    cout<<"\nЭто - не параллелограмм\n";
 
system("pause");
 
return 0;
}
Ну, и все.
Yandex
Объявления
28.02.2011, 00:05     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма.
Ответ Создать тему
Опции темы

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