アルゴリズム  疑似言語

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
おじさんさん  
(No.1)
アルゴリズムの練習問題で理解できなかったので教えてください。
  数    ←  0
  合計  ←  0
■    (a)      10
      数    ←  数  +  1
      合計  ←  合計  +  数
■  
  「合計」を表示
※■は繰り返し処理

問題は1から10までの合計を求める問題で

(a)に入る回答が  【数  <】でした。

前判定の場合、  
数  <  10だと  11になるまで足しこまれるのではないのかと思いました。  
参考書の出版社のHPで誤植確認しましたが、誤植記載がなかったので
疑似言語が理解できていないだけなのかとは思うのですが、納得できていない状況です。
トレース含め解説可能な方、いらっしゃったら説明お願いします。
  
2018.07.15 14:39
基本情報勉強中さん 
(No.2)
10より小さい数字の間ループします。
なので答えは間違っていません。

最初に
0<10でループ入ります。
1←0+1
1←0+1
これを10まで繰り返します。

最後は
9<10でループ入ります。
10←9+1
55←45+10
になります。
10<10になりループを抜けます。
2018.07.15 23:17
おじさんさん  
(No.3)
基本情報勉強中さん

返信ありがとうございました。

最後は
9<10でループ入ります。
10←9+1
55←45+10
になります。
10<10になりループを抜けます。

とありましたが、10≦10もしくは  10=10ではないのかなと思っていました。
2018.07.16 02:24
みみゃみさん 
(No.4)
恐らく「数 ← 数 + 1」の場所を勘違いしたのが原因ですね。
よくある問題だと増分の記述はループの最後に書かれがちなので、
「総和に10を加えた後の「数」は11である」と思ってしまったのでしょう。

こういうトラップ、自分も引っ掛かりそう…
2018.07.20 11:46

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop