0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 33
1

Определить, пройдет ли кирпич через отверстие

14.11.2010, 09:00. Показов 5460. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1.Заданы размеры A, B прямоугольного отверстия и размеры X, Y, Z кирпича. Определить, пройдет ли кирпич через отверс*тие
2.Два прямоугольника, расположенные в первом квадранте, со сторонами, параллельными осям координат, заданы коорди*натами своих левого верхнего и правого нижнего углов. Для первого прямоугольника это точки (x1, y1) и (x2, 0), для второ*го — (x3, y3), (x4, 0) Составить программу, определяющую, пересекаются ли данные прямоугольники, и вычисляющую площадь общей части, если они пересекаются.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2010, 09:00
Ответы с готовыми решениями:

Определить, пройдет ли кирпич через отверстие
Помогите составить блок-схему, и написать програму в VBA?!?!?! Заданы размеры А, В...

Выяснить, пройдет ли кирпич с ребрами А, В, С в прямоугольное отверстие со сторонами x, y
задача: Даны действительные числа A, B, C. Выяснить пройдет ли кирпич с ребрами А, В, С в...

Определить, пройдет ли цилиндр в отверстие, имеющее форму равностороннего треугольника
Определить, пройдет ли цилиндр диаметром d в отверстие, имеющее форму равностороннего треуголь-...

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

15
Заблокирован
14.11.2010, 14:41 2
FARAON166,
если выложишь материалы, которые вы проходили, то я попробовал бы сделать.
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
15.11.2010, 21:59 3
Заданы размеры A, B прямоугольного отверстия и размеры X, Y, Z кирпича.
Ну поперёк кирпич не пролезет я думаю? Значит надо сравнить 2 минимальных размера кирпича с размерами дыры
А по второму вопросу - проще взять карандаш и нарисовать возможные варианты.
А все варианты в соотношении X
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
16.11.2010, 03:06 4
если кирпич не пролазит плашмя или руба, то он может пролезть под углом. задача нетривиальная. поиск "на вскидку" не дает готового уравнения. тут больше геометрия а не прогаммирование
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
16.11.2010, 06:54 5
Ну ессно
Надо составить и решить систему неравенств(но сначала выбрать две коротких стороны)
Кирпичь то всё равно пхнуть надо только руба
0
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 33
17.11.2010, 14:47  [ТС] 6
Цитата Сообщение от Busine2009 Посмотреть сообщение
FARAON166,
если выложишь материалы, которые вы проходили, то я попробовал бы сделать.
http://dump.ru/file/4901931
0
Заблокирован
17.11.2010, 21:51 7
FARAON166,
здесь действительно математика, а VBA так себе.
Напиши, как эта задача решается в математике.
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
18.11.2010, 08:53 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ну если я внимательно сделал выражение из системы неравентв, то примерно так(длинную сторону не определял. проверка только на "тычок")
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Option Explicit
 
Private Sub Комманда1_Click()
Dim a, b, c, d
Dim x1, x2, x3, x4
Dim S
Dim J
a = CDbl(Replace(Текст1.Text, ".", ",")) 'кирпич
b = CDbl(Replace(Текст2.Text, ".", ",")) 'кирпич
c = CDbl(Replace(Текст3.Text, ".", ",")) 'дыра
d = CDbl(Replace(Текст4.Text, ".", ",")) 'дыра
For J = 0 To d Step 0.01
S = (c - ((b - J) ^ 2) ^ 0.5) ^ 2 + (d - J) ^ 2
If S > a ^ 2 Then
MsgBox "Пролезет!"
Exit Sub
End If
Next J
MsgBox "Ні лізе!"
End Sub
1
Заблокирован
18.11.2010, 09:20 9
определяем два минимальных размера кирпича
например, получили X и Z
и если A>X, B>Z или A>Z, B>X то пролазит
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
18.11.2010, 09:23 10
Dzhej-Dzhej,
ironegg сказал правду:
если кирпич не пролазит плашмя или руба, то он может пролезть под углом. задача нетривиальная. поиск "на вскидку" не дает готового уравнения. тут больше геометрия а не прогаммирование
кирпич размером 6х12 в дыру 11х11 пролезет-таки!!
Кирпич надо "вращать" и по Пифагору проверять на "влазимость"
0
Заблокирован
18.11.2010, 09:41 11
Alex77755, а таки пролазит
не будет ли логичным предположить, что удобней всего пропихивать его подиагонали
тогда A*B>Z*X+Z*Z+X*X(площадь кирпича+квадрат вокруг него)
или нужно учитывать 3D-верчение?
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
18.11.2010, 09:47 12
Возможно. Реализуй и покажи
Вращение вроде 2D было?
0
Заблокирован
18.11.2010, 10:06 13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Alex77755, примерно так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Command1_Click()
    Dim x, y, z, a, b, min1, min2
    x = CDbl(Replace(Text1.Text, ".", ",")) 'кирпич
    y = CDbl(Replace(Text2.Text, ".", ",")) 'кирпич
    z = CDbl(Replace(Text3.Text, ".", ",")) 'кирпич
    a = CDbl(Replace(Text4.Text, ".", ",")) 'дыра
    b = CDbl(Replace(Text4.Text, ".", ",")) 'дыра
    min1 = x
    min2 = y
    If (z < x) Then
        min1 = z
        If (x < y) Then min2 = x
    End If
    If ((min1 < a And min2 < b) Or _
        (min1 < b And min2 < a) Or _
        (a * b > min1 ^ 2 + min1 * min2 + Min ^ 2)) Then
            MsgBox "Ïðîëåçåò!"
            Exit Sub
    End If
    MsgBox "ͳ ë³çå!"
End Sub
что-то я намудрил
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
18.11.2010, 10:26 14
Похоже оба кода неверны!!
Кирпич(подлец) просочился в щель 500х5
1
Заблокирован
18.11.2010, 10:48 15
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Command1_Click()
    Dim x, y, z, a, b, min1, min2
    x = CDbl(Replace(Text1.Text, ".", ",")) 'êèðïè÷
    y = CDbl(Replace(Text2.Text, ".", ",")) 'êèðïè÷
    z = CDbl(Replace(Text3.Text, ".", ",")) 'êèðïè÷
    a = CDbl(Replace(Text4.Text, ".", ",")) 'äûðà
    b = CDbl(Replace(Text5.Text, ".", ",")) 'äûðà
    min1 = x
    min2 = y
    If (z < x) Then
        min1 = z
        If (x < y) Then min2 = x
    Else
        If (z < y) Then min2 = z
    End If
    If ((min1 < a And min2 < b) Or _
        (min1 < b And min2 < a) Or _
        (a * b > (min1 / Sqr(2)) ^ 2 + min1 * min2 + (min2 / Sqr(2)) ^ 2)) Then
            MsgBox "Ïðîëåçåò!"
    Else
        MsgBox "ͳ ë³çå!"
    End If
    MsgBox CStr(a * b) + "  " + CStr((min1 / Sqr(2)) ^ 2 + min1 * min2 + (min2 / Sqr(2)) ^ 2)
End Sub
может так, только пролазит 12х3

Добавлено через 11 минут
Цитата Сообщение от Alex77755 Посмотреть сообщение
Кирпич(подлец) просочился в щель 500х5
тоже
хз, как решать
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
18.11.2010, 10:49 16
Да просто внимательно проверить все условия
Например:
Visual Basic
1
    If min1 < a Or min1 < b Then MsgBox "Да куды ж вы пхнёте!!!"
1
18.11.2010, 10:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2010, 10:49
Помогаю со студенческими работами здесь

Определить пройдет ли кирпич через отверстие
Пожалуйста,помогите написать 2 программы и объединить их....Плизззз,помогите...((Завтра уже нужно...

Определить, пройдет ли кирпич через отверстие
Помогите решить!) Заданы размеры А, В прямоугольного отверстия и размеры X, Y, Z кирпича....

Ветвление: Определить, пройдет ли кирпич через отверстие заданных размеров
заданы размеры А, В прямоугольного отверстия и размеры x, y, z кирпича. определить пройдет ли...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru