• ベストアンサー

フローチャートの解き方?について

学校で人工言語学という授業を取っているのですが、フローチャートの回の授業を休んでしまい、三日後にテストなのに全く理解できません。 ネットで色々と調べたところ、フローチャートとはプログラムを図で表したものという風に理解しているのですが、授業で渡されたプリントの図を見ても何を問いたいのかが分かりません。 以下に図を記述します。 開始 ↓ 10⇒B(処理1) ↓ 0⇒A(処理2) ↓ A+B⇒A(処理3) ↓ B-1⇒B(処理4) ↓ B=0(判断) (YESなら終了、NOなら処理3へ戻る) どうやらこの図を参考にしてAとBの下に数字を並べていき答えを出していくらしいのですが、何を意味する図なのかすら分かりません。 すごく初歩的なことなのでお恥ずかしいですが、どのように解いていくのかを初心者にも分かるように説明していただけないでしょうか。 宜しくお願いします。

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

  • ベストアンサー
回答No.3

はじめまして。 どのように解いていくか、というのは処理の流れが分かれば大丈夫なのでしょうか? とりあえずpoisnさんの載せている図を進めていきたいと思います。 <1回目> 処理1:Bに10を代入 処理2:Aに0を代入 処理3:A+BをAに代入、すなわちA=10 処理4:B-1をBに代入、すなわちB=9 判断:B=0なら終了、B≠0なら処理3へ    B=9ですから処理3に戻りますね。 <2回目> 処理3:A+B=10+9をAに代入。A=19です 処理4:B-1=9-1をBに代入。B=8ですね 判断:やはりB≠0なので処理3に戻ります。 <3回目>  ・  ・  ・ とどんどん進めていきますと、Bは10から1ずつ減っていってますので最後には0になりますね。その時に初めて判断のパートにおいてB=0が成立し、プログラムが終了となります。そして終了時点でのAの値は、10+9+8+…+1=55です。恐らくこの図を解く、というのは終了時のAの値を求める、というものではないでしょうか。 書いている内容がわからなければまた聞いてください。どうかpoisnさんのご参考になればと思います。それでは。

poisn
質問者

お礼

すごく丁寧で分かりやすい解説ありがとうございます。 完全に理解することができました。 おっしゃる通り、おそらくAを求めるということだと思います。 単位が危なくてかなりあせっていたので、すごく助かりました。ありがとうございました。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

> 10⇒B Bという変数に10という数を代入する。 って記述だと思います。 変数、代入って、授業でやりませんでしたか?

poisn
質問者

お礼

ご回答ありがとうございます。 難しい問題だと勝手に思い込んでいたのですが、すごい単純な問題だったんですね。 お騒がせしてすみませんでした。

  • quatro100
  • ベストアンサー率31% (13/41)
回答No.1

図ではこんな感じです || 10→B ||   ↓ || 0→A ||   ↓ || A+B→A ||←┐   ↓    │ || B-1→B || │   ↓    │ || if B=0 ||─┘no   ↓yes   end つまりifの時点でAとBの間に以下の関係があります A B 10 9 19 8 27 7 34 6 40 5 45 4 49 3 52 2 54 1 55 0 これって1~10までの合計値ですよね。 当たり前なんですけど、楽しいですよね。 授業じゃそうでもないか。

poisn
質問者

お礼

さっそくのご回答ありがとうございます。 AとBの値を最後まで書いてもらい、どうゆう風に解くのか理解できました。 すごく単純な問題だったんですね。。 ありがとうございました。

関連するQ&A