データ ストレージ。
プレーヤーが複雑で不親切なユーザーと競う「User Hostile」というコンピューター ゲームを開発したとします。コンピューターのインターフェース。ここで、このゲームの月次売上を 5 年間にわたって追跡するプログラムを作成する必要があります。または、ハッカー ヒーロー トレーディング カードを在庫する必要があるとします。
すぐに、情報を保存して処理するには単純な基本データ型以上のデータ型が必要であるという結論に達するでしょう。
配列。はじめに。
大量のデータの操作を容易にするために、セルのグループには共通の名前。このようなセルのグループは配列と呼ばれます。
配列 –これは、同じ種類のメモリ セルのグループであり、並んで配置され、共通の名前が付けられています。グループ内の各セルには一意の番号が付いています。
配列を操作する際には、次の 3 つのことを学ぶ必要があります。
バツ配列に必要なサイズのメモリを割り当てます。
バツ目的のセルにデータを書き込みます。
バツセルからデータを読み取ります。
配列を作成します。う >
配列を作成すると、メモリ内にスペースが割り当てられます (特定の数のセル)。スパン>スパン>
<プレ>
1) 要素を列挙するだけで配列を作成できます。
<プレ>
int [] nums = < code>new int [] { 1, 2, 3, 5 };
int は、配列内のすべてのオブジェクトが integers であることを意味します。 int の代わりに、他のデータ型を使用できます。例えば、
string[] names = ["Vasya"、"Peter"、"Fedya"];
2) 配列の値をすぐに指定することはできませんが、必要な長さの配列を作成するだけです。
int [] nums = new int [4];
3) 配列は常に「知っている」あなたのサイズ。配列 a のサイズは次のようにして確認できます。
a.Length;
多くの場合、配列のサイズは別の変数に保存され、異なる配列サイズで動作するようにプログラムを簡単に変更できます。例:
<プレ>
int N = 10; // 配列のサイズを変数 N に格納します
int[] nums = 新しい int[4]; // サイズ N の配列を作成します
Console.Write(nums.Length); // 配列のサイズを表示する
配列のサイズはキーボードから設定できます。
|
配列要素を参照します。
配列の有用性のほとんどは、その要素に個別にアクセスできるという事実から生まれます。
これを行う方法は、インデックスを使用して要素に番号を付けることです。
インデックス は、特定の配列要素を指す値です。
覚えておいてください: C# 配列の番号付けは 0 から始まります。< br />
配列 A へのアクセスの例:
<プレ>
int x = (A[3] + 5) * A[1] / / 値 A[3] と A[1] を読み取ります
A[0] = x + 6 // 新しい値を A[0] に書き込みます
配列要素を操作するプログラムを分析してみましょう。
<プレ>
int i = 1;
int[] A = 新しい int[5]; // 5 つの要素からなる配列を作成します
A[0] = 23; // 配列の 5 つの要素のそれぞれに (0 から 4 までのインデックス)
A[1] = 12; // 特定の値を書き込む
A[2] = 7;
A[3] = 43;
A[4] = 51;
A[2] = A[i] + 2*A[i-1] + A[2*i]; // インデックス 2 の要素の値を式の結果に変更します
// i=1 なので、得られた式に変数 i の値を代入します。
// 次の式 A[2] = A[1] + 2*A[0] + A[2];
Console.Write((A[2] + A[4]));
このプログラムを実行した結果、配列の要素の合計の値がインデックス 2 とインデックス 4 は、 116 に等しい画面に表示されます。 この例からわかるように、配列の任意の要素にアクセスできます。また、さまざまな式を使用して必要な要素番号を計算します (たとえば、プログラム A[i-1] または A[2*i] のように、これらの場合は、要素インデックスは計算され、i の値に応じて異なります)。
サンプルプログラムを分析してみましょう。
<プレ>
int N = 5;
int[] A = 新しい int[N];
int x = 1;
A[x + 4] = A[x] + A[2 * (x + 1)]; // 式と計算に x を代入した後
// 次の行を取得 A[5] = A[1] + A[4]
// A[5] そのような要素は存在しません
// エラー - 配列の範囲外です
配列は 5 つの要素で宣言されています。つまり、要素には 0 から 0 までの番号が付けられます。 4. 6 行目のプログラムが存在しない要素 A[5] を参照していることがわかります。
プログラムが配列の範囲を超えていることが 判明しました。
配列オーバーランとは、配列内に存在しないインデックスの要素へのアクセスです。
このような場合、通常、プログラムは実行時エラーでクラッシュします。
|
配列を操作する場合、通常は配列のすべての要素を一度に操作する必要があります。
要素を反復処理します。配列のすべての要素を調べ、必要に応じて、それぞれの要素に対して何らかの操作を実行します。
このために、変数を含むループが最もよく使用され、0 から N-1 に変化します (N は数値)配列要素の
N では、配列の現在のサイズ、つまり を考慮します。
N = A.Length;
<プレ>
...
<コード>for (int i = 0; i < N; i++)
{
// ここでは A[i] を扱います
}
指定されたループ内で、 i 変数は次の値を受け取ります。 0、1、2、...、N-1。 したがって、ループの各ステップで、i という番号を持つ配列の特定の要素にアクセスします。
つまり、 A[i] 配列の 1 つの要素で何を行う必要があるかを記述し、これらのアクションをそのようなループ内に配置するだけで十分です。
最初のN 自然数を配列に入れるプログラムを書いてみましょう。つまり、プログラムの最後には、配列の要素が等しくなります。
<プレ>
A[0] = 1
A[1] = 2
A[2] = 3
...
A[N - 1] = N
パターンを確認するのは簡単です。配列要素の値は、配列要素の値よりも 1 大きくなければなりません。要素のインデックス。 >
ループは次のようになります。
<プレ>
for (int i = 0; i < N; i++) { A[ i] = i + 1; }
|
配列要素を操作するその他の方法
<コード ループ>を除く、foreach - インデックスを使用せずに、配列のすべての要素を反復処理します。たとえば、画面上に配列を表示すると便利な場合があります。
foreach(int i in A)
{
Console.Write(i + " ");
}プレ>
これは、要素が 1 行に書かれ、スペースで区切られた配列をキーボードから読み取る方法です。
System.Linq を使用します。 // 配列の操作に関連する関数を使用するには、このディレクティブを記述する必要があります
...
文字列テキスト = Console.ReadLine();
int[] 配列 = text.Split(' ').Select(int.Parse).ToArray();
// Split() は文字列を別々のオブジェクトに分割します (この場合は空間分割)
// Select(int.Parse) は各オブジェクト (文字列) を int に変換します
// ToArray() は受信したすべてのオブジェクトを配列に書き込みます
|