Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/30: Рейтинг темы: голосов - 30, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 33

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

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

Студворк — интернет-сервис помощи студентам
1.Заданы размеры A, B прямоугольного отверстия и размеры X, Y, Z кирпича. Определить, пройдет ли кирпич через отверс*тие
2.Два прямоугольника, расположенные в первом квадранте, со сторонами, параллельными осям координат, заданы коорди*натами своих левого верхнего и правого нижнего углов. Для первого прямоугольника это точки (x1, y1) и (x2, 0), для второ*го — (x3, y3), (x4, 0) Составить программу, определяющую, пересекаются ли данные прямоугольники, и вычисляющую площадь общей части, если они пересекаются.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2010, 09:00
Ответы с готовыми решениями:

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

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

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

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

Решение

Ну если я внимательно сделал выражение из системы неравентв, то примерно так(длинную сторону не определял. проверка только на "тычок")
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
определяем два минимальных размера кирпича
например, получили X и Z
и если A>X, B>Z или A>Z, B>X то пролазит
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.11.2010, 09:23
Dzhej-Dzhej,
ironegg сказал правду:
если кирпич не пролазит плашмя или руба, то он может пролезть под углом. задача нетривиальная. поиск "на вскидку" не дает готового уравнения. тут больше геометрия а не прогаммирование
кирпич размером 6х12 в дыру 11х11 пролезет-таки!!
Кирпич надо "вращать" и по Пифагору проверять на "влазимость"
0
Заблокирован
18.11.2010, 09:41
Alex77755, а таки пролазит
не будет ли логичным предположить, что удобней всего пропихивать его подиагонали
тогда A*B>Z*X+Z*Z+X*X(площадь кирпича+квадрат вокруг него)
или нужно учитывать 3D-верчение?
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.11.2010, 09:47
Возможно. Реализуй и покажи
Вращение вроде 2D было?
0
Заблокирован
18.11.2010, 10:06
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.11.2010, 10:26
Похоже оба кода неверны!!
Кирпич(подлец) просочился в щель 500х5
1
Заблокирован
18.11.2010, 10:48
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.11.2010, 10:49
Да просто внимательно проверить все условия
Например:
Visual Basic
1
    If min1 < a Or min1 < b Then MsgBox "Да куды ж вы пхнёте!!!"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.11.2010, 10:49
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru