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
  • 67 follow us in feedly

関連記事

no image

■超直感!MT4プログラミング講座■ 第28回 決済スプリクトの作成(1)

こんにちは!キリンです。 引越しも終わり、かなり落ち着いてきました。 時間的制約が皆無になると、セルフコントロール能力が

記事を読む

no image

■超直感!MT4プログラミング講座■ 第16回 インディケーターの実働部分

こんばんは。キリンです。 先ほどHey!Hey!Hey!の大阪の歌特集をやっていました。 Dreams Come Tru

記事を読む

no image

■超直感!MT4プログラミング講座■ 第8回 スクリプトを使ってみよう!

こんばんは!キリンです。 昨日の動画を上げてから気づいたのですが、 おそらく、昨日の動画で私の話で何をいっているのか伝わ

記事を読む

no image

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

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

記事を読む

no image

■超直感!MT4プログラミング講座■ 第10回 if関数を使ってみよう

こんにちは!キリンです。 昨日は土曜出勤でした。サラリーマン生活も残すところあと2週間弱。 今日は、引越し会社に引越しの

記事を読む

no image

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

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

記事を読む

no image

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

こんばんは。キリンです。 この講座の第1回で、非常に大きな反響をいただけました。 MT4のプログラミングに興味持っている

記事を読む

no image

■超直感!MT4プログラミング講座■ 第25回 発注スプリクトの作成

おはようございます。キリンです。 今日から引越しの準備です。 今週はあまり仕事が進んでないです・・・。 引越しの準備とか

記事を読む

no image

■超直感!MT4プログラミング講座■ 第12回 配列の応用方法を覚えよう!

こんばんは。キリンです。 TopGunの運用で、初めて3機目まで導入されてしまいました。 最後に投入するということもあり

記事を読む

no image

■超直感!MT4プログラミング講座■ 第11回 配列を覚えよう

こんばんは。キリンです。 最近、各EAの動向で一喜一憂してしまっています。 精神的によろしくないですな^^; クロスファ

記事を読む

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

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

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

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

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

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

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

JupyterでボタンからJavascriptを実行して追加のアウトプットをさせない方法

Javascriptを実行するとアウトプットセルの行が増える これがとても面倒だった。上の

まだBokehで消耗してるの?これからはPandas-Bokehを使おうぜ

タイトルはあまり気にしないでください。全然、Bokehで消耗する価値があるとは思っています。ただ

→もっと見る

PAGE TOP ↑