定数および変数
これらの2つの用語、定数および変数は、これらの用語が非常に近いので、1つのセクションで考慮されます。
定数の概念
プログラムの一部、 定数 は 値を持つオブジェクト
プログラム内の定数は、数式で使用される定数に似ています。 それは不変の値です。 アルゴリズム言語で使用される定数の性質をより詳細に記述するには、よく知られている物理定数と数学定数を参照してください。
人類は自然界の普遍定数を発見しました。その定数は、決して私たちに依存しません。 例えば、物理学では、自由落下加速度は常に9.8 m / s / sに 等しい 。 数学では、 Pi = 3.14。 種類の定数は、アルゴリズム言語の定数とは異なります。
定数は、数学的方程式で使用される項です。 例えば、 Yの 式 = 3 * X + 7、数字3と7は定数です。 そのような定数の値は、方程式を作った人の意思に完全に依存しています。 これは、MQL4プログラムで使用されている定数と最も類似しています。
定数(値として)は、コードの作成段階でプログラマーによってコードに配置されます。 定数はその値によってのみ特徴付けられるので、 '定数'と '定数の値'という用語は完全な同義語です。
例示的な定数:
1 |
<span class="notranslate"> <span class="number">37、3.14</span> 、 <span class="keyword">真</span> 、 <span class="string">「カザン」</span></span> |
図4 PCのメモリ内の定数。
定数のプロパティ
定数のプロパティは、プログラマが設定した値を(プログラム操作時に)保持し、プログラムが要求したときにこの値をプログラムに設定する能力です(図5)。 プログラムの各定数について、コンピュータは必要なサイズのメモリの一部を割り当てます。 プログラマもコンピュータも、プログラムの実行中に定数の値を変更することはできません(図6)。
定数の値は変わりません。 |
図5 プログラムに値を設定するときの定数のメモリセルの状態。
定数の値は、プログラム操作中は変更できません。 |
図6 プログラム動作中に定数の値を変更することは不可能です。
変数の概念
変数 は、値と名前を持つプログラム部分です。
MQL4の変数の項は、数学で受け入れられている変数に似ています。 それらの違いは、実行中のプログラム内の変数の値がコンピュータ内の特別なメモリセルに格納されるのに対して、数学における変数の値は常に暗黙的に暗示されているということだけです。
変数は、変数名としてコーディングの段階でその作成者によってコードテキストに入れられます。 変数の名前(または識別子)は、文字、数字またはアンダースコアで構成できます。 ただし、文字で始まる必要があります。 MQL4は大文字と小文字を区別します。つまり、 " S " と " s "は同じではありません。
変数名の例をいくつか挙げます: Alpha 、 alFa 、 beta 、 NuMbEr 、 Num 、 A_37 、 A37 、 qwerty_123 。
以下の変数識別子は、a_22とА_22という異なる変数の名前を表します 。 マッサ と マッサ 。
変数値の例をいくつか挙げます:37、3.14、true、 "Kazan"
変数のプロパティ
変数のプロパティは、プログラムから特定の値を取得し、プログラムの動作期間中にその値を保持し、プログラムによって要求されたときにこの値をプログラムに設定する機能です。 プログラム内の各変数について、コンピュータはメモリの一部、必要なサイズの部分を割り当てます。 図7を参照して、変数の構成を調べてみましょう。
図7 コンピュータのメモリ内の変数。
コンピュータのメモリセルには変数の値があります。 この値は処理のために要求され、プログラムによって変更されます。 変数の名前は決して変更されません。 コードを書くとき、プログラマーは変数の名前を任意に設定できます。 ただし、準備プログラムが起動するとすぐに、プログラマーもコンピューターもプログラムでも、変数の名前を変更する方法はありません。
実行中にプログラムが変数の名前を満たしている場合、プログラムはこの変数を参照して処理のための値を取得します。 プログラムが変数を参照するとき、変数はその値のコピーをプログラムに設定します。 その時点で、変数の値は変わりませんが、プログラムはこの変数に割り当てられたメモリセルに含まれる値のコピーを取得します(図8)。
変数の値がプログラムに設定されている場合、この値は変更されません。 また、変数の名前は決して変更されません。 |
図8 プログラムに値を設定するときの変数のメモリセルの状態。
実行中のプログラムが変数を参照した後、その変数は、プログラムがそれを再び参照するまで、一定期間、プログラムに関連しません。 この期間中、プログラムは他の変数を参照したり、必要な計算を行ったりすることがあります。 変数へのプログラム参照の間、変数はその値を保持します。 つまり、それは変更されません。
プログラムのアルゴリズムによれば、変数の値を変更する必要が生じる可能性があります。 この場合、プログラムは変数に新しい値を設定します。 変数はプログラムからこの値を取得します。 メモリセル自体に必要なすべての変更が行われる。 その結果、変数の前の値は削除されますが、図9に示すように、プログラムによって設定された変数の新しい値が代わりに使用されます。
変数の値は、プログラムによって変更することができます。 しかし、変数の名前は常に変更されません。 |
図9 プログラムから値を取得するときの変数のメモリセルの状態。
プログラム内の例示的な定数および変数
プログラムでは、定数と変数を演算子で見つけることができます。 以下のコードでは、 A と B は変数、7と3は定数です。
1 2 |
<span class="notranslate"> A = <span class="number">7</span> ;</span> <span class="notranslate"> <span class="comment">// ライン1</span></span> <span class="notranslate"> B = A + <span class="number">3</span> ;</span> <span class="notranslate"> <span class="comment">// 2行目</span></span> |
プログラムがどのように定数と変数で動作するかを調べてみましょう。 これらの行を実行すると、プログラムは以下のステップを実行します。
ライン1:
1. 定数7はその値をプログラムに設定します。
2. 変数 A はプログラムから値7を取得します。
2行目:
1. プログラムは等号の右側の式を見つけ、プログラムはそれを計算しようとしています。
2. 定数3はその値をプログラムに設定します。
3. プログラムは変数 A を名前で参照します。
4. 変数 A はその値(7)をプログラムに設定します。
プログラムは計算を行う(7 + 3)。
6. 変数 Â はプログラムから値10を取得します。
変数の値は、プログラム操作中に変更することができます。 たとえば、次のコードを含む行がプログラム内に存在することがあります。
1 |
<span class="notranslate"> В= <span class="number">33</span> ;</span> <span class="notranslate"> <span class="comment">// 3行目</span></span> |
この場合、プログラムの実行時には次のようになります。
定数33はその値をプログラムに設定します。
2. 変数 B は、プログラムから値33を取得します。
変数 B はプログラム実行の特定の段階で値10を取得し、33の値を取得します。変数 Bの 名前は これらのすべてのイベントで変更されませんが、変数の値は変更されます。
次の図10は、プログラムコードの定数と変数を示しています。
図10 定数とプログラム内の変数