Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 31

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

26.09.2021, 18:30. Показов 4078. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
]Добрый вечер всем!!! НУжно написать программу, но не получается. Вот условие:Проверить, пройдет ли кирпич в прямой отверстие. Размеры кирпича — A, B, C
(длина, высота, ширина — задаются в произвольном порядке). Размеры отверстия W,
H (ширина, высота — задаются в произвольном порядке). Просовывать кирпич в
отверстие разрешается только так, чтобы каждое из его ребер было параллельно или
перпендикулярно каждой из сторон отверстия
Начал с импорта сканнера ввел переменные т.к нужно вводить произвольные. Вообщем, задача такова
проверить, можно ли через указанное отверстие просунуть кирпич(параллелепипед) с указанными размерами.
А и в данной программе не нужно использовать циклы
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2021, 18:30
Ответы с готовыми решениями:

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

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

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

19
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38192 / 21125 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
26.09.2021, 19:07
Как вариант:

Java
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
28
29
30
31
32
33
import java.util.Scanner;
 
public class Main
{
    public static Boolean checkBrick(int a, int b, int c, int w, int h)
    {
        return (a<=w && b <=h) || (b<=w && a<=h) || 
               (a<=w && c <=h) || (c<=w && a<=h) ||
               (c<=w && b <=h) || (b<=w && c<=h) ;
    }
    
    public static void main(String[] args) {
        
        int a,b,c,w,h;
        
        Scanner inp = new Scanner(System.in);
        
        System.out.println("Кирпич:");
        System.out.print("a="); a=inp.nextInt();
        System.out.print("b="); b=inp.nextInt();
        System.out.print("c="); c=inp.nextInt();
        
        System.out.println("Отверстие:");
        System.out.print("w="); w=inp.nextInt();
        System.out.print("h="); h=inp.nextInt();
        
        if (checkBrick(a,b,c,w,h))
           System.out.println("Проходит!");
        else
           System.out.println("Не проходит!");
        
    }
}
0
0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 31
26.09.2021, 23:13  [ТС]
А вот такое можно как-нибудь допилить:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
 
public class Main {
public static void main(String[]args) {
 
System.out.prinln(“Введите длину кирпича:»);
Scanner one = new Scanner(System.in);
int A= one.nextInt();
System.out.prinln(“Введите ширину кирпича:»);
Scanner two = new Scanner(System.in);
int B = two.nextInt();
System.out.prinln(“Введите высоту кирпича:»);
Scanner three = new Scanner(System.in);
int C= three.nextInt();
System.out.prinln(“Введите ширину отверствия :»);
Scanner ff= new Scanner(System.in);
int W = ff.nextInt();
System.out.prinln(“Введите высоту отверствия:»);
Scanner aa  = new Scanner(System.in);
int H= aa.nextInt();
  if(B==H & C==W){
System.out.println(“Пройдет»);
}else{
System.out.println(“Не пройдёт);
0
 Аватар для BaLahmuT
88 / 32 / 16
Регистрация: 01.06.2019
Сообщений: 672
27.09.2021, 00:52
Цитата Сообщение от Ivan77 Посмотреть сообщение
можно как-нибудь допилить
1.Сканер достаточно объявить один раз
2.Сделаем код более читабельным
3.Полная проверка кирпича
Java
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
28
29
 public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        System.out.print("Введите длину кирпича: ");
        int length = sc.nextInt(); 
        
        System.out.print("Введите ширину кирпича: ");
        int width = sc.nextInt(); 
        
        System.out.print("Введите высоту кирпича: ");
        int height = sc.nextInt(); 
        
        System.out.print("Введите ширину отверствия: ");
        int widthHole = sc.nextInt();
        
        System.out.print("Введите высоту отверствия: ");
        int heightHole = sc.nextInt();
        
        if((length <= widthHole && width <= heightHole) || (length <= widthHole &&  height <= heightHole) ||
           (height <= widthHole && width <= heightHole) || (width <= widthHole && length <= heightHole) ||
           (height <= widthHole && length <= heightHole) || (width <= widthHole && height <= heightHole))
        {
            System.out.println("Пройдет");
        }
        else
        {
            System.out.println("Не пройдёт");
        }
    }
0
0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 31
27.09.2021, 08:35  [ТС]
Данная программа выдает ошибку, не знаю где она но она есть. И программа для меня слишком странная.
Так как вы сравниваете длину с высотой, и длину с шириной, зачем?

Добавлено через 3 минуты
У данной программы ошибка на класс main. И для меня этот очень серьезная программа, и очень не понятная
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38192 / 21125 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
27.09.2021, 11:02
Ivan77, мой код проверен. Разберись.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
27.09.2021, 11:08
Цитата Сообщение от Ivan77 Посмотреть сообщение
Так как вы сравниваете длину с высотой, и длину с шириной, зачем?
потому что кирпич можно перевернуть, очевидно же
0
 Аватар для BaLahmuT
88 / 32 / 16
Регистрация: 01.06.2019
Сообщений: 672
27.09.2021, 11:14
Ivan77, в чем конкретно заключается ошибка? кирпич же можно еще и вращать
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38192 / 21125 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
27.09.2021, 15:03
xoraxax, BaLahmuT, нельзя. В условии оговорено.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
27.09.2021, 15:26
Цитата Сообщение от Catstail Посмотреть сообщение
нельзя. В условии оговорено.
Цитата Сообщение от Catstail Посмотреть сообщение
(a<=w && b <=h) || (b<=w && a<=h) ||
               (a<=w && c <=h) || (c<=w && a<=h) ||
               (c<=w && b <=h) || (b<=w && c<=h)
сам же проверяешь. Видимо, все-таки, можно. В условии кстати не оговорено
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.09.2021, 15:42
Цитата Сообщение от Catstail Посмотреть сообщение
нельзя. В условии оговорено.
Цитата Сообщение от Ivan77 Посмотреть сообщение
длина, высота, ширина — задаются в произвольном порядке
Эээээммм....
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38192 / 21125 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
27.09.2021, 15:49
xoraxax, я не о том! Я о вращении на угол, отличный от 90 градусов. Это уже геометрические тонкости.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
27.09.2021, 15:50
никто не говорил про углы - тс не понимает, что происходит
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
27.09.2021, 17:46
у меня мысль проще возникла, проверять площади дырки и соответствующих граней параллелепипеда, если <= сразу сравнивать большие и меньшие стороны.
0
0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 31
06.10.2021, 18:50  [ТС]
А как применить прием связанный с упорядочиванием входных значений?
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
07.10.2021, 10:16
Ivan77, в стиле ооп должно быть понятнее:
Java
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class Helper {
    public static void main(String[] args) {
        Brick standartBrick = new Brick(120, 250, 65);
        Side hol1 = new Side(119, 250);
        Side hol2 = new Side(65, 250);
        System.out.println(isBrickInTheHole(standartBrick, hol1));
        System.out.println(isBrickInTheHole(standartBrick, hol2));
    }
 
    public static boolean isBrickInTheHole(Brick brick, Side hol) {
        return brick.getFirstSide().isItPossibleFitThisSideToOther(hol) ||
               brick.getSecondSide().isItPossibleFitThisSideToOther(hol) ||
               brick.getThirdSide().isItPossibleFitThisSideToOther(hol);
    }
}
//###
// кирпич задаем в конструкторе его ребра
class Brick {
    int edgeA;
    int edgeB;
    int edgeC;
 
    public Brick(int edgeA, int edgeB, int edgeC) {
        this.edgeA = edgeA;
        this.edgeB = edgeB;
        this.edgeC = edgeC;
    }
 
    public Side getFirstSide() {return new Side(edgeA, edgeB);}
    public Side getSecondSide() {return new Side(edgeA, edgeC);}
    public Side getThirdSide() {return new Side(edgeB, edgeC);}
}
//###
//сторона поверхности кирпича или дырки
class Side {
    int w;
    int h;
 
    public Side(int w, int h) {
        this.w = w;
        this.h = h;
    }
 
    public int getArea() {return w * h;}
 
    // определяет можно ли эту сторону полностью вписать в другую, с учетом поворота на 90 град.
    public boolean isItPossibleFitThisSideToOther(Side otherSide){
        if (this.getArea() < otherSide.getArea()) return false;
        boolean firstComparison = this.w <= otherSide.w && this.h <= otherSide.h;
        boolean rotationComparison = this.w <= otherSide.h && this.h <= otherSide.w;
        return firstComparison || rotationComparison;
    }
}
0
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
07.10.2021, 18:22
Кстати, а что если отверстие овальное? Судя по предложенным решениям, предполагается, что отверстие прямоугольное, однако в условии задачи это нигде не оговаривается
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
07.10.2021, 18:27
Цитата Сообщение от stake-k26 Посмотреть сообщение
в условии задачи это нигде не оговаривается
читаем внимательно.
Цитата Сообщение от Ivan77 Посмотреть сообщение
Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия
0
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
07.10.2021, 19:30
Aviz__, это условие говорит только о том, что крутить кирпич можно только на 90 градусов (или кратные) и никак иначе. Углы вроде 30, 127 или 253 не приветствуются. Однако о форме отверстия это условие не говорит вообще ничего.
1
07.10.2021, 20:01

Не по теме:

Ага. Еще отверстие в резине или кирпич из поролона...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2021, 20:01
Помогаю со студенческими работами здесь

Пройдет ли кирпич в прямоугольное отверстие
З'ясувати, чи пройде цегла з ребрами A, B, C в прямокутний отвір зі сторонами x і y.

Пройдет ли кирпич в прямоугольное отверстие
Даны действительные положительные числа а, b, с, х, у. Выяснить, пройдет ли кирпич с ребрами а, b, с в прямоугольное отверстие со сторонами...

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

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

Определить пройдет ли кирпич в прямоугольное отверстие
1)Имеется прямоугольное отверстие со сторонами а и b и кирпич с ребрами х, у, z. Требуется определить пройдет ли кирпич в отверстие. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru