HOME»基本情報技術者試験掲示板»アルゴリズム  疑似言語
投稿する

アルゴリズム  疑似言語 [1284]

 おじさんさん(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日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop