台形の面積計算
上底と下底と高さから台形の面積を計算するプログラムを解説します。
台形の面積は、(上底+下底)×高さ÷2で計算できます。
下図のように、台形の右側に、上と下を逆にした台形をくっつけて平行四辺形を作ります。平行四辺形の面積は(底辺×高さ)で求められるので、下図の平行四辺形の場合には、底辺が(上底+下底)となり、面積が(上底+下底)×高さとなります。
台形の面積は、平行四辺形の面積の半分なので(上底+下底)×高さ÷2となります。
Javaソースコード
ここでは、キーボードから上底と下底と高さを入力して、台形の面積を表示するプログラムを紹介します。
AreaofTrapezoid1.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
import java.util.Scanner; public class AreaofTrapezoid1 { public static void main( String[] args ) { double upperbase; // 上底 double lowerbase; // 下底 double height; // 高さ double area; // 面積 // キーボード入力 Scanner scanner = new Scanner(System.in); // 上底の入力 System.out.print( "上底:" ); upperbase = scanner.nextDouble(); // 下底の入力 System.out.print( "下底:" ); lowerbase = scanner.nextDouble(); // 高さの入力 System.out.print( "高さ:" ); height = scanner.nextDouble(); // 台形の面積計算 (上底+下底)×高さ÷2 area = ( upperbase + lowerbase ) * height / 2.0; // 台形の面積を表示 System.out.println( "台形の面積:" + area ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis AreaofTrapezoid1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac AreaofTrapezoid1.java
実行
C:\talavax\javasample>java AreaofTrapezoid1
実行結果
上底:5 下底:4 高さ:3 台形の面積:13.5
上底に5、下底に4、高さに3をキーボードから入力して台形の面積を計算した結果です。
ここからは、このソースコードを上から順番に解説していきます。
001
import java.util.Scanner;
Javaのクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、Scannerクラスが利用できるようになります。これでキーボードから値の入力が行えるようになります。
003
public class AreaofTrapezoid1 {
クラス名を、AreaofTrapezoid1としています。
004
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
005 006 007 008
double upperbase; // 上底 double lowerbase; // 下底 double height; // 高さ double area; // 面積
このプログラムで使う変数を宣言しています。
010 011
// キーボード入力
Scanner scanner = new Scanner(System.in);
Scannerクラスを作成しています。
013 014 015
// 上底の入力 System.out.print( "上底:" ); upperbase = scanner.nextDouble();
017 018 019
// 下底の入力 System.out.print( "下底:" ); lowerbase = scanner.nextDouble();
021 022 023
// 高さの入力 System.out.print( "高さ:" ); height = scanner.nextDouble();
025 026
// 台形の面積計算 (上底+下底)×高さ÷2
area = ( upperbase + lowerbase ) * height / 2.0;
028 029
// 台形の面積を表示 System.out.println( "台形の面積:" + area );
台形の面積計算を表示しています。
Javaソースコード - 面積計算をメソッドにしたもの
AreaofTrapezoid2.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
import java.util.Scanner; public class AreaofTrapezoid2 { // 台形の面積を求めるメソッド // upperbase : 上底 // lowerbase : 下底 // height : 高さ public static double calc_AreaofTrapezoid( double upperbase, double lowerbase, double height ) { double area; // (上底+下底)×高さ÷2 area = ( upperbase + lowerbase ) * height / 2.0; return area; } // メイン public static void main( String[] args ) { double upperbase; // 上底 double lowerbase; // 下底 double height; // 高さ double area; // 面積 // キーボード入力 Scanner scanner = new Scanner(System.in); // 上底の入力 System.out.print( "上底:" ); upperbase = scanner.nextDouble(); // 下底の入力 System.out.print( "下底:" ); lowerbase = scanner.nextDouble(); // 高さの入力 System.out.print( "高さ:" ); height = scanner.nextDouble(); // メソッドを呼んで台形の面積計算 area = calc_AreaofTrapezoid( upperbase, lowerbase, height ); // 台形の面積を表示 System.out.println( "台形の面積:" + area ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis AreaofTrapezoid2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac AreaofTrapezoid2.java
実行
C:\talavax\javasample>java AreaofTrapezoid2
実行結果
上底:5 下底:4 高さ:3 台形の面積:13.5
上底に5、下底に4、高さに3をキーボードから入力して台形の面積を計算した結果です。
出力結果は、AreaofTrapezoid1.javaと同じです。
それでは、このソースコードを上から順番に解説していきます。
001
import java.util.Scanner;
Javaのクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、Scannerクラスが利用できるようになります。これでキーボードから値の入力が行えるようになります。
003
public class AreaofTrapezoid2 {
クラス名を、AreaofTrapezoid2としています。
004 005 006 007 008 009 010 011 012 013 014 015 016 017
// 台形の面積を求めるメソッド // upperbase : 上底 // lowerbase : 下底 // height : 高さ public static double calc_AreaofTrapezoid( double upperbase, double lowerbase, double height ) { double area; // (上底+下底)×高さ÷2 area = ( upperbase + lowerbase ) * height / 2.0; return area; }
020 021
// メイン public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
022 023 024 025
double upperbase; // 上底 double lowerbase; // 下底 double height; // 高さ double area; // 面積
このプログラムで使う変数を宣言しています。
027 028
// キーボード入力
Scanner scanner = new Scanner(System.in);
Scannerクラスを作成しています。
030 031 032
// 上底の入力 System.out.print( "上底:" ); upperbase = scanner.nextDouble();
034 035 036
// 下底の入力 System.out.print( "下底:" ); lowerbase = scanner.nextDouble();
038 039 040
// 高さの入力 System.out.print( "高さ:" ); height = scanner.nextDouble();
042 043
// メソッドを呼んで台形の面積計算
area = calc_AreaofTrapezoid( upperbase, lowerbase, height );
045 046
// 台形の面積を表示 System.out.println( "台形の面積:" + area );
台形の面積計算を表示しています。
以上です。