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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.83
Lana44
0 / 0 / 0
Регистрация: 04.02.2012
Сообщений: 5
#1

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

05.02.2012, 10:45. Просмотров 4934. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заданы размеры прямоугольного отверстия A,B и размеры кирпича X,Y,Z. Определить, пройдет ли кирпич в отверстие (C++):

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

Пройдет ли кирпич с заданными сторонами в отверстие - C++
Здравствуйте, помогите решить задачу)) Пройдет ли кирпич со сторонами a, b и c через прямоугольное отверстие со сторонами r и s?...

Пройдет ли кирпич через прямоугольное отверстие - C++
Пройдет ли кирпич со сторонами a, b и c через прямоугольное отверстие со сторонами x и y? Стороны отверстия должны быть параллельны граням...

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

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

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

12
soon
2542 / 1307 / 81
Регистрация: 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 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
05.02.2012, 11:42 #3
soon, по идее можно поворачивать кирпич
0
soon
2542 / 1307 / 81
Регистрация: 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
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
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
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 13:35 #6
dimcoder, даже на 1 1 1 1 1 не проходит.
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
05.02.2012, 13:47 #7
Цитата Сообщение от soon Посмотреть сообщение
dimcoder, даже на 1 1 1 1 1 не проходит.
Ну дорисовать везде к знакам сравнения =
<=
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 13:58 #8
dimcoder, алгоритм, в котором сторона кирпича параллельна стороне отверстия представлен в посте #2. Лучше рассмотрите тот случай, когда кирпич можно поворачивать
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
05.02.2012, 14:55 #9
Цитата Сообщение от soon Посмотреть сообщение
dimcoder, алгоритм, в котором сторона кирпича параллельна стороне отверстия представлен в посте #2. Лучше рассмотрите тот случай, когда кирпич можно поворачивать
Трудно сказать определенно, но что-то заставляет усомниться:
Формулировка задачи:
Цитата Сообщение от Lana44 Посмотреть сообщение
Определить, пройдет ли кирпич в отверстие
Я читаю - как необходимое условие. Ну, то есть "Является ли отверстие таковым, что бы кирпич мог в него пройти" это - конечно, случай с параллельными сторонами. Здесь несмотря на некоторую интуитивность, все просто и строго. Так как в случае необходимой достаточности, не нужно оговаривать как движется кирпич. (Захочешь, - найдешь наилучший способ)
Думаю, если бы иметь в виду, случай произвольного пространственного положения кирпича относительно отверстия, сформулировать задачу было бы сложнее. Там было бы что-то вроде "Определить размеры прямоугольного отверстия, пропускающего кирпич при таком его движении, что траектория движения точки пересечения его диагоналей (или центра масс), перпендикулярна плоскости отверстия и проходит через точку пересечения диагоналей отверстия."
Как на мой вкус, с простотой формулировки потеряны, красота, интрига, изюминка задачи. Добавлена техническая сложность? Не уверен. Могу быть неправ, но вроде, в этом случае подходят все прямоугольники, каждая сторона, которых больше главной диагонали кирпича sqr(a^2+b^2+c^2).
Тут вроде и алгоритма нет.
По-этому, думаю, - Ваш ответ #2 - это правильный ответ всей задачи, если, только это не курсовая работа
0
soon
2542 / 1307 / 81
Регистрация: 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
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
05.02.2012, 15:36 #11
Цитата Сообщение от soon Посмотреть сообщение
Да даже если и sqrt, я чего-то не понимаю. К примеру кирпич 11 * 10 * 1, диагональ ~14.8. Размер отверстия 10*10. Все стороны меньше диагонали.
Конечно Sqrt();
Я думаю, что если уж разрешать вращать, то уже разрешать, а запрещать проходить - так уже запрещать. Ну, как у А. Розенбаума. А поскольку, главная диагональ - максимальный размер параллелепипеда, кто мне запретит развернуть его этой диагональю параллельно любой из сторон отверстия? -"Летать, - так летать!"
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.02.2012, 15:39 #12
IGPIGP, я кажется понял вас. Вы хотели сказать, что "как не вращай кирпич, он должен пролазить в дырку", да?
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 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
Привет! Вот еще темы с ответами:

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

Пройдет ли кирпич размером A*B*C в круглую дыру радиусом R - C++
Задача: пройдет ли кирпич размером A*B*C в круглую дыру радиусом R . Написать программу Добавлено через 9 минут Экзамен,...

Пройдет ли шар радиуса r через ромбообразное отверстие с диагоналями p и q? - C++
Добрый вечер , такая вот задачка : пройдет ли шар радиуса r через ромбообразное отверстие с диагоналями p и q?Нужо сделать на...

Разветвляющийся алгоритм. Определить размеры очередей после проезда маршрутного такси заданной вместимости - C++
Известны размеры очередей на трех соседних остановках. Определить размеры очередей после проезда маршрутного такси заданной вместимости.


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

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

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