- 追加された行はこの色です。
- 削除された行はこの色です。
**講義スライド [#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