C#
C#の質問です。
『クラスIntArrayを作成し、作成したクラスが正常に動作するか検証するためのクラスを作成してください。』
というプログラムを組んでおり、クラスIntArrayとその動作を検証するクラスを作成したのですが、クラスIntArrayについて「問題文で指定された通りに作成されていません。」という指摘を受けました。
何度も見直したのですが、どの部分が指定された通りになっていないのか、自分では見つけることが出来ませんでした;
私が作成したクラスIntArrayとその仕様については、下記のとおりです。
お分かりになる方がいらっしゃいましたら、ご助言をお願いいたします。
【クラスIntArray 仕様】
<インスタンス変数>
int型の配列data
<コンストラクタ>
以下の3種類を用意します。
・int型の配列を受け取り、そのコピーを内部的に保持します。
・第1引数で指定された要素数を持つ配列を確保し、全ての要素に初期値として第2引数で指定された値をセットします。
・第1引数で指定された要素数を持つ配列を確保し、全ての要素に初期値としてゼロをセットします。
<メソッド>
・Sort
内部的に保持している配列を、引数の値がtrueであれば昇順、falseであれば降順にソートする
・Length
IntArrayが保持している配列の要素数を取得する
・GetElement
引数に指定された要素番号の値を取得する
・SetElement
第1引数に指定された要素番号に第2引数で指定された値を格納する
・GetArray
IntArrayが保持している配列のコピーを取得する
【作成したクラスIntArray】
using System;
private int[] data;
public IntArray(int[] array)
{
this.data = new int[array.Length];
array.CopyTo(this.data, 0);
for (int index = 0; index < this.data.Length; index++)
{
// 先頭の要素以外を出力する場合
if (index > 0)
{
Console.Write(", ");
}
Console.Write(this.data[index]);
}
Console.WriteLine();
}
public IntArray(int args1, int args2)
{
int[] myarray = new int[args1];
for (int index = 0; index < args1; index++)
{
myarray[index] = args2;
}
for (int index = 0; index < myarray.Length; index++)
{
// 先頭の要素以外を出力する場合
if (index > 0)
{
Console.Write(", ");
}
Console.Write(myarray[index]);
}
Console.WriteLine();
}
public IntArray(int args)
{
int[] myarray = new int[args];
for (int index = 0; index < args; index++)
{
myarray[index] = 0;
}
for (int index = 0; index < myarray.Length; index++)
{
// 先頭の要素以外を出力する場合
if (index > 0)
{
Console.Write(", ");
}
Console.Write(myarray[index]);
}
Console.WriteLine();
}
public void Sort(bool flg)
{
Array.Sort(this.data); //昇順にソート
if (!flg) //降順にソート
{
Array.Reverse(this.data);
}
for (int index = 0; index < this.data.Length; index++)
{
// 先頭の要素以外を出力する場合
if (index > 0)
{
Console.Write(", ");
}
Console.Write(this.data[index]);
}
Console.WriteLine();
}
public int Length()
{
return this.data.Length;
}
public int GetElement(int args)
{
int getvalue = this.data[args];
return getvalue;
}
public void SetElement(int args1, int args2)
{
this.data[args1] = args2;
}
public void GetArray()
{
for (int index = 0; index < this.data.Length; index++)
{
// 先頭の要素以外を出力する場合
if (index > 0)
{
Console.Write(", ");
}
Console.Write(this.data[index]);
}
Console.WriteLine();
}
}