HOME»基本情報技術者試験掲示板»アルゴリズム 疑似言語
投稿する
アルゴリズム 疑似言語 [1284]
おじさんさん(No.1)
アルゴリズムの練習問題で理解できなかったので教えてください。
数 ← 0
合計 ← 0
■ (a) 10
数 ← 数 + 1
合計 ← 合計 + 数
■
「合計」を表示
※■は繰り返し処理
問題は1から10までの合計を求める問題で
(a)に入る回答が 【数 <】でした。
前判定の場合、
数 < 10だと 11になるまで足しこまれるのではないのかと思いました。
参考書の出版社のHPで誤植確認しましたが、誤植記載がなかったので
疑似言語が理解できていないだけなのかとは思うのですが、納得できていない状況です。
トレース含め解説可能な方、いらっしゃったら説明お願いします。
数 ← 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になりループを抜けます。
なので答えは間違っていません。
最初に
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ではないのかなと思っていました。
返信ありがとうございました。
最後は
9<10でループ入ります。
10←9+1
55←45+10
になります。
10<10になりループを抜けます。
とありましたが、10≦10もしくは 10=10ではないのかなと思っていました。
2018.07.16 02:24
みみゃみさん(No.4)
恐らく「数 ← 数 + 1」の場所を勘違いしたのが原因ですね。
よくある問題だと増分の記述はループの最後に書かれがちなので、
「総和に10を加えた後の「数」は11である」と思ってしまったのでしょう。
こういうトラップ、自分も引っ掛かりそう…
よくある問題だと増分の記述はループの最後に書かれがちなので、
「総和に10を加えた後の「数」は11である」と思ってしまったのでしょう。
こういうトラップ、自分も引っ掛かりそう…
2018.07.20 11:46