Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
mmeexx
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 182
#1

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

23.01.2014, 18:41. Просмотров 485. Ответов 7
Метки нет (Все метки)

Доброго времени суток! Программа работает, но результат неправильный. Задача состоит в следующем:Даны два отрезка действительной прямой. Определить, содержится ли один из них полностью в другом. Для проверки использовал числа: x1=1; y1=2;
x2=0; y2=3.
Результат: Отрезки не совпадают или не содержатся один в другом. По идее должен быть ответ Противоположным. Помогите пожалуйста!
C++ (Qt)
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
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{ float x1 , x2, y1,y2;
cout<<"Enter the coordinates of the segments:\n";
cout<<"first segment:\n";
cout<<"x=";
cin>>x1;
cout<<"y=";
cin>>y1;
cout<<"Second segment:\n";
cout<<"x=";
cin>>x2;
cout<<"y=";
cin>>y2;
if ( (x1<x2)&&(y1<y2)||(x1>x2)&&(y1>y2)) { 
    cout<<"the first or second segment is completely contained in another";
    }
else if( (x1=x2)&&(y1=y2)) {
        cout<<"segments coincide";
    } else cout<<"segments do not coincide and are not contained in each other";
     
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 3 минуты
20 и 21 строки лишние
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Даны два отрезка действительной прямой. Определить, содержится ли один из них полностью в другом. (C++):

Определить, содержится ли один из них полностью в другом - C++
Даны 2 отрезка действительной прямой. Определить, содержится ли один из них полностью в другом. Пожалуйста, если возможно с разбором

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

Даны два массива из n целых чисел каждый. Определить, в каком из них больше положительных элементов. - C++
Даны два массива из n целых чисел каждый. Определить, в каком из них больше положительных элементов. Пример ввода (формат...

На числовой прямой даны два отрезка - Информатика
На числовой прямой даны два отрезка: P = и Q = . Выберите такой отрезок A, что формула ( (x принадлежит Q) → (x принадлежит P) ) /\ (x...

На числовой прямой даны два отрезка - Информатика
На числовой прямой даны два отрезка: P = и Q = . Выберите такой отрезок A, что формула (x не принадлежит P) /\ (x принадлежит Q) /\ (x...

Даны два отрезка [a, b], [c, d] на прямой. Установить, имеют ли они общие точки или нет - Turbo Pascal
Даны два отрезка , на прямой. Установить, имеют ли они общие точки или нет.

7
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
23.01.2014, 18:53 #2
mmeexx, Насколько я понял, ты не правильно понимаешь что значит содержится ли отрезок в другом отрезке

Добавлено через 1 минуту
mmeexx, И сама концепция программы не верная
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.01.2014, 19:30 #3
C++
1
if ((((x1<=x2)&&(y1>=y2))||((x1>=x2)&&(y1<=y2)))&&(!((x1==x2)&&(y1==y2))))
0
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
23.01.2014, 19:59 #4
Раз даны два отрезка, значит должно быть четыре точки. Два начала, два конца.
0
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,907
23.01.2014, 20:32 #5
По-видимому, если известно, какая точка является правым концом отрезка, какая - левым, то будет проще написать условие.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if( x1 > y1 )
{
    // поменяем местами x1 и y1 
}
if( x2 > y2 )
{
    // поменяем местами x2 и y2 
}
if(  x1 <= x2  &&  x2 <= y1   // точка x2 внутри [ x1, y1 ]  
    &&  x1 <= y2  &&  y2 <= y1   // точка y2 внутри [ x1, y1 ]
  ) 
{
    // отрезок [x2, y2]  внутри [ x1, y1 ]  
}
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.01.2014, 20:43 #6
Цитата Сообщение от HighPredator Посмотреть сообщение
Раз даны два отрезка, значит должно быть четыре точки.
Ау него 8?

Добавлено через 1 минуту
Цитата Сообщение от Alex5 Посмотреть сообщение
По-видимому, если известно, какая точка является правым концом отрезка, какая - левым, то будет проще написать условие.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if( x1 > y1 )
{
    // поменяем местами x1 и y1 
}
if( x2 > y2 )
{
    // поменяем местами x2 и y2 
}
if( x1 <= x2 && x2 <= y1  // точка x2 внутри [ x1, y1 ] *
    && x1 <= y2 && y2 <= y1  // точка y2 внутри [ x1, y1 ]
    ) 
{
    // отрезок [x2, y2] *внутри [ x1, y1 ] *
}
Ога. Давайте перемешаем все точки и гарантируем вхождение.
0
HighPredator
23.01.2014, 21:24
  #7

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Ау него 8?
Очень интеллектуально... Прям слов нет.

0
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,907
23.01.2014, 23:18 #8

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Ога. Давайте перемешаем все точки и гарантируем вхождение.
А что, отрезок x1 = 5, y1 = 17 не совпадает с отрезком x1 = 17, y1 = 5 ?


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
float x1 , x2, y1,y2;
cout<<"Enter the coordinates of the segments:\n";
cout<<"first segment:\n";
cout<<"x=";
cin>>x1;
cout<<"y=";
cin>>y1;
cout<<"Second segment:\n";
cout<<"x=";
cin>>x2;
cout<<"y=";
cin>>y2;
 
if( x1 > y1 )
{
    // поменяем местами x1 и y1 
    double tmp = x1;   x1 = y1;  y1 = tmp;
}
if( x2 > y2 )
{
    // поменяем местами x2 и y2 
    double tmp = x2;   x2 = y2;  y2 = tmp;
}
if(  x1 <= x2  &&  x2 <= y1   // точка x2 внутри [ x1, y1 ]  
    &&  x1 <= y2  &&  y2 <= y1   // точка y2 внутри [ x1, y1 ]
  ) 
{
    // отрезок [x2, y2]  внутри [ x1, y1 ]  
    cout << "\n the 2nd segment is inside the 1st one \n";
}
0
Миниатюры
Даны два отрезка действительной прямой. Определить, содержится ли один из них полностью в другом.  
23.01.2014, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 23:18
Привет! Вот еще темы с ответами:

По двум треугольникам определить лежит ли один из них в другом - Pascal
Треугольник задается координатами своих вершин. По двум треугольникам определить лежит ли один из них в другом. Если да, вычислить площадь...

Даны два массива X (5), Y (7). Составить из них один массив, разместив элементы произвольным образом. - JavaScript
Составить алгоритм и программу для решения следующей задачи. Даны два массива X (5), Y (7). Составить из них один массив, разместив...

Даны два текстовых файла. Один из них надо вставить в другой, чередуя абзацы - Turbo Pascal
Даны два текстовых файла. Один из них надо вставить в другой чередуя абзацы

Даны два массива X (5), Y (7). Составить из них один массив, разместив элементы произвольным образом. - JavaScript
Составить алгоритм и программу для решения следующей задачи. Даны два массива X (5), Y (7). Составить из них один массив, разместив...


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

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

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