Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
Lana44
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 5
1

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

05.02.2012, 10:45. Просмотров 5410. Ответов 12
Метки нет (Все метки)

Помогите пожалуйста решить задачу на С++ про кирпич

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

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

Определить, пройдет ли кирпич в прямоугольное отверстие (Pascal -> C++)
Помогите перевести из паскаля в си++ uses crt; var a,b,c,x,y:real; ...

Пройдет ли кирпич с заданными сторонами в отверстие
Здравствуйте, помогите решить задачу)) Пройдет ли кирпич со сторонами a, b и...

Пройдет ли кирпич через прямоугольное отверстие
Пройдет ли кирпич со сторонами a, b и c через прямоугольное отверстие со...

Проверить, пройдет ли кирпич с ребрами a,b,c в отверстие размером x на y
Даны действительные положительные числа a,b,c,x,y.Проверить,пройдет ли кирпич с...

Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y.
Даны действительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами...

12
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 11:36 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
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
Завершенные тесты: 1
05.02.2012, 11:42 3
soon, по идее можно поворачивать кирпич
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 12:49 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;
}
2
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
05.02.2012, 13:13 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";
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 13:35 6
dimcoder, даже на 1 1 1 1 1 не проходит.
0
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
05.02.2012, 13:47 7
Цитата Сообщение от soon Посмотреть сообщение
dimcoder, даже на 1 1 1 1 1 не проходит.
Ну дорисовать везде к знакам сравнения =
<=
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 13:58 8
dimcoder, алгоритм, в котором сторона кирпича параллельна стороне отверстия представлен в посте #2. Лучше рассмотрите тот случай, когда кирпич можно поворачивать
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,332
Записей в блоге: 5
05.02.2012, 14:55 9
Цитата Сообщение от soon Посмотреть сообщение
dimcoder, алгоритм, в котором сторона кирпича параллельна стороне отверстия представлен в посте #2. Лучше рассмотрите тот случай, когда кирпич можно поворачивать
Трудно сказать определенно, но что-то заставляет усомниться:
Формулировка задачи:
Цитата Сообщение от Lana44 Посмотреть сообщение
Определить, пройдет ли кирпич в отверстие
Я читаю - как необходимое условие. Ну, то есть "Является ли отверстие таковым, что бы кирпич мог в него пройти" это - конечно, случай с параллельными сторонами. Здесь несмотря на некоторую интуитивность, все просто и строго. Так как в случае необходимой достаточности, не нужно оговаривать как движется кирпич. (Захочешь, - найдешь наилучший способ)
Думаю, если бы иметь в виду, случай произвольного пространственного положения кирпича относительно отверстия, сформулировать задачу было бы сложнее. Там было бы что-то вроде "Определить размеры прямоугольного отверстия, пропускающего кирпич при таком его движении, что траектория движения точки пересечения его диагоналей (или центра масс), перпендикулярна плоскости отверстия и проходит через точку пересечения диагоналей отверстия."
Как на мой вкус, с простотой формулировки потеряны, красота, интрига, изюминка задачи. Добавлена техническая сложность? Не уверен. Могу быть неправ, но вроде, в этом случае подходят все прямоугольники, каждая сторона, которых больше главной диагонали кирпича sqr(a^2+b^2+c^2).
Тут вроде и алгоритма нет.
По-этому, думаю, - Ваш ответ #2 - это правильный ответ всей задачи, если, только это не курсовая работа
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 15:26 10
Цитата Сообщение от IGPIGP Посмотреть сообщение
Могу быть неправ, но вроде, в этом случае подходят все прямоугольники, каждая сторона, которых больше главной диагонали кирпича sqr(a^2+b^2+c^2).
Хотели сказать sqrt?

Да даже если и sqrt, я чего-то не понимаю. К примеру кирпич 11 * 10 * 1, диагональ ~14.8. Размер отверстия 10*10. Все стороны меньше диагонали.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,332
Записей в блоге: 5
05.02.2012, 15:36 11
Цитата Сообщение от soon Посмотреть сообщение
Да даже если и sqrt, я чего-то не понимаю. К примеру кирпич 11 * 10 * 1, диагональ ~14.8. Размер отверстия 10*10. Все стороны меньше диагонали.
Конечно Sqrt();
Я думаю, что если уж разрешать вращать, то уже разрешать, а запрещать проходить - так уже запрещать. Ну, как у А. Розенбаума. А поскольку, главная диагональ - максимальный размер параллелепипеда, кто мне запретит развернуть его этой диагональю параллельно любой из сторон отверстия? -"Летать, - так летать!"
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 15:39 12
IGPIGP, я кажется понял вас. Вы хотели сказать, что "как не вращай кирпич, он должен пролазить в дырку", да?
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,332
Записей в блоге: 5
05.02.2012, 16:01 13
Цитата Сообщение от soon Посмотреть сообщение
Вы хотели сказать, что "как не вращай кирпич, он должен
В моём первом посте о формулировке задачи, я выразился наиболее, точно и нудно.
Ну, то есть, как только мы отказываемся от отверстия которое Может (не обязано) пропустить, мы сразу допускаем, что и проносить кирпич будем - не самым лучшим образом.
Но ведь ни-каких ограничений на траекторию цм кирпича нет! А-ну, покажите мне стену с каким угодно большим отверстием, что бы я швырнув кирпич, без желания попасть, и не промахнулся бы.
Нет, я считаю, что во #2 посте Вы были правы.
Что касается Sqrt(a^2+d^2+c^2) - это иллюстрация, того, что нужно ввести ограничения (траектория цм перпендикулярна плоскости прямоуголного отверстия и проходит через точку пересечения его диагоналей) за "нерадивых" составителей задачи, и в добавок, что здесь нет алгоритма, просто геометрия. Еще один аргумент, что вращать не стоит. Мое мнение
0
05.02.2012, 16:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 16:01

Вывести на экран размеры типов и размеры указателей на объекты
Составить программу, которая позволяет вычислить и вывести на экран размеры...

Простая программа про кирпич и отверстие
&quot;Прямоугольный формы кирпич имеет стороны A,B,C. Определить, пройдет ли кирпич...

Пройдет ли кирпич размером A*B*C в круглую дыру радиусом R
Задача: пройдет ли кирпич размером A*B*C в круглую дыру радиусом R . Написать...


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

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

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