Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
shaverma
2 / 1 / 4
Регистрация: 05.12.2016
Сообщений: 67
#1

Выяснить, лежат ли отрезки прямых на попарно перпендикулярных прямых - C++

19.12.2016, 17:59. Просмотров 188. Ответов 2
Метки нет (Все метки)

Все геометрические фигуры заданы на плоскости. Предусмотрите ввод исходных данных с клавиатуры. Даны координаты концов четырех отрезков. Выяснить, лежат ли все или некоторые из этих отрезков на попарно перпендикулярных прямых. Указать все такие отрезки.
Помогите, пожалуйста, понятия не имею, как справиться с этой программой
http://www.cyberforum.ru/cpp-beginners/thread1935149.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2016, 17:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выяснить, лежат ли отрезки прямых на попарно перпендикулярных прямых (C++):

На плоскости задано множество прямых. Найти количество пересечений этих прямых
На плоскости задано множество прямых. Найти количество пересечений этих прямых...

Лежат ли все или некоторые из заданных отрезков на пересекающихся прямых?
Даны координаты концов четырех отрезков. Выяснить, лежат ли все или некоторые...

Выяснить взаимное расположение прямых на плоскости
Выяснить взаимное расположение прямых А1*х+В1*у=С1 и А*х+В*у=С. Если прямые...

Выяснить взаимное расположения прямых на плоскости
Я юзала свойство пропорциональности коэффициентов при х,у. В общем уравнения...

Выяснить, какие из прямых параллельны, а какие - нет
Помогите пожалуйста с программой в dev c++. Условие: Даны уравнения прямых...

2
afront
1047 / 993 / 751
Регистрация: 29.02.2016
Сообщений: 3,185
19.12.2016, 19:14 #2
http://www.cyberforum.ru/cpp-beginners/thread588383.html
0
shaverma
2 / 1 / 4
Регистрация: 05.12.2016
Сообщений: 67
20.12.2016, 18:55  [ТС] #3
Лучший ответ Сообщение было отмечено shaverma как решение

Решение

Все равно не очень понятно, к тому же в задании нужно указать отрезки, лажащие на попарно перпендикулярных прямых

Добавлено через 7 часов 12 минут
Вот пример программы, где проверяется, являются ли отрезки четырехугольником, если да, то каким
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
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
using namespace std; 
int main() 
{ 
int k,i,q; 
float mas[8][2]; 
 
setlocale (LC_ALL, "rus_rus.1251"); 
 
 
cout<<"Введите последовательно координаты х и у концов отрезков, начиная с отрезка с самой маленькой координатой х и двигаясь по часовой стрелке"<<endl; 
for(k=0;k<=7;k++) 
{ 
cout <<"Введите координату х"<<endl; 
cin >> mas[k][0]; 
cout <<"Введите координату y"<<endl; 
cin >> mas[k][1]; 
 
} 
 
for(i=0;i<2;i++) 
{ 
if (!((mas[1][i]==mas[2][i])&&(mas[3][i]==mas[4][i])&&(mas[5][i]==mas[6][i])&&(mas[7][i]==mas[0][i]))) 
{ 
cout<<"Данные отрезки не образуют четырехугольник"<<endl; 
q=0; 
i=2; 
} 
else q=1; 
} 
 
if (q=1) 
{ 
if ( (sqrt( (mas[0][0]-mas[1][0])*(mas[0][0]-mas[1][0])+(mas[0][1]-mas[1][1])*(mas[0][1]-mas[1][1]))==sqrt( (mas[3][0]-mas[6][0])*(mas[3][0]-mas[6][0])+(mas[3][1]-mas[6][1])*(mas[3][1]-mas[6][1]))) 
&&((sqrt (mas[1][0]-mas[3][0])*(mas[1][0]-mas[3][0])+(mas[1][1]-mas[3][1])*(mas[1][1]-mas[3][1]))==sqrt((mas[6][0]-mas[0][0])*(mas[6][0]-mas[0][0])+(mas[6][1]-mas[0][1])*(mas[6][1]-mas[0][1]))) ) 
{ 
cout<<"Данный четырехугольник является параллелограммом"<<endl; 
if ( (sqrt( (mas[0][0]-mas[3][0])*(mas[0][0]-mas[3][0])+(mas[0][1]-mas[3][1])*(mas[0][1]-mas[3][1]))==sqrt( (mas[1][0]-mas[6][0])*(mas[1][0]-mas[6][0])+(mas[1][1]-mas[6][1])*(mas[1][1]-mas[6][1]))) ) 
cout<<"Данный параллелограмм является прямоугольником"<<endl; 
 
} 
 
else cout<<"Данный четырехугольник имеет общий вид"<<endl; 
} 
system("pause");
return 0; 
}
Добавлено через 13 часов 35 минут
Я вроде бы написала, но она все равно неправильно работает. Помогите, пожалуйста, найти ошибки.
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
#include <iostream>
#include "stdafx.h"
#define N 4
using namespace std;
void main()
{
    setlocale (LC_ALL, "Russian");
    float tempArr[2*N][2];
    cout << "Введите последовательно координаты х и у концов отрезков, начиная с отрезка с самой маленькой координатой х и двигаясь по часовой стрелке" << endl; 
    for (int i = 0; i < 2 * N; i++)
        cin >> tempArr[i][0] >> tempArr[i][1];
    float array[N][2];
    for (int i = 0; i < N; i++)
    {
        array[i][0] = tempArr[2*i + 1][0] - tempArr[2 * i][0];
        array[i][1] = tempArr[2*i + 1][1] - tempArr[2 * i][1];
    }
         for (int i = 0; i < N; i++)
        for (int k = 0; k < N; k++)
        {
            cout << "Векторы {" << array[i][0] << ";" << array[i][1] << "} и {" << array[k][0] << ";" << array[k][1] << "}: ";
              if ((i != k) && ((int)array[i][0]*array[k][0]+array[i][1]*array[k][1]==0)) 
           cout<<"Данные отрезки не лежат на попарно перпендикулярных прямых"<<endl;
           else  
           cout<<"Данные отрезки лежат на попарно перпендикулярных прямых"<<endl; 
        } 
system("pause");
 }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2016, 18:55
Привет! Вот еще темы с решениями:

Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной
Задание: написать программу в С ++, заполнить матрицу случайными числами так,...

Разместить на побочной диагонали матрицы суммы элементов, которые лежат на диагоналях, перпендикулярных к побочной.
суть задачи : Заполнить матрицу случайными числами. Разместить на побочной...

пересечение прямых!
как реализовать алгоритм пересечения прямых на с++ ничего не приходит в голову,...

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


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

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

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