代入と式の違いについて
2012 年11月29日
式(expression)と代入(assignment) でも触れましたが,assign
「代入する」という概念はとても重要なものです.
y
= x +
3と書いたものついては,プログラムでは,代入(assignment)文と論理式の二通りの使われ方があります.
例えば,
read x
y = x + 3
write y
というプログラムは,xにデータを読んで,x +
3という算術演算を行い,その結果をyに入れる,代入するというものです.
一方,
read x, y
if y = x + 3 then
………else ………
では,読み込んだx, yの値で,y と x +
3を比較します.その結果,等しければ then以降を実行し,さもなければ,else以降を実行するものです.
y
= x + 3の読み方は,The variable, y, becomes the value of
the arithmetic expression, x + 3. または,
The value
of the arithmetic expression, x + 3, is assigned to
the variable, y.です.
if y = x + 3の読み方は,if the arithmetic expression, x
is equal to the arithmetic expression, y+1, then です.
代入文は,(左辺) =
右辺)の形をしています.但し,左辺は,変数か配列要素です.論理式のように,左辺と右辺が等しいということではなく,右辺の計算結果を左辺に入れるということです.
n個のデータの和を求める時に次のプログラムの書き方が常套手段です.プログラミングの初心者は必ず理解する必要があります.
sum = 0
for i = 1 to n
read x
sum = sum + x
next
write y
このプログラムでは,和を求める変数 sum
をゼロにクリアしておき,ループを回りながら,毎回,x にデータを読み込んでその x を sum
に足し込みます.
ここで,式は,i = 1 です.機能的に i = n
という式も判定に使っています.
代入文は, sum = 0 と sum = sum +
x です. sum = 0 は,右辺のゼロを sum を代入する,ゼロにクリアする,ことです.sum =
sum + x の方は,"New" sum becomes the "old" sum plus x.
と読めば,わかります.新しい sum は,(一回前の)古い sum に x を足したものです.