Форум программистов, компьютерный форум 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     Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма.
Цитата Сообщение от 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;
}
Ну, и все.
 
Текущее время: 02:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru