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

Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.83
Lana44
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 5
05.02.2012, 10:45     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #1
Помогите пожалуйста решить задачу на С++ про кирпич

Условие:
Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие. Замечание: задачу решать в предположении, что A>B, X>Y>Z

Заранее большое СПАСИБО!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 10:45     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие
Посмотрите здесь:

C++ Простая программа про кирпич и отверстие
C++ Вывести на экран размеры типов и размеры указателей на объекты
C++ Пройдет ли кирпич размером A*B*C в круглую дыру радиусом R
C++ Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y.
C++ Пройдет ли кирпич с заданными сторонами в отверстие
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 11:36     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #2
Цитата Сообщение от Lana44 Посмотреть сообщение
Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие. Замечание: задачу решать в предположении, что A>B, X>Y>Z
C++
1
2
if((z <= b) && (y <= a))
    std::cout << "yes" << std::endl
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
05.02.2012, 11:42     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #3
soon, по идее можно поворачивать кирпич
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 12:49     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #4
Цитата Сообщение от Dani Посмотреть сообщение
soon, по идее можно поворачивать кирпич
Тогда вот так. Несколько сумбурно. И не факт, что правильно, поэтому только набросок.
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
#include <iostream>
#include <cmath>
 
int main()
{
    double a, b;
    std::cin >> a >> b;
    double x, y, z;
    std::cin >> x >> y >> z;
    if((z <= b) && (y <= a ))
        std::cout << "yes" << std::endl;
    else
    {
        double hip = std::sqrt(a * a + b * b);
        double sinA = a / hip;
        double sinB = b / hip;
        double dA = sinA * y;
        double dB = sinB * y;
        double xA = a - dA;
        double xB = b - dB;
        if(std::sqrt(xA * xA + xB * xB) >= z)
            std::cout << "yes" << std::endl;
        else
            std::cout << "no" << std::endl;
    }
    return 0;
}
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
05.02.2012, 13:13     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #5
А так?
C++
1
2
if ((X < A && Y < B) || (X < B && Y < A)) || ((Y < A && Z < B)   ||  (Y < B && Z < A)) || ((X < A && Z < B)  || (X < B && Z < A))
   cout << "Yes";
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 13:35     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #6
dimcoder, даже на 1 1 1 1 1 не проходит.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
05.02.2012, 13:47     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #7
Цитата Сообщение от soon Посмотреть сообщение
dimcoder, даже на 1 1 1 1 1 не проходит.
Ну дорисовать везде к знакам сравнения =
<=
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 13:58     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #8
dimcoder, алгоритм, в котором сторона кирпича параллельна стороне отверстия представлен в посте #2. Лучше рассмотрите тот случай, когда кирпич можно поворачивать
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,730
Записей в блоге: 3
05.02.2012, 14:55     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #9
Цитата Сообщение от soon Посмотреть сообщение
dimcoder, алгоритм, в котором сторона кирпича параллельна стороне отверстия представлен в посте #2. Лучше рассмотрите тот случай, когда кирпич можно поворачивать
Трудно сказать определенно, но что-то заставляет усомниться:
Формулировка задачи:
Цитата Сообщение от Lana44 Посмотреть сообщение
Определить, пройдет ли кирпич в отверстие
Я читаю - как необходимое условие. Ну, то есть "Является ли отверстие таковым, что бы кирпич мог в него пройти" это - конечно, случай с параллельными сторонами. Здесь несмотря на некоторую интуитивность, все просто и строго. Так как в случае необходимой достаточности, не нужно оговаривать как движется кирпич. (Захочешь, - найдешь наилучший способ)
Думаю, если бы иметь в виду, случай произвольного пространственного положения кирпича относительно отверстия, сформулировать задачу было бы сложнее. Там было бы что-то вроде "Определить размеры прямоугольного отверстия, пропускающего кирпич при таком его движении, что траектория движения точки пересечения его диагоналей (или центра масс), перпендикулярна плоскости отверстия и проходит через точку пересечения диагоналей отверстия."
Как на мой вкус, с простотой формулировки потеряны, красота, интрига, изюминка задачи. Добавлена техническая сложность? Не уверен. Могу быть неправ, но вроде, в этом случае подходят все прямоугольники, каждая сторона, которых больше главной диагонали кирпича sqr(a^2+b^2+c^2).
Тут вроде и алгоритма нет.
По-этому, думаю, - Ваш ответ #2 - это правильный ответ всей задачи, если, только это не курсовая работа
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 15:26     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #10
Цитата Сообщение от IGPIGP Посмотреть сообщение
Могу быть неправ, но вроде, в этом случае подходят все прямоугольники, каждая сторона, которых больше главной диагонали кирпича sqr(a^2+b^2+c^2).
Хотели сказать sqrt?

Да даже если и sqrt, я чего-то не понимаю. К примеру кирпич 11 * 10 * 1, диагональ ~14.8. Размер отверстия 10*10. Все стороны меньше диагонали.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,730
Записей в блоге: 3
05.02.2012, 15:36     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #11
Цитата Сообщение от soon Посмотреть сообщение
Да даже если и sqrt, я чего-то не понимаю. К примеру кирпич 11 * 10 * 1, диагональ ~14.8. Размер отверстия 10*10. Все стороны меньше диагонали.
Конечно Sqrt();
Я думаю, что если уж разрешать вращать, то уже разрешать, а запрещать проходить - так уже запрещать. Ну, как у А. Розенбаума. А поскольку, главная диагональ - максимальный размер параллелепипеда, кто мне запретит развернуть его этой диагональю параллельно любой из сторон отверстия? -"Летать, - так летать!"
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 15:39     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #12
IGPIGP, я кажется понял вас. Вы хотели сказать, что "как не вращай кирпич, он должен пролазить в дырку", да?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 16:01     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие
Еще ссылки по теме:

Проверить, пройдет ли кирпич с ребрами a,b,c в отверстие размером x на y C++
C++ Разветвляющийся алгоритм. Определить размеры очередей после проезда маршрутного такси заданной вместимости
Пройдет ли кирпич через прямоугольное отверстие C++

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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,730
Записей в блоге: 3
05.02.2012, 16:01     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие #13
Цитата Сообщение от soon Посмотреть сообщение
Вы хотели сказать, что "как не вращай кирпич, он должен
В моём первом посте о формулировке задачи, я выразился наиболее, точно и нудно.
Ну, то есть, как только мы отказываемся от отверстия которое Может (не обязано) пропустить, мы сразу допускаем, что и проносить кирпич будем - не самым лучшим образом.
Но ведь ни-каких ограничений на траекторию цм кирпича нет! А-ну, покажите мне стену с каким угодно большим отверстием, что бы я швырнув кирпич, без желания попасть, и не промахнулся бы.
Нет, я считаю, что во #2 посте Вы были правы.
Что касается Sqrt(a^2+d^2+c^2) - это иллюстрация, того, что нужно ввести ограничения (траектория цм перпендикулярна плоскости прямоуголного отверстия и проходит через точку пересечения его диагоналей) за "нерадивых" составителей задачи, и в добавок, что здесь нет алгоритма, просто геометрия. Еще один аргумент, что вращать не стоит. Мое мнение
Yandex
Объявления
05.02.2012, 16:01     Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие
Ответ Создать тему
Опции темы

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