演算において重要なループ構文 | SystemTradingのブログ

SystemTradingのブログ

システムトレードに関するブログです

プログラミング言語において重要な項目は演算に関わる項目です。

文字列を扱う以外は基本的に演算によって出力する値が作り出されるため、

演算表現を覚えることは必須となります。

 

 

条件分岐であるIF構文 (^O^)

 

 

も重要なのですが、IF構文はExcelのIF関数がわかれば理解するに難しくは

ありません。この教室でも扱いますが他の構文と含めて後に扱います。今回

は、

 

 

あらゆる演算で重要なループ構文

 

 

について解説します。ちなみに、

Power Language = PL と略しますね!

 

 

 

 

 

【ループ構文はForを使う】

一番最初に覚えるループ構文はForを使ったものです。その前にループ構文

って何さ?と思われるかと思いますが、まずは順に読んでみてください (^O^)/

まずPLとC言語のループ構文の違いを見ていきましょう♪

 

 

 

■ Power LanguageにおけるFor構文

For カウンター変数=初期値  to(またはDownto) ループ回数 begin

  処理1;

  処理2;

  処理・・・・

end;

 

※ toはカウンタ変数を1づつ増加させる

※ Downtoはカウンタ変数を1づつ減少させる

 

とりあえずPLの場合の例題を見てみましょう♪

 

 

設定1・・カウンター変数 ⇒ i

設定2・・カウンター変数はループ毎に1づつ加算

設定2・・変数a(初期値を0)を設定して計算結果を入れる変数とする

設定3・・1~10を順に加算した結果を変数aに代入する内容にする

 

 

と設定してPLで記述してみます (^O^)/

 

 

 

■ PLの記述例

a=0;

For i=1 to 10  begin

  a=i+a;

end;

 

 

 

これで変数aには最終的に1~10までの加算値である55が代入されます。

ここで具体的な演算プロセスを見ていきましょうか ('-^*)/

 

 

 

1周目・・カウンタ変数iは1で変数aには1代入される

       ⇒ここで重要なのは 「a=i+a」です。左辺は右辺の計算結果が代入されます

         そしてiはカウンター変数なので1周目は1です。右辺の変数aは初期値なので0

         になりますね。よって左辺の変数aには1が代入されて1周目が終わります!

 

2周目・・カウンタ変数iは2で、左辺変数aにはカウンタ変数の2と

      1周目の変数aの値である1との加算値3が代入される

 

3周目・・カウンタ変数は3で、左辺変数aにはカウンタ変数の3と

      2周目の変数aの値である3との加算値6が代入される

 

・・省略・・

 

10周目・・カウンタ変数は10で、左辺変数aにはカウンタ変数の10と

        9周目の変数aの値である45との加算値55が代入される

 

 

 

同じ計算がクルクルと値を引き継ぎながら繰り返されます。このような繰り返し

処理を行う構文をループ構文と呼んでいるわけです。そして、カウンタ変数が

ループ回数に達した周を終えればループ構文から脱します。

では次に同じ処理をC言語系で表ししてみましょう♪

 

 

 

 

 

■ C言語系におけるFor構文

For (カウンター変数=初期値; ループ条件; カウンター変数増減条件)

  {

    処理1;

    処理2;

    処理・・・

  }

 

 

ループに関わる設定と、括弧類の使い方に違いがありそうです。これだけでは

意味がわからないのでPLと同じ条件として具体例を記述しますね。

 

 

 

■ C言語系の記述例

a=0;
for(i=0; i<=10; i++)
{
a=a+i;
}

 

 

 

ループ回数の部分とto、Downtoに該当するカウンタ変数値の増減方法に違い

があります。また、ループ構文の処理文を意味する個所が{ }とシンプルな処

理なってますね (^-^)/

PLとCのループ設定で互いに該当する部分を照らし合わせれば、

 

 

(PL: to 10) ⇔ (C: i<=10;i++

 

 

となります。ちなみに演算子の意味は、

 

 

A <= B   : AがB以下

i++      : 変数iを1つづ増加(++が1づつ増加させる意味を持つ)

i--      : 変数iを1づつ減少(--が1づつ減少させる意味を持つ)

 

 

ことになります。For構文は基本的な内容なのでリザーブワードリファレンスや

書籍などを参考にしてもらえればと思います。そして、

 

 

 

最初にループ構文を扱った理由 Σ(゚д゚;)

 

 

 

というのが次回から明らかになります。ちなみにC言語系の場合は、メタ

かC言語のコンパイラを用意して確認してみてください。とりあえずループ

構文を理解していないと次に進めないので試行錯誤して、

 

 

1~10の加算値55を出力

 

 

してみてくださいね (^-^)/

 

 

 

 

ペタしてね