Форум программистов, компьютерный форум CyberForum.ru

Решал целый день и не решил .У кого какие мысли? - C++

Восстановить пароль Регистрация
 
yurayatsykiv
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 11
18.10.2013, 21:10     Решал целый день и не решил .У кого какие мысли? #1
C++

На плоскости задано прямоугольник с координатами левой нижней (х1; и1) и правой (х2; у2). Стороны параллельные или перпендикулярные оси. х1 <х2 y1 <у2
Второй прямоугольник задан координатами (х3; у3), (х4; у4). х3 <х4 у3 <у4
Составить программу, которая определит сколько точек пересечения будет в этих прямоугольниках если точек множество, вывести -1. х, у - целые числа
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 21:10     Решал целый день и не решил .У кого какие мысли?
Посмотрите здесь:

Как научиться писать грамотно программы со смыслом?)Почему у кого то получается,а у кого то нет?Мож поделитесь Хитростями:) C++
целый день убил, кое-что накалакял, но это все неправильно. C++
Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе C++
C++ У кого какие творения?
C++ Вводится k-й день невисокосного года - определить, является ли этот день рабочим.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IchimaruGin
59 / 59 / 22
Регистрация: 14.07.2013
Сообщений: 282
Завершенные тесты: 1
19.10.2013, 00:06     Решал целый день и не решил .У кого какие мысли? #2
Вы сначала математически это решите а потом пишите програму
yurayatsykiv
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 11
19.10.2013, 00:21  [ТС]     Решал целый день и не решил .У кого какие мысли? #3
ребят помогите я чайник в c++ и математици мне ето надо на модуль пожалуста
IchimaruGin
59 / 59 / 22
Регистрация: 14.07.2013
Сообщений: 282
Завершенные тесты: 1
19.10.2013, 00:29     Решал целый день и не решил .У кого какие мысли? #4
В этом разделе помагают писать программы а не решают все за вас. Вам в другой раздел нада.
yurayatsykiv
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 11
19.10.2013, 01:09  [ТС]     Решал целый день и не решил .У кого какие мысли? #5
#include <complex>
#include <ctime>
#include <cstdlib>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::complex<int> T_point;
/////////////////////////////////////////////////////////////////////////////////////////
class T_rect
{
int x_;
int Ax_;
int Ay_;
//-----------------------------------------------------------------------------------
public:
//-----------------------------------------------------------------------------------
T_rect
(
int x,
int Ax,
int Ay
)
:
x_ (x),
Ax_ (Ax),
Ay_ (Ay)
{}
//-----------------------------------------------------------------------------------
bool empty() const
{
return Ax_ <= 0
|| Ay_ <= 0;
}
//-----------------------------------------------------------------------------------
void print() const
{
if( empty() )
{
std::cout << "<empty rect>";
}
else
{
std::cout << "<"
<< x_
<< ","
<< T_point(Ax_, Ay_)
<< ">";
}
}
//-----------------------------------------------------------------------------------
T_rect operator*(const T_rect& r)
{
if( r.empty () ) return r;
if( empty () ) return *this;
int x_left_res = std::max( x_left (), r.x_left () );
int x_right_res = std::min( x_right(), r.x_right() );
int Ay_res = std::min( Ay_ , r.Ay_ );

return T_rect
(
x_left_res,
x_right_res - x_left_res,
Ay_res
);
}
//-----------------------------------------------------------------------------------
T_rect operator+(const T_rect& r)
{
if( empty () ) return r;
if( r.empty () ) return *this;
int x_left_res = std::min( x_left (), r.x_left () );
int x_right_res = std::max( x_right(), r.x_right() );
int Ay_res = std::max( Ay_ , r.Ay_ );

return T_rect
(
x_left_res,
x_right_res - x_left_res,
Ay_res
);
}
//-----------------------------------------------------------------------------------
T_rect operator-(const T_rect& r)
{
if( (*this * r).empty() )
{
return *this;
}

int x_left_res = x_left();
int x_right_res = x_right();
T_rect intersection = *this * r;

if( x_left_res == intersection.x_left() )
{
x_left_res = intersection.x_right();
}

if( x_right_res == intersection.x_right() )
{
x_right_res = intersection.x_left();
}

return T_rect
(
x_left_res,
x_right_res - x_left_res,
Ay_
);
}
//-----------------------------------------------------------------------------------
private:
//-----------------------------------------------------------------------------------
int x_left() const
{
return x_;
}
//-----------------------------------------------------------------------------------
int x_right() const
{
return x_ + Ax_;
}
//-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
int get_plus_minus_from_1_to(int a)
{
return ( rand() % a + 1 ) * ( rand() % 10 ? 1 : -1 );
}
/////////////////////////////////////////////////////////////////////////////////////////
T_rect get_rand_rect(int a)
{
return T_rect
(
get_plus_minus_from_1_to(a),
get_plus_minus_from_1_to(a),
get_plus_minus_from_1_to(a)
);
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
srand(unsigned(time(0)));
T_rect A = get_rand_rect(5);
std::cout << "A: ";
A.print();
std::cout << std::endl;

T_rect B = get_rand_rect(5);
std::cout << "B: ";
B.print();
std::cout << std::endl;

T_rect C = A * B;
std::cout << "A * B: ";
C.print();
std::cout << std::endl;

T_rect CC = A + B;
std::cout << "A + B: ";
CC.print();
std::cout << std::endl;

T_rect CCC = A - B;
std::cout << "A - B: ";
CCC.print();
std::cout << std::endl;
}


от що я зміг надумати(((але це не те поможіт
IchimaruGin
59 / 59 / 22
Регистрация: 14.07.2013
Сообщений: 282
Завершенные тесты: 1
19.10.2013, 01:24     Решал целый день и не решил .У кого какие мысли? #6
Ви математично її зробіть. Якщо ви незнаєте як вона математично розв'язується як ви програму напишете?
yurayatsykiv
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 11
19.10.2013, 01:31  [ТС]     Решал целый день и не решил .У кого какие мысли? #7
та я вже код скинув може щось не так виправіть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2013, 01:37     Решал целый день и не решил .У кого какие мысли?
Еще ссылки по теме:

C++ Разгадать мысли Либерти
винни пух и пятачок ! кто решал такую задачку? C++
C++ Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день

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

Или воспользуйтесь поиском по форуму:
IchimaruGin
59 / 59 / 22
Регистрация: 14.07.2013
Сообщений: 282
Завершенные тесты: 1
19.10.2013, 01:37     Решал целый день и не решил .У кого какие мысли? #8
ви ж самі написали
Цитата Сообщение от yurayatsykiv Посмотреть сообщение
це не те поможіть
я математичного розв'язку незнаю. Якщо я незнаю методу розв'язку як я провірю програму.
Yandex
Объявления
19.10.2013, 01:37     Решал целый день и не решил .У кого какие мысли?
Ответ Создать тему
Опции темы

Текущее время: 16:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru