【超入門】MQL5 EA講座 第30回「計算に関する記述 その1-基本編-」

MQL5でEA作ろう講座

—-

前回定義済み変数 について解説しました。

改めて前回の内容をおさらいをしておくと、

ということをお伝えしました。

今回は 計算に関する記述 についてお話ししたいと思います。

スポンサーリンク
スポンサーリンク

計算処理に関する記述 とは?

要するに、足し算とか、引き算とかその辺周りの話です。

なので、MQL5での計算処理に関する記述についても、私たちが学校の授業で教わった記述と変わるようなことはありません。

順にみていきましょう。

足し算(Addition)


//足し算をして計算結果を変数「varAdd」に代入
      int varAdd=4+6;

普通に足し算をして、変数「varAdd」に代入を入れました。

日常の算数における足し算と変わることはないですね。

上のサンプルコードは数値同士の足し算でしたが、変数と足し合わせることもできます。


//足し算をして計算結果を変数「varAdd_a」に代入
      int varAdd_a=4+6;

//変数「varAdd_a」と値10を足す
int varAdd_b=varAdd_a+10;
Print(varAdd_b);

//varAdd_bの値は20とログ出力される。

変数「varAdd_a」には4+6の計算結果、すなわち10が代入されています。

varAdd_a+10というのは、すなわち

10+10を表し、結果、

varAdd_bには値「20」が格納されるわけです。

引き算(subtraction)

//引き算をして計算結果を変数「varAdd」に代入
      int varSub=7-3;

足し算と同様に、変数と値の計算もできます。

//引き算をして計算結果を変数「varSub_a」に代入
      int varSub_a=7-3;

//変数「varSub_a」から値1を引く
int varSub_b=varSub_a-1;

Print(varSub_b);

//varSub_bの値は3とログ出力される。

変数「varSub_a」に7-3の計算結果すなわち、値4を代入した後、

varSub_a – 1 というのはすなわち、4-1を意味し、結果その答えである

3

変数「varSub_b」に格納されます。

変数にマイナスの値が代入されている場合(negation)も、通常の算数・数学と同じに考えればいいです。


//変数「varSub_a」に-6を代入
      int varSub_a=-6;

//10から変数「varSub_a」を引く
int varSub_b= 10 - varSub_a;

Print(varSub_b);

//varSub_bの値は16とログ出力される。

変数「varSub_a」に-6を代入します。

10 – varSub_a というのは 10-(-6)なので、マイナスとマイナスで符号がプラスに変更され

10+6となりますね。すなわち、

変数varSub_bに格納される値は16 

ということになります。

これはMQL5のプログラミングというよりは、単純に数学・算数の問題ですね。

掛け算(multiplication)


//変数「varSub_a」に5*3を代入
      int varmulti_a=5*3;

//10から変数「varSub_a」を引く
int varmulti_b= 4*varmulti_a;

Print(varmulti_b);

//varmulti_bの値は60とログ出力される。

varmulti_c = varmulti_a*varmulti_b

Print(varmulti_c);

//varmulti_cの値は900とログ出力される。

掛け算には

*(アスタリスク)

を用います。学校の授業で馴染み深い「×」記号は使用しないので注意しましょう。

数値同士の掛け算、数値と値を代入した変数との掛け算はもちろん、変数同士の掛け算も可能です。

割り算(Division)

割り算には

/ (スラッシュ)を用います。学校の授業で割り算の時に使っていた「÷」記号は使用しないので注意してください。

//変数「varDiv」に5/2の計算結果を代入
double varDiv=5/2;

割り算の場合、格納する変数データ型に注意を払う必要があります。

上記のサンプルコードの計算式

5/2

の答えは言うまでもなく

2.5

ですが、

//変数「varDiv」に5/2の計算結果を代入
int varDiv=5/2;
Print(varDiv);

このようにint型の変数に格納するような記述にしてしまうと

小数点以下の値を格納できないので、

2

に値が切り詰められてしまいました。

割り算の場合、このように割り切れずに小数点以下の値を伴う計算結果になることが想定されるので、計算結果を代入する変数データ型は、double型を用いることが推奨されます。

↓のタイプキャストに関する記事も併せて読む事をお勧めいたします

剰余(modulus)

剰余とは

割り算をして割り切れなかった余りの数を求める計算処理

のことを言います。割り算の処理の1つとも言えますね。

剰余の計算には

%(パーセント)

を用います。

int varMod=5%2;
    Print(varMod);

//5%2の計算結果「1」がログ出力される

変数「varMod」には

5÷2の余りである

1

が格納される形になります。

剰余の場合、そもそもの計算処理の性質が、小数点以下の値を出さずに終了する類のものなので、

割り算とは逆に、計算結果を格納する変数データ型は、int型を用意することが推奨されます。

まとめ

今回は 計算に関する記述 について解説しました。

今回の記事では以下のことを学びました

  • 剰余とは割り算をして割り切れなかった余りの数を求める計算処理のことを言う

今回は以上になります。

次回も計算処理に関する記述の話になるかと思います。

最後までお読みいただきありがとうございました<m(__)m>

【超入門】MQL5 EA講座 第29回「定義済み変数について」

       →【超入門】MQL5 EA講座 第31回「計算に関する記述 その2-発展編-」

コメント

タイトルとURLをコピーしました