Wizard In The Market
システムトレードの魔術師

*

■超直感!MT4プログラミング講座■ 第4回 関数の定義方法

公開日: : 最終更新日:2015/01/13 MT4(MQL4)プログラミング講座

おはようございます。キリンです。
「パソコンを付けたら、まずブログを書く!」というマイルール作ってみました。
実践せねば!とあせくせブログ書いています。
「継続は力なり」ではなく「継続のみ力なり」との言葉をみかけました。
その通りだなーと思い、続ける大切さが身にしみました。
さて、第4回は前回のお話の続きで、関数の定義からお話しさせていただきますね。


第4回 関数の定義方法

■関数の定義方法
■関数の定義方法

int RingoNoGoukeiNedan(int RingoNoKosuu){
int RingoNoTanka = 80;
double ShouhiZei = 1.05;
int GoukeiNedan = RingoNoKosuu * RingoNoTanka * ShouhiZei;
return(GoukeiNedan);
}

※詳しく説明すれば、「サブルーチンの定義方法」なのですが、
 それを説明するのはもうちょっと後にします。
※プログラムは上から下に動作していきます。その順序で説明していきます。
なぜ、関数というのが機能するのかということを説明します。
前回、りんごの5個の合計値段を得たければ、
RingoNoGoukeiNedan(5);
で得ることができますというお話をしました。
その「RingoNoGoukeiNedan()」という関数の中身が、冒頭の青色部です。
具体的に中身を見てみましょう。
1.「 () 」の中に変数が定義されている
(int RingoNoKosuu)
これが非常に大事な部分です。
「変数は数字を割り当てたものだ」ということを
第1回でお話させていただいておりました。
int RingoNoGoukeiNedan(int RingoNoKosuu)
と定義した場合、その関数を
RingoNoGoukeiNedan(5)
という形で呼び出すと、()の中で
RingoNoKosuu = 5
としたことになります。
「ん?よくわからない。」という方も多いかもしれませんが、
下記の説明を読んでいっていただければと思います。
2.「 { } 」で区切られている
{}の中が関数の処理の中身になります。
一連の動作として、5.のreturnが出るまで行います。
3.{}の中で変数が定義されている
int RingoNoTanka = 80;
double ShouhiZei = 1.05;
これで、RingoNoTankaとShouhiZeiに数値を割り当てています。
RingoNoTankaは「 80 」として扱うことができ、
ShouhiZeiは「 1.05 」として扱うことができます。
※ShouhiZeiは小数点以下を使うので、double型で定義します。
4.変数を用いて計算する
int GoukeiNedan = RingoNoKosuu * RingoNoTanka * ShouhiZei;
GoukeiNedanを右辺の式で計算しています。
・RingoNoKosuuは、 () の中で 「 5 」を入れました
・RingoNoTankaは、80
・ShouhiZeiは、 1.05
つまり、
int GoukeiNedan = 5 * 80 * 1.05;
としたことになります。
※ちなみに、「 * 」というのは掛け算を表します。
そう、このときのために、()の中に int RingoNoKosuu を入れていたのですね。
RingoNoKosuu以外は外部から設定ができないことも理解していただければ完璧です。
()の中にいませんからね。
5.returnで{}内の処理を終了し、戻り値を返す
return(GoukeiNedan);
これが、戻り値を返すためのものです。
returnの()の中が、結果として出力されます。
この場合、4.で計算した GoukeiNedan が戻り値として返されます。
また、returnのところまでくると、{}の一連の動作が終了します。
※戻り値を返すというのは、関数の処理の結果を出すと理解してもらえればOKです。
具体的には
RingoNoGoukeiNedan(5);
という式は、
「RingoNoGoukeiNedan()の中のRingoNoKosuuに 5 を代入し、
 returnによって返される GoukeiNedan の数値を得る」
という一連の動作が行われます。
int x = RingoNoGoukeiNedan(5);
とすると、x は RingoNoGoukeiNedan(5)より返された、GoukeiNedanの値になります。
ややこしくなってきましたね。
ここは非常に大事な部分です。
しっかりと付いてきてくださいね!
疑問質問大歓迎です!
お気軽にコメントください。
最後に、皆さんに問題です。

int RingoNoGoukeiNedan(int RingoNoKosuu, int RingoNoTanka = 80, double ShouhiZei = 1.05){
int GoukeiNedan = RingoNoKosuu * RingoNoTanka * ShouhiZei;
return(GoukeiNedan);
}

とした場合、この関数はどのように数値を入力すればいいでしょうか?
考えてみてくださいね^^
最後までお読みくださり、ありがとうございます!

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 68 follow us in feedly

関連記事

no image

■超直感!MT4プログラミング講座■ 第22回 ボリンジャーバンドのおさらい

こんばんは!キリンです。 お酒を飲んでからの講義は難しいですね。 何か対策を考えなければっ! 頑張って書いていきます。

記事を読む

no image

■超直感!MT4プログラミング講座 第37回 ブレイクアウトシステムのEA作成(2)

おはようございます。キリンです。 日本、負けてしまいましたね。 でも、すごい感動しました。 すごい夢をもらいました。 優

記事を読む

no image

■超直感!MT4プログラミング講座■ 第1回 プログラミングって何?

こんにちは!キリンです。 今日から一週間に一回くらいの更新頻度を目標に、 MT4プログラミング講座を更新していきます。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第24回 インディケーターの補足

こんばんは。キリンです。 第24回 インディケーターの補足 ■インディケーターをサブウィンドウに表示する ■グラフに

記事を読む

no image

■超直感!MT4プログラミング講座■ 第3回 関数を覚えよう!

こんばんは!キリンです。 前回の「変数の定義」のお話ですが、 やはりつまづいている方が多かったようですね。 基本的で、非

記事を読む

no image

■超直感!MT4プログラミング講座■ 第35回 MAの傾きを使ったEA

こんばんはっ!キリンです。 土曜日なんですが、脱サラすると関係なかったり・・・。 なんか実感が湧かない今日この頃です。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第5回 MQL基本関数を覚えよう!

こんにちは!キリンです。 早いもので、1週間で5回まで来ちゃいましたね。 皆さんもしっかり付いてきてくれているので、私と

記事を読む

no image

■超直感!MT4プログラミング講座■ 第23回 ボリンジャーバンドのおさらい(2)

こんばんはっ!キリンです。 平日に私服で電車に乗っているのが非常に違和感を感じます。 でも、脱サラしたんだなっという感無

記事を読む

no image

■超直感!MT4プログラミング講座■ 第32回 発注スプリクトをサブルーチン化する(1)

おはようございます。キリンです。 昨日、半年振り以上にバスケをしてきました。 今日の筋肉痛はやばいです(w サラリーマン

記事を読む

no image

■超直感!MT4プログラミング講座■ 第31回 サブルーチンを使えるようになろう

おはようございます。キリンです。 昨日、家の近くの図書館に行ってきました。 そこで借りた本の一冊に、 「生き方」(稲盛 

記事を読む

Comment

  1. りある より:

    SECRET: 0
    PASS:
    こんにちは。
    リンゴの個数だけ引き数として与えられていないので、外部変数?でリンゴの個数を与えると計算出来るのかな?
    前のとの違いが良く分かりません。どちらも同じ?
    携帯からだとやりにくいですね。解答楽しみにしています。

  2. junky より:

    SECRET: 0
    PASS:
    りんご5個だったら、
    int x = RingoNoGoukeiNedan(5,80,1.05);
    か、
    int x = RingoNoGoukeiNedan(5,int RingoNoTanka, double ShouhiZei );
    でしょうか?
    名前がRingoNoまで同じなのでややこしくなってるような気がします(笑)

  3. SECRET: 0
    PASS:
    >りあるさん
    コメントありがとうございます!
    携帯だと打ちにくいですよね^^;
    回答を次回のブログに載せました。
    ご覧になっていただければ嬉しいです。

  4. SECRET: 0
    PASS:
    >junkyさん
    二つ目は間違いですねー。
    でも、最初はばっちり正解です!
    コメントありがとうございます^^
    関数や変数の名前はなんでもいいんだっていう
    ことを表すために、長くしていたんです。
    確かにみづらいですよねw

  5. むん より:

    すごくわかりやすいです!
    初心者むけにここまで説明されている文章は、
    本当に少ないので、感謝です!
    最後まで読破します。

  6. むん より:

     何度もコメント失礼します;;
    つまり、
    林檎の合計値段(林檎五個)
    { 林檎単価 = 80円
      林檎の消費税=1.05
    林檎の合計値段(戻り値)=林檎五個×80円×1.05}
    リターンして、はじめに戻る。

    という例文になるということですよね?
    ひらがなで表しただけなんですが、ちょっと頭の中を整理したくて質問させていただきました;

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

joblib によって謎のバグが起こる

joblib 0.14.1 にて確認.0.13.2 だと起こらない.import joblib を消

Fixing kernel error AMD-Vi: Event logged IO_PAGE_FAULT on Ryzen Machine

My pc was periodically shut down on 7:40 am JS

Ubuntu で仮想ディスプレイを使う

雑多な備忘録ですが、せっかくなので残しておきます。 Ubuntu 18.04 の resolv.c

PYPIへの登録を10秒でできるようになる方法

pip 使ってますよね Pythonを使っている人であれば、pip installでライブラリ

The art of debugging with GDB, DDD, and Eclipse の読書メモ

GDBの勉強がしたくて、下の本を原著で読んでみました。10年前の本だけど全然現役でした。

→もっと見る

PAGE TOP ↑