第11回(2006年12月20日)

* 質問11-1:パソコンの調子が悪く、なかなか起動しなかったり動きが遅く、止まったりしました。

回答:計算機に不具合があった場合は、授業中でもすぐに教えて下さい。なお、この件は、情報処理センターに報告しておきました。

* 質問11-2:練習問題で、間違いが少しあり、不安になりました。小テストや、期末テストもこのくらいの難易度であるかと思うと不安です。よい、参考書や、おすすめの勉強方法などあれば教えてください。

回答:もっとも理解が深まるのは、自分でプログラムを作成してみることです。まずは、テキストのプログラムを少し変更することからはじめてみるとよいと思います。実際に自分の考えていたようにプログラムを変更できたか確認しながら作業を進めていって下さい。

* 質問11-3:練習問題第2回の問2がよくわからなかった。

回答:実際にプログラムを実行して下さい。正しくは、「[1]:Aさんの勝ち」という表示だけでいいのに、「[2]:Aさんの負け」も表示されたと思います。この理由は、テキスト第3章4.1.2 swithc文を参照して下さい。「break」がない場合とある場合の違いを調べましょう。


第10回(2006年12月13日)

* 質問10-1:テストやレポートが不安です。成績にはどの程度加味されるのでしょうか。

回答:配点は,定期試験(60点),小テスト(20点),レポート(10点),その他(10点)です。その他の内容については,講義中に指示します。

* 質問10-2:配列の宣言は難しく感じました。あと添え字ってなんですか?

回答:このテキストでは、配列の[]の中に入る数値のことです。


第9回(2006年12月6日)

* 質問9-1:サブルーチンは、「サブ・ルーチン」なのか「サブルー・チン」なのか教えて下さい。

回答:プログラムによる一連の作業のことを「ルーチン(routine)」といい、特定の小部分を処理するひとまとまりのプログラムを「サブルーチン(subroutine)」といいます。

* 質問9-2:じゃんけんプログラムを作っていたとき、xやyなど変数の部分に、"hantei"という文字列を使っていましたが、これも変数として扱えるのでしょうか。

回答:第2章テキストの11頁,資料A「変数名の付け方」を参照して下さい。
C言語で変数の名前に使用できる文字は、次のとおりです。
a〜z A〜Z 0〜9 _(下線)
変数名はこれらを組み合わせてつくります。ただし、変数名の先頭に数字を用いることはできません。また長さも31 文字までで、それ以上長い変数名では32 文字目以降は無視されます。
あと、intなど、Cの予約語を変数名とすることはできません。

* 質問9-3:自己評価です。
2章 3(演算子の種類を覚ええていない)
3章 3(言われればわかる程度)
4章 2(言われて理解出来ない箇所がある)

回答:理解の現状がわかりやすいように、このようなコメントを付けてもらえるのは、助かります。心遣いありがとうございます。


第8回(2006年11月29日)

* 質問8-1:講義中に使ってる画面に絵を書くソフトを教えてください。

回答:四角形や菱形を使用した処理の流れを表すフローチャートは、PowerPointを使用しています。みなさんの計算機にも入っています。なお、マウスで文字等を書いていたのは、ezsCOMMUNICATIONという授業支援のためのソフトウエアです。これは教員用の計算機のみ使用可能となっています。

* 質問8-2:パワーポイントを用いた説明が分かり易かったので、視覚的に整理できてよかったです。自分が弱いところも分かってきました。ただ、まだ漠然とした不安はあります。(慣れるしかないでしょうか。)

回答:人間は高度な思考力を持っていますので、細かな処理手順を指示されなくとも作業を問題なく行うことができます。
例えば、カップに紅茶を入れるとします。このとき計算機であれば、カップのどの高さまで紅茶を入れるのか指示しないと、カップから紅茶が溢れることになります。
おそらくプログラミングが難しいと感じるのは、普段、意識しなくてもよい、細かな処理手順を考えなければならないためだと思います。
理解できるようになるまでは、少し努力が必要です。復習等をかかさず行っていってください。
問題解決のための思考力を鍛えるよい訓練になると思います。

* 質問8-3:for文をwhile文に変えることがうまくできなかった。

回答:(P例:4.2-3)におけるfor文をwhile文に書き換えたプログラムを下記に示します。
#include<stdio.h>
main()
{

}


第7回(2006年11月22日)

* 質問7-1:授業中に十分理解できずに、前でやってることをまねてるだけでよくわかりません。家で勉強するならどんなことをしたらいいでしょうか。

回答:処理の流れについて見ていくとよいと思います。例えば、処理が実行されるたびに、変数の値がどのように変わるかおっていって下さい。プログラミングが行える環境でしたら色々とプログラムを書き換えて、処理の流れを確認するとよい勉強になります。

* 質問7-2:自分の家でもプログラミングをできるようにしたいです。

回答:質問3-3でご紹介しましたが、フリーのソフトウエアがあり、プログラミングを行える環境を作ることができます。以前、コンパイラとして「Borland C++Compiler」をご紹介しましたが、授業で使用しているgccコンパイラが使用できるフリーのソフトウエアがありましたので、これを下記に紹介しておきます。
C/C++統合開発環境 WideStudio for WIN32(右ボタンをクリックして「新しいウィンドウで開く」)

* 質問7-3:カッコが増えすぎて見にくくなってきた。改行やスペース以外で、見やすくする方法はありますか。

回答:同様の質問が幾つかでるようになってきました。具体的な例を示した方が理解しやすいと思いますので、授業中にみなさんのプログラムを例に、説明したいと思います。

* 質問7-4:勝率と回数のほかに何を表示できるようになれば、よりじゃんけんらしくできるようになりますか。

回答:私たちがじゃんけんをするとき、相手の手を予測して自分の手を決定しているように、計算機に思考を組み込むことなども工夫の一つだと思います。
もう一つ洗練されたプログラムという点で、間違った入力がなされたときの処理を作っておくとよいと思います。実際のプログラムでは、間違った処理がなされてもこれに対応できるようになっています。
ちなみに、古いゲームの裏技の一部は、間違った入力をしてプログラムに異常な処理をさせるものがありました。

* 質問7-5:じゃんけんで10回やって10回勝ってしまった。もしかしたらまだどっかプログラミングがおかしいかもしれない。

回答:10回連続で勝つということは、ものすごく勝負運が強いと考えることもできますが、書かれているように非常に確率的には起きそうにないことが起きていますので、おかしいという感覚を持つことが大切です。このような感覚を工学的センスといいますが、よいセンスを持っていると思います。
確認としては、まず、計算機の手が毎回変わっているか、確認してみて下さい。


第5回(2006年11月8日)

* 質問5-1:出席メールがキチンと送れているか不安です。確認する方法はありますか。

回答:確認は、個別対応となります。ホームページ等での公開はしません。

* 質問5-2:プログラム例(P例:3.1-1)のprintf("x = %05.1lf\n",x);における「05」の意味って何ですか?いまいち分からなかったです。

回答:まず、「05」の内の「5」は、文字数(フィールド幅)を表します。そして、「.1」となっていることから小数点第1位までの文字数の合計が、5文字となります。したがって、小数点を表す「.」も1文字と数えますので、百の位まで表示しなさいという意味になります。そして、「05」の内の「0」は、空いている箇所に、0を埋めなさいという意味で、この場合、百の位は、何も表示しませんので、空いています。つまり、0をここに表示することになります。

* 質問5-3:参考書「Cで学ぶプログラミングの基礎」で授業内容はすべてカバー出来るんですか?

回答:参考書は、初心者向けに幾つか内容を省略しています。例えば、今回授業で習った書式等の詳しい説明は、なされていません。

* 質問5-4:パソコンを起動させて授業を受けていると、ezs Clientという表示が下に出てクリックしても消えません。これの意味は何でしょうか。

回答:教員の計算機画面をみなさんの計算機の画面に表示するためのソフトウエアです。そのままにしておいて下さい。

* 質問5-5:scanf関数の説明で、変数の前に「&」がつく意味の説明をもう一度お願いします。

回答:プログラムで使用される変数は、int型等の型宣言を行ったときに、メモリ上の空いている適当な場所に、値を保存するための領域が確保されます。scanf関数は、このメモリ上の指定された領域に値を保存するという関数です。したがって、各変数の値を保存する領域をしめす「&」を変数の前に付けます。


第4回(2006年11月1日)

* 質問4-1:プログラミングは、とても難しいです。復習しようと思っても何処から手を付けていいのかわからない状態です。

回答:補講を行うことを検討したいと思いますが、感想にある状態だとすぐに解決した方がよいと思います。相談に来て下さい。何処でわからなくなっているか順を追って、調べて行きましょう。

* 質問4-2:最後にBを乱数に変えたら、実行ができなくなってしまいました。今回の乱数プログラムをホームページに掲載していただけませんか?

回答:今回作成した「じゃんけんプログラム」を下記に書いておきます。
#include<stdio.h>
#include<stdlib.h>

main()
{

}

補足:計算機で発生する乱数(rand())は、疑似乱数と呼ばれ、決まったパターンの数列をもとに数を発生します。このため使用するパターンを変えなければプログラムを実行するたびに、毎回、同じ値になってしまいます。そこで、ここではプログラムを実行するたびに異なるパターンの数列を使用できるように、srand()という関数でどのパターンの乱数を使用するか設定するようにしています。


第3回(2006年10月25日)

* 質問3-1:演算子が難しかったです。全部はとても覚えられそうにありません。

回答:この講義では、テキストをみながらでも理解できれば問題ありません。しかし、将来、情報処理の国家試験をC言語で受験しようとしている人は、覚える必要があります。

* 質問3-2:ファイルの数が増えてきて間違えて別のファイルを開いてしまうこともあったので区分しようかと思いました。

回答:企業活動の基本を表す言葉として、5S(整理・整頓・清掃・清潔・躾)という言葉があります。作業を間違いなく、また、短時間で効率よく終わらせるには、整理・整頓等は、大切です。これからも色々な場面で、心がけていって下さい。

* 質問3-3:家でも練習できるように、家のパソコンでも、テラパッドとかシグウィンとかを出来る環境にしたいです。

回答:TeraPad及びCygwinともに、フリーのソフトウェアで、インストール可能です。ただし、Cygwinは、計算機に詳しくないとインストールは困難です。私は使用したことがありませんが、「Borland C++Compiler」などがよいと思います。
「窓の杜」の該当頁を下記に紹介しておきます。
窓の杜テキストエディタ「TeraPad」開発環境・コンパイラー


第2回(2006年10月18日)

* 質問2-1:エクスプローラの「ツール」メニューから「フォルダオプション」を選択し、「表示」の「詳細設定」で、登録されている拡張子を表示するようにしたのですが、次回起動すると、この変更がもとに戻っています。なぜ、もとに戻るのでしょうか?

回答:情報処理センターに問い合わせたところ、次のような回答がありました。
新システムでは,サーバに保持されているブートイメージを読み込んで,端末を起動しており,個々の端末で設定変更したものが,ブートイメージに反映されることはありません.
つまり、初期状態に戻ってしまうということです。対策がとれるか納入業者に問い合わせてくれるそうです。


第1回(2006年10月4日)

* 質問1-1:メール設定でとまどり大変でした。

回答:大学からの重要なお知らせ等がメールで届くことあります。空き時間に早めに設定しておいて下さい。なお、設定がわからなければ情報処理センターの方に聞くか、あるいは、質問に来て下さい。

* 質問1-2:パソコンが重くてまったく作業になりません。メーラーもブラウザーも立ち上がらない上にすぐに落ちるといった具合です。今後改善されることを期待しています。

回答:みなさんにご迷惑をおかけしたこの件に関しては、早速、情報処理センターに報告し、対処をお願いいたしました。
なお、センターからの連絡だと、納入業者のシステム設定上の問題で、改善作業を指示したそうです。

* 質問1-3:C言語を勉強する際に、わかりやすい本を紹介してほしいです。

回答:参考書の件ですが、下記の本などがわかりやすいと思います。初心者向けです。
宇野毅明:「Cで学ぶプログラミングの基礎」、共立出版株式会社

* 質問1-4:コンパイルは選択するという意味なんですか。拡張子の意味もイマイチわかりませんでした。

回答:コンパイルや拡張子の意味ですが、講義の第1章のページを一度読んでみて下さい。
第1章 プログラムを動かそう

* 質問1-5:授業のスピードがはやかった。もう少しだけ話すスピードを遅くしていただければうれしいです。

回答:できるだけゆっくりと話すように心がけたいと思います。なかなか手を挙げて発言しにくいと思いますが、わからないところがあれば、教えてください。