Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 25

Определить, поместится ли изделие в коробку, если известны размеры его и коробки

18.06.2015, 14:24. Показов 5569. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с задачей и хорошо бы с комментариями, чтобы я не просто списал решение, а понял.

Имеется изделие размером AxBxC. Для упаковки изделия представлена коробка размером X x Y x Z. Составить алгоритм программы, проверяющий возможно или нет поместить это изделие в коробку.

Алгоритм представить в виде таблицы решений.

Благодарю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2015, 14:24
Ответы с готовыми решениями:

Определить количество коробок, которые можно изготовить из одного листа, если известны его размеры
Кому несложно плиз помогите: Составить программу, которая определяет размер картона, который требуется для изготовления одной коробки,...

Найти радиус окружности, описаной вокруг многоугольника, если известны размеры его сторон
Найти радиус окружности, описаной вокруг многоугольника, если размер его сторон равен 1-см, 2-см,3-см....N-см. Ограничение: 5≤N≤29

Определить, сколько потребуется банок с краской, если известны размеры бака и площадь
линейный вычислительный процесс: 5) Маляру поручили покрасить крышу и стенки бака для бензина в форме цилиндра. Определить, сколько...

12
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
21.06.2015, 21:02
Есть какие-нибудь наработки или надеетесь на то, что с нуля решат?

Добавлено через 10 минут
Вот, сделал, насчёт таблицы решений правда не совсем понятно, поэтому сделал просто вывод помещается или нет. Если что - можно упростить
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B, C = 0;
            int X, Y, Z = 0;
            Console.WriteLine("Введите размеры коробки");
            Console.WriteLine("X: ");
            X = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Y: ");
            Y = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Z: ");
            Z = Convert.ToInt32(Console.ReadLine());
 
            Console.WriteLine("Введите размеры вещи");
            Console.WriteLine("А: ");
            A = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("В: ");
            B = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("С: ");
            C = Convert.ToInt32(Console.ReadLine());
            if (A > 0 && B > 0 && C > 0)
            {
                if (A <= X)
                {
                    if (B <= Y)
                    {
                        if (C <= Z)
                        {
                            Console.WriteLine("Вещь помещается в коробку");
                        }
                        else { Console.WriteLine("Вещь не помещается по высоте"); }
                    }
                    else { Console.WriteLine("Вещь не помещается по длине"); }
                }
                else { Console.WriteLine("Вещь не помещается по ширине"); }
            }
            else { Console.WriteLine("Недопустимый размер вещи"); }
            Console.ReadKey();
        }
    }
}
Добавлено через 5 минут
Deinmar, Решил
0
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
21.06.2015, 21:30
zaqqq13,У тебя не корректный код. Если ввести x-11 y-10 z-10 и a-10 b-10 c-11 Вещь ведь влезет, а твой код говорит обратное. Ниже подправил

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
28
29
30
31
32
33
34
35
36
using System;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B, C = 0;
            int X, Y, Z = 0;
            Console.WriteLine("Введите размеры коробки");
            Console.WriteLine("X: ");
            X = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Y: ");
            Y = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Z: ");
            Z = Convert.ToInt32(Console.ReadLine());
 
            Console.WriteLine("Введите размеры вещи");
            Console.WriteLine("А: ");
            A = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("В: ");
            B = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("С: ");
            C = Convert.ToInt32(Console.ReadLine());
            if (A > 0 && B > 0 && C > 0)
            {
                if ((A <= X || A <= Y || A <= Z) && (B <= X || B <= Y || B <= Z) && (C <= X || C <= Y || C <= Z))
                { Console.WriteLine("Поместится"); }
                else Console.WriteLine("не поместится");
            }
            else { Console.WriteLine("Недопустимый размер вещи"); }
            Console.ReadKey();
        }
    }
}
Добавлено через 8 минут
условие только исправь на
C#
1
if ((A <= X && A <= Y && A <= Z) && (B <= X && B <= Y && B <= Z) && (C <= X && C <= Y && C <= Z))
0
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
22.06.2015, 00:37
bbq, я сразу думал так сделать, но слишком просто, несолидно выглядит
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
22.06.2015, 00:46
zaqqq13, bbq,
У вас не рассмотрен вариант, что изделие можно по диагонали положить или под любым углом
0
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
22.06.2015, 00:58
XRoy, а ещё изделие можно разобрать по частям и запихать ногой поплотнее. Вариантов размещения может быть много, главное что у bbq учтён вариант, что можем класть любой стороной, а я это упустил как-то. Ну а если с вашим вариантом, то можно тупо считать объём и от него плясать уже
0
22.06.2015, 10:38

Не по теме:

Цитата Сообщение от zaqqq13 Посмотреть сообщение
надеетесь на то, что с нуля решат?
Цитата Сообщение от zaqqq13 Посмотреть сообщение
Вот, сделал
Ну, собственно... :)

0
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
22.06.2015, 19:06
kolorotur,

Не по теме:

Ну я же добрый :)

0
79 / 79 / 12
Регистрация: 07.01.2012
Сообщений: 167
23.06.2015, 10:56
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
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
namespace IsFit
{
    class Program
    {
        static void Main(string[] args)
        {
 
            Box outerB = new Box(10, 20, 60);
            Box innerB = new Box(40, 5, 60);
 
            Console.WriteLine( outerB.CanContain(innerB));
            Console.ReadLine();
        }
    }
 
    public class Box
    {
        private readonly ushort Length, Width, Depth;
 
        public Box(ushort length, ushort width, ushort depth)
        {
            Contract.Assert(length > 0 && width > 0 && depth > 0, "A dimension of a box can't be less than 1");
            Length = length;
            Width = width;
            Depth = depth;
        }
 
        public ulong  Volume { get
            {
                return (ulong)(Length * Width * Depth);
            }
        }
 
        public ushort MaxDimension { get { return Math.Max(Math.Max(Length, Width), Depth); } }
 
        public ushort MinDimension { get { return Math.Min(Math.Min(Length, Width), Depth); } }
 
        public ushort MiddlleDimension { get { return (ushort)(Length ^ Width ^ Depth ^ MaxDimension ^ MinDimension); } }
    }
 
    public static class BoxCompareExtension
    {
        /// <summary>
        /// Returns true in case if an inner box can be fitted into an outer box. 
        /// Otherwise returns false. 
        /// </summary>
        /// <param name="OuterBox"> A box to be container</param>
        /// <param name="InnerBox">A box to be contained</param>
        /// <returns>
        /// True in case if an inner box can be fitted into an outer box. 
        /// Otherwise returns false. 
        /// </returns>
        public static bool CanContain(this Box OuterBox, Box InnerBox)
        {
            Contract.Assert(OuterBox != null && InnerBox != null, "A box can't be null");
 
            if (OuterBox.Volume < InnerBox.Volume)
                return false;
 
            if (OuterBox.MaxDimension < InnerBox.MaxDimension 
                || OuterBox.MinDimension < InnerBox.MinDimension 
                || OuterBox.MiddlleDimension < InnerBox.MiddlleDimension)
                return false;
 
            return true;
        }
    }
}
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
23.06.2015, 12:14
Цитата Сообщение от bbq Посмотреть сообщение
условие только исправь на
не лезет http://ideone.com/uN7MdC
0
0 / 0 / 1
Регистрация: 15.09.2012
Сообщений: 40
23.06.2015, 12:55
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B, C = 0;
            int X, Y, Z = 0;
            Console.WriteLine("Введите размеры коробки");
            //Console.WriteLine("X: ");
            X = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("Y: ");
            Y = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("Z: ");
            Z = Convert.ToInt32(Console.ReadLine());
 
            Console.WriteLine("Введите размеры вещи");
            //Console.WriteLine("А: ");
            A = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("В: ");
            B = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("С: ");
            C = Convert.ToInt32(Console.ReadLine());
 
            if (A > 0 && B > 0 && C > 0)
            {
                if (A <= X)
                {
                    if ((B <= Y && C <= Z) || (B <= Z && C <= Y)) Console.WriteLine("Поместится");
                    else Console.WriteLine("не поместится");
                }
                else if (A <= Y)
                {
                    if ((B <= X && C <= Z) || (B <= Z && C <= X)) Console.WriteLine("Поместится");
                    else Console.WriteLine("не поместится");
                }
                else if (A <= Z)
                {
                    if ((B <= X && C <= Y) || (B <= Y && C <= X)) Console.WriteLine("Поместится");
                    else Console.WriteLine("не поместится");
                }
                else Console.WriteLine("не поместится");
            }
            else { Console.WriteLine("Недопустимый размер вещи"); }
            Console.ReadKey();
        }
    }
}
Добавлено через 11 минут
выше я поторопился

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B, C = 0;
            int X, Y, Z = 0;
            Console.WriteLine("Введите размеры коробки");
            //Console.WriteLine("X: ");
            X = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("Y: ");
            Y = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("Z: ");
            Z = Convert.ToInt32(Console.ReadLine());
 
            Console.WriteLine("Введите размеры вещи");
            //Console.WriteLine("А: ");
            A = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("В: ");
            B = Convert.ToInt32(Console.ReadLine());
            //Console.WriteLine("С: ");
            C = Convert.ToInt32(Console.ReadLine());
 
            if (A > 0 && B > 0 && C > 0)
            {
                if (A <= X && ((B <= Y && C <= Z) || (B <= Z && C <= Y))) Console.WriteLine("Поместится");
                else if (A <= Y && ((B <= X && C <= Z) || (B <= Z && C <= X))) Console.WriteLine("Поместится");
                else if (A <= Z && ((B <= X && C <= Y) || (B <= Y && C <= X))) Console.WriteLine("Поместится");
                else if (B <= X && ((A <= Y && C <= Z) || (A <= Z && C <= Y))) Console.WriteLine("Поместится");
                else if (B <= Y && ((A <= X && C <= Z) || (A <= Z && C <= X))) Console.WriteLine("Поместится");
                else if (B <= Z && ((A <= X && C <= Y) || (A <= Y && C <= X))) Console.WriteLine("Поместится");
                else if (C <= X && ((A <= Y && B <= Z) || (A <= Z && B <= Y))) Console.WriteLine("Поместится");
                else if (C <= Y && ((A <= X && B <= Z) || (A <= Z && B <= X))) Console.WriteLine("Поместится");
                else if (C <= Z && ((A <= X && B <= Y) || (A <= Y && B <= X))) Console.WriteLine("Поместится");
                else Console.WriteLine("не поместится");
            }
            else { Console.WriteLine("Недопустимый размер вещи"); }
            Console.ReadKey();
        }
    }
}
Добавлено через 6 минут
Хотя вариант Talent'а куда более короткий и приятный
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
23.06.2015, 12:59
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
     
    namespace Boxed
    {
        public class Program
        {
            static void Main(string[] args)
            {
                var item = new int[] { 10, 2, 1 };
                var box = new int[] { 2, 1, 10 };
     
                Array.Sort(item);
                Array.Sort(box);
                var allIn = true;
                for (int i = 0; i < item.Length; i++) allIn &= item[i] <= box[i];
                Console.WriteLine("{0}вместится", allIn ? "" : "не ");
                //Console.ReadKey(true);
            }
     
        }
    }
1
0 / 0 / 1
Регистрация: 15.09.2012
Сообщений: 40
23.06.2015, 13:10
Гениально... (хоть волосы рви, все ведь и правда можно было так легко решить) Хотя лучше бы ты мне в темке помог, ибо чувствую мне никто в ней не поможет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2015, 13:10
Помогаю со студенческими работами здесь

Известны площадь круга и квадрата. Определить поместится ли квадрат в круг
Помогите пожалуйста, сам не справлюсь! Начинающий в этом деле. Известны площадь круга и квадрата. Определить поместится ли квадрат в круг.

Определить, является ли треугольник прямоугольным, если известны три его стороны
Дорогие программисты помогите студенту. Буду очень благодарен. 54. Ли треугольник прямоугольным, если известны три его стороны a, b,...

Определить углы прямоугольного треугольника, если известны два его катета и гипотенуза
С клавиатуры вводятся три вещественных числа — два катета и гипотенуза прямоугольного треугольника. Определить его углы. Ответ вывести в...

Даны размеры прямоугольных открытки и конверта. Требуется определить, поместится ли открытка в конверт.
ПОМОГИТЕ ПОЖАЛУЙСТА

Известны площадь круга и площадь квадрата. Определить: поместится ли квадрат в круг?
Известны площадь круга S1 и площадь квадрата S1. Определить: поместится ли квадрат в круг?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru