・p.180「第7章 練習問題」から
提出フォロー:アレンジ演習:p.177 arraylist01.cs
・終了フラグを用いないようにしよう ・foreachが利用できるか試してみよう
作成例
//アレンジ演習:p.177 arraylist01.cs
using System;
using System.Collections;
class arraylist01 {
public static void Main() {
string strData; //入力用
double sum = 0.0; //合計
ArrayList al = new ArrayList(); //ArrayList配列を生成
while (true) { //無限ループ
Console.Write("データ(数値以外入力で終了)-- ");
strData = Console.ReadLine();
if (!Char.IsDigit(strData[0]) && strData[0] != '-') { //先頭文字が数字でなく-でもない?
break; //【変更】ループを抜ける
} else {
al.Add(double.Parse(strData)); //ArrayList配列に格納
}
}
int i = 0; //【追加】
foreach (var w in al) { //【変更】ArrayList配列の全データについて繰返す
Console.WriteLine("Data[{0}] = {1}", ++i, w); //【変更】
sum += (double)w; //【変更】実数に戻して合計に足し込む
}
int count = al.Count; //ArrayList配列の要素数を得る
double avr = sum / count; //合計を割って平均値を得る
Console.WriteLine("データ個数 = {0}", count);
Console.WriteLine("平均値 = {0}", avr);
}
}
p.180 練習問題1 ヒント
・クラス定義の例: class MyClass { public int n; }
作成例
//p.180 練習問題1
using System;
class MyClass { //int型のpublic変数のみを持つクラス
public int n;
}
class arraylist01 {
public static void Main() {
MyClass m = new MyClass();
m.n = 1;
Console.WriteLine(m.n);
}
}
p.180 練習問題2 ヒント
・int型とint型の和を求めるメソッドの戻り値型はint型にすると良い ・double型とdouble型の和を求めるメソッドの戻り値型はdouble型にすると良い ・上記はMainメソッドから利用するので、publicにすると良い
作成例
//p.180 練習問題2
using System;
class MyClass { //int型のpublic変数のみを持つクラス
public int add(int a, int b) { //メソッド①
return a + b;
}
public double add(double a, double b) { //①のオーバロード
return a + b;
}
}
class arraylist01 {
public static void Main() {
MyClass m = new MyClass();
Console.WriteLine("{0} + {1} = {2}", 10, 20, m.add(10, 20)); //メソッド①を利用
Console.WriteLine("{0} + {1} = {2}", 3.1, 3.2, m.add(3.1, 3.2)); //オーバロードを利用
}
}