初学者のC言語について
初学者のC言語について 4月から大学にてC言語を学習しているのですが、 for文あたりから怪しくなってきてる(答えを見ればどう動くかわかるが、0から思いつきにくい)のですが、どのように考えればスパッとルートが導けますかね?(そんな旨い話はない、でも構いません) フローチャート的な考えはしているつもりなのですが、節々で間違えたり、その間違えに気づけなかったりします。 また、考える際に頭がスッキリとせずモヤついたまま考えようとして全く見当がつかない、というのがあります。 この辺りの解決法が知りたいです。よろしくお願いします。
ベストアンサー
>この辺りの解決法が知りたい 「この辺り」が、どの辺りか、質問を読んでもわからないので、2点だけ書きます。 >for文あたりから怪しくなってきてる forやwhileの繰り返しは、次の3段階に分けて考えます。 特に、2.が大事。 1.繰り返し回数を数える変数の、ループに入る時の初期値 2.ループから抜け出る時の条件 3.ループ内で、繰り返し回数をどう数えているか >考える際に頭がスッキリとせずモヤついたまま [1]スッキリさせるためには、次の2つの方針でプログラムを階層化します。 ●プログラムについて、次の3つを考える ・入力は何か ・入力をどう処理するか ・処理結果をどう出力するか ●「入力」「処理」「出力」の中で、同じような処理を複数個所で 行っているなら関数化する [2]プログラムは、メインと各関数が、データを相互にやりとりすることで目的を実現しますが、その流れと、メインや関数の間で交換するデータ中身まで書いたものが、フローチャートです。 そこまで細かく書く前に、メインと関数との間で、どれとどれがデータをやり取りするかの関係図だけ書いたモジュール図を書くと、その段階で全体の構造が頭に入りやすく、関数化が十分かどうかを考えられます。 モジュール図 https://www.momoyama-usagi.com/entry/info-software09 モジュール(関数)で行う処理は、プログラミングはせず、「何々を××する」とだけ書く。 関数のように、入力や出力は具体的な引数に割り当てず、入力データの名前を〇〇、△△、出力データの名前を◆◆とだけ書く。 名前は変数名ではなく、どんなものか分かるような日本語や英語名。 入力は、親の関数から子の関数へ向かう→を書き、近くに〇〇、△△と記述。 出力は、子の関数から親の関数へ向かう→を書き、近くに◆◆と記述。
ご回答ありがとうございます。 for文については逆に大学にて「ループから抜ける条件が大事」と言われすぎて1.の件があまり意識に入っていなかったと実感しました。 >考える際に頭がスッキリとせずモヤついたまま こちらの回答いただいたものについては、新しい概念が増え、確かに「全体の見通しが立つとスッキリするのにな」と考えておりました。 フローチャートは細かく記述し過ぎて、手間がかかり過ぎると前回答者様からの意見もあり納得していたのですが、モジュール図ほどの物であれば多少は手軽に、フローチャートと類似の考えが押さえられると理解しました。
質問者からのお礼コメント
皆さんのご回答ありがとうございました、それぞれ実践させていただきます!
お礼日時:7/1 8:52