次のプログラムを作りたいのですが…。うまくいきません…
Aさんへ
手順を考えて、考えた手順通りに近いプログラムになっています。
では、「なぜうまくいかないか」と言いますと、
- 目的が不明瞭なことと
- プログラムロジックの大筋が見えてこないこと
プログラムコードと同じレベルで手順を考えている - 手順に漏れがあること
- 実装(プログラムコード)上の問題があること
まず、目的から考えていきます。
足りないもの…とは何を意味するのでしょうか?
いくつかのキーワードで推察してみます。「航空券」「足りない数」「足りないもの(文字配列)」…旅行時に必要なものとその数と想像しました。
手順を要約すると
- 航空券以外に必要なもの(文字列)を入力する
- 入力が終わったら、入力された「必要なもの」を出力する
つまり、「旅行に必要なものを入力して、入力されたものをそのまま画面に出力するプログラム」と受け取りましたがあってますか?
手順を考える前に、何をしたいのかを明確にしましょう。
以下に、想像で目的と手順を書いてみます。これを参考にしてもう一度考えてみてください。目的は上記に書いたものとします。
考えてみたら、私も混乱してきました。そこで、要点を整理しました。
ポイントを整理
- 「必要なものの数」「必要なものの入力」「必要なもののリスト」
- 「必要なもののリスト」を全て出力
- 終了
足りているか、足りていないかは、「必要なものの数」で判断できます。つまり、「必要なものの数」が0の場合は「足りている」、「必要なものの数」が>0の場合は「足りていない」と判断できるからです。
- 「航空券」を画面に出力
- "「必要なものの数」を入力して下さい"を画面に出力
- 「必要なものの数」の入力待ち
- 「index=0」で初期化し、index<「必要なものの数」の間、以下を繰り返す
- 「必要なもの」の入力待ち
- 「必要なもの」をndexが示す「必要なもののリスト」に追加
- indexを+1増減する
- ”それではチェックしましょう”を画面に出力
- 「index=0」で初期化し、index<「総数」の間、以下を繰り返す
- indexが示す「必要なもののリスト」を画面に出力する
- indexを+1増減する
- 終了する
補足事項
- コードに展開するときは、入力値のチェックが必要です。
- 「必要なもののリスト」は2次元配列にします。
- 画面へ出力する場合、改行がなければ見づらくなります。
文字列の最後に”\n”を追加すると改行します。
以上です。もう一度手順を見直して送って下さい。
- プログラムの要約
- プログラムの手順
IT@NET塾
丸山