Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
mmeexx
0 / 0 / 3
Регистрация: 09.10.2013
Сообщений: 183
#1

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

23.01.2014, 18:41. Просмотров 537. Ответов 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
Ответы с готовыми решениями:

Даны два отрезка действительной прямой. Определить, пересекаются ли они
Даны два отрезка действительной прямой. Определить, пересекаются ли они, и если...

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

Определить корни уравнения графически и уточнить один из них итерационными методами (методом деления отрезка пополам)
с точностью 0,01: Х3 + 3Х -1=0. Помогите пожалуйста составить программу)

Даны два слова. Определить, можно ли из букв первого из них получить второе
Даны два слова. Определить, можно ли из букв первого из них получить второе....

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

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

Добавлено через 1 минуту
mmeexx, И сама концепция программы не верная
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
23.01.2014, 19:30 #3
C++
1
if ((((x1<=x2)&&(y1>=y2))||((x1>=x2)&&(y1<=y2)))&&(!((x1==x2)&&(y1==y2))))
0
HighPredator
5679 / 1998 / 721
Регистрация: 10.12.2010
Сообщений: 5,750
Записей в блоге: 3
23.01.2014, 19:59 #4
Раз даны два отрезка, значит должно быть четыре точки. Два начала, два конца.
0
Alex5
1122 / 783 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
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
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
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
1122 / 783 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
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

На числовой прямой даны два отрезка
На числовой прямой даны два отрезка: P = и Q = . Выберите такой отрезок A, что...

На числовой прямой даны два отрезка
На числовой прямой даны два отрезка: P = и Q = . Выберите такой отрезок A, что...

На числовой прямой даны два отрезка
Добрый вечер. Помогите, пожалуйста с решением. На числовой прямой даны два...


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

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

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