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

Уровень сложности:

Напишите программу, которая должна определить, пройдет ли кирпич в отверстие. Размеры отверстия (длина и высота) вводит пользователь. Тоже самое касается габаритов кирпича, пользователь вводит в программу значения длины, ширины и высоты кирпича.

Достаточно не простая задача, просто постарайтесь решить её, не подглядывая в готовый код. Для удобства, начертил проекции так называемого кирпича.

// проекции кирпича
/*
   ******************************************    *****************
   *             сторона № 2                *    *  сторона № 1  *
   *                                        *    *               *
   ******************************************    *****************

   ******************************************
   *                                        *
   *                                        *
   *            сторона № 3                 *
   *                                        *
   *                                        *
   ******************************************
*/

Ниже показан результат работы программы:

#include <iostream>

using namespace std;

int main()
{
    double a, b, c, d, l;
    cout << "Enter the length(a): "; // длина кирпича
    cin >> a;
    cout << "Enter the width(b): "; // ширина кирпича
    cin >> b;
    cout << "Enter the height(c): "; // высота кирпича
    cin >> c;
    cout << "Enter the length of the oppenings(d): "; // вводим длину отверстия
    cin >> d;
    cout << "Enter the height of the oppenings(l): "; // вводим высоту отверстия
    cin >> l;
        switch ( (b <= d) && (c <= l) ? 1 : (a <= d) && (c <= l) ? 2 : (a <= d) && ( b <= l) ? 3 : -1 ) // составное условие
        {
        case 1  : {cout << "Brick went into the hole by the first party"  << endl; break; } // кирпич прошёл через отверстие первой стороной
        case 2  : {cout << "Brick went into the hole by the second party" << endl; break; } // кирпич прошёл через отверстие второй стороной
        case 3  : {cout << "Brick went into the hole by a third party"    << endl; break; } // кирпич прошёл через отверстие третьей стороной
        default : cout << "Brick did not pass through the hole"           << endl;          // кирпич не прошёл через отверстие
        }
    return 0;
}
// проекции кирпича
/*
   ******************************************    *****************
   *		     сторона № 2				*    *  сторона № 1  *
   *										*    *			     *
   ******************************************    *****************

   ******************************************
   *										*
   *										*
   *		    сторона № 3 				*
   *										*
   *										*
   ******************************************
*/

Значение выражения (1-tg x)^(ctg x)+ cos(x-y)

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 12.09.2012
Поделиться:

Комментарии

  1. Kiruxa_UA

    #include <iostream>
    using namespace std;

    int main() {
    int a, b, d, l;
    cout << «Input the length(a): «;
    cin >> a;
    cout << «Input the height(b): «;
    cin >> b;
    cout << «Input the length of the oppenings(d): «;
    cin >> d;
    cout << «Input the height of the oppenings(l): «;
    cin >> l;
    if (b == l && a != d) {
    cout << «Brick went into the hole by first party»;
    }
    else if (a == d && b != l) {
    cout << «Brick went into the hole by second party»;
    }
    else if (a == d && b == l) {
    cout << «The bricks completely correspond to the dimensions of the hole»;
    }
    else {
    cout << «Brick doesn’t enter into the hole»;
    }
    return 0;
    }

  2. stalkerhack

    #include <iostream>
    
    using namespace std;
     
    int main()
    {
    	int brick_length, brick_width, brick_hight;
    	int hole_length, hole_hight;
    	//Brick parameters
    	cout << "Enter the brick length: ";
    	cin >> brick_length;
    	cout << "\nEnter the brick width: ";
    	cin >> brick_width;
    	cout << "\nEnter the brick hight: ";
    	cin >> brick_hight;
    
    	//Hole parameters
    	cout << "\nEnter the hole length: ";
    	cin >> hole_length;
    	cout << "\nEnter the brick hight: ";
    	cin >> hole_hight;
    	
    	if ((brick_length <= hole_length ||  brick_width <= hole_length) & brick_hight <= hole_hight)
    	{
    		cout << "Brick went into the hole!" << endl;
    	}
    	else 
    	{
    		cout << "Brick can not went into the hole!" << endl;
    	}
    
    	return 0;
    }
  3. colt

    #include "stdafx.h"
    #include "iostream"
    #include "windows.h"
    #include "string"
    #include "stdlib.h"
    
    using namespace std;
    
    #define NOS 3		//количество размерностей кирпича
    #define NOE 2		//количество размерностей отверстия отверстия
    
    int intHoleMin, intHoleMax, intBrickMin, intBrickMax;
    int intBrickDimensions[NOS];		//размеры кирпича
    int intHoleDimensions[NOE];			//размеры отверстия
    
    bool bIsPossible[NOS];				//массив-индикатор  возможности "i"-й стороны пройти в отверстие
    bool bIsntPossible;					//индикатор того, что кирпич вообще не пройдёт в отверстие
    
    string strSides[NOS]={
    	"стороной 1 (ширина-длина)",
    	"стороной 2 (длина-высота)",
    	"стороной 3 (высота-ширина)"
    };
    string strDimensions[NOS]={
    	"ширину",
    	"длину",
    	"высоту"
    };
    
    int f_intCycle(int i, int l)				//функция при выходе за пределы массива переводит указатель на первый элемент
    {
    	if (i==l) return 0;
    	else return i;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {	
    	SetConsoleCP(1251);
    	SetConsoleOutputCP(1251);
    
    	while(true)
    	{
    		system("CLS");
    		cout<<"\t\t\tОпределить, пройдет ли кирпич в отверстие\n\n";
    		
    		bIsntPossible=true;					//иницализируем индикатор того, что кирпич вообще не пройдёт в отверстие
    
    		for (int i=0;i<NOS;i++)				//вводим размер кирпича и инициализируем массив-индикатор  возможности "i"-й стороны пройти в отверстие
    		{
    			cout<<"Введите "<<strDimensions[i]<<" кирпича: ";
    			cin>>intBrickDimensions[i];
    			bIsPossible[i]=false;
    		}
    
    		for (int i=0;i<NOE;i++)				//вводим размер отверстия
    		{
    			cout<<"Введите "<<strDimensions[i]<<" отверстия: ";
    			cin>>intHoleDimensions[i];
    		}
    
    
    		intHoleMin=min(intHoleDimensions[0],intHoleDimensions[1]);		//вычиляем минимальную размерность отверстия
    		intHoleMax=max(intHoleDimensions[0],intHoleDimensions[1]);		//вычисляем максимальную размерность отверстия
    
    		
    
    		for (int i=0;i<NOS;i++)
    		{
    			intBrickMin=min(intBrickDimensions[i],intBrickDimensions[f_intCycle((i+1),NOS)]);		//вычиляем минимальную размерность "i"-й стороны кирпича
    			intBrickMax=max(intBrickDimensions[i],intBrickDimensions[f_intCycle((i+1),NOS)]);		//вычисляем максимальную размерность "i"-й стороны кирпича
    			if ((intBrickMin<intHoleMin)&(intBrickMax<intHoleMax))									//сравниваем минимальные и максимальные размеронсти  "i"-й стороны кирпича и отверстия
    				{
    					bIsPossible[i]=true;		//сообщаем массиву-индикатору о возможности "i"-й стороны пройти в отверстие
    					bIsntPossible=false;		//сообщаем индикатору того, что кирпич вообще не пройдёт в отверстие, что он не прав =)))
    				}
    		}
    
    		if (bIsntPossible) cout<<"В это отверстие кирпич никак не влезет, даже не пробуйте\n\n";
    		else {
    		cout<<"В это отверстие кирпич влезет следующими сторонами:\n";
    		for (int i=0;i<NOS;i++) if (bIsPossible[i]) cout<<strSides[i]<<endl;		//выводим стороны кирпича, которые пройдут через отверстие
    		}
    		
    		system("PAUSE");
    	}
    	return 0;
    }
    • colt

      Замечу, что решение в примере не полное , например:

      Размер отверстия 3х6 пи этом должен влезть в отверстие как кирпич 2х4 так и 4х2.

  4. odto11

    odto11

    #include <iostream>
    using namespace std;
    
    int main()
    {
        double dLB, dWB, dHB;   //длинна, ширина, высота кирпича
        double dW, dH;          //ширина, высота отверстия
    
        cout << "\t\tПройдёт кирпич или нет???" << endl;
           
        cout << "Введите длинну кирпича: ";
        cin >> dLB;
        cout << "Введите ширину кирпича: ";
        cin >> dWB;
        cout << "Введите высоту кирпича: ";
        cin >> dHB;
    
        cout << "Введите ширина отверстия: ";
        cin >> dW;
        cout << "Введите высоту отверстия: ";
        cin >> dH;
    
        if(dWB <= dW && dHB <= dH)
        {  
            cout << "Кирпич войдёт в отверстие 1-й стороной" << endl;
        } else if(dLB <= dW && dHB <= dH)
            {  
                cout << "Кирпич войдёт в отверстие 2-й стороной" << endl;
            } else if(dLB <= dW && dWB <= dH )
                {  
                    cout << "Кирпич войдёт в отверстие 3-й стороной" << endl;
                } else 
                    {  
                        cout << "Кирпич не войдёт" << endl;
                    }  
                       
        return 0; 
               
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.