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

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

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

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

Проверить отрезки прямых на пересечение
Мне нужно сделать програму которая будет проверять пересекаются отрезки и...

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

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

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

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

2
afront
1050 / 997 / 752
Регистрация: 29.02.2016
Сообщений: 3,187
19.12.2016, 19:14 2
Координаты точки пересечения двух отрезков
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

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

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

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


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

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

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