직육면체(Cuboid)란 무엇인가?
직육면체는 여섯 개의 직사각형 면으로 이루어진 3차원 입체 도형입니다. 각 면은 서로 다른 길이와 너비를 가질 수 있으며, 정육면체와의 차이점은 정육면체는 길이·높이·너비가 모두 같지만 직육면체는 세 값이 서로 다를 수 있다는 점입니다.
직육면체의 주요 성질은 다음과 같습니다.
- 6개의 면
- 12개의 모서리
- 8개의 꼭짓점
문제 정의
직육면체의 길이(L), 너비(W), 높이(H)가 주어졌을 때, 전체 표면적과 부피를 구하는 것이 목표입니다. 여기서 표면적은 직육면체의 모든 면이 차지하는 공간의 크기를 의미하고, 부피는 도형 내부에 담을 수 있는 공간의 크기를 의미합니다.
직육면체의 표면적과 부피를 계산하는 공식은 다음과 같습니다.
전체 표면적 = 2 × (L×W + W×H + L×H)
부피 = L × W × H
예제 입력 및 출력
입력: L=3, H=2, W=3
출력:
직육면체의 부피: 18
직육면체의 전체 표면적: 42
알고리즘
- 직육면체의 부피를 구하는 함수를 선언합니다.
double volume(double l, double h, double w)→return (l * h * w) - 직육면체의 표면적을 구하는 함수를 선언합니다.
double surface_area(double l, double h, double w)→return (2 * l * w + 2 * w * h + 2 * l * h) - main() 함수에서 변수 l=3, h=2, w=3을 선언한 뒤, 두 함수를 호출하여 결과를 출력합니다.
C++ 코드 구현
#include <bits/stdc++.h>
using namespace std;
// 직육면체의 부피를 계산하는 함수
double volume(double l, double h, double w){
return (l * h * w);
}
// 직육면체의 전체 표면적을 계산하는 함수
double surface_area(double l, double h, double w){
return (2 * l * w + 2 * w * h + 2 * l * h);
}
int main(){
double l = 3;
double h = 2;
double w = 3;
cout << "직육면체의 부피: " << volume(l, h, w) << endl;
cout << "직육면체의 전체 표면적: " << surface_area(l, h, w);
return 0;
}
실행 결과
직육면체의 부피: 18
직육면체의 전체 표면적: 42
코드 설명
위 코드는 두 개의 독립적인 함수로 구성되어 있습니다. volume() 함수는 길이, 높이, 너비를 곱하여 부피를 반환하며, surface_area() 함수는 서로 마주 보는 면이 두 쌍씩 존재한다는 원리를 이용해 각 조합의 면적에 2를 곱한 값을 더해 전체 표면적을 계산합니다. main 함수에서는 실수형 변수에 값을 저장한 후 각 함수를 호출하여 결과를 화면에 출력합니다. 이처럼 함수를 분리하면 코드의 가독성이 높아지고 재사용성도 향상됩니다.