Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

2 задачи C++

2 задачи C++

Мнениеот Гост » 03 Фев 2019, 19:26

За втора как ще се представи тази отсечка
Прикачени файлове
819CED9C-66B5-401E-B52D-D4901B285650.jpeg
819CED9C-66B5-401E-B52D-D4901B285650.jpeg (266.01 KiB) Прегледано 699 пъти
Гост
 

Re: 2 задачи C++

Мнениеот Гост » 05 Фев 2019, 15:43

Някой може ли да помогне за втора
Гост
 

Re: 2 задачи C++

Мнениеот Добромир Глухаров » 07 Фев 2019, 20:29

Код: Избери целия код
#include <iostream>

using namespace std;

struct Section
{
    float xBegin, yBegin;
    float xEnd, yEnd;
};

float L(Section s1, Section s2)
{
    if(s1.yBegin == s1.yEnd && s2.yBegin == s2.yEnd && s1.yBegin == s2.yBegin)
    {
        float x1Min = min(s1.xBegin, s1.xEnd),
              x1Max = max(s1.xBegin, s1.xEnd),
              x2Min = min(s2.xBegin, s2.xEnd),
              x2Max = max(s2.xBegin, s2.xEnd);
        if(x1Max < x2Min || x2Max < x1Min)
            return 0;
        return min(x1Max, x2Max) - max(x1Min, x2Min);
    }
    if(s1.xBegin == s1.xEnd && s2.xBegin == s2.xEnd && s1.xBegin == s2.xBegin)
    {
        float y1Min = min(s1.yBegin, s1.yEnd),
              y1Max = max(s1.yBegin, s1.yEnd),
              y2Min = min(s2.yBegin, s2.yEnd),
              y2Max = max(s2.yBegin, s2.yEnd);
        if(y1Max < y2Min || y2Max < y1Min)
            return 0;
        return min(y1Max, y2Max) - max(y1Min, y2Min);
    }
    return -1;
}

int main()
{
    Section s1, s2;
    s1.xBegin = 3.2f; s1.xEnd = -2.3f;
    s1.yBegin = -5.3f; s1.yEnd = -5.3f;
    s2.xBegin = -3.3f; s2.xEnd = 5.2f;
    s2.yBegin = -5.3f; s2.yEnd = -5.3f;
    cout << L(s1, s2) << endl;
    return 0;
}
Аватар
Добромир Глухаров
Математик
 
Мнения: 2080
Регистриран на: 11 Яну 2010, 13:23
Рейтинг: 2178


Назад към C, C++



Кой е на линия

Регистрирани потребители: Google [Bot]

Форум за математика(архив)