講義スライド

基礎クラス用演習問題

解答は

ホスト名: earth.mlab.im.dendai.ac.jp

ディレクトリ: /home/submit/JavaBeginners/[今日の日付]/[学籍番号]

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

提出先が木曜日と異なることに注意

問題1(Beginners')

継承を利用し,クラス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

添付ファイル: file第10_5回.pdf 1370件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-12-05 (月) 10:57:14