Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 각뿔(피라미드) 부피 계산하기 – 밑면 모양별 공식과 코드 예제

밑면의 형태가 주어졌을 때, 해당 각뿔(피라미드)의 부피를 계산하는 것이 이번 글의 목표입니다.

각뿔은 외곽 면이 모두 삼각형으로 이루어져 있고, 이 삼각형들이 한 점에서 만나 뾰족한 꼭짓점을 형성하는 3차원 도형입니다. 각뿔의 부피는 어떤 모양의 밑면을 갖느냐에 따라 달라지며, 대표적인 밑면의 종류는 다음과 같습니다.

밑면 유형별 부피 공식

1. 삼각형 밑면

밑면이 삼각형인 경우, 각뿔의 부피는 다음 공식으로 구합니다.

공식 : (1/6) × a × b × h

2. 정사각형 밑면

밑면이 정사각형인 경우, 각뿔의 부피는 다음 공식으로 구합니다.

공식 : (1/3) × b² × h

3. 오각형 밑면

밑면이 오각형인 경우, 각뿔의 부피는 다음 공식으로 구합니다.

공식 : (5/6) × a × b × h

4. 육각형 밑면

밑면이 육각형인 경우, 각뿔의 부피는 다음 공식으로 구합니다.

공식 : a × b × h

여기서 a는 변의 길이, b는 밑변의 길이, h는 각뿔의 높이를 의미합니다.

예시

입력 : a=4, b=2, h=10
출력 :
  삼각형 밑면을 가진 각뿔의 부피 : 13.328
  정사각형 밑면을 가진 각뿔의 부피 : 13.2
  오각형 밑면을 가진 각뿔의 부피 : 66.4
  육각형 밑면을 가진 각뿔의 부피 : 80

아래 이미지는 정사각형 밑면을 가진 각뿔의 예시입니다.

C++로 각뿔(피라미드) 부피 계산하기 – 밑면 모양별 공식과 코드 예제

알고리즘

시작
Step 1 -> 삼각형 밑면 각뿔의 부피를 구하는 함수 선언
  float volumeTriangular(int a, int b, int h)
    float volume = (0.1666) * a * b * h 로 초기화
    volume 반환
Step 2 -> 정사각형 밑면 각뿔의 부피를 구하는 함수 선언
  float volumeSquare(int b, int h)
    float volume = (0.33) * b * b * h 로 선언 및 초기화
    volume 반환
Step 3 -> 오각형 밑면 각뿔의 부피를 구하는 함수 선언
  float volumePentagonal(int a, int b, int h)
    float volume = (0.83) * a * b * h 로 선언 및 초기화
    volume 반환
Step 4 -> 육각형 밑면 각뿔의 부피를 구하는 함수 선언
  float volumeHexagonal(int a, int b, int h)
    float volume = a * b * h 로 선언 및 초기화
    volume 반환
Step 5 -> main() 함수에서
  변수를 int b = 2, h = 10, a = 4 로 선언
  volumeTriangular(a, b, h) 호출
  volumeSquare(b, h) 호출
  volumePentagonal(a, b, h) 호출
  volumeHexagonal(a, b, h) 호출
종료

C++ 전체 코드

#include <bits/stdc++.h>
using namespace std;

// 삼각형 밑면을 가진 각뿔의 부피를 구하는 함수
float volumeTriangular(int a, int b, int h){
    float volume = (0.1666) * a * b * h;
    return volume;
}
// 정사각형 밑면을 가진 각뿔의 부피를 구하는 함수
float volumeSquare(int b, int h){
    float volume = (0.33) * b * b * h;
    return volume;
}
// 오각형 밑면을 가진 각뿔의 부피를 구하는 함수
float volumePentagonal(int a, int b, int h){
    float volume = (0.83) * a * b * h;
    return volume;
}
// 육각형 밑면을 가진 각뿔의 부피를 구하는 함수
float volumeHexagonal(int a, int b, int h){
    float volume = a * b * h;
    return volume;
}
int main(){
    int b = 2, h = 10, a = 4;
    cout << "삼각형 밑면을 가진 각뿔의 부피 : " << volumeTriangular(a, b, h) << endl;
    cout << "정사각형 밑면을 가진 각뿔의 부피 : " << volumeSquare(b, h) << endl;
    cout << "오각형 밑면을 가진 각뿔의 부피 : " << volumePentagonal(a, b, h) << endl;
    cout << "육각형 밑면을 가진 각뿔의 부피 : " << volumeHexagonal(a, b, h);
    return 0;
}

실행 결과

삼각형 밑면을 가진 각뿔의 부피 : 13.328
정사각형 밑면을 가진 각뿔의 부피 : 13.2
오각형 밑면을 가진 각뿔의 부피 : 66.4
육각형 밑면을 가진 각뿔의 부피 : 80

마무리

이처럼 각뿔의 부피는 밑면의 형태에 따라 서로 다른 공식을 적용하게 됩니다. 각 밑면 유형별로 독립된 함수를 만들어 두면, 입력값만 바꾸어 다양한 각뿔의 부피를 손쉽게 계산할 수 있습니다. 위 코드를 응용하면 사용자로부터 직접 값을 입력받아 처리하도록 확장할 수도 있습니다.