番号は、値を取り出すための位置
要素番号1からのa={8,3,5}ではa[1]=8、a[2]=3、a[3]=5です。開始番号を0とする別の言語の経験をそのまま当てはめないこと。
基本情報の擬似言語の配列を読むときも問題に示された条件を確認します。この例の有効な番号は1〜3。
a[0]やa[4]には要素がなく、外側の値を勝手に0として処理しません。
| 番号(1から) | 更新前 | i=2の更新後 |
|---|---|---|
| 1 | 8 | 8(変更なし) |
| 2 | 3 | 11 |
| 3 | 5 | 5(変更なし) |
更新する場所を、左辺で確かめる
i=2でa[i] ← a[1] + a[i]を実行すると、右辺の8と3を足した11をa[2]へ格納します。a[1]やa[3]を更新する文ではありません。
結果は{8,11,5}です。値を足すこと、番号iを増やすこと、配列の長さを変えることは別の操作。
この例では番号も長さも変えず、一つの要素だけを入れ替えます。
同じ要素を読む場合も、右辺が先
i=1なら右辺は更新前のa[1]を二度読んで8+8=16となります。途中で左辺を変えてから右辺の残りを読むわけではありません。
i=3へ変えた場合は8+5=13をa[3]へ格納します。配列と整数変数の代入は、どちらも右辺を評価してから格納先を更新するという読み方につながります。
多次元配列・リスト・参照の詳細はこの入口では扱いません。