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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найдите среднее арифметическое http://www.cyberforum.ru/cpp-beginners/thread249390.html
Найдите среднее арифметическое значение функций f(x) в точках a,b, (a+b)/2, используя обращение к функции: f=1/2 ln(1-2x cos P/3 + x^2) a=0.1 b=0.8 Помогите пожалусто,ЗАРАНЕЕ СПОСИБО ВСЕМ!!!!!! Компилирую в Turbo C++ Добавлено через 35 минут Ну кто нить помогите решитьььььь..........
C++ Нужно написать функцию. Привет всем. Есть задача, нужно описать функцию для поиска последнего вхождения искаемого символа. Также у меня есть прототип функции: int func(int* arr, int length, int number); Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread249377.html
C++ Интегрирование функции на интервале
Написать подпрограмму интегрирования на интервале двух функций f1(x) и f2(x) методом трапеций, используя формальные параметры-функции.
Неправильный результат выполнения программы C++
программа должна считать формулу-в результате в ответе всегда 0.Формула |x|-|y|/|x*y|+1 #include <iostream> #include <conio.h> #include <math.h> void main() { float a,x,y; cout<<"x=";
C++ Параллельное программирование: вычислить определенный интеграл методом прямоугольников http://www.cyberforum.ru/cpp-beginners/thread249367.html
необходимо написать программу с использованием библиотеки mpi.h Вычислить определенный интеграл от функции f(x) на отрезке методом прямоугольников. Пользователь вводит число разбиений отрезка, функция f(x) задается внутри программы. так, программа несложная, а как её распаралелить я не знаю вот просто написал пока программу на С: #include<stdio.h>
C++ с++ на 7 винде помогите определить в чем ошибка #include"stdafx.h" #include <iostream> #include<math.h> int main() {double r,h,e,v,s,l; cout << "v,h:\n"; cin >>r>>h; const double pi =3.14; подробнее

Показать сообщение отдельно
IrineK
Заблокирован
28.02.2011, 00:05
Цитата Сообщение от 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;
}
Ну, и все.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru