次の問題を解決するプログラムを書いてみましょう。
100 ~ 500 のすべての整数の合計を求めます。
この問題を解くと、和を求めるのが難しくなります。たとえば、単に変数 s への加算結果を次のように記述するとします。
s=100+101+102+103+...+500
コンピュータは算術式の省略記号の使い方を理解できず、この合計に 100 から 500 までのすべての数字を書き込む必要があるため、記録自体に時間がかかります。そして、そのようなプログラムの価値はごくわずかです。特に、数値を変更して別の範囲を取りたい場合は.
何をすべきでしょうか?
上記のエントリに注目すると、足し算「+」が常に使用されています。
変数 s に徐々に数値を追加してみることができます。たとえば、この表記法を使用すると
s := s + i;
ここで行ったこと:
1) 右側に式 s+i を入力します。つまり、メモリ内にある変数 s の値を取得し、その値を加算します。変数 i< をそれに /strong>
追加します。
2) 左側で変数s の名前を設定します。つまり、右側の計算結果全体がこの変数に保存されるため、変数の値を変更します。 s.
範囲内の数値はどこで取得できますか?
範囲に属する 100 から 500 までの数値は、i 変数に 1 つずつ入る必要があります。これはよく知られている for
ループを使用して実行できます。
たとえば、このようにして
<プレ>
s := 0; //最初に変数 s をリセットする必要があります。そうすることで、最初のステップで数値 100 がメモリ内の値ではなくゼロに加算されます。
for i := 100 to 500 do //変数 i の値が 100 から 500 まで 1 ずつ変化するループのヘッダー
s := s + i; // 変化する変数 i の値を変数 s に徐々に加算するループの本体
// 結果は変数 s に格納されます
プレ>
この解決策はアクションごとに合計を計算するのとよく似ています
s = 0 + 100 = 100
s = 100 + 101 = 201
s = 201 + 102 = 303
等