2000.7.28 関谷
河野さんが、試行してくれている。 山縣さんも、一部、使っている。 しかし、他の人は、まだ、ほとんど、変わっていない。
アルゴリズムは、課題のキーポイントの処理について、詳しく書くこと。全般的なことは、省略してよい。例えば、並べ替え(昇順・降順)の問題なら、その核心部分である、並べ替えの手順について書くだけで良い。
(以下に、再度、書きます。)
C言語の文の文法的な説明でなく、「何をどうしようとしているのか」が分かるように、日本語のコメントを書くこと。そして、これで、コーディングが出来る程度に詳しいこと。
例1)「流れ図」では、コーディングは出来ますが、何をしようとしているのかが分からない。従って、右側に、流れ図でしようとしていることの説明(コメント)を付ける必要がある。
(ただし、反復の記号を正確に書いている場合です。反復の処理を省略したら、コーディングできない。)
流れ図は、ソースリストがあれば、機械的に書ける。しかし、それをしても、プログラムの意味は分からない。例えば、入れ換えの処理を考えてみれば分かる。
例2)『forループを作る。』←これを見ても、何をするのかも分からないし、まして、C言語のプログラムは書けない。
(ループの範囲を含めて、処理手順を書いた例を引用する。)
[B] 素数を求める一番簡単な方法は、定義どうりに、「1からn/2までの整数(割る数)で割って、割り切れたら素数でない。」とすれば良い。
(注)番号のとり方は、レベルと対応させて、枝番を付けること。
字下げを組み合わせると、分かりやすい。
1)n:2から100までの調べる数のループ 1.1) スイッチswを素数とセットする(sw=1;) 1.2) 割る数のループ(j:2からn/2まで) 1.2.1) 割り切れた(n%j==0)なら 1.2.1.1)スイッチswをリセットする(素数でない) 1.2.1.2) このループを中断する。breakする。 1.3) スイッチが素数(sw==1)なら、nを表示する。
これについても、まだ、ちゃんと書いてくれていないひとが居る。
(以下に、再度、書きます。)
どんな課題を、誰が、どのようにプログラムしたのかが分かるようにすること。特に、ソースプログラムの本文で、その右側に説明をコメントで追加すると良いと思う。
『テキストの解答例などを参照した時、それぞれの文の意味(目的)を日本語でコメントにして追加すれば、そのプログラムの理解ができたことになる。7/26:15:35追記』
プログラムを見れば、どんな課題を、どのように解決したのかが実行結果と共に分かること。その方法は、「C言語のソースプログラムの様式について」を参照してほしい。
(R:\sekiya\アプリケーション演習\Cプログラミング\C_style.txt)
実行結果をソースの最後に追加したときには、その部分をコメントにすること。
(飯星先生の昨日の説明への補足) グラフの縦の軸(Y軸)は、出現回数になる。軸目盛りを数字で表示すると良い。 スクリーン(標準出力)への表示は、最大目盛りから、−1して行き、1まで反復する。 阿部さんのプログラム例がある。
1)最初に、最大の出現回数を求める。
(この手順は、降順のソートの手順の1回のループで良い。max_kaisu )
2)次に、出現回数iのループを、最大回数max_kaisuから始めて、1まで反復する。
その中で、各文字の回数が出現回数i以下なら'*'を、そうでなければ' 'を表示する。
(ここでは、文字配列を使っても良い。配列を使うと、反復が使える。)
3) 最後に、調べた文字を書く。(x軸タイトル)
演習21,22とほぼ、同じだから、それを参照できる。
ただし、プログラムを、短く、そして再利用できるようにするには、調べる文字を配列にして、ループでカウントするのが良い。これは、山縣さんの方法であるが、カウントアップもループに出来る。
プログラム3−11あるいは、例3−7の電卓シミュレーションを参照のこと。
getchar()での'\n'の読み飛ばしについては、以前の問題と同様である。
なお、テキストでは、'='演算子の入力の前には、数値0を入力するとなっているが、簡単のために、'='の前に入力した数値は無視することにして良い。
以上