2024/9/23
直方体の表面積/体積計算
直方体とは
以下は、直方体の展開図の例です。
表面積と体積を求める公式
表面積は、以下の公式で計算できます。
上の直方体の展開図を見ると、面積がaxbで計算できる長方形が2つ、bxcで計算できる長方形が2つ、cxaで計算できる長方形が2つあります。
これらを合計すると下の公式になります。
表面積=2(ab+bc+ca)
体積は、「横×高さ×縦」で計算できます。
体積=abc
Javaソースコード
ここでは、キーボードから1辺の長さを入力して、直方体の表面積と体積を表示するプログラムを紹介します。
AreaofCuboid1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036
import java.util.Scanner; public class AreaofCuboid1 { public static void main( String[] args ) { double a, b, c; // 各辺の長さ double area; // 表面積 double volume; // 体積 // キーボード入力 Scanner scanner = new Scanner(System.in); // 横を入力 System.out.print( "横:" ); a = scanner.nextDouble(); // 高さを入力 System.out.print( "高さ:" ); b = scanner.nextDouble(); // 縦を入力 System.out.print( "縦:" ); c = scanner.nextDouble(); // 直方体の表面積計算 (2*(ab+bc+ca)) area = 2.0 * ( a * b + b * c + c * a ); // 直方体の体積計算 (a*b*c) volume = a * b * c; // 直方体の表面積を表示 System.out.println( "直方体の表面積:" + area ); // 直方体の体積を表示 System.out.println( "直方体の体積:" + volume ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis AreaofCuboid1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac AreaofCuboid1.java
実行
C:\talavax\javasample>java AreaofCuboid1
実行結果
横:2 高さ:3 幅:4 直方体の表面積:52.0 直方体の体積:24.0
横に2、高さに3、幅に4を入力し、直方体の表面積と体積を計算した結果です。
ここからは、このソースコードを上から順番に解説していきます。
001
import java.util.Scanner;
Javaのクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、Scannerクラスが利用できるようになります。これでキーボードから値の入力が行えるようになります。
003
public class AreaofCuboid1 {
クラス名を、AreaofCuboid1としています。
004
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
005 006 007
double a, b, c; // 各辺の長さ double area; // 表面積 double volume; // 体積
このプログラムで使う変数を宣言しています。
009 010
// キーボード入力
Scanner scanner = new Scanner(System.in);
Scannerクラスを作成しています。
012 013 014
// 横を入力 System.out.print( "横:" ); a = scanner.nextDouble();
016 017 018
// 高さを入力 System.out.print( "高さ:" ); b = scanner.nextDouble();
021 022
System.out.print( "縦:" );
c = scanner.nextDouble();
024 025
// 直方体の表面積計算 (2*(ab+bc+ca))
area = 2.0 * ( a * b + b * c + c * a );
027 028
// 直方体の体積計算 (a*b*c)
volume = a * b * c;
030 031
// 直方体の表面積を表示 System.out.println( "直方体の表面積:" + area );
033 034
// 直方体の体積を表示 System.out.println( "直方体の体積:" + volume );
直方体の体積計算結果をコンソール出力しています。
Javaソースコード(計算部分をメソッドにしたもの)
AreaofCuboid2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061
import java.util.Scanner; public class AreaofCuboid2 { // 直方体の表面積を求めるメソッド // a, b, c : 各辺の長さ private static double calc_AreaofCuboid( double a, double b, double c ) { double area; // 直方体の表面積計算 (2*(ab+bc+ca)) area = 2.0 * ( a * b + b * c + c * a ); return area; } // 直方体の体積を求めるメソッド // a, b, c : 各辺の長さ private static double calc_VolumeofCuboid( double a, double b, double c ) { double volume; // 直方体の体積計算 (a*b*c) volume = a * b * c; return volume; } // メイン public static void main( String[] args ) { double a, b, c; // 各辺の長さ double area; // 表面積 double volume; // 体積 // キーボード入力 Scanner scanner = new Scanner(System.in); // 横を入力 System.out.print( "横:" ); a = scanner.nextDouble(); // 高さを入力 System.out.print( "高さ:" ); b = scanner.nextDouble(); // 縦を入力 System.out.print( "縦:" ); c = scanner.nextDouble(); // メソッドを呼んで直方体の表面積計算 area = calc_AreaofCuboid( a, b, c ); // メソッドを呼んで直方体の体積計算 volume = calc_VolumeofCuboid( a, b, c ); // 直方体の表面積を表示 System.out.println( "直方体の表面積:" + area ); // 直方体の体積を表示 System.out.println( "直方体の体積:" + volume ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis AreaofCuboid2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac AreaofCuboid2.java
実行
C:\talavax\javasample>java AreaofCuboid2
実行結果
result 横:2 高さ:3 幅:4 直方体の表面積:52.0 直方体の体積:24.0
横に2、高さに3、幅に4を入力し、直方体の表面積と体積を計算した結果です。
出力結果は、AreaofCuboid1.javaと同じです。
それでは、このソースコードを上から順番に解説していきます。
001
import java.util.Scanner;
Javaのクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、Scannerクラスが利用できるようになります。これでキーボードから値の入力が行えるようになります。
003
public class AreaofCuboid2 {
クラス名を、AreaofCuboid2としています。
004 005 006 007 008 009 010 011 012 013 014
// 直方体の表面積を求めるメソッド // a, b, c : 各辺の長さ private static double calc_AreaofCuboid( double a, double b, double c ) { double area; // 直方体の表面積計算 (2*(ab+bc+ca)) area = 2.0 * ( a * b + b * c + c * a ); return area; }
016 017 018 019 020 021 022 023 024 025 026
// 直方体の体積を求めるメソッド // a, b, c : 各辺の長さ private static double calc_VolumeofCuboid( double a, double b, double c ) { double volume; // 直方体の体積計算 (a*b*c) volume = a * b * c; return volume; }
028 029
// メイン public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
030 031 032
double a, b, c; // 各辺の長さ double area; // 表面積 double volume; // 体積
このプログラムで使う変数を宣言しています。
034 035
// キーボード入力
Scanner scanner = new Scanner(System.in);
Scannerクラスを作成しています。
037 038 039
// 横を入力 System.out.print( "横:" ); a = scanner.nextDouble();
041 042 043
// 高さを入力 System.out.print( "高さ:" ); b = scanner.nextDouble();
045 046 047
// 縦を入力 System.out.print( "縦:" ); c = scanner.nextDouble();
049 050
// メソッドを呼んで直方体の表面積計算
area = calc_AreaofCuboid( a, b, c );
052 053
// メソッドを呼んで直方体の体積計算
volume = calc_VolumeofCuboid( a, b, c );
055 056
// 直方体の表面積を表示 System.out.println( "直方体の表面積:" + area );
058 059
// 直方体の体積を表示 System.out.println( "直方体の体積:" + volume );
直方体の体積をコンソール出力しています。
以上です。