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

Найти площадь пересечения прямоугольников - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ cout vs printf http://www.cyberforum.ru/cpp-beginners/thread170813.html
Что лучше и удобней использывать в написаннии программ? cout или printf?
C++ Массив 4*4 Создать массив 4*4, сравнить суммы элементов главной и побочной диагонали. http://www.cyberforum.ru/cpp-beginners/thread170783.html
C++ Литература
Народ, подскажите пожалуйста литературу о классах в C++. Только чтобы не научным языком было написано, а на доступном и понятном языке! Авторы, названия, ссылки - всё, что вспомните!) благодарю за помощь)
Разработать алгоритм и программу решения в C++ C++
1-задача) уравнения: Ax + B = 0 2-задача) системы уравнений: - A1*x + B1*y = C1 {- -A2*x + B2*y = C2
C++ Создать класс File http://www.cyberforum.ru/cpp-beginners/thread170766.html
Создать класс File содержащий следующий елементы: -поле "размер" long size -поле "дата рождения" char date -поле "владелец" char owner -поле "содержимое файла" char content -метод чтения данных char read() -метод записи данных void write(char buffer) -конструктор с параметрами file(long size, char date,char owner) -конструктор без параметров
C++ Среднее значение элементов в одномерном массиве Привет! ;) Помогите, плиз решить, я в этом почти не шарю, надеюсь разобраться: В одномерном массиве, состоящем из n вещественных элементов, найти среднее значение всех элементов и номер элемента массива ближайшего к среднему по значению. Буду очень признателен! =) подробнее

Показать сообщение отдельно
Dexter
285 / 145 / 16
Регистрация: 13.10.2009
Сообщений: 164
30.09.2010, 15:04     Найти площадь пересечения прямоугольников
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
#include <iostream>
#include <vector>
#include <algorithm>
 
void main()
{
    std::vector<float> X(4);
    std::vector<float> Y(4);
    std::cout<<"Enter coordinats first rectangle "; 
    std::cin>>X[0]>>Y[0]>>X[1]>>Y[1];
    std::cout<<"Enter coordinats second rectangle "; 
    std::cin>>X[2]>>Y[2]>>X[3]>>Y[3];
    
 
    if(X[0]>=X[1]||Y[1]>=Y[0]||X[2]>=X[3]||Y[3]>=Y[2])
        std::cout<<"Bad rectangle";
    else
    if(X[0]>=X[3]||X[2]>=X[1]||Y[3]>=Y[0]||Y[1]>=Y[2])//значит не пересекаются
    {
        std::cout<<"Disjoint";
    }
    else
    {//Если пересекаются - тогда найдем площадь
        sort(X.begin(),X.end());
        sort(Y.begin(),Y.end());
        float S=(X[2]-X[1])*(Y[2]-Y[1]);//Координаты внутреннего прямоугольника - будут 2 и 3 по величине
        std::cout<<"S="<<S;
    }    
}
Вот так получается, если стороны прямоугольников параллельны осям.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru