• ベストアンサー

アルゴリズムのフローチャート(ヒストグラム)

0以上10以下の整数を入力として繰り返し受けつけ、階級の幅が3であるようなヒストグラムを出力する。 終了記号は-1とする。     始     ↓    i←0 ↑→→↓ ↑  X[i]←0 ↑   ↓ ↑←←i≧4  NO ↓     ↓YES     ↓    入力:N     ↓ ↑→→↓YES ↑   ↓ ↑  N=-1 →YES→出力:X→終 ↑   ↓ ↑   ↓NO ↑   ↓ ↑  N←N/3 ↑   ↓ ↑  X[N]←X[N]+1 ↑   ↓ ↑←←↓ 見にくい図で申し訳ありません。 このようなフローチャートがあるのですが、全体の流れの意味がよくわかりません。 特に後半の「N←N/3」以降はどういった意味なのでしょうか? よろしければ解説をお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

入力Nが0なら,0/3 の結果は0(割切),X[0]に+1する 入力Nが1なら,1/3 の結果は0(切捨),X[0]に+1する 入力Nが2なら,2/3 の結果は0(切捨),X[0]に+1する 入力Nが3なら,3/3 の結果は1(割切),X[1]に+1する 入力Nが4なら,4/3 の結果は1(切捨),X[1]に+1する 入力Nが5なら,5/3 の結果は1(切捨),X[1]に+1する 入力Nが6なら,6/3 の結果は2(割切),X[2]に+1する 入力Nが7なら,7/3 の結果は2(切捨),X[2]に+1する 入力Nが8なら,8/3 の結果は2(切捨),X[2]に+1する 入力Nが9なら,9/3 の結果は3(割切),X[3]に+1する 入力Nが10なら,10/3 の結果は3(切捨),X[3]に+1する ということで,0~10の整数がランダムに繰り返し入力されるたび, その値を0~2,3~5,6~8,9~10という4つの階級(階級の幅は3)にグループ分けして,該当する階級の件数を+1カウントしているわけです。 追伸. 最初に登場するループ中「i←i+1」が書き忘れられています。

tiom
質問者

お礼

回答ありがとうございます。 疑問に思っていた点がすっきり解決できました。 書き忘れのご指摘もありがとうございます。 元のフローチャートを確認してみたところ、確かに書き落としていました。 言われなければ気付かなかったはずなので、本当に助かりました。 ひとつひとつ丁寧な解説をありがとうございました!

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ 0以上10以下の整数を、階級の幅が3でグループ分けすると [0 1 2] [3 4 5] [6 7 8] [9 10]  0    1   2    3     ---> これをグループNoとすると N←N/3 は、入力Nが属するグループNoを求め、それを新たに、Nに設定しています。 X[N]←X[N]+1は、グループNoの頻度に1を加えています。

tiom
質問者

お礼

回答ありがとうございます。 見やすいシンプルな解説でとてもわかりやすかったです。 本当に助かりました。 迅速な回答をありがとうございました!