為替ロボット 研究所

2005年11月16日

プログラムの作成 練習1-4

つづいて、変数の使い方を練習してみましょう。

前回のプログラムで
Print("Hello World");
となっていた部分を
printstring="Hello World";//①
Print(printstring);//②
と置き換えてみます。
①はprintstring という変数に文字列「Hello World」を代入せよ という意味、
②は変数printstringを画面に出力せよ という意味です。このとき変数printstringには①で指定した文字列が入っていますので、「Hello World」と表示されることになります。

Print("printstring")ではないことに注意して下さい。
" "で囲むと、この部分は変数ではなくただの文字列ですよ、という意味になるので、「Hello World」ではなく「printstring」という文字列が表示されることになります。

ではプログラム全体を見て見ましょう。上に書いたように置き換えるとこのようになります。
int start(){
printstring="Hello World";
Print(printstring);
return(0);
}

しかし、このままだとエラーが出てきます。
printstringというのは私が勝手に名づけた変数です。ルールのところでも書いていますが、そういう自分で作った変数は、使う前に必ず「こういう変数を使います」ということを宣言しておかなくてはいけません。
今回のprintstringには文字列をいれることにしていますので、
string printstring;
と最初に書いて、printstringは文字列変数です!と宣言します。

int start(){
string printstring;
printstring="Hello World";
Print(printstring);
return(0);
}

次は変数の使い方をもう少し掘り下げてみましょう。


投稿者 kawarobo : 10:12 | コメント (0) | トラックバック

コンパイル時エラーの対処方法

mql4プログラムをコンパイルした時に出てくるエラーの見方です。
エラーメッセージは左側にエラー内容、右側にエラーが発生した場所が記されています。

'printstring' - variable not defined
  C:\Program Files\MetaTrader 4\experts\Hello.mq4 (2, 1)
発生場所の()内は行数と文字数を表します。この例だと2行目の1文字目に問題があることになります。

現在のカーソル位置(行数、文字数)がエディタ画面の右下に出ているので、それを見ながらエラー箇所に移動し、修正します。

主なエラーと対処方法をざっとあげてみます。

'変数名' - variable not defined
 変数が宣言されていません。
 変数が宣言されているか確認、変数名のタイプミス(特に大文字小文字の別)が無いか確認

'\end_of_program' - ending bracket '}' expected
 } が足りません。{ に対する }をどこかに書き忘れています。
 エラー発生場所はプログラムの最後になっていますが、実際にはどこか途中で足りない部分があるのでプログラム全体を見直す必要があります。

'\end_of_program' - unbalanced left parenthesis
 ) が足りません。( に対する )をどこかに書き忘れています。
 エラー発生場所はプログラムの最後になっていますが、実際にはどこか途中で足りない部分があるのでプログラム全体を見直す必要があります。

'return' - semicolon expected
 ; セミコロンが抜けています。
 指定行前後の行末を確認。

';' - semicolon unexpected
 ;セミコロンが変なところにあります。
 指定行前後に不必要なセミコロンがないか確認

')' - wrong parameters count
 関数のパラメータ数が足りません。
 指定行にある関数の書式を確認

'=' - illegal assignment use
 =の使い方が間違っています。
 if分などの条件式で「==」と間違ってないか確認


投稿者 kawarobo : 11:09 | コメント (0) | トラックバック