プログラミング言語を用いての計算が、電卓で計算をおこなうのとの大きく違 うのは、複雑な計算の手順を記述できることにあります。複雑な計算手順を記 述するための第一歩としては、for文があげられます。これは、同じ文を、一 定回数繰り返して実行するというものです。最初に例を紹介しましょう。
program sum(input,output); var i , s, n : integer; begin s := 0; read(n); for i := 1 to n do s := s + i; writeln(s) end.
for文は、次のような形をしています。
for 制御変数 := 初期値 to 最終値 do 文制御変数は、整数型として変数宣言部にて宣言されてなければなりません。
for文の意味は、次のとおりです。
まず、初期値と最終値のところにある式を計算します。そして、変数のところ で指定された変数に初期値を代入し、文を実行し、それからその変数の値を1 ずつ大きくしながら、文を繰り返し実行して、その変数の値が最終値を越えた ところでfor文を停止します。
さて、上の例の場合、変数iを初期値1から1ずつ大きくしながら変数 nの値になるまで、文s := s + iを実行するわけですから、 最終的に変数sに入っている値は、
となるわけです。
doの後に書かれる「文」のところで、複数の文を書きたいときには、 「複合文」を使用します。複合文は
begin 文1 ; 文2 ; … 文n endというふうに、実行文部と同じ形をしています。セミコロンは文と文との区切 りです。意味は実行文部と同様に、左から順に実行するというものです.
たとえば、文s := s + iのところを、複合文
begin writeln(i,s); s := s + i endに入れ変えると、変数iや変数sの途中経過も表示されます。
for文において、繰り返し実行される文の中で、代入文などを用いて、制御変 数の値を変化させてはいけないことになっているので、注意してください。
上記のプログラムを実行してみましょう。また、複合文を用いて途中経過を表 示するように変更したプログラムも実行してみましょう。
総和のプログラムを参考にして、整数nを入力とし、その整数の階乗 を
出力とするプログラムを作成してみましょう。