プロが教えるわが家の防犯対策術!

アルゴリズム:合計の意味が理解できません。
テキストは以下の通りです。
考え方を分かり易く教えてください。
--------------------------------------------
1+1を計算する場合: y = y +x
(1)値yに0を代入する(初期化)
y=0+x
(2)値xに1を代入する
y=0+1
(3)計算結果を、解yに代入する
1=1
(4)値xに1を代入する
y=1+1
(5)計算結果をyに代入する
2=2
(6)さらに計算する場合は(4)と(5)を繰り返す
-------------------------------------------

A 回答 (2件)

プログラムの中でよく使われる「繰り返し」の意味をご存知でしょうか?


プログラム言語で言えば、for文、while文、repeat文の随所で現れる計算というと素人にはわかりづらいので↓下記で説明します。

y=0 (yへ1を代入するとyは1を保持)
x=1  (xへ0を代入するとxは0を保持)
y=0+1 (yへ新たにy+xを代入(上書き)すると、y=0+1つまりy=1)
yは次の処理へ値を保持します(メモリー)
y=1+1 (yへ新たにy+xを代入(上書き)すると、y=1+1つまりy=2)
y=2 (結果)
という処理の流れを表現しているのだと思います。
さらに、処理を続けると以下の用になります
y=2+1 (yへ新たにy+xを代入(上書き)すると、y=2+1つまりy=3)
y=3

この例の上げ方は、素人には意味不明ですし、不親切です。
ITパスポート試験のテキストでこの様に書かれていたのでしょうか?

簡単に書くと、
y=y+x の処理を行った回数を1ずつ加算していきその合計をメモリーへ保持するということを言っているわけです。

エクセルの累計の計算もこの概念から成り立っているので試すといいです。たぶん、表計算でよく使う概念だからITパスポートでの出題なのでしょう。表計算ソフトの名前とか試験では出せませんから概念でピンと着てねって意味でしょう。

エクセルで表現すると↓下記の用になります。
A1セルに0
A2セルに1
をそれぞれ入力して
A3セルに
=A1+A2
を書いてA10までコピーします。

すると、A10では、A列にコピーした分の累計が出ます。
この計算のことです。

もちろん「セル」だとか「列名a1」などは、表計算ソフトやデータベースソフトでの統一の表現では無いので、概念的な書き方になっているのでしょう。
    • good
    • 0

代入が理解できないものとして説明します。


y=y+1
は代入であり、○=△とは、△を○に入れると言う意味になります。(ここで=を等しいと解釈すると混乱しますので○=△は○←△と考えた方がわかりやすいです。)
そしてこの代入では、△部分の計算を終えて値を求めてから代入しないといけないというルールがありますので、まだ値の入っていないyは0ですから、y+1は、0+1、すなわち計算すると1になります。
つまりは、y=y+1 とは y=1 つまり y←1 のことであるとなります。
そして、この処理をもう一度実行したときにどうなるかがポイントで、
y=y+1 の△部分 y+1 のyが今度はすでに1が入っているため、1+1になり、y=2 つまり y←2 となります。
この繰り返しで、常に1増えるカウントができるわけです。

ということで、ここでは、yに何が入っていようと関係なく1にしてしまう y=1 の代入と、yの値に応じてyに1を加える y=y+1 の代入の違いが理解できているかどうかが重要です。

※もし不自然な「 」がある場合、左向き矢印(<-)が入っています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!