**講義スライド [#m1ff719a]
#ref(./第10_5回.pdf);

**基礎クラス用演習問題 [#p2c49f66]
解答は

&size(20){ホスト名: earth.mlab.im.dendai.ac.jp};

&size(20){ディレクトリ: /home/submit/JavaBeginners/[今日の日付]/[学籍番号]};

に提出しなさい。ソースファイル (〜.java) のみを提出。
提出は gFTP 等の ftp ソフトを用いて行うこと。

&size(20){''提出先が木曜日と異なることに注意''};

***問題1(Beginners') [#y37e2d5c]
継承を利用し,クラスIntArraySumMinMaxAveから無駄なプログラムを削除せよ.~
(余力があればmainメソッドからも無駄なプログラムを削除せよ)

 class IntArraySumMinMax
 {
     int[] data;
     
     IntArraySumMinMax(String[] src)
     {
         data = new int[src.length];
         for(int i = 0; i < data.length; i++)
         {
             data[i] = Integer.parseInt(src[i]);
         }
     }
     
     void print()
     {
         for(int i = 0; i < data.length; i++)
         {
             System.out.println("[" + i + "]:" + data[i]);
         }
     }
     
     int sum()
     {
         int s = 0;
         for(int i = 0; i < data.length; i++)
         {
             s += data[i];
         }
         return s;
     }
     
     int max()
     {
         int m = data[0];
         for(int i = 1; i < data.length; i++)
         {
             if (data[i] > m)
             {
                 m = data[i];
             }
         }
         return m;
     }
     
     int min()
     {
         int m = data[0];
         for(int i = 1; i < data.length; i++)
         {
             if (data[i] < m)
             {
                 m = data[i];
             }
         }
         return m;
     }
 } 
 
 class IntArraySumMinMaxAve 
 {
     int[] data;
     
     IntArraySumMinMaxAve(String[] src)
     {
         data = new int[src.length];
         for(int i = 0; i < data.length; i++)
         {
             data[i] = Integer.parseInt(src[i]);
         }
     }
     
     void print()
     {
         for(int i = 0; i < data.length; i++)
         {
             System.out.println("[" + i + "]:" + data[i]);
         }
     }
     
     int sum()
     {
         int s = 0;
         for(int i = 0; i < data.length; i++)
         {
             s += data[i];
         }
         return s;
     }
     
     int average()
     {
         int s, a;
         s = sum();
         a = s / data.length;
         return a;
     }
     
     int max()
     {
         int m = data[0];
         for(int i = 1; i < data.length; i++)
         {
             if (data[i] > m)
             {
                 m = data[i];
             }
         }
         return m;
     }
     
     int min()
     {
         int m = data[0];
         for(int i = 1; i < data.length; i++)
         {
             if (data[i] < m)
             {
                 m = data[i];
             }
         }
         return m;
     } 
 }
 
 public class IntArrayTest 
 {
     static public void main(String[] args)
     {
         if (args.length <= 0)
         {
             System.out.println("コマンドライン引数に1つ以上の値を指定してください");
             return;
         }
         
         IntArraySumMinMax ia = new IntArraySumMinMax(args);
         ia.print();
         
         int s, min, max;
         s = ia.sum();
         min = ia.min();
         max = ia.max();
         
         System.out.println("合計:" + s);
         System.out.println("最小値:" + min);
         System.out.println("最大値:" + max);
         
         IntArraySumMinMaxAve iaa = new IntArraySumMinMaxAve(args);
         
         int a;
         a = iaa.average();
         
         System.out.println("平均:" + a);
     } 
 }

実行例:

 >java IntArrayTest 3 1 2 5
 [0]:3
 [1]:1
 [2]:2
 [3]:5 
 合計:11 
 最小値:1
 最大値:5
 平均:2

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS