ゆるゆるプログラミング

・複数の値の合計と平均

複数の数値の合計値と平均値を計算するプログラムを解説します。合計値は、配列で与えられた複数の値を全て足した値で、平均値は、合計値を与えらた数で割った数値です。

以下が、配列の値の合計値と平均値を求めるJavaのソースソースコードです。

Total.java ← クリックしてダウンロードページに移動
001:    public class Total {
002:    	public static void main( String[] args ) {
003:    		// 合計値を格納する変数を宣言
004:    		int   total;
005:    		// 数値群
006:    		int[] num = { 10, 5, 22, 56, 13, 77, 26, 43, 6, 4, 19 };
007:    
008:    		// 合計値の初期値を0
009:    		total = 0;
010:    		// 値の数を回数にした繰り返し処理
011:    		for ( int i = 0; i < num.length; ++ i ) {
012:    			// 値をtotalに足していく
013:    			total = total + num[ i ];
014:    		}
015:    
016:    		// 結果を表示
017:    		System.out.println( "合計=" + total );
018:    		System.out.println( "値の数=" + num.length );
019:    		System.out.println( "平均(小数切捨て)=" + total / num.length  );
020:    		System.out.println( "平均=" + (float)total / (float)num.length );
021:    	}
022:    }

Total.javaの出力結果

合計=281
値の数=11
平均(小数切捨て)=25
平均=25.545454

合計値と平均値を計算するプログラムについて解説します。

005:    		// 数値群
006:    		int[] num = { 10, 5, 22, 56, 13, 77, 26, 43, 6, 4, 19 };

この例では、11個の数値をint型配列で与えています。

008:    		// 合計値の初期値を0
009:    		total = 0;
010:    		// 値の数を回数にした繰り返し処理
011:    		for ( int i = 0; i < num.length; ++ i ) {
012:    			// 値をtotalに足していく
013:    			total = total + num[ i ];
014:    		}

for文を使った11回(num.length)のループで、変数totalに値を足していっています。このループを抜けると、変数totalに合計値が格納されてます。

016:    		// 結果を表示
017:    		System.out.println( "合計=" + total );
018:    		System.out.println( "値の数=" + num.length );
019:    		System.out.println( "平均(小数切捨て)=" + total / num.length  );
020:    		System.out.println( "平均=" + (float)total / (float)num.length );

結果を表示しています。ここで、平均値の計算方法について考えていきます。平均(小数切捨て)は、total / num.lengthで計算しているため小数点以下の値は切り捨てられています。これは、totalnum.lengthの両方がint型であるため、その計算結果もint型になったためです。

float型または、double型で計算すれば、小数点以下の数値を表現することができます。このソースコードの例では、totalnum.lengthの前に、(float)を付けることでint型を一時的にfloat型として計算させています。これを型キャストといいます。

次に、配列合計値の計算をメソッドで行うプログラムを紹介します。以下は、そのJavaソースコードです。

Total2.java ← クリックしてダウンロードページに移動
001:    public class Total2 {
002:    	// 配列の合計を戻すメソッド
003:    	private static int calc_total( int[] num )
004:    	{
005:    		// 合計値を格納する変数を宣言
006:    		int   total;
007:    
008:    		// 合計値の初期値を0
009:    		total = 0;
010:    		// 値の数を回数にした繰り返し処理
011:    		for ( int i = 0; i < num.length; ++ i ) {
012:    			// 値をtotalに足していく
013:    			total = total + num[ i ];
014:    		}
015:    		// 合計値を格納したtotalを戻す
016:    		return total;
017:    	}
018:    
019:    	// メイン
020:    	public static void main( String[] args ) {
021:    		// 数値群
022:    		int[] num = { 10, 5, 22, 56, 13, 77, 26, 43, 6, 4, 19 };
023:    
024:    		// 合計値を計算
025:    		int total = calc_total( num );
026:    
027:    		// 結果を表示
028:    		System.out.println( "合計=" + total );
029:    		System.out.println( "値の数=" + num.length );
030:    		System.out.println( "平均(小数切捨て)=" + total / num.length  );
031:    		System.out.println( "平均=" + (float)total / (float)num.length );
032:    	}
033:    }

Total2.javaの出力結果

合計=281
値の数=11
平均(小数切捨て)=25
平均=25.545454

結果は、Total.Javaから出力される結果と同じです。

002:    	// 配列の合計を戻すメソッド
003:    	private static int calc_total( int[] num )
004:    	{
005:    		// 合計値を格納する変数を宣言
006:    		int   total;
007:    
008:    		// 合計値の初期値を0
009:    		total = 0;
010:    		// 値の数を回数にした繰り返し処理
011:    		for ( int i = 0; i < num.length; ++ i ) {
012:    			// 値をtotalに足していく
013:    			total = total + num[ i ];
014:    		}
015:    		// 合計値を格納したtotalを戻す
016:    		return total;
017:    	}

calc_totalメソッドは、引数として受け取ったint型配列numの値を全て足した値を戻します。

for文を0から(num.length-1)のループで、変数totalに値にnum[ i ]を足していっています。このループを抜けると、変数totalに合計値が格納されてます。 最後にreturn分でtotalの値を戻しています。

■関連コンテンツ

配列 同じ型の変数をまとめた配列について解説
for文 繰り返し処理に使用するfor文について解説
型キャスト 変数の型を変換する方法について解説

■新着情報

2020.06.03 円を描く(テキスト版) テキストを円を描く
2020.06.02 文字の間違い探し どの文字が違う?
2020.05.31 九九(くく)の表を作る2 掛け算なしで九九(くく)の表を作成
2020.05.07 サイコロの出目確率 サイコロの目のでる確率は?

■広告

フィギュア予約最大25%OFF+ポイント5%還元!ホビーサーチ

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

 

 

 

 

 

 

 

Topへ